@redneckz/wildless-cms-uni-blocks 0.6.40 → 0.6.42

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 (397) hide show
  1. package/bundle/blocks.schema.json +1 -1
  2. package/bundle/bundle.umd.js +161 -47
  3. package/bundle/bundle.umd.min.js +1 -1
  4. package/bundle/components/ButtonBlock/ButtonBlock.d.ts +6 -0
  5. package/bundle/components/ButtonBlock/ButtonBlockContent.d.ts +8 -0
  6. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +5 -0
  7. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +44 -0
  8. package/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  9. package/bundle/components/Header/HeaderTop.d.ts +2 -0
  10. package/bundle/components/ProductTile/ProductTileContent.d.ts +2 -0
  11. package/bundle/hooks/useCachedAsyncData.d.ts +2 -0
  12. package/bundle/hooks/useLocation.d.ts +6 -0
  13. package/bundle/hooks/useRegions.d.ts +6 -0
  14. package/bundle/model/LogoType.d.ts +5 -0
  15. package/bundle/services/sitemap/SitemapProps.d.ts +10 -4
  16. package/bundle/ui-kit/Location/Location.d.ts +19 -0
  17. package/bundle/ui-kit/Location/SearchBar.d.ts +6 -0
  18. package/bundle/ui-kit/Logo/Logo.d.ts +2 -5
  19. package/bundle/ui-kit/Logo/Logo.mobile.d.ts +2 -0
  20. package/bundle/ui-kit/Logo/renderImage.d.ts +6 -0
  21. package/bundle/ui-kit/Logo/renderTitle.d.ts +3 -0
  22. package/bundle/utils/groupBy.d.ts +1 -0
  23. package/dist/components/Blocks.js +6 -2
  24. package/dist/components/Blocks.js.map +1 -1
  25. package/dist/components/ButtonBlock/ButtonBlock.d.ts +6 -0
  26. package/dist/components/ButtonBlock/ButtonBlock.js +11 -0
  27. package/dist/components/ButtonBlock/ButtonBlock.js.map +1 -0
  28. package/dist/components/ButtonBlock/ButtonBlockContent.d.ts +8 -0
  29. package/dist/components/ButtonBlock/ButtonBlockContent.js +2 -0
  30. package/dist/components/ButtonBlock/ButtonBlockContent.js.map +1 -0
  31. package/dist/components/Calculator/constants.js +1 -1
  32. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +5 -0
  33. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +22 -0
  34. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -0
  35. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +44 -0
  36. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js +2 -0
  37. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js.map +1 -0
  38. package/dist/components/Header/Header.js +2 -2
  39. package/dist/components/Header/Header.js.map +1 -1
  40. package/dist/components/Header/Header.mobile.js +2 -2
  41. package/dist/components/Header/Header.mobile.js.map +1 -1
  42. package/dist/components/Header/HeaderBurger.js +4 -3
  43. package/dist/components/Header/HeaderBurger.js.map +1 -1
  44. package/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  45. package/dist/components/Header/HeaderSecondaryMenu.js +13 -4
  46. package/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  47. package/dist/components/Header/HeaderTop.d.ts +2 -0
  48. package/dist/components/Header/HeaderTop.js +1 -1
  49. package/dist/components/Header/HeaderTop.js.map +1 -1
  50. package/dist/components/ProductTile/ProductTile.js +8 -2
  51. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  52. package/dist/components/ProductTile/ProductTileContent.d.ts +2 -0
  53. package/dist/components/Recommendation/RecommendationCard.js +1 -1
  54. package/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  55. package/dist/hooks/useCachedAsyncData.d.ts +2 -0
  56. package/dist/hooks/useCachedAsyncData.js +25 -0
  57. package/dist/hooks/useCachedAsyncData.js.map +1 -0
  58. package/dist/hooks/useLocation.d.ts +6 -0
  59. package/dist/hooks/useLocation.js +26 -0
  60. package/dist/hooks/useLocation.js.map +1 -0
  61. package/dist/hooks/useRegions.d.ts +6 -0
  62. package/dist/hooks/useRegions.js +11 -0
  63. package/dist/hooks/useRegions.js.map +1 -0
  64. package/dist/model/LogoType.d.ts +5 -0
  65. package/dist/model/LogoType.js +2 -0
  66. package/dist/model/LogoType.js.map +1 -0
  67. package/dist/services/sitemap/SitemapProps.d.ts +10 -4
  68. package/dist/ui-kit/Location/Location.d.ts +19 -0
  69. package/dist/ui-kit/Location/Location.js +44 -0
  70. package/dist/ui-kit/Location/Location.js.map +1 -0
  71. package/dist/ui-kit/Location/SearchBar.d.ts +6 -0
  72. package/dist/ui-kit/Location/SearchBar.js +9 -0
  73. package/dist/ui-kit/Location/SearchBar.js.map +1 -0
  74. package/dist/ui-kit/Logo/Logo.d.ts +2 -5
  75. package/dist/ui-kit/Logo/Logo.js +3 -21
  76. package/dist/ui-kit/Logo/Logo.js.map +1 -1
  77. package/dist/ui-kit/Logo/Logo.mobile.d.ts +2 -0
  78. package/dist/ui-kit/Logo/Logo.mobile.js +4 -15
  79. package/dist/ui-kit/Logo/Logo.mobile.js.map +1 -1
  80. package/dist/ui-kit/Logo/renderImage.d.ts +6 -0
  81. package/dist/ui-kit/Logo/renderImage.js +20 -0
  82. package/dist/ui-kit/Logo/renderImage.js.map +1 -0
  83. package/dist/ui-kit/Logo/renderTitle.d.ts +3 -0
  84. package/dist/ui-kit/Logo/renderTitle.js +12 -0
  85. package/dist/ui-kit/Logo/renderTitle.js.map +1 -0
  86. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js +8 -4
  87. package/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  88. package/dist/utils/groupBy.d.ts +1 -0
  89. package/dist/utils/groupBy.js +13 -0
  90. package/dist/utils/groupBy.js.map +1 -0
  91. package/lib/common.css +1 -1
  92. package/lib/components/Blocks.js +6 -2
  93. package/lib/components/Blocks.js.map +1 -1
  94. package/lib/components/ButtonBlock/ButtonBlock.d.ts +6 -0
  95. package/lib/components/ButtonBlock/ButtonBlock.fixture.d.ts +6 -0
  96. package/lib/components/ButtonBlock/ButtonBlock.js +9 -0
  97. package/lib/components/ButtonBlock/ButtonBlock.js.map +1 -0
  98. package/lib/components/ButtonBlock/ButtonBlockContent.d.ts +8 -0
  99. package/lib/components/ButtonBlock/ButtonBlockContent.js +2 -0
  100. package/lib/components/ButtonBlock/ButtonBlockContent.js.map +1 -0
  101. package/lib/components/Calculator/constants.js +1 -1
  102. package/lib/components/Carousel/Carousel.fixture.d.ts +1 -0
  103. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +5 -0
  104. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.d.ts +9 -0
  105. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +20 -0
  106. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -0
  107. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +44 -0
  108. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js +2 -0
  109. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js.map +1 -0
  110. package/lib/components/Header/Header.js +2 -2
  111. package/lib/components/Header/Header.js.map +1 -1
  112. package/lib/components/Header/Header.mobile.js +2 -2
  113. package/lib/components/Header/Header.mobile.js.map +1 -1
  114. package/lib/components/Header/HeaderBurger.js +4 -3
  115. package/lib/components/Header/HeaderBurger.js.map +1 -1
  116. package/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  117. package/lib/components/Header/HeaderSecondaryMenu.js +13 -4
  118. package/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  119. package/lib/components/Header/HeaderTop.d.ts +2 -0
  120. package/lib/components/Header/HeaderTop.js +1 -1
  121. package/lib/components/Header/HeaderTop.js.map +1 -1
  122. package/lib/components/ProductTile/ProductTile.fixture.d.ts +1 -0
  123. package/lib/components/ProductTile/ProductTile.js +8 -2
  124. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  125. package/lib/components/ProductTile/ProductTileContent.d.ts +2 -0
  126. package/lib/components/Recommendation/Recommendation.fixture.d.ts +1 -1
  127. package/lib/components/Recommendation/RecommendationCard.js +1 -1
  128. package/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  129. package/lib/hooks/useCachedAsyncData.d.ts +2 -0
  130. package/lib/hooks/useCachedAsyncData.js +22 -0
  131. package/lib/hooks/useCachedAsyncData.js.map +1 -0
  132. package/lib/hooks/useLocation.d.ts +6 -0
  133. package/lib/hooks/useLocation.js +23 -0
  134. package/lib/hooks/useLocation.js.map +1 -0
  135. package/lib/hooks/useRegions.d.ts +6 -0
  136. package/lib/hooks/useRegions.js +8 -0
  137. package/lib/hooks/useRegions.js.map +1 -0
  138. package/lib/model/LogoType.d.ts +5 -0
  139. package/lib/model/LogoType.js +2 -0
  140. package/lib/model/LogoType.js.map +1 -0
  141. package/lib/services/sitemap/SitemapProps.d.ts +10 -4
  142. package/lib/ui-kit/Location/Location.d.ts +19 -0
  143. package/lib/ui-kit/Location/Location.fixture.d.ts +6 -0
  144. package/lib/ui-kit/Location/Location.js +42 -0
  145. package/lib/ui-kit/Location/Location.js.map +1 -0
  146. package/lib/ui-kit/Location/SearchBar.d.ts +6 -0
  147. package/lib/ui-kit/Location/SearchBar.js +7 -0
  148. package/lib/ui-kit/Location/SearchBar.js.map +1 -0
  149. package/lib/ui-kit/Logo/Logo.d.ts +2 -5
  150. package/lib/ui-kit/Logo/Logo.js +4 -22
  151. package/lib/ui-kit/Logo/Logo.js.map +1 -1
  152. package/lib/ui-kit/Logo/Logo.mobile.d.ts +2 -0
  153. package/lib/ui-kit/Logo/Logo.mobile.js +5 -16
  154. package/lib/ui-kit/Logo/Logo.mobile.js.map +1 -1
  155. package/lib/ui-kit/Logo/renderImage.d.ts +5 -0
  156. package/lib/ui-kit/Logo/renderImage.js +17 -0
  157. package/lib/ui-kit/Logo/renderImage.js.map +1 -0
  158. package/lib/ui-kit/Logo/renderTitle.d.ts +2 -0
  159. package/lib/ui-kit/Logo/renderTitle.js +9 -0
  160. package/lib/ui-kit/Logo/renderTitle.js.map +1 -0
  161. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js +8 -4
  162. package/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  163. package/lib/utils/groupBy.d.ts +1 -0
  164. package/lib/utils/groupBy.js +10 -0
  165. package/lib/utils/groupBy.js.map +1 -0
  166. package/mobile/bundle/bundle.umd.js +65 -26
  167. package/mobile/bundle/bundle.umd.min.js +1 -1
  168. package/mobile/bundle/components/ButtonBlock/ButtonBlock.d.ts +6 -0
  169. package/mobile/bundle/components/ButtonBlock/ButtonBlockContent.d.ts +8 -0
  170. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +5 -0
  171. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +44 -0
  172. package/mobile/bundle/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  173. package/mobile/bundle/components/Header/HeaderTop.d.ts +2 -0
  174. package/mobile/bundle/components/ProductTile/ProductTileContent.d.ts +2 -0
  175. package/mobile/bundle/hooks/useCachedAsyncData.d.ts +2 -0
  176. package/mobile/bundle/hooks/useLocation.d.ts +6 -0
  177. package/mobile/bundle/hooks/useRegions.d.ts +6 -0
  178. package/mobile/bundle/model/LogoType.d.ts +5 -0
  179. package/mobile/bundle/services/sitemap/SitemapProps.d.ts +10 -4
  180. package/mobile/bundle/ui-kit/Location/Location.d.ts +19 -0
  181. package/mobile/bundle/ui-kit/Location/SearchBar.d.ts +6 -0
  182. package/mobile/bundle/ui-kit/Logo/Logo.d.ts +2 -0
  183. package/mobile/bundle/ui-kit/Logo/renderImage.d.ts +6 -0
  184. package/mobile/bundle/ui-kit/Logo/renderTitle.d.ts +3 -0
  185. package/mobile/bundle/utils/groupBy.d.ts +1 -0
  186. package/mobile/dist/components/ButtonBlock/ButtonBlock.d.ts +6 -0
  187. package/mobile/dist/components/ButtonBlock/ButtonBlock.js +11 -0
  188. package/mobile/dist/components/ButtonBlock/ButtonBlock.js.map +1 -0
  189. package/mobile/dist/components/ButtonBlock/ButtonBlockContent.d.ts +8 -0
  190. package/mobile/dist/components/ButtonBlock/ButtonBlockContent.js +2 -0
  191. package/mobile/dist/components/ButtonBlock/ButtonBlockContent.js.map +1 -0
  192. package/mobile/dist/components/Calculator/constants.js +1 -1
  193. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +5 -0
  194. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +22 -0
  195. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -0
  196. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +44 -0
  197. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js +2 -0
  198. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js.map +1 -0
  199. package/mobile/dist/components/Header/Header.js +2 -2
  200. package/mobile/dist/components/Header/Header.js.map +1 -1
  201. package/mobile/dist/components/Header/HeaderBurger.js +4 -3
  202. package/mobile/dist/components/Header/HeaderBurger.js.map +1 -1
  203. package/mobile/dist/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  204. package/mobile/dist/components/Header/HeaderSecondaryMenu.js +13 -4
  205. package/mobile/dist/components/Header/HeaderSecondaryMenu.js.map +1 -1
  206. package/mobile/dist/components/Header/HeaderTop.d.ts +2 -0
  207. package/mobile/dist/components/Header/HeaderTop.js +1 -1
  208. package/mobile/dist/components/Header/HeaderTop.js.map +1 -1
  209. package/mobile/dist/components/ProductTile/ProductTile.js +8 -2
  210. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  211. package/mobile/dist/components/ProductTile/ProductTileContent.d.ts +2 -0
  212. package/mobile/dist/components/Recommendation/RecommendationCard.js +1 -1
  213. package/mobile/dist/components/Recommendation/RecommendationCard.js.map +1 -1
  214. package/mobile/dist/hooks/useCachedAsyncData.d.ts +2 -0
  215. package/mobile/dist/hooks/useCachedAsyncData.js +25 -0
  216. package/mobile/dist/hooks/useCachedAsyncData.js.map +1 -0
  217. package/mobile/dist/hooks/useLocation.d.ts +6 -0
  218. package/mobile/dist/hooks/useLocation.js +26 -0
  219. package/mobile/dist/hooks/useLocation.js.map +1 -0
  220. package/mobile/dist/hooks/useRegions.d.ts +6 -0
  221. package/mobile/dist/hooks/useRegions.js +11 -0
  222. package/mobile/dist/hooks/useRegions.js.map +1 -0
  223. package/mobile/dist/model/LogoType.d.ts +5 -0
  224. package/mobile/dist/model/LogoType.js +2 -0
  225. package/mobile/dist/model/LogoType.js.map +1 -0
  226. package/mobile/dist/services/sitemap/SitemapProps.d.ts +10 -4
  227. package/mobile/dist/ui-kit/Location/Location.d.ts +19 -0
  228. package/mobile/dist/ui-kit/Location/Location.js +44 -0
  229. package/mobile/dist/ui-kit/Location/Location.js.map +1 -0
  230. package/mobile/dist/ui-kit/Location/SearchBar.d.ts +6 -0
  231. package/mobile/dist/ui-kit/Location/SearchBar.js +9 -0
  232. package/mobile/dist/ui-kit/Location/SearchBar.js.map +1 -0
  233. package/mobile/dist/ui-kit/Logo/Logo.d.ts +2 -0
  234. package/mobile/dist/ui-kit/Logo/Logo.js +4 -15
  235. package/mobile/dist/ui-kit/Logo/Logo.js.map +1 -1
  236. package/mobile/dist/ui-kit/Logo/renderImage.d.ts +6 -0
  237. package/mobile/dist/ui-kit/Logo/renderImage.js +20 -0
  238. package/mobile/dist/ui-kit/Logo/renderImage.js.map +1 -0
  239. package/mobile/dist/ui-kit/Logo/renderTitle.d.ts +3 -0
  240. package/mobile/dist/ui-kit/Logo/renderTitle.js +12 -0
  241. package/mobile/dist/ui-kit/Logo/renderTitle.js.map +1 -0
  242. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js +8 -4
  243. package/mobile/dist/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  244. package/mobile/dist/utils/groupBy.d.ts +1 -0
  245. package/mobile/dist/utils/groupBy.js +13 -0
  246. package/mobile/dist/utils/groupBy.js.map +1 -0
  247. package/mobile/lib/components/ButtonBlock/ButtonBlock.d.ts +6 -0
  248. package/mobile/lib/components/ButtonBlock/ButtonBlock.js +9 -0
  249. package/mobile/lib/components/ButtonBlock/ButtonBlock.js.map +1 -0
  250. package/mobile/lib/components/ButtonBlock/ButtonBlockContent.d.ts +8 -0
  251. package/mobile/lib/components/ButtonBlock/ButtonBlockContent.js +2 -0
  252. package/mobile/lib/components/ButtonBlock/ButtonBlockContent.js.map +1 -0
  253. package/mobile/lib/components/Calculator/constants.js +1 -1
  254. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.d.ts +5 -0
  255. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +20 -0
  256. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -0
  257. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +44 -0
  258. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js +2 -0
  259. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.js.map +1 -0
  260. package/mobile/lib/components/Header/Header.js +2 -2
  261. package/mobile/lib/components/Header/Header.js.map +1 -1
  262. package/mobile/lib/components/Header/HeaderBurger.js +4 -3
  263. package/mobile/lib/components/Header/HeaderBurger.js.map +1 -1
  264. package/mobile/lib/components/Header/HeaderSecondaryMenu.d.ts +2 -0
  265. package/mobile/lib/components/Header/HeaderSecondaryMenu.js +13 -4
  266. package/mobile/lib/components/Header/HeaderSecondaryMenu.js.map +1 -1
  267. package/mobile/lib/components/Header/HeaderTop.d.ts +2 -0
  268. package/mobile/lib/components/Header/HeaderTop.js +1 -1
  269. package/mobile/lib/components/Header/HeaderTop.js.map +1 -1
  270. package/mobile/lib/components/ProductTile/ProductTile.js +8 -2
  271. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  272. package/mobile/lib/components/ProductTile/ProductTileContent.d.ts +2 -0
  273. package/mobile/lib/components/Recommendation/RecommendationCard.js +1 -1
  274. package/mobile/lib/components/Recommendation/RecommendationCard.js.map +1 -1
  275. package/mobile/lib/hooks/useCachedAsyncData.d.ts +2 -0
  276. package/mobile/lib/hooks/useCachedAsyncData.js +22 -0
  277. package/mobile/lib/hooks/useCachedAsyncData.js.map +1 -0
  278. package/mobile/lib/hooks/useLocation.d.ts +6 -0
  279. package/mobile/lib/hooks/useLocation.js +23 -0
  280. package/mobile/lib/hooks/useLocation.js.map +1 -0
  281. package/mobile/lib/hooks/useRegions.d.ts +6 -0
  282. package/mobile/lib/hooks/useRegions.js +8 -0
  283. package/mobile/lib/hooks/useRegions.js.map +1 -0
  284. package/mobile/lib/model/LogoType.d.ts +5 -0
  285. package/mobile/lib/model/LogoType.js +2 -0
  286. package/mobile/lib/model/LogoType.js.map +1 -0
  287. package/mobile/lib/services/sitemap/SitemapProps.d.ts +10 -4
  288. package/mobile/lib/ui-kit/Location/Location.d.ts +19 -0
  289. package/mobile/lib/ui-kit/Location/Location.js +42 -0
  290. package/mobile/lib/ui-kit/Location/Location.js.map +1 -0
  291. package/mobile/lib/ui-kit/Location/SearchBar.d.ts +6 -0
  292. package/mobile/lib/ui-kit/Location/SearchBar.js +7 -0
  293. package/mobile/lib/ui-kit/Location/SearchBar.js.map +1 -0
  294. package/mobile/lib/ui-kit/Logo/Logo.d.ts +2 -0
  295. package/mobile/lib/ui-kit/Logo/Logo.js +5 -16
  296. package/mobile/lib/ui-kit/Logo/Logo.js.map +1 -1
  297. package/mobile/lib/ui-kit/Logo/renderImage.d.ts +6 -0
  298. package/mobile/lib/ui-kit/Logo/renderImage.js +17 -0
  299. package/mobile/lib/ui-kit/Logo/renderImage.js.map +1 -0
  300. package/mobile/lib/ui-kit/Logo/renderTitle.d.ts +3 -0
  301. package/mobile/lib/ui-kit/Logo/renderTitle.js +9 -0
  302. package/mobile/lib/ui-kit/Logo/renderTitle.js.map +1 -0
  303. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js +8 -4
  304. package/mobile/lib/ui-kit/SwipeListControl/SwipeListContainer.js.map +1 -1
  305. package/mobile/lib/utils/groupBy.d.ts +1 -0
  306. package/mobile/lib/utils/groupBy.js +10 -0
  307. package/mobile/lib/utils/groupBy.js.map +1 -0
  308. package/mobile/src/components/ButtonBlock/ButtonBlock.example.json +10 -0
  309. package/mobile/src/components/ButtonBlock/ButtonBlock.tsx +17 -0
  310. package/mobile/src/components/ButtonBlock/ButtonBlock.ui.json +12 -0
  311. package/mobile/src/components/ButtonBlock/ButtonBlockContent.ts +9 -0
  312. package/mobile/src/components/Calculator/constants.ts +1 -1
  313. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +19 -0
  314. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +62 -0
  315. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +9 -0
  316. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +45 -0
  317. package/mobile/src/components/Header/Header.tsx +2 -2
  318. package/mobile/src/components/Header/HeaderBurger.tsx +5 -7
  319. package/mobile/src/components/Header/HeaderSecondaryMenu.tsx +32 -5
  320. package/mobile/src/components/Header/HeaderTop.tsx +4 -2
  321. package/mobile/src/components/MiniGallery/MiniGallery.ui.json +1 -1
  322. package/mobile/src/components/ProductTile/ProductTile.example.json +2 -1
  323. package/mobile/src/components/ProductTile/ProductTile.tsx +34 -18
  324. package/mobile/src/components/ProductTile/ProductTileContent.ts +2 -0
  325. package/mobile/src/components/Recommendation/Recommendation.example.json +6 -5
  326. package/mobile/src/components/Recommendation/Recommendation.ui.json +8 -0
  327. package/mobile/src/components/Recommendation/RecommendationCard.tsx +1 -1
  328. package/mobile/src/hooks/useCachedAsyncData.ts +37 -0
  329. package/mobile/src/hooks/useLocation.ts +48 -0
  330. package/mobile/src/hooks/useRegions.ts +16 -0
  331. package/mobile/src/model/LogoType.ts +6 -0
  332. package/mobile/src/services/sitemap/SitemapProps.ts +11 -4
  333. package/mobile/src/ui-kit/Location/Location.tsx +168 -0
  334. package/mobile/src/ui-kit/Location/SearchBar.tsx +30 -0
  335. package/mobile/src/ui-kit/Logo/Logo.tsx +16 -31
  336. package/mobile/src/ui-kit/Logo/renderImage.tsx +40 -0
  337. package/mobile/src/ui-kit/Logo/renderTitle.tsx +15 -0
  338. package/mobile/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +8 -4
  339. package/mobile/src/utils/groupBy.ts +10 -0
  340. package/package.json +2 -2
  341. package/src/components/Blocks.ts +6 -2
  342. package/src/components/ButtonBlock/ButtonBlock.example.json +10 -0
  343. package/src/components/ButtonBlock/ButtonBlock.fixture.tsx +18 -0
  344. package/src/components/ButtonBlock/ButtonBlock.tsx +17 -0
  345. package/src/components/ButtonBlock/ButtonBlock.ui.json +12 -0
  346. package/src/components/ButtonBlock/ButtonBlockContent.ts +9 -0
  347. package/src/components/Calculator/constants.ts +1 -1
  348. package/src/components/Carousel/Carousel.fixture.tsx +22 -4
  349. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.example.json +19 -0
  350. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.fixture.tsx +47 -0
  351. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +62 -0
  352. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.ui.json +9 -0
  353. package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +45 -0
  354. package/src/components/Header/Header.mobile.tsx +2 -2
  355. package/src/components/Header/Header.tsx +6 -4
  356. package/src/components/Header/HeaderBurger.tsx +5 -7
  357. package/src/components/Header/HeaderSecondaryMenu.tsx +32 -5
  358. package/src/components/Header/HeaderTop.tsx +4 -2
  359. package/src/components/MiniGallery/MiniGallery.ui.json +1 -1
  360. package/src/components/ProductTile/ProductTile.example.json +2 -1
  361. package/src/components/ProductTile/ProductTile.fixture.tsx +13 -0
  362. package/src/components/ProductTile/ProductTile.tsx +34 -18
  363. package/src/components/ProductTile/ProductTileContent.ts +2 -0
  364. package/src/components/Recommendation/Recommendation.example.json +6 -5
  365. package/src/components/Recommendation/Recommendation.fixture.tsx +11 -10
  366. package/src/components/Recommendation/Recommendation.ui.json +8 -0
  367. package/src/components/Recommendation/RecommendationCard.tsx +1 -1
  368. package/src/hooks/useCachedAsyncData.ts +37 -0
  369. package/src/hooks/useLocation.ts +48 -0
  370. package/src/hooks/useRegions.ts +16 -0
  371. package/src/model/LogoType.ts +6 -0
  372. package/src/services/sitemap/SitemapProps.ts +11 -4
  373. package/src/ui-kit/Location/Location.fixture.tsx +81 -0
  374. package/src/ui-kit/Location/Location.tsx +168 -0
  375. package/src/ui-kit/Location/SearchBar.tsx +30 -0
  376. package/src/ui-kit/Logo/Logo.mobile.tsx +16 -31
  377. package/src/ui-kit/Logo/Logo.tsx +6 -43
  378. package/src/ui-kit/Logo/renderImage.tsx +40 -0
  379. package/src/ui-kit/Logo/renderTitle.tsx +15 -0
  380. package/src/ui-kit/SwipeListControl/SwipeListContainer.tsx +8 -4
  381. package/src/utils/groupBy.ts +10 -0
  382. package/bundle/hooks/useGeolocation.d.ts +0 -1
  383. package/dist/hooks/useGeolocation.d.ts +0 -1
  384. package/dist/hooks/useGeolocation.js +0 -21
  385. package/dist/hooks/useGeolocation.js.map +0 -1
  386. package/lib/hooks/useGeolocation.d.ts +0 -1
  387. package/lib/hooks/useGeolocation.js +0 -18
  388. package/lib/hooks/useGeolocation.js.map +0 -1
  389. package/mobile/bundle/hooks/useGeolocation.d.ts +0 -1
  390. package/mobile/dist/hooks/useGeolocation.d.ts +0 -1
  391. package/mobile/dist/hooks/useGeolocation.js +0 -21
  392. package/mobile/dist/hooks/useGeolocation.js.map +0 -1
  393. package/mobile/lib/hooks/useGeolocation.d.ts +0 -1
  394. package/mobile/lib/hooks/useGeolocation.js +0 -18
  395. package/mobile/lib/hooks/useGeolocation.js.map +0 -1
  396. package/mobile/src/hooks/useGeolocation.ts +0 -22
  397. package/src/hooks/useGeolocation.ts +0 -22
@@ -0,0 +1,168 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
3
+ import { useLink } from '../../hooks/useLink';
4
+ import type { Region } from '../../hooks/useRegions';
5
+ import { useRegions } from '../../hooks/useRegions';
6
+ import { useSearch } from '../../hooks/useSearch';
7
+ import type { UniBlockProps } from '../../model/JSXBlock';
8
+ import type { ForeignOffice } from '../../services/sitemap/SitemapProps';
9
+ import { Text } from '../../ui-kit/Text/Text';
10
+ import { groupBy } from '../../utils/groupBy';
11
+ import { Img } from '../Img/Img';
12
+ import { SearchBar } from './SearchBar';
13
+
14
+ const SEARCH_TERM_MIN_LENGTH = 3;
15
+
16
+ interface RegionLinkProps {
17
+ onChangeLocation?: (region: Region) => void;
18
+ }
19
+
20
+ interface CloseButtonProps {
21
+ close?: () => void;
22
+ }
23
+
24
+ interface CurrentLocationProps {
25
+ currentLocation?: Region;
26
+ }
27
+
28
+ interface ForeignOfficeProps {
29
+ foreignOffices?: ForeignOffice[];
30
+ }
31
+
32
+ export type LocationProps = ForeignOfficeProps &
33
+ CloseButtonProps &
34
+ RegionLinkProps &
35
+ CurrentLocationProps &
36
+ UniBlockProps;
37
+
38
+ export const Location = JSX<LocationProps>(
39
+ ({ currentLocation, onChangeLocation, close, foreignOffices }) => {
40
+ const { term, setTerm } = useSearch();
41
+
42
+ const handleSearch = useCallback((_: string) => setTerm(_), []);
43
+
44
+ const regions: Region[] = cleanUpRegions(useRegions()).sort((a, b) =>
45
+ a.name.localeCompare(b.name),
46
+ );
47
+ const regionsGroupByLetter: Map<string, Region[]> = groupBy(regions, regionFirstLetter);
48
+
49
+ return (
50
+ <div className="absolute h-full w-full inset-0 bg-white text-l-light z-50">
51
+ <CloseButton close={close} />
52
+ <div className="container py-12">
53
+ <CurrentLocation currentLocation={currentLocation} />
54
+ <SearchBar onSearch={handleSearch} searchTerm={term} className="mb-7" />
55
+
56
+ {term && term.length >= SEARCH_TERM_MIN_LENGTH ? (
57
+ <div>
58
+ {regions
59
+ .filter((region) => region.name?.startsWith(term))
60
+ .map(renderRegion({ onChangeLocation, close }))}
61
+ </div>
62
+ ) : (
63
+ <div className="columns-5">
64
+ {Array.from(regionsGroupByLetter.entries()).map(
65
+ renderRegionGroup({ onChangeLocation, close }),
66
+ )}
67
+ </div>
68
+ )}
69
+
70
+ <ForeignOffices foreignOffices={foreignOffices} />
71
+ </div>
72
+ </div>
73
+ );
74
+ },
75
+ );
76
+
77
+ const regionFirstLetter = (region: Region) => region.name?.charAt(0) || '';
78
+
79
+ const cleanUpRegions = (regions: Region[]) =>
80
+ regions.map((region) => ({
81
+ ...region,
82
+ name: region.name?.replace(/республика|область|край'/gi, '').trim() || '',
83
+ }));
84
+
85
+ const CurrentLocation = JSX<CurrentLocationProps>(({ currentLocation }) =>
86
+ currentLocation ? (
87
+ <div className="mb-4">
88
+ <Text size="text-l" font="font-light">
89
+ Сейчас выбран:&nbsp;
90
+ </Text>
91
+ <button className="cursor-pointer" onClick={close}>
92
+ <Text color="text-green">{currentLocation.name}</Text>
93
+ </button>
94
+ </div>
95
+ ) : null,
96
+ );
97
+
98
+ const CloseButton = JSX<CloseButtonProps>(({ close }) => (
99
+ <button
100
+ className="visible peer-placeholder-shown:invisible absolute top-6 right-6 w-6 h-6 p-1 bg-transparent cursor-pointer border-none"
101
+ onClick={(e) => {
102
+ e.preventDefault();
103
+ close && close();
104
+ }}
105
+ >
106
+ <Img image="CloseIcon" width="24" height="24" />
107
+ </button>
108
+ ));
109
+
110
+ const renderRegionGroup =
111
+ ({ onChangeLocation, close }: RegionLinkProps & CloseButtonProps) =>
112
+ ([letter, regions]: [string, Region[]]) =>
113
+ (
114
+ <div key={letter} className="break-inside-avoid mb-7 w-[224px]">
115
+ <div className="mb-2.5">
116
+ <Text size="text-h6">{letter}</Text>
117
+ </div>
118
+ {regions.map(renderRegion({ onChangeLocation, close }))}
119
+ </div>
120
+ );
121
+
122
+ const renderRegion =
123
+ ({ onChangeLocation, close }: RegionLinkProps & CloseButtonProps) =>
124
+ (region: Region) =>
125
+ (
126
+ <div key={region.id} className="mb-1">
127
+ <button
128
+ className="cursor-pointer hover:text-primary-hover"
129
+ onClick={() => {
130
+ onChangeLocation && onChangeLocation(region);
131
+ close && close();
132
+ }}
133
+ >
134
+ {region.name}
135
+ </button>
136
+ </div>
137
+ );
138
+
139
+ const ForeignOffices = JSX<ForeignOfficeProps>(({ foreignOffices }) =>
140
+ foreignOffices?.length ? (
141
+ <div className="border-t border-main-divider mt-7 pt-7">
142
+ <div className="mb-4">
143
+ <Text size="text-m-light" color="text-secondary-text">
144
+ Представительства за рубежом:
145
+ </Text>
146
+ </div>
147
+ <div className="flex gap-10">
148
+ {foreignOffices.map((office, i: number) => (
149
+ <ForeignOffice key={String(i)} {...office} />
150
+ ))}
151
+ </div>
152
+ </div>
153
+ ) : null,
154
+ );
155
+
156
+ const ForeignOffice = JSX<ForeignOffice>(({ icon, ...rest }) => {
157
+ const link = useLink();
158
+ const { text, target, href, onClick } = link(rest);
159
+
160
+ return (
161
+ <div className="flex gap-x-3">
162
+ <Img image={icon} />
163
+ <a className="hover:text-primary-hover" href={href} target={target} onClick={onClick}>
164
+ {text}
165
+ </a>
166
+ </div>
167
+ );
168
+ });
@@ -0,0 +1,30 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+
3
+ export interface SearchBarInnerProps {
4
+ className?: string;
5
+ searchTerm?: string;
6
+ onSearch: (_: string) => void;
7
+ }
8
+
9
+ export const SearchBar = JSX<SearchBarInnerProps>(({ className, searchTerm, onSearch }) => {
10
+ return (
11
+ <form className={`font-sans relative ${className}`}>
12
+ <div className="absolute rounded h-full flex items-center justify-center pl-4 max-w-[170px] gap-3.5 pointer-events-none">
13
+ {searchTerm ? null : (
14
+ <label htmlFor="search-bar-input" className={`text-secondary-text `}>
15
+ Поиск по филиалам
16
+ </label>
17
+ )}
18
+ </div>
19
+ <input
20
+ id="search-bar-input"
21
+ className={`h-12 pl-4 w-full peer text-l text-black border border-solid rounded-md box-border
22
+ outline-none border-main-stroke hover:border-primary-hover active:border-primary-text focus:border-primary-text`}
23
+ value={searchTerm}
24
+ onChange={(e) => onSearch(e.target.value as string)}
25
+ type="text"
26
+ name="location-search-bar-input"
27
+ />
28
+ </form>
29
+ );
30
+ });
@@ -1,6 +1,7 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
- import type { BgColorVersion } from '../../model/BgColorVersion';
3
- import { Img } from '../Img/Img';
2
+ import type { LogoType } from '../../model/LogoType';
3
+ import { renderImage } from './renderImage';
4
+ import { renderTitle } from './renderTitle';
4
5
 
5
6
  export interface LogoProps {
6
7
  className: string;
@@ -8,44 +9,28 @@ export interface LogoProps {
8
9
  targetBlank: boolean;
9
10
  bgColor?: string;
10
11
  showTitle?: boolean;
12
+ logo?: LogoType;
11
13
  }
12
14
 
13
- const ICON_VERSION_MAP: Record<BgColorVersion, string> = {
14
- 'bg-white': 'color',
15
- transparent: 'white',
16
- };
17
-
18
- const SVG_COLOR: Record<BgColorVersion, string> = {
19
- 'bg-white': 'text-primary-main',
20
- transparent: 'text-white',
21
- };
22
-
23
- const TEXT_COLOR: Record<BgColorVersion, string> = {
24
- 'bg-white': 'text-black',
25
- transparent: 'text-white',
26
- };
27
-
28
15
  export const Logo = JSX<Partial<LogoProps>>(
29
- ({ className = '', href, children, targetBlank, bgColor = 'bg-white', showTitle = true }) => {
16
+ ({
17
+ bgColor = 'bg-white',
18
+ children,
19
+ className = '',
20
+ href,
21
+ logo,
22
+ showTitle = true,
23
+ targetBlank,
24
+ }) => {
30
25
  return (
31
26
  <a
32
27
  className={`inline-flex items-center font-sans no-underline ${className}`}
33
28
  href={href || 'https://rshb.ru/'}
34
29
  target={targetBlank ? '_blank' : '_self'}
35
- aria-label="Россельхозбанк"
30
+ aria-label={logo?.title || 'Россельхозбанк'}
36
31
  >
37
- <Img
38
- image={{ icon: 'LogoIcon', iconVersion: ICON_VERSION_MAP[bgColor] }}
39
- className={`${SVG_COLOR[bgColor]}`}
40
- width="34"
41
- height="34"
42
- asSVG
43
- />
44
- {showTitle ? (
45
- <span className={`${TEXT_COLOR[bgColor]} text-s font-medium ml-2.5`}>
46
- {children || 'Россельхозбанк'}
47
- </span>
48
- ) : null}
32
+ {renderImage(bgColor, logo?.image, { width: '34', height: '34' })}
33
+ {showTitle ? renderTitle(children || logo?.title, bgColor, 'text-s') : null}
49
34
  </a>
50
35
  );
51
36
  },
@@ -0,0 +1,40 @@
1
+ import { BgColorVersion } from '../../model/BgColorVersion';
2
+ import type { Picture } from '../../model/Picture';
3
+ import { Img } from '../Img/Img';
4
+
5
+ const ICON_VERSION_MAP: Record<BgColorVersion, string> = {
6
+ 'bg-white': 'color',
7
+ transparent: 'white',
8
+ };
9
+
10
+ const SVG_COLOR: Record<BgColorVersion, string> = {
11
+ 'bg-white': 'text-primary-main',
12
+ transparent: 'text-white',
13
+ };
14
+
15
+ export const renderImage = (
16
+ bgColor: string,
17
+ image?: Picture,
18
+ size?: { width: string; height: string },
19
+ ) => {
20
+ return image?.src ? (
21
+ <Img
22
+ image={image}
23
+ className={SVG_COLOR[bgColor]}
24
+ width={size?.width}
25
+ height={size?.height}
26
+ asSVG
27
+ />
28
+ ) : (
29
+ <Img
30
+ image={{
31
+ icon: image?.icon || 'LogoIcon',
32
+ iconVersion: ICON_VERSION_MAP[bgColor],
33
+ }}
34
+ className={SVG_COLOR[bgColor]}
35
+ width={size?.width}
36
+ height={size?.height}
37
+ asSVG
38
+ />
39
+ );
40
+ };
@@ -0,0 +1,15 @@
1
+ import type { BgColorVersion } from '../../model/BgColorVersion';
2
+ import type { VNode } from '../../model/VNode';
3
+
4
+ const TEXT_COLOR: Record<BgColorVersion, string> = {
5
+ 'bg-white': 'text-primary-text',
6
+ transparent: 'text-white',
7
+ };
8
+
9
+ export const renderTitle = (title: VNode, bgColor: string, className?: string) => {
10
+ return (
11
+ <span className={`${TEXT_COLOR[bgColor]} ml-2.5 font-medium ${className || ''}`}>
12
+ {title || 'Россельхозбанк'}
13
+ </span>
14
+ );
15
+ };
@@ -29,7 +29,7 @@ export const SwipeListContainer = JSX<SwipeListContainerProps>(
29
29
  className = '',
30
30
  containerRef,
31
31
  activeIndex,
32
- visibleItemCount,
32
+ visibleItemCount = 0,
33
33
  gap = 0,
34
34
  padding = 0,
35
35
  snapAlign = 'snap-center',
@@ -54,11 +54,15 @@ export const SwipeListContainer = JSX<SwipeListContainerProps>(
54
54
  },
55
55
  [onVisibleItemsChange, onVisibleIndicesChange],
56
56
  );
57
+ const additionPadding = visibleItemCount > 0 ? gap * Number(visibleItemCount) - 1 : 0;
57
58
 
58
59
  return (
59
60
  <div
60
61
  className={`box-border overflow-auto flex horizontal-list no-scrollbar ${className}`}
61
- style={{ ...getContainerStyle(padding), gap: `${gap}px` }}
62
+ style={{
63
+ ...getContainerStyle(padding, additionPadding),
64
+ gap: `${gap}px`,
65
+ }}
62
66
  role="list"
63
67
  ref={containerRef}
64
68
  >
@@ -83,11 +87,11 @@ export const SwipeListContainer = JSX<SwipeListContainerProps>(
83
87
  );
84
88
 
85
89
  // Styles used to compensate outer container padding to get rid of clipping effect
86
- const getContainerStyle = (padding: number): Record<string, string> => ({
90
+ const getContainerStyle = (padding: number, additionalPadding = 0): Record<string, string> => ({
87
91
  marginLeft: `${-padding}px`,
88
92
  marginRight: `${-padding}px`,
89
93
  paddingLeft: `${padding}px`,
90
- paddingRight: `${padding}px`,
94
+ paddingRight: `${padding + additionalPadding}px`,
91
95
  });
92
96
 
93
97
  const getVisibleIndices = (itemsVisibilityList: ItemsVisibilityList) =>
@@ -0,0 +1,10 @@
1
+ export const groupBy = <K, V>(list: Array<V>, keyGetter: (input: V) => K): Map<K, Array<V>> => {
2
+ const map = new Map<K, Array<V>>();
3
+ list.forEach((item) => {
4
+ const key = keyGetter(item);
5
+ const collection = map.get(key);
6
+ map.set(key, [...(collection || []), item]);
7
+ });
8
+
9
+ return map;
10
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redneckz/wildless-cms-uni-blocks",
3
- "version": "0.6.40",
3
+ "version": "0.6.42",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "author": "ЦК",
@@ -185,7 +185,7 @@
185
185
  "path": "lib/common.css"
186
186
  },
187
187
  {
188
- "limit": "43 kB",
188
+ "limit": "45 kB",
189
189
  "path": "bundle/bundle.umd.min.js"
190
190
  }
191
191
  ],
@@ -5,6 +5,7 @@ import { BenefitsBlock } from './BenefitsBlock/BenefitsBlock';
5
5
  import { Bonus } from './Bonus/Bonus';
6
6
  import { BonusBenefitsBlock } from './BonusBenefitsBlock/BonusBenefitsBlock';
7
7
  import { BusinessBlock } from './BusinessBlock/BusinessBlock';
8
+ import { ButtonBlock } from './ButtonBlock/ButtonBlock';
8
9
  import { Calculator } from './Calculator/Calculator';
9
10
  import { CardTransfer } from './CardTransfer/CardTransfer';
10
11
  import { Carousel } from './Carousel/Carousel';
@@ -42,6 +43,7 @@ import { ProductBlock } from './ProductBlock/ProductBlock';
42
43
  import { ProductGallery } from './ProductGallery/ProductGallery';
43
44
  import { ProductTile } from './ProductTile/ProductTile';
44
45
  import { PromoTile } from './PromoTile/PromoTile';
46
+ import { CarouselRecommendationCard } from './CarouselRecommendationCard/CarouselRecommendationCard';
45
47
  import { Recommendation } from './Recommendation/Recommendation';
46
48
  import { RollupItem } from './RollupItem/RollupItem';
47
49
  import { SafeDepositRental } from './SafeDepositRental/SafeDepositRental';
@@ -58,6 +60,7 @@ export const Blocks: BlocksRegistry = {
58
60
  AccordionItem,
59
61
  BenefitsBlock,
60
62
  BusinessBlock,
63
+ ButtonBlock,
61
64
  Bonus,
62
65
  BonusBenefitsBlock,
63
66
  CardTransfer,
@@ -93,11 +96,10 @@ export const Blocks: BlocksRegistry = {
93
96
  ProductGallery,
94
97
  ProductTile,
95
98
  PromoTile,
96
- OfficeMap,
97
99
  OfficeServicesBlock,
98
100
  OtherProducts,
99
101
  OtherProductsItem,
100
- Recommendation,
102
+ CarouselRecommendationCard,
101
103
  RollupItem,
102
104
  SafeDepositRental,
103
105
  StepsBlock,
@@ -107,4 +109,6 @@ export const Blocks: BlocksRegistry = {
107
109
  Tile,
108
110
  VerticalLayout,
109
111
  Video,
112
+ Recommendation,
113
+ OfficeMap,
110
114
  };
@@ -0,0 +1,10 @@
1
+ {
2
+ "content": {
3
+ "button": {
4
+ "href": "/credit-cards",
5
+ "text": "Подробнее",
6
+ "target": "_blank",
7
+ "version": "primary"
8
+ }
9
+ }
10
+ }
@@ -0,0 +1,18 @@
1
+ import '../../setup-fixture';
2
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
3
+ import { ButtonBlock } from './ButtonBlock';
4
+
5
+ const button: ButtonWithIconProps = {
6
+ href: '/credit-cards',
7
+ text: 'Подробнее',
8
+ target: '_blank',
9
+ version: 'primary',
10
+ };
11
+
12
+ export default {
13
+ default: (
14
+ <div className="container grid grid-cols-12 p-4">
15
+ <ButtonBlock className="col-span-12" button={button} />
16
+ </div>
17
+ ),
18
+ };
@@ -0,0 +1,17 @@
1
+ import { JSX } from '@redneckz/uni-jsx';
2
+ import type { UniBlockProps } from '../../model/JSXBlock';
3
+ import { BlockWrapper } from '../../ui-kit/BlockWrapper';
4
+ import { renderButton } from '../../ui-kit/Button/ButtonSection';
5
+ import type { ButtonBlockContent } from './ButtonBlockContent';
6
+
7
+ interface ButtonBlockProps extends ButtonBlockContent, UniBlockProps {}
8
+
9
+ export const ButtonBlock = JSX<ButtonBlockProps>((props) => {
10
+ const { className, button, ...rest } = props;
11
+
12
+ return (
13
+ <BlockWrapper className={className} {...rest}>
14
+ {button ? renderButton({ button }) : null}
15
+ </BlockWrapper>
16
+ );
17
+ });
@@ -0,0 +1,12 @@
1
+ {
2
+ "content": {
3
+ "button": {
4
+ "icon": {
5
+ "ui:field": "icon"
6
+ },
7
+ "iconRight": {
8
+ "ui:field": "icon"
9
+ }
10
+ }
11
+ }
12
+ }
@@ -0,0 +1,9 @@
1
+ import type { ButtonWithIconProps } from '../../ui-kit/Button/ButtonProps';
2
+
3
+ /**
4
+ * @title Блок Кнопка
5
+ */
6
+ export interface ButtonBlockContent {
7
+ /** @title Кнопка */
8
+ button?: ButtonWithIconProps;
9
+ }
@@ -18,7 +18,7 @@ export const DEFAULT_CREDIT_CALCULATOR_PARAMS: CreditCalculatorSourceBookParams
18
18
  maxSum: DEFAULT_MAX_SUM,
19
19
  minMonths: DEFAULT_MIN_MONTHS,
20
20
  maxMonths: DEFAULT_MAX_MONTHS,
21
- rateBottomRange: 10,
21
+ rateBottomRange: 12,
22
22
  rateTopRange: 7,
23
23
  isSalaryClient: true,
24
24
  isStateEmployee: true,
@@ -1,13 +1,14 @@
1
- import type { BlockRendererOptions } from '../../BlockRenderer/BlockRendererOptions';
2
1
  import '../../setup-fixture';
3
2
  import { Blocks } from '../Blocks';
3
+ import { BUSINESS_CARD } from '../CarouselProgramsCard/CarouselProgramsCard.fixture';
4
4
  import { CARD, CARD_MINI, CARD_NEW } from '../CarouselCard/CarouselCard.fixture';
5
+ import { Carousel } from './Carousel';
6
+ import { CAROUSEL_RECOMMENDATION_CARD } from '../CarouselRecommendationCard/CarouselRecommendationCard.fixture';
5
7
  import { CATALOG_CARD } from '../CarouselCatalogCard/CarouselCatalogCard.fixture';
6
8
  import { INVESTMENT_CARD_WITH_SINGLE_COLUMN } from '../CarouselInvestmentCard/CarouselInvestmentCard.fixture';
7
9
  import { PRODUCT_CARD } from '../CarouselProductCard/CarouselProductCard.fixture';
8
- import { BUSINESS_CARD } from '../CarouselProgramsCard/CarouselProgramsCard.fixture';
9
10
  import { TARIFFS_CARD, TARIFFS_CARD_HIT } from '../CarouselTariffsCard/CarouselTariffsCard.fixture';
10
- import { Carousel } from './Carousel';
11
+ import type { BlockRendererOptions } from '../../BlockRenderer/BlockRendererOptions';
11
12
 
12
13
  const options = {
13
14
  blocksRegistry: Blocks,
@@ -127,7 +128,6 @@ export default {
127
128
  />
128
129
  </div>
129
130
  ),
130
-
131
131
  program: (
132
132
  <div className="container grid grid-cols-12">
133
133
  <Carousel
@@ -165,4 +165,22 @@ export default {
165
165
  />
166
166
  </div>
167
167
  ),
168
+ recommendations: (
169
+ <div className="container grid grid-cols-12">
170
+ <Carousel
171
+ className="col-span-12"
172
+ isBlur={true}
173
+ isCyclic={false}
174
+ block={{
175
+ type: 'Carousel',
176
+ blocks: new Array(6).fill({
177
+ type: 'CarouselRecommendationCard',
178
+ content: CAROUSEL_RECOMMENDATION_CARD,
179
+ style: ['col-span-4'],
180
+ }),
181
+ }}
182
+ options={options}
183
+ />
184
+ </div>
185
+ ),
168
186
  };
@@ -0,0 +1,19 @@
1
+ {
2
+ "content": {
3
+ "image": {
4
+ "format": "webp",
5
+ "size": {
6
+ "width": 180,
7
+ "height": 180
8
+ }
9
+ },
10
+ "title": "Заголовок 1",
11
+ "description": "Описание 1",
12
+ "socialMedia": [
13
+ { "href": "https://t.me" },
14
+ { "href": "https://vk.com" },
15
+ { "href": "https://ok.ru" }
16
+ ],
17
+ "version": "primary"
18
+ }
19
+ }
@@ -0,0 +1,47 @@
1
+ import type { LinkProps } from '../../model/LinkProps';
2
+ import type { Picture } from '../../model/Picture';
3
+ import '../../setup-fixture';
4
+ import { CarouselRecommendationCard } from './CarouselRecommendationCard';
5
+ import type { CarouselRecommendationCardContent } from './CarouselRecommendationCardContent';
6
+
7
+ const image: Picture = {
8
+ src: 'product-basket.png',
9
+ format: 'webp',
10
+ size: {
11
+ width: 290,
12
+ height: 290,
13
+ },
14
+ title: 'product-basket',
15
+ };
16
+
17
+ const socialMedia: LinkProps[] = [
18
+ { href: 'https://t.me' },
19
+ { href: 'https://vk.com' },
20
+ { href: 'https://ok.ru' },
21
+ ];
22
+
23
+ const items = ['Свежие новости', 'Акции и предложения', 'Ставки и котировки'];
24
+
25
+ export const CAROUSEL_RECOMMENDATION_CARD: CarouselRecommendationCardContent = {
26
+ title: 'РоссельхозБанк',
27
+ items,
28
+ image,
29
+ socialMedia,
30
+ };
31
+
32
+ export default {
33
+ default: (
34
+ <div className="container grid grid-cols-12 mb-1">
35
+ <CarouselRecommendationCard className="col-span-4" {...CAROUSEL_RECOMMENDATION_CARD} />
36
+ </div>
37
+ ),
38
+ secondary: (
39
+ <div className="container grid grid-cols-12 mb-1">
40
+ <CarouselRecommendationCard
41
+ className="col-span-4"
42
+ version="secondary"
43
+ {...CAROUSEL_RECOMMENDATION_CARD}
44
+ />
45
+ </div>
46
+ ),
47
+ };