@redneckz/wildless-cms-uni-blocks 0.9.11 → 0.9.13

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 (350) hide show
  1. package/bin/migrateContentUnit.js +1 -1
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +131 -56
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/Calculator/CalculatorContent.d.ts +18 -17
  6. package/bundle/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  7. package/bundle/components/Calculator/rangeHelpers.d.ts +1 -0
  8. package/bundle/components/Calculator/renderMonthsInput.d.ts +1 -0
  9. package/bundle/components/Calculator/useDepositCalculatorParams.d.ts +3 -1
  10. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -6
  11. package/bundle/components/Footer/MediaButton.d.ts +3 -4
  12. package/bundle/content-page-repository/ContentPageRepository.d.ts +1 -5
  13. package/bundle/content-page-repository/alignImg.d.ts +9 -0
  14. package/bundle/content-page-repository/computeImgOutputPath.d.ts +3 -0
  15. package/bundle/content-page-repository/resizeImg.d.ts +3 -0
  16. package/bundle/content-page-repository/transformContentPage.d.ts +1 -0
  17. package/bundle/content-page-repository/transformImg.d.ts +6 -5
  18. package/bundle/content-page-repository/transformPicture.d.ts +1 -1
  19. package/bundle/ui-kit/InputListRange/InputListRange.d.ts +2 -0
  20. package/bundle/ui-kit/InputListRange/InputListRangeProps.d.ts +10 -0
  21. package/bundle/utils/arrayByRange.d.ts +1 -0
  22. package/bundle/utils/isPictureSizeEmpty.d.ts +2 -2
  23. package/bundle/utils/mergeIntervals.d.ts +1 -0
  24. package/dist/components/Calculator/CalculatorContent.d.ts +18 -17
  25. package/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  26. package/dist/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  27. package/dist/components/Calculator/DepositCalculatorForm.js +21 -11
  28. package/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  29. package/dist/components/Calculator/constants.js +1 -1
  30. package/dist/components/Calculator/constants.js.map +1 -1
  31. package/dist/components/Calculator/rangeHelpers.d.ts +1 -0
  32. package/dist/components/Calculator/rangeHelpers.js +4 -1
  33. package/dist/components/Calculator/rangeHelpers.js.map +1 -1
  34. package/dist/components/Calculator/renderMonthsInput.d.ts +1 -0
  35. package/dist/components/Calculator/renderMonthsInput.js +3 -2
  36. package/dist/components/Calculator/renderMonthsInput.js.map +1 -1
  37. package/dist/components/Calculator/useCreditCalculatorParams.js +27 -29
  38. package/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  39. package/dist/components/Calculator/useDepositCalculatorParams.d.ts +3 -1
  40. package/dist/components/Calculator/useDepositCalculatorParams.js +22 -6
  41. package/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  42. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -6
  43. package/dist/components/Footer/MediaButton.d.ts +3 -4
  44. package/dist/components/Footer/MediaButton.js.map +1 -1
  45. package/dist/content-page-repository/ContentPageRepository.d.ts +1 -5
  46. package/dist/content-page-repository/ContentPageRepository.js +7 -25
  47. package/dist/content-page-repository/ContentPageRepository.js.map +1 -1
  48. package/dist/content-page-repository/alignImg.d.ts +9 -0
  49. package/dist/content-page-repository/alignImg.js +23 -0
  50. package/dist/content-page-repository/alignImg.js.map +1 -0
  51. package/dist/content-page-repository/computeImgOutputPath.d.ts +3 -0
  52. package/dist/content-page-repository/computeImgOutputPath.js +18 -0
  53. package/dist/content-page-repository/computeImgOutputPath.js.map +1 -0
  54. package/dist/content-page-repository/resizeImg.d.ts +3 -0
  55. package/dist/content-page-repository/resizeImg.js +19 -0
  56. package/dist/content-page-repository/resizeImg.js.map +1 -0
  57. package/dist/content-page-repository/transformContentPage.d.ts +1 -0
  58. package/dist/content-page-repository/transformContentPage.js +25 -19
  59. package/dist/content-page-repository/transformContentPage.js.map +1 -1
  60. package/dist/content-page-repository/transformImg.d.ts +6 -5
  61. package/dist/content-page-repository/transformImg.js +26 -76
  62. package/dist/content-page-repository/transformImg.js.map +1 -1
  63. package/dist/content-page-repository/transformPicture.d.ts +1 -1
  64. package/dist/content-page-repository/transformPicture.js +8 -16
  65. package/dist/content-page-repository/transformPicture.js.map +1 -1
  66. package/dist/ui-kit/InputListRange/InputListRange.d.ts +2 -0
  67. package/dist/ui-kit/InputListRange/InputListRange.js +41 -0
  68. package/dist/ui-kit/InputListRange/InputListRange.js.map +1 -0
  69. package/dist/ui-kit/InputListRange/InputListRangeProps.d.ts +10 -0
  70. package/dist/ui-kit/InputListRange/InputListRangeProps.js +2 -0
  71. package/dist/ui-kit/InputListRange/InputListRangeProps.js.map +1 -0
  72. package/dist/ui-kit/Select/Select.js +2 -1
  73. package/dist/ui-kit/Select/Select.js.map +1 -1
  74. package/dist/utils/arrayByRange.d.ts +1 -0
  75. package/dist/utils/arrayByRange.js +5 -0
  76. package/dist/utils/arrayByRange.js.map +1 -0
  77. package/dist/utils/isPictureSizeEmpty.d.ts +2 -2
  78. package/dist/utils/isPictureSizeEmpty.js +1 -1
  79. package/dist/utils/isPictureSizeEmpty.js.map +1 -1
  80. package/dist/utils/mergeIntervals.d.ts +1 -0
  81. package/dist/utils/mergeIntervals.js +20 -0
  82. package/dist/utils/mergeIntervals.js.map +1 -0
  83. package/lib/common.css +1 -1
  84. package/lib/components/Calculator/CalculatorContent.d.ts +18 -17
  85. package/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  86. package/lib/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  87. package/lib/components/Calculator/DepositCalculatorForm.js +22 -12
  88. package/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  89. package/lib/components/Calculator/constants.js +1 -1
  90. package/lib/components/Calculator/constants.js.map +1 -1
  91. package/lib/components/Calculator/rangeHelpers.d.ts +1 -0
  92. package/lib/components/Calculator/rangeHelpers.js +2 -0
  93. package/lib/components/Calculator/rangeHelpers.js.map +1 -1
  94. package/lib/components/Calculator/renderMonthsInput.d.ts +1 -0
  95. package/lib/components/Calculator/renderMonthsInput.js +3 -2
  96. package/lib/components/Calculator/renderMonthsInput.js.map +1 -1
  97. package/lib/components/Calculator/useCreditCalculatorParams.js +27 -29
  98. package/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  99. package/lib/components/Calculator/useDepositCalculatorParams.d.ts +3 -1
  100. package/lib/components/Calculator/useDepositCalculatorParams.js +22 -6
  101. package/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  102. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -6
  103. package/lib/components/Footer/MediaButton.d.ts +3 -4
  104. package/lib/components/Footer/MediaButton.js.map +1 -1
  105. package/lib/content-page-repository/ContentPageRepository.d.ts +1 -5
  106. package/lib/content-page-repository/ContentPageRepository.js +8 -26
  107. package/lib/content-page-repository/ContentPageRepository.js.map +1 -1
  108. package/lib/content-page-repository/alignImg.d.ts +9 -0
  109. package/lib/content-page-repository/alignImg.js +17 -0
  110. package/lib/content-page-repository/alignImg.js.map +1 -0
  111. package/lib/content-page-repository/computeImgOutputPath.d.ts +3 -0
  112. package/lib/content-page-repository/computeImgOutputPath.js +12 -0
  113. package/lib/content-page-repository/computeImgOutputPath.js.map +1 -0
  114. package/lib/content-page-repository/resizeImg.d.ts +3 -0
  115. package/lib/content-page-repository/resizeImg.js +13 -0
  116. package/lib/content-page-repository/resizeImg.js.map +1 -0
  117. package/lib/content-page-repository/transformContentPage.d.ts +1 -0
  118. package/lib/content-page-repository/transformContentPage.js +23 -18
  119. package/lib/content-page-repository/transformContentPage.js.map +1 -1
  120. package/lib/content-page-repository/transformImg.d.ts +6 -5
  121. package/lib/content-page-repository/transformImg.js +26 -76
  122. package/lib/content-page-repository/transformImg.js.map +1 -1
  123. package/lib/content-page-repository/transformPicture.d.ts +1 -1
  124. package/lib/content-page-repository/transformPicture.js +8 -16
  125. package/lib/content-page-repository/transformPicture.js.map +1 -1
  126. package/lib/ui-kit/InputListRange/InputListRange.d.ts +2 -0
  127. package/lib/ui-kit/InputListRange/InputListRange.js +39 -0
  128. package/lib/ui-kit/InputListRange/InputListRange.js.map +1 -0
  129. package/lib/ui-kit/InputListRange/InputListRangeProps.d.ts +10 -0
  130. package/lib/ui-kit/InputListRange/InputListRangeProps.js +2 -0
  131. package/lib/ui-kit/InputListRange/InputListRangeProps.js.map +1 -0
  132. package/lib/ui-kit/Select/Select.js +2 -1
  133. package/lib/ui-kit/Select/Select.js.map +1 -1
  134. package/lib/utils/arrayByRange.d.ts +1 -0
  135. package/lib/utils/arrayByRange.js +2 -0
  136. package/lib/utils/arrayByRange.js.map +1 -0
  137. package/lib/utils/isPictureSizeEmpty.d.ts +2 -2
  138. package/lib/utils/isPictureSizeEmpty.js +1 -1
  139. package/lib/utils/isPictureSizeEmpty.js.map +1 -1
  140. package/lib/utils/mergeIntervals.d.ts +1 -0
  141. package/lib/utils/mergeIntervals.js +17 -0
  142. package/lib/utils/mergeIntervals.js.map +1 -0
  143. package/mobile/bundle/bundle.umd.js +1 -1
  144. package/mobile/bundle/bundle.umd.min.js +1 -1
  145. package/mobile/bundle/components/Calculator/CalculatorContent.d.ts +18 -17
  146. package/mobile/bundle/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  147. package/mobile/bundle/components/Calculator/rangeHelpers.d.ts +1 -0
  148. package/mobile/bundle/components/Calculator/renderMonthsInput.d.ts +1 -0
  149. package/mobile/bundle/components/Calculator/useDepositCalculatorParams.d.ts +3 -1
  150. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -6
  151. package/mobile/bundle/components/Footer/MediaButton.d.ts +3 -4
  152. package/mobile/bundle/content-page-repository/ContentPageRepository.d.ts +1 -5
  153. package/mobile/bundle/content-page-repository/alignImg.d.ts +9 -0
  154. package/mobile/bundle/content-page-repository/computeImgOutputPath.d.ts +3 -0
  155. package/mobile/bundle/content-page-repository/resizeImg.d.ts +3 -0
  156. package/mobile/bundle/content-page-repository/transformContentPage.d.ts +1 -0
  157. package/mobile/bundle/content-page-repository/transformImg.d.ts +6 -5
  158. package/mobile/bundle/content-page-repository/transformPicture.d.ts +1 -1
  159. package/mobile/bundle/ui-kit/InputListRange/InputListRange.d.ts +2 -0
  160. package/mobile/bundle/ui-kit/InputListRange/InputListRangeProps.d.ts +10 -0
  161. package/mobile/bundle/utils/arrayByRange.d.ts +1 -0
  162. package/mobile/bundle/utils/isPictureSizeEmpty.d.ts +2 -2
  163. package/mobile/bundle/utils/mergeIntervals.d.ts +1 -0
  164. package/mobile/dist/components/Calculator/CalculatorContent.d.ts +18 -17
  165. package/mobile/dist/components/Calculator/CreditCalculatorForm.js.map +1 -1
  166. package/mobile/dist/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  167. package/mobile/dist/components/Calculator/DepositCalculatorForm.js +21 -11
  168. package/mobile/dist/components/Calculator/DepositCalculatorForm.js.map +1 -1
  169. package/mobile/dist/components/Calculator/constants.js +1 -1
  170. package/mobile/dist/components/Calculator/constants.js.map +1 -1
  171. package/mobile/dist/components/Calculator/rangeHelpers.d.ts +1 -0
  172. package/mobile/dist/components/Calculator/rangeHelpers.js +4 -1
  173. package/mobile/dist/components/Calculator/rangeHelpers.js.map +1 -1
  174. package/mobile/dist/components/Calculator/renderMonthsInput.d.ts +1 -0
  175. package/mobile/dist/components/Calculator/renderMonthsInput.js +3 -2
  176. package/mobile/dist/components/Calculator/renderMonthsInput.js.map +1 -1
  177. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js +27 -29
  178. package/mobile/dist/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  179. package/mobile/dist/components/Calculator/useDepositCalculatorParams.d.ts +3 -1
  180. package/mobile/dist/components/Calculator/useDepositCalculatorParams.js +22 -6
  181. package/mobile/dist/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  182. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -6
  183. package/mobile/dist/components/Footer/MediaButton.d.ts +3 -4
  184. package/mobile/dist/components/Footer/MediaButton.js.map +1 -1
  185. package/mobile/dist/content-page-repository/ContentPageRepository.d.ts +1 -5
  186. package/mobile/dist/content-page-repository/ContentPageRepository.js +7 -25
  187. package/mobile/dist/content-page-repository/ContentPageRepository.js.map +1 -1
  188. package/mobile/dist/content-page-repository/alignImg.d.ts +9 -0
  189. package/mobile/dist/content-page-repository/alignImg.js +23 -0
  190. package/mobile/dist/content-page-repository/alignImg.js.map +1 -0
  191. package/mobile/dist/content-page-repository/computeImgOutputPath.d.ts +3 -0
  192. package/mobile/dist/content-page-repository/computeImgOutputPath.js +18 -0
  193. package/mobile/dist/content-page-repository/computeImgOutputPath.js.map +1 -0
  194. package/mobile/dist/content-page-repository/resizeImg.d.ts +3 -0
  195. package/mobile/dist/content-page-repository/resizeImg.js +19 -0
  196. package/mobile/dist/content-page-repository/resizeImg.js.map +1 -0
  197. package/mobile/dist/content-page-repository/transformContentPage.d.ts +1 -0
  198. package/mobile/dist/content-page-repository/transformContentPage.js +25 -19
  199. package/mobile/dist/content-page-repository/transformContentPage.js.map +1 -1
  200. package/mobile/dist/content-page-repository/transformImg.d.ts +6 -5
  201. package/mobile/dist/content-page-repository/transformImg.js +26 -76
  202. package/mobile/dist/content-page-repository/transformImg.js.map +1 -1
  203. package/mobile/dist/content-page-repository/transformPicture.d.ts +1 -1
  204. package/mobile/dist/content-page-repository/transformPicture.js +8 -16
  205. package/mobile/dist/content-page-repository/transformPicture.js.map +1 -1
  206. package/mobile/dist/ui-kit/InputListRange/InputListRange.d.ts +2 -0
  207. package/mobile/dist/ui-kit/InputListRange/InputListRange.js +41 -0
  208. package/mobile/dist/ui-kit/InputListRange/InputListRange.js.map +1 -0
  209. package/mobile/dist/ui-kit/InputListRange/InputListRangeProps.d.ts +10 -0
  210. package/mobile/dist/ui-kit/InputListRange/InputListRangeProps.js +2 -0
  211. package/mobile/dist/ui-kit/InputListRange/InputListRangeProps.js.map +1 -0
  212. package/mobile/dist/ui-kit/Select/Select.js +2 -1
  213. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  214. package/mobile/dist/utils/arrayByRange.d.ts +1 -0
  215. package/mobile/dist/utils/arrayByRange.js +5 -0
  216. package/mobile/dist/utils/arrayByRange.js.map +1 -0
  217. package/mobile/dist/utils/isPictureSizeEmpty.d.ts +2 -2
  218. package/mobile/dist/utils/isPictureSizeEmpty.js +1 -1
  219. package/mobile/dist/utils/isPictureSizeEmpty.js.map +1 -1
  220. package/mobile/dist/utils/mergeIntervals.d.ts +1 -0
  221. package/mobile/dist/utils/mergeIntervals.js +20 -0
  222. package/mobile/dist/utils/mergeIntervals.js.map +1 -0
  223. package/mobile/lib/components/Calculator/CalculatorContent.d.ts +18 -17
  224. package/mobile/lib/components/Calculator/CreditCalculatorForm.js.map +1 -1
  225. package/mobile/lib/components/Calculator/DepositCalculatorForm.d.ts +2 -2
  226. package/mobile/lib/components/Calculator/DepositCalculatorForm.js +22 -12
  227. package/mobile/lib/components/Calculator/DepositCalculatorForm.js.map +1 -1
  228. package/mobile/lib/components/Calculator/constants.js +1 -1
  229. package/mobile/lib/components/Calculator/constants.js.map +1 -1
  230. package/mobile/lib/components/Calculator/rangeHelpers.d.ts +1 -0
  231. package/mobile/lib/components/Calculator/rangeHelpers.js +2 -0
  232. package/mobile/lib/components/Calculator/rangeHelpers.js.map +1 -1
  233. package/mobile/lib/components/Calculator/renderMonthsInput.d.ts +1 -0
  234. package/mobile/lib/components/Calculator/renderMonthsInput.js +3 -2
  235. package/mobile/lib/components/Calculator/renderMonthsInput.js.map +1 -1
  236. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js +27 -29
  237. package/mobile/lib/components/Calculator/useCreditCalculatorParams.js.map +1 -1
  238. package/mobile/lib/components/Calculator/useDepositCalculatorParams.d.ts +3 -1
  239. package/mobile/lib/components/Calculator/useDepositCalculatorParams.js +22 -6
  240. package/mobile/lib/components/Calculator/useDepositCalculatorParams.js.map +1 -1
  241. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -6
  242. package/mobile/lib/components/Footer/MediaButton.d.ts +3 -4
  243. package/mobile/lib/components/Footer/MediaButton.js.map +1 -1
  244. package/mobile/lib/content-page-repository/ContentPageRepository.d.ts +1 -5
  245. package/mobile/lib/content-page-repository/ContentPageRepository.js +8 -26
  246. package/mobile/lib/content-page-repository/ContentPageRepository.js.map +1 -1
  247. package/mobile/lib/content-page-repository/alignImg.d.ts +9 -0
  248. package/mobile/lib/content-page-repository/alignImg.js +17 -0
  249. package/mobile/lib/content-page-repository/alignImg.js.map +1 -0
  250. package/mobile/lib/content-page-repository/computeImgOutputPath.d.ts +3 -0
  251. package/mobile/lib/content-page-repository/computeImgOutputPath.js +12 -0
  252. package/mobile/lib/content-page-repository/computeImgOutputPath.js.map +1 -0
  253. package/mobile/lib/content-page-repository/resizeImg.d.ts +3 -0
  254. package/mobile/lib/content-page-repository/resizeImg.js +13 -0
  255. package/mobile/lib/content-page-repository/resizeImg.js.map +1 -0
  256. package/mobile/lib/content-page-repository/transformContentPage.d.ts +1 -0
  257. package/mobile/lib/content-page-repository/transformContentPage.js +23 -18
  258. package/mobile/lib/content-page-repository/transformContentPage.js.map +1 -1
  259. package/mobile/lib/content-page-repository/transformImg.d.ts +6 -5
  260. package/mobile/lib/content-page-repository/transformImg.js +26 -76
  261. package/mobile/lib/content-page-repository/transformImg.js.map +1 -1
  262. package/mobile/lib/content-page-repository/transformPicture.d.ts +1 -1
  263. package/mobile/lib/content-page-repository/transformPicture.js +8 -16
  264. package/mobile/lib/content-page-repository/transformPicture.js.map +1 -1
  265. package/mobile/lib/ui-kit/InputListRange/InputListRange.d.ts +2 -0
  266. package/mobile/lib/ui-kit/InputListRange/InputListRange.js +39 -0
  267. package/mobile/lib/ui-kit/InputListRange/InputListRange.js.map +1 -0
  268. package/mobile/lib/ui-kit/InputListRange/InputListRangeProps.d.ts +10 -0
  269. package/mobile/lib/ui-kit/InputListRange/InputListRangeProps.js +2 -0
  270. package/mobile/lib/ui-kit/InputListRange/InputListRangeProps.js.map +1 -0
  271. package/mobile/lib/ui-kit/Select/Select.js +2 -1
  272. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  273. package/mobile/lib/utils/arrayByRange.d.ts +1 -0
  274. package/mobile/lib/utils/arrayByRange.js +2 -0
  275. package/mobile/lib/utils/arrayByRange.js.map +1 -0
  276. package/mobile/lib/utils/isPictureSizeEmpty.d.ts +2 -2
  277. package/mobile/lib/utils/isPictureSizeEmpty.js +1 -1
  278. package/mobile/lib/utils/isPictureSizeEmpty.js.map +1 -1
  279. package/mobile/lib/utils/mergeIntervals.d.ts +1 -0
  280. package/mobile/lib/utils/mergeIntervals.js +17 -0
  281. package/mobile/lib/utils/mergeIntervals.js.map +1 -0
  282. package/mobile/src/components/Calculator/Calculator.example.json +3 -1
  283. package/mobile/src/components/Calculator/CalculatorContent.ts +20 -19
  284. package/mobile/src/components/Calculator/CreditCalculatorForm.tsx +6 -7
  285. package/mobile/src/components/Calculator/DepositCalculatorForm.tsx +48 -15
  286. package/mobile/src/components/Calculator/constants.ts +1 -1
  287. package/mobile/src/components/Calculator/rangeHelpers.ts +10 -0
  288. package/mobile/src/components/Calculator/renderMonthsInput.tsx +13 -2
  289. package/mobile/src/components/Calculator/useCreditCalculatorParams.ts +8 -10
  290. package/mobile/src/components/Calculator/useDepositCalculatorParams.ts +36 -9
  291. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +1 -2
  292. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -8
  293. package/mobile/src/components/Footer/MediaButton.tsx +3 -5
  294. package/mobile/src/content-page-repository/ContentPageRepository.ts +8 -40
  295. package/mobile/src/content-page-repository/alignImg.ts +32 -0
  296. package/mobile/src/content-page-repository/computeImgOutputPath.ts +20 -0
  297. package/mobile/src/content-page-repository/resizeImg.ts +18 -0
  298. package/mobile/src/content-page-repository/transformContentPage.ts +25 -18
  299. package/mobile/src/content-page-repository/transformImg.ts +49 -121
  300. package/mobile/src/content-page-repository/transformPicture.ts +9 -21
  301. package/mobile/src/ui-kit/InputListRange/InputListRange.tsx +99 -0
  302. package/mobile/src/ui-kit/InputListRange/InputListRangeProps.ts +11 -0
  303. package/mobile/src/ui-kit/Select/Select.tsx +8 -1
  304. package/mobile/src/utils/arrayByRange.ts +4 -0
  305. package/mobile/src/utils/isPictureSizeEmpty.ts +3 -3
  306. package/mobile/src/utils/mergeIntervals.ts +19 -0
  307. package/package.json +1 -1
  308. package/src/components/Calculator/Calculator.example.json +3 -1
  309. package/src/components/Calculator/Calculator.fixture.tsx +4 -0
  310. package/src/components/Calculator/CalculatorContent.ts +20 -19
  311. package/src/components/Calculator/CreditCalculatorForm.tsx +6 -7
  312. package/src/components/Calculator/DepositCalculatorForm.tsx +48 -15
  313. package/src/components/Calculator/constants.ts +1 -1
  314. package/src/components/Calculator/rangeHelpers.ts +10 -0
  315. package/src/components/Calculator/renderMonthsInput.tsx +13 -2
  316. package/src/components/Calculator/useCreditCalculatorParams.ts +8 -10
  317. package/src/components/Calculator/useDepositCalculatorParams.ts +36 -9
  318. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +1 -2
  319. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.tsx +0 -9
  320. package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -8
  321. package/src/components/Footer/MediaButton.tsx +3 -5
  322. package/src/content-page-repository/ContentPageRepository.ts +8 -40
  323. package/src/content-page-repository/alignImg.ts +32 -0
  324. package/src/content-page-repository/computeImgOutputPath.ts +20 -0
  325. package/src/content-page-repository/resizeImg.ts +18 -0
  326. package/src/content-page-repository/transformContentPage.ts +25 -18
  327. package/src/content-page-repository/transformImg.ts +49 -121
  328. package/src/content-page-repository/transformPicture.ts +9 -21
  329. package/src/ui-kit/InputListRange/InputListRange.tsx +99 -0
  330. package/src/ui-kit/InputListRange/InputListRangeProps.ts +11 -0
  331. package/src/ui-kit/Select/Select.tsx +8 -1
  332. package/src/utils/arrayByRange.ts +4 -0
  333. package/src/utils/isPictureSizeEmpty.ts +3 -3
  334. package/src/utils/mergeIntervals.ts +19 -0
  335. package/bundle/content-page-repository/transformImgPath.d.ts +0 -8
  336. package/dist/content-page-repository/transformImgPath.d.ts +0 -8
  337. package/dist/content-page-repository/transformImgPath.js +0 -22
  338. package/dist/content-page-repository/transformImgPath.js.map +0 -1
  339. package/lib/content-page-repository/transformImgPath.d.ts +0 -8
  340. package/lib/content-page-repository/transformImgPath.js +0 -16
  341. package/lib/content-page-repository/transformImgPath.js.map +0 -1
  342. package/mobile/bundle/content-page-repository/transformImgPath.d.ts +0 -8
  343. package/mobile/dist/content-page-repository/transformImgPath.d.ts +0 -8
  344. package/mobile/dist/content-page-repository/transformImgPath.js +0 -22
  345. package/mobile/dist/content-page-repository/transformImgPath.js.map +0 -1
  346. package/mobile/lib/content-page-repository/transformImgPath.d.ts +0 -8
  347. package/mobile/lib/content-page-repository/transformImgPath.js +0 -16
  348. package/mobile/lib/content-page-repository/transformImgPath.js.map +0 -1
  349. package/mobile/src/content-page-repository/transformImgPath.ts +0 -30
  350. package/src/content-page-repository/transformImgPath.ts +0 -30
@@ -1,146 +1,74 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
- import type { ResizeOptions, Sharp } from 'sharp';
4
- import sharp from 'sharp';
3
+ import sharp, { type Sharp } from 'sharp';
5
4
  import util from 'util';
6
5
  import type { ImageSize } from '../model/ImageSize';
7
- import type { ImgAlignment, ImgSource, Picture } from '../model/Picture';
6
+ import type { ImgSource } from '../model/Picture';
8
7
  import { isPictureSizeEmpty } from '../utils/isPictureSizeEmpty';
8
+ import { alignImg } from './alignImg';
9
+ import { computeImgOutputPath } from './computeImgOutputPath';
10
+ import { resizeImg } from './resizeImg';
9
11
  import type { TransformationOptions } from './TransformationOptions';
10
- import { transformImgPath } from './transformImgPath';
11
12
 
12
13
  const mkdir = util.promisify(fs.mkdir);
13
14
 
14
- type TransformImgParams = {
15
- pagePath: string;
16
- src: string;
17
- containerSize?: ImageSize;
18
- transformationOptions: TransformationOptions & ImgSource;
19
- };
15
+ type ImgOutputPath = string;
16
+ type TransformationTaskKey = ImgOutputPath;
17
+ type TransformationTasksCache = Map<TransformationTaskKey, Promise<ImgOutputPath>>;
20
18
 
21
- export async function transformImg({
22
- pagePath,
23
- src,
24
- containerSize,
25
- transformationOptions,
26
- }: TransformImgParams): Promise<string> {
27
- if (!src) {
28
- return '';
29
- }
30
-
31
- const { contentDir, publicDir, format, options, size, alignment } = transformationOptions;
32
-
33
- const pageDir = path.dirname(pagePath);
34
- const imgPath = `${pageDir}/${src}`;
35
- let chain = sharp(imgPath);
36
-
37
- const targetSize = getPictureSize(size, containerSize);
38
-
39
- if (targetSize) {
40
- chain = resizeImg(chain, targetSize, getResizeFit(targetSize));
41
- }
42
-
43
- if (containerSize) {
44
- chain = resizeImg(chain, containerSize);
45
-
46
- // Save intermediate transform result to modify further
47
- const { data } = await chain.toBuffer({ resolveWithObject: true });
48
-
49
- chain = resizeImg(
50
- sharp(data),
51
- getCompositionResizeSize(containerSize, targetSize),
52
- getResizeFit(targetSize),
53
- );
19
+ type TransformImgOptions = TransformationOptions &
20
+ ImgSource & { containerSize?: ImageSize; cache?: TransformationTasksCache };
54
21
 
55
- chain = await compositeImg({ chain, containerSize, alignment });
56
- }
22
+ const defaultTransformationCache: TransformationTasksCache = new Map();
57
23
 
58
- if (format) {
59
- chain = chain.toFormat(format, options);
24
+ export function transformImg(
25
+ src: string,
26
+ pagePath: string,
27
+ options: TransformImgOptions,
28
+ ): ImgOutputPath | Promise<ImgOutputPath> {
29
+ if (!src) {
30
+ return '';
60
31
  }
61
32
 
62
- const transformedImgPath = transformImgPath(src, { pageDir, contentDir }, transformationOptions);
63
- const imgPublicPath = path.join(publicDir, transformedImgPath);
33
+ const input = path.join(path.dirname(pagePath), src);
34
+ const output = computeImgOutputPath(input, options);
64
35
 
65
- await mkdir(path.dirname(imgPublicPath), { recursive: true });
36
+ const { cache = defaultTransformationCache } = options;
66
37
 
67
- try {
68
- await chain.toFile(imgPublicPath);
69
- } catch (e) {
70
- console.error(e);
38
+ const cachedResult = cache.get(output);
39
+ if (cachedResult) {
40
+ return cachedResult;
71
41
  }
72
42
 
73
- return transformedImgPath;
74
- }
43
+ const result = (async () => {
44
+ try {
45
+ await mkdir(path.dirname(output), { recursive: true });
75
46
 
76
- function createBackgroundImageChain({ width, height }: ImageSize) {
77
- const channels = 4;
78
- const rgbaColor = 0x00000000;
47
+ const chain = await computeTransformationChain(options)(sharp(input));
48
+ await chain.toFile(output);
49
+ } catch (e) {
50
+ console.error(e);
51
+ }
79
52
 
80
- const canvas = Buffer.alloc(width * height * channels, rgbaColor);
53
+ return output;
54
+ })();
55
+ cache.set(output, result);
81
56
 
82
- return sharp(canvas, { raw: { width, height, channels } });
57
+ return result;
83
58
  }
84
59
 
85
- function resizeImg(chain: Sharp, size: Picture['size'], options?: ResizeOptions) {
86
- return chain.resize(size?.width || null, size?.height || null, {
87
- fit: sharp.fit.fill,
88
- background: { r: 0, g: 0, b: 0, alpha: 0 },
89
- ...options,
90
- });
91
- }
92
-
93
- type CompositeImgParams = {
94
- chain: Sharp;
95
- containerSize: ImageSize;
96
- alignment?: ImgAlignment;
97
- };
98
-
99
- async function compositeImg({
100
- chain,
60
+ const computeTransformationChain = ({
61
+ size,
101
62
  containerSize,
102
63
  alignment,
103
- }: CompositeImgParams): Promise<Sharp> {
104
- const { data } = await chain.toBuffer({ resolveWithObject: true });
105
-
106
- return createBackgroundImageChain(containerSize).composite([
107
- {
108
- input: data,
109
- gravity: alignment,
110
- },
111
- ]);
112
- }
113
-
114
- function getPictureSize(size: Picture['size'], containerSize?: ImageSize) {
115
- // If containerSize is undefined intrinsic dimensions of image will be used then.
116
- return isPictureSizeEmpty(size) ? containerSize : size;
117
- }
118
-
119
- function getCompositionResizeSize(
120
- containerSize: ImageSize,
121
- size: Picture['size'] = {},
122
- ): Picture['size'] {
123
- const { width, height } = size;
124
- const { width: containerWidth, height: containerHeight } = containerSize;
125
-
126
- if (!(width || height)) {
127
- return undefined;
128
- }
129
-
130
- const widthRatio = width ? containerWidth / width : 0;
131
- const heightRatio = height ? containerHeight / height : 0;
132
-
133
- return widthRatio > heightRatio
134
- ? { width: Math.min(Number(width), containerWidth) }
135
- : { height: Math.min(Number(height), containerHeight) };
136
- }
137
-
138
- function getResizeFit(size: Picture['size']): ResizeOptions {
139
- /*
140
- Editor behaviour with one dimension present: resize by given dimension maintaining aspect ratio. (fit: contain)
141
- With two dimensions present: resize trying to fill given dimensions (fit: fill)
142
- */
143
- return {
144
- fit: size?.width && size?.height ? sharp.fit.fill : sharp.fit.contain,
145
- };
146
- }
64
+ format,
65
+ options,
66
+ }: TransformImgOptions) =>
67
+ pipe(
68
+ resizeImg(isPictureSizeEmpty(size) ? containerSize : size),
69
+ alignImg({ containerSize, alignment }),
70
+ (_) => (format ? _.toFormat(format, options) : _),
71
+ );
72
+
73
+ const pipe = (...operations: Array<(chain: Sharp) => Promise<Sharp> | Sharp>) =>
74
+ operations.reduce((a, b) => async (chain: Sharp) => b(await a(chain)));
@@ -5,42 +5,30 @@ import type { TransformationOptions } from './TransformationOptions';
5
5
  import { transformImg } from './transformImg';
6
6
 
7
7
  export async function transformPicture(
8
- pagePath: string,
9
8
  picture: Picture,
9
+ pagePath: string,
10
10
  options: TransformationOptions,
11
11
  ): Promise<Picture> {
12
- const sources = picture.sources || [];
13
12
  const src = picture?.src || '';
14
13
 
15
- const transformedPicture = await transformImg({
16
- pagePath,
17
- src,
18
- transformationOptions: { ...options, ...picture },
19
- });
20
-
21
- const { width, height } = await sharp(
22
- path.resolve(options.publicDir, transformedPicture),
23
- ).metadata();
14
+ const transformedImgPath = await transformImg(src, pagePath, { ...options, ...picture });
24
15
 
16
+ const { width, height } = await sharp(transformedImgPath).metadata();
25
17
  const containerSize = width && height ? { width, height } : undefined;
26
18
 
19
+ const sources = picture.sources || [];
27
20
  const transformedSources = await Promise.all(
28
- sources.map((_) =>
29
- transformImg({
30
- pagePath,
31
- src,
32
- containerSize,
33
- transformationOptions: { ...options, ..._ },
34
- }),
35
- ),
21
+ sources.map((_) => transformImg(src, pagePath, { ...options, ..._, containerSize })),
36
22
  );
37
23
 
24
+ const imgPathToSrc = (_: string) => path.join('/', path.relative(options.publicDir, _));
25
+
38
26
  return {
39
27
  ...picture,
40
- src: path.join('/', transformedPicture),
28
+ src: imgPathToSrc(transformedImgPath),
41
29
  sources: transformedSources.map((_, i) => ({
42
30
  ...sources[i],
43
- src: path.join('/', _),
31
+ src: imgPathToSrc(_),
44
32
  size: { width, height },
45
33
  })),
46
34
  };
@@ -0,0 +1,99 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { addSpacesBetweenNumbers } from '../../utils/addSpacesBetweenNumbers';
3
+ import { clamp } from '../../utils/clamp';
4
+ import { getSanitizedValue } from '../../utils/getSanitizedValue';
5
+ import type { InputListRangeProps } from './InputListRangeProps';
6
+
7
+ const DISABLED_INPUT_CLASSES = 'disabled:border-gray disabled:bg-main-divider';
8
+
9
+ export const InputListRange = JSX<InputListRangeProps>(
10
+ ({ className, title, items = [], list = [], value = list[0], disabled = false, onChange }) => {
11
+ const min = 0;
12
+ const max = list.length - 1;
13
+ const step = 1;
14
+
15
+ const handleTextChange: JSX.IntrinsicElements['input']['onChange'] = (e) => {
16
+ if (!onChange) {
17
+ return;
18
+ }
19
+ const newValue = parseInt(e.target.value);
20
+
21
+ const closetValue = list.reduce(function (prev, curr) {
22
+ return Math.abs(curr - newValue) < Math.abs(prev - newValue) ? curr : prev;
23
+ });
24
+
25
+ onChange(Number(getSanitizedValue(closetValue.toString())));
26
+ };
27
+
28
+ const handleRangeChange: JSX.IntrinsicElements['input']['onChange'] = (e) => {
29
+ if (!onChange) {
30
+ return;
31
+ }
32
+
33
+ const val = list.at(clamp(parseInt(e.target.value), min, max)) || 0;
34
+ onChange(Number(getSanitizedValue(val.toString())));
35
+ };
36
+
37
+ const valueIndex = list.findIndex((item) => item === value) || 0;
38
+ const inputStyle = {
39
+ backgroundSize: `${(((valueIndex - min) * 100) / (max - min)).toFixed(2)}% 100%`,
40
+ };
41
+
42
+ return (
43
+ <div className={className}>
44
+ <label className="block relative">
45
+ {title ? <span className="text-m-light text-primary-text">{title}</span> : null}
46
+ <input
47
+ className={`m-0 mt-2 font-sans text-h3 w-full h-14 border border-solid border-gray rounded-md
48
+ outline-none p-0 pl-4 box-border text-primary-text hover:border-primary-hover focus:border-primary-text ${DISABLED_INPUT_CLASSES}`}
49
+ value={addSpacesBetweenNumbers(value)}
50
+ disabled={disabled}
51
+ onChange={handleTextChange}
52
+ onBlur={handleTextChange}
53
+ />
54
+ {list.length ? (
55
+ <div className="absolute w-full flex justify-between -bottom-[3px] px-4">
56
+ {list.map(renderTick(valueIndex, disabled))}
57
+ </div>
58
+ ) : null}
59
+ <div className="absolute inset-x-0 -bottom-1 px-4 leading-[18px]">
60
+ <input
61
+ className="box-border w-full m-0 cursor-pointer slider relative z-10"
62
+ type="range"
63
+ min={min}
64
+ max={max}
65
+ step={step}
66
+ value={valueIndex}
67
+ disabled={disabled}
68
+ onChange={handleRangeChange}
69
+ style={inputStyle}
70
+ />
71
+ </div>
72
+ </label>
73
+ {renderRangeCaption(items)}
74
+ </div>
75
+ );
76
+ },
77
+ );
78
+
79
+ const renderTick = (valueIndex: number, disabled: boolean) => (value: number, i: number) =>
80
+ (
81
+ <span
82
+ key={String(i)}
83
+ className={`w-2 h-2 rounded-full ${
84
+ valueIndex <= i || disabled ? 'bg-gray' : 'bg-primary-main'
85
+ }`}
86
+ />
87
+ );
88
+
89
+ function renderRangeCaption(items: string[]) {
90
+ return (
91
+ <div className="flex justify-between my-2">
92
+ {items.map((item, i) => (
93
+ <span key={String(i)} className="text-s-light text-secondary-text">
94
+ {item}
95
+ </span>
96
+ ))}
97
+ </div>
98
+ );
99
+ }
@@ -0,0 +1,11 @@
1
+ import type { ListContent } from '../List/ListContent';
2
+
3
+ export interface InputListRangeProps extends ListContent {
4
+ className?: string;
5
+ items?: string[];
6
+ list?: number[];
7
+ value?: number;
8
+ title?: string;
9
+ disabled?: boolean;
10
+ onChange?: (value: number) => void;
11
+ }
@@ -2,6 +2,7 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useCallback, useEffect, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { useOutsideClick } from '../../hooks/useOutsideClick';
4
4
  import { LabelProps } from '../../model/HeadlineType';
5
+ import { Text } from '../../ui-kit/Text/Text';
5
6
  import { Icon } from '../Icon/Icon';
6
7
 
7
8
  export interface OptionProps {
@@ -39,7 +40,13 @@ export const Select = JSX<SelectProps>(
39
40
 
40
41
  return (
41
42
  <div className={`${className}`} ref={wrapperRef}>
42
- {label ? <span className="mb-2 flex text-primary-text">{label}</span> : null}
43
+ {label ? (
44
+ <div className="mb-2">
45
+ <Text size="text-m" color="text-primary-text" font="font-light">
46
+ {label}
47
+ </Text>
48
+ </div>
49
+ ) : null}
43
50
  <div className={`relative ${isOpen ? 'z-20' : 'z-10'}`}>
44
51
  <div
45
52
  className={`text-l flex justify-between items-center mb-0.5 text-primary-text cursor-pointer
@@ -0,0 +1,4 @@
1
+ export const arrayByRange = (start: number, stop: number, step = 1) =>
2
+ Array.from({ length: Math.abs(stop - start) / step + 1 }, (value, index) =>
3
+ stop >= start ? start + index * step : start - index * step,
4
+ );
@@ -1,5 +1,5 @@
1
- import type { Picture } from '../model/Picture';
1
+ import type { ImageSize } from '../model/ImageSize';
2
2
 
3
- export function isPictureSizeEmpty(size: Picture['size']): boolean {
4
- return !(size?.width || size?.height);
3
+ export function isPictureSizeEmpty(size: Partial<ImageSize> | undefined): boolean {
4
+ return !size?.width && !size?.height;
5
5
  }
@@ -0,0 +1,19 @@
1
+ export const mergeIntervals = (intervals: number[][]): number[][] => {
2
+ const result = [...intervals];
3
+ result.sort(([a], [c]) => a - c);
4
+
5
+ let i = 1;
6
+
7
+ while (i < result.length) {
8
+ const [a, b] = result[i - 1];
9
+ const [c, d] = result[i];
10
+
11
+ if (b >= c) {
12
+ result.splice(i - 1, 2, [a, Math.max(b, d)]);
13
+ } else {
14
+ i++;
15
+ }
16
+ }
17
+
18
+ return result;
19
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.9.11",
3
+ "version": "0.9.13",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -20,7 +20,9 @@
20
20
  "isShowSalaryClient": true,
21
21
  "isShowStateEmployee": true,
22
22
  "isShowPensionClient": true,
23
- "isShowInsurance": true
23
+ "isShowInsurance": true,
24
+ "isShowMonthlyInterestPayment": true,
25
+ "isShowRemoteRegistration": true
24
26
  },
25
27
  "footnote": "Расчёт является предварительным. Точные условия будут предоставлены в отделении Банка. "
26
28
  }
@@ -44,6 +44,10 @@ const CREDIT_CALCULATOR_BLOCK: CreditCalculatorParamsDef = {
44
44
 
45
45
  const DEPOSIT_CALCULATOR_BLOCK: DepositCalculatorParamsDef = {
46
46
  calcType: 'DepositCalculatorForm',
47
+ paramsViewSettings: {
48
+ isShowMonthlyInterestPayment: true,
49
+ isShowRemoteRegistration: true,
50
+ },
47
51
  buttons: buttons,
48
52
  footnote,
49
53
  };
@@ -20,11 +20,30 @@ export interface CreditCalculatorParamsViewSettings {
20
20
  /** @title Комплексная страховая защита */
21
21
  isShowInsurance?: boolean;
22
22
  }
23
+
24
+ export interface DepositCalculatorParamsViewSettings {
25
+ /**
26
+ * @title Выплата процентов
27
+ * @default true
28
+ */
29
+ isShowMonthlyInterestPayment?: boolean;
30
+ /**
31
+ * @title Оформление
32
+ * @default true
33
+ */
34
+ isShowRemoteRegistration?: boolean;
35
+ }
36
+
23
37
  export interface CreditCalculatorProps extends CommonCalculatorProps {
24
38
  /** @title Настройка отображения чекбоксов */
25
39
  paramsViewSettings?: CreditCalculatorParamsViewSettings;
26
40
  }
27
41
 
42
+ export interface DepositCalculatorProps extends CommonCalculatorProps {
43
+ /** @title Настройка отображения радио */
44
+ paramsViewSettings?: DepositCalculatorParamsViewSettings;
45
+ }
46
+
28
47
  export interface BusinessDepositCalculatorProps extends CommonCalculatorProps {
29
48
  /** @title Сноска снизу блока */
30
49
  bottomFootnote?: string;
@@ -32,22 +51,6 @@ export interface BusinessDepositCalculatorProps extends CommonCalculatorProps {
32
51
  isShowDepositeName?: boolean;
33
52
  }
34
53
 
35
- /**
36
- * TODO: данные из справочника
37
- **/
38
- export interface DepositCalculatorParams {
39
- /** @hidden */
40
- minSum?: number;
41
- /** @hidden */
42
- maxSum?: number;
43
- /** @hidden */
44
- minMonths?: number;
45
- /** @hidden */
46
- maxMonths?: number;
47
- /** @hidden */
48
- rate?: number;
49
- }
50
-
51
54
  /**
52
55
  * ? Общий интерфейс для всех типов калькуляторов?
53
56
  * ? Используется во вложенных функциях. Может быть как то разбить это и вынести отсюда?
@@ -77,8 +80,7 @@ export type CreditCalculatorParamsDef = TitleProps &
77
80
  * @default {"calcType": "DepositCalculatorForm"}
78
81
  */
79
82
  export type DepositCalculatorParamsDef = TitleProps &
80
- DepositCalculatorParams &
81
- CommonCalculatorProps & {
83
+ DepositCalculatorProps & {
82
84
  calcType: 'DepositCalculatorForm';
83
85
  };
84
86
 
@@ -87,7 +89,6 @@ export type DepositCalculatorParamsDef = TitleProps &
87
89
  * @default {"calcType": "BusinessDepositCalculatorForm"}
88
90
  */
89
91
  export type BusinessDepositCalculatorParamsDef = TitleProps &
90
- DepositCalculatorParams &
91
92
  BusinessDepositCalculatorProps & {
92
93
  calcType: 'BusinessDepositCalculatorForm';
93
94
  };
@@ -94,13 +94,12 @@ const renderRate = (rate: number) => (
94
94
  <Rate title="Ставка" rate={rate} rateBlockClassName="tracking-[-25px]" unit="%" />
95
95
  );
96
96
 
97
- type CreditParamsFormProps = CreditCalculatorParams &
98
- CreditCalculatorParamsViewSettings & {
99
- handleIsSalaryClient?: (value: boolean) => void;
100
- handleIsStateEmployee?: (value: boolean) => void;
101
- handleIsPensionClient?: (value: boolean) => void;
102
- handleIsInsurance?: (value: boolean) => void;
103
- };
97
+ interface CreditParamsFormProps extends CreditCalculatorParams, CreditCalculatorParamsViewSettings {
98
+ handleIsSalaryClient?: (value: boolean) => void;
99
+ handleIsStateEmployee?: (value: boolean) => void;
100
+ handleIsPensionClient?: (value: boolean) => void;
101
+ handleIsInsurance?: (value: boolean) => void;
102
+ }
104
103
 
105
104
  const renderCreditParamsForm = ({
106
105
  isSalaryClient,
@@ -4,7 +4,7 @@ import { JSX } from '@redneckz/uni-jsx';
4
4
  import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
5
5
  import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
6
6
  import { style } from '../../utils/style';
7
- import { CommonCalculatorProps } from './CalculatorContent';
7
+ import { DepositCalculatorParamsViewSettings, DepositCalculatorProps } from './CalculatorContent';
8
8
  import { CalculatorValueBlock } from './CalculatorValueBlock';
9
9
  import { DEFAULT_MONTHS, DEFAULT_SUM } from './constants';
10
10
  import { Rate } from './Rate';
@@ -13,14 +13,14 @@ import { renderInterestPayment } from './renderInterestPayment';
13
13
  import { renderMonthsInput } from './renderMonthsInput';
14
14
  import { renderRegistrationType } from './renderRegistrationType';
15
15
  import { renderWantedSumInput } from './renderWantedSumInput';
16
- import { useDepositCalculatorParams } from './useDepositCalculatorParams';
16
+ import { DepositCalculatorParams, useDepositCalculatorParams } from './useDepositCalculatorParams';
17
17
 
18
- export interface DepositCalculatorProp extends CommonCalculatorProps {
18
+ export interface DepositCalculatorProp extends DepositCalculatorProps {
19
19
  className?: string;
20
20
  }
21
21
 
22
22
  export const DepositCalculatorForm = JSX<DepositCalculatorProp>(
23
- ({ className = '', sourceBookDir, buttons, footnote }) => {
23
+ ({ className = '', sourceBookDir, buttons, footnote, paramsViewSettings }) => {
24
24
  const [moneyValue, setMoneyValue] = useState(DEFAULT_SUM);
25
25
  const handleMoneyValue = useCallback((_: number) => setMoneyValue(_), []);
26
26
  const [monthsValue, setMonthsValue] = useState(DEFAULT_MONTHS);
@@ -42,7 +42,11 @@ export const DepositCalculatorForm = JSX<DepositCalculatorProp>(
42
42
  };
43
43
  const handleMonthsValue = useCallback((_: number) => setMonthsValue(_), []);
44
44
 
45
- const calculatorParams = useDepositCalculatorParams(userInputParams, sourceBookDir);
45
+ const calculatorParams = useDepositCalculatorParams(
46
+ userInputParams,
47
+ sourceBookDir,
48
+ paramsViewSettings,
49
+ );
46
50
  const { income, finalSum, rate } = calculatorParams;
47
51
 
48
52
  return (
@@ -62,16 +66,12 @@ export const DepositCalculatorForm = JSX<DepositCalculatorProp>(
62
66
  },
63
67
  handleMonthsValue,
64
68
  )}
65
- <div className="mt-7 flex flex-col gap-y-7">
66
- {renderInterestPayment({
67
- isMonthlyInterestPayment,
68
- callback: handleIsMonthlyInterestPayment,
69
- title: 'Выплата процентов',
70
- })}
71
- {renderRegistrationType({
72
- isRemoteRegistration,
73
- callback: handleIsRemoteRegistration,
74
- title: 'Оформление',
69
+ <div className="mt-7">
70
+ {renderDepositParamsForm({
71
+ ...calculatorParams,
72
+ ...paramsViewSettings,
73
+ handleIsMonthlyInterestPayment,
74
+ handleIsRemoteRegistration,
75
75
  })}
76
76
  </div>
77
77
  </div>
@@ -86,3 +86,36 @@ export const DepositCalculatorForm = JSX<DepositCalculatorProp>(
86
86
  );
87
87
  },
88
88
  );
89
+
90
+ interface DepositParamsFormProps
91
+ extends DepositCalculatorParams,
92
+ DepositCalculatorParamsViewSettings {
93
+ handleIsMonthlyInterestPayment?: (value: boolean) => void;
94
+ handleIsRemoteRegistration?: (value: boolean) => void;
95
+ }
96
+
97
+ const renderDepositParamsForm = ({
98
+ isMonthlyInterestPayment,
99
+ isRemoteRegistration,
100
+ isShowMonthlyInterestPayment,
101
+ isShowRemoteRegistration,
102
+ handleIsMonthlyInterestPayment,
103
+ handleIsRemoteRegistration,
104
+ }: DepositParamsFormProps) => (
105
+ <div className="flex flex-col gap-y-7">
106
+ {isShowMonthlyInterestPayment
107
+ ? renderInterestPayment({
108
+ isMonthlyInterestPayment,
109
+ callback: handleIsMonthlyInterestPayment,
110
+ title: 'Выплата процентов',
111
+ })
112
+ : null}
113
+ {isShowRemoteRegistration
114
+ ? renderRegistrationType({
115
+ isRemoteRegistration,
116
+ callback: handleIsRemoteRegistration,
117
+ title: 'Оформление',
118
+ })
119
+ : null}
120
+ </div>
121
+ );
@@ -52,7 +52,7 @@ export const DEFAULT_DEPOSIT_CALCULATOR_PARAMS: DepositCalculatorSourceBookParam
52
52
  minSum: 50000,
53
53
  maxSum: 5000000,
54
54
  minMonths: 2,
55
- maxMonths: 120,
55
+ maxMonths: 10,
56
56
  rate: 0,
57
57
  isMonthlyInterestPayment: true,
58
58
  isRemoteRegistration: true,
@@ -1,4 +1,5 @@
1
1
  import { maxBy } from '../../utils/maxBy';
2
+ import { mergeIntervals } from '../../utils/mergeIntervals';
2
3
  import { minBy } from '../../utils/minBy';
3
4
 
4
5
  export const getRangeByKeys = <
@@ -13,6 +14,15 @@ export const getRangeByKeys = <
13
14
  [maxKey]: rows.length ? maxBy()(rows.map((row) => row[maxKey])) : 0,
14
15
  });
15
16
 
17
+ export const getMergeRangesByKeys = <
18
+ MinKey extends string,
19
+ MaxKey extends string,
20
+ T extends Record<MinKey | MaxKey, number>,
21
+ >(
22
+ [minKey, maxKey]: [MinKey, MaxKey],
23
+ rows: T[] = [],
24
+ ) => mergeIntervals(rows.map((row) => [row[minKey], row[maxKey]]));
25
+
16
26
  export const checkRangeByKeys = <
17
27
  MinKey extends string,
18
28
  MaxKey extends string,