@redneckz/wildless-cms-uni-blocks 0.14.10 → 0.14.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (321) hide show
  1. package/bin/migration-scripts/0.14.7.js +32 -0
  2. package/bundle/blocks.schema.json +1 -1
  3. package/bundle/bundle.umd.js +47 -45
  4. package/bundle/bundle.umd.min.js +1 -1
  5. package/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
  6. package/bundle/components/Depository/useDepository.d.ts +1 -1
  7. package/bundle/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +3 -5
  8. package/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +6 -8
  9. package/bundle/ui-kit/BaseTile/BaseTile.d.ts +1 -1
  10. package/bundle/ui-kit/Pagination/PageSizeSelector.d.ts +7 -0
  11. package/bundle/ui-kit/Pagination/Pagination.d.ts +3 -2
  12. package/bundle/ui-kit/Pagination/PaginationContainer.d.ts +7 -0
  13. package/bundle/ui-kit/Pagination/paginationBlockStyle.d.ts +1 -0
  14. package/bundle/ui-kit/Pagination/renderPages.d.ts +2 -2
  15. package/bundle/utils/formatDate.d.ts +1 -0
  16. package/dist/components/Carousel/renderCardHighlight.js +1 -1
  17. package/dist/components/Carousel/renderCardHighlight.js.map +1 -1
  18. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  19. package/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  20. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  21. package/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  22. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
  23. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  24. package/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
  25. package/dist/components/Depository/Depository.js +3 -2
  26. package/dist/components/Depository/Depository.js.map +1 -1
  27. package/dist/components/Depository/DepositoryItem.js +3 -3
  28. package/dist/components/Depository/DepositoryItem.js.map +1 -1
  29. package/dist/components/Depository/useDepository.d.ts +1 -1
  30. package/dist/components/InvestmentInfo/InvestmentInfo.js +1 -1
  31. package/dist/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  32. package/dist/components/ProductTile/ProductTile.js +1 -1
  33. package/dist/components/ProductTile/ProductTile.js.map +1 -1
  34. package/dist/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +3 -5
  35. package/dist/ui-kit/BaseProductTile/BaseProductTile.js +2 -2
  36. package/dist/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  37. package/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +6 -8
  38. package/dist/ui-kit/BaseTile/BaseTile.d.ts +1 -1
  39. package/dist/ui-kit/BaseTile/BaseTile.js +8 -5
  40. package/dist/ui-kit/BaseTile/BaseTile.js.map +1 -1
  41. package/dist/ui-kit/Button/ArrowButton.js +3 -2
  42. package/dist/ui-kit/Button/ArrowButton.js.map +1 -1
  43. package/dist/ui-kit/CookiePopup/CookiePopup.js +1 -1
  44. package/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  45. package/dist/ui-kit/InputRange/renderRangeWithTicks.js +2 -1
  46. package/dist/ui-kit/InputRange/renderRangeWithTicks.js.map +1 -1
  47. package/dist/ui-kit/Pagination/PageSizeSelector.d.ts +7 -0
  48. package/dist/ui-kit/Pagination/PageSizeSelector.js +12 -0
  49. package/dist/ui-kit/Pagination/PageSizeSelector.js.map +1 -0
  50. package/dist/ui-kit/Pagination/Pagination.d.ts +3 -2
  51. package/dist/ui-kit/Pagination/Pagination.js +4 -27
  52. package/dist/ui-kit/Pagination/Pagination.js.map +1 -1
  53. package/dist/ui-kit/Pagination/PaginationContainer.d.ts +7 -0
  54. package/dist/ui-kit/Pagination/PaginationContainer.js +31 -0
  55. package/dist/ui-kit/Pagination/PaginationContainer.js.map +1 -0
  56. package/dist/ui-kit/Pagination/paginationBlockStyle.d.ts +1 -0
  57. package/dist/ui-kit/Pagination/paginationBlockStyle.js +4 -0
  58. package/dist/ui-kit/Pagination/paginationBlockStyle.js.map +1 -0
  59. package/dist/ui-kit/Pagination/renderPages.d.ts +2 -2
  60. package/dist/ui-kit/Pagination/renderPages.js +2 -2
  61. package/dist/ui-kit/Pagination/renderPages.js.map +1 -1
  62. package/dist/ui-kit/Select/Select.js +1 -1
  63. package/dist/ui-kit/Select/Select.js.map +1 -1
  64. package/dist/ui-kit/Select/SelectPopup.js +1 -1
  65. package/dist/ui-kit/Select/SelectPopup.js.map +1 -1
  66. package/dist/ui-kit/YandexMap/renderSearchField.js +1 -1
  67. package/dist/ui-kit/YandexMap/renderSearchField.js.map +1 -1
  68. package/dist/utils/formatDate.d.ts +1 -0
  69. package/dist/utils/formatDate.js +5 -0
  70. package/dist/utils/formatDate.js.map +1 -0
  71. package/lib/common.css +1 -1
  72. package/lib/components/Carousel/renderCardHighlight.js +1 -1
  73. package/lib/components/Carousel/renderCardHighlight.js.map +1 -1
  74. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  75. package/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  76. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  77. package/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  78. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js +2 -2
  79. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCard.js.map +1 -1
  80. package/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
  81. package/lib/components/Depository/Depository.js +3 -2
  82. package/lib/components/Depository/Depository.js.map +1 -1
  83. package/lib/components/Depository/DepositoryItem.js +3 -3
  84. package/lib/components/Depository/DepositoryItem.js.map +1 -1
  85. package/lib/components/Depository/useDepository.d.ts +1 -1
  86. package/lib/components/InvestmentInfo/InvestmentInfo.js +1 -1
  87. package/lib/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  88. package/lib/components/ProductTile/ProductTile.js +1 -1
  89. package/lib/components/ProductTile/ProductTile.js.map +1 -1
  90. package/lib/components/Tile/Tile.fixture.d.ts +1 -1
  91. package/lib/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +3 -5
  92. package/lib/ui-kit/BaseProductTile/BaseProductTile.js +2 -2
  93. package/lib/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  94. package/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +6 -8
  95. package/lib/ui-kit/BaseTile/BaseTile.d.ts +1 -1
  96. package/lib/ui-kit/BaseTile/BaseTile.js +8 -5
  97. package/lib/ui-kit/BaseTile/BaseTile.js.map +1 -1
  98. package/lib/ui-kit/Button/ArrowButton.js +3 -2
  99. package/lib/ui-kit/Button/ArrowButton.js.map +1 -1
  100. package/lib/ui-kit/CookiePopup/CookiePopup.js +1 -1
  101. package/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  102. package/lib/ui-kit/InputRange/renderRangeWithTicks.js +2 -1
  103. package/lib/ui-kit/InputRange/renderRangeWithTicks.js.map +1 -1
  104. package/lib/ui-kit/Pagination/PageSizeSelector.d.ts +7 -0
  105. package/lib/ui-kit/Pagination/PageSizeSelector.js +9 -0
  106. package/lib/ui-kit/Pagination/PageSizeSelector.js.map +1 -0
  107. package/lib/ui-kit/Pagination/Pagination.d.ts +3 -2
  108. package/lib/ui-kit/Pagination/Pagination.js +3 -26
  109. package/lib/ui-kit/Pagination/Pagination.js.map +1 -1
  110. package/lib/ui-kit/Pagination/PaginationContainer.d.ts +7 -0
  111. package/lib/ui-kit/Pagination/PaginationContainer.js +28 -0
  112. package/lib/ui-kit/Pagination/PaginationContainer.js.map +1 -0
  113. package/lib/ui-kit/Pagination/paginationBlockStyle.d.ts +1 -0
  114. package/lib/ui-kit/Pagination/paginationBlockStyle.js +2 -0
  115. package/lib/ui-kit/Pagination/paginationBlockStyle.js.map +1 -0
  116. package/lib/ui-kit/Pagination/renderPages.d.ts +2 -2
  117. package/lib/ui-kit/Pagination/renderPages.js +1 -1
  118. package/lib/ui-kit/Pagination/renderPages.js.map +1 -1
  119. package/lib/ui-kit/Select/Select.js +1 -1
  120. package/lib/ui-kit/Select/Select.js.map +1 -1
  121. package/lib/ui-kit/Select/SelectPopup.js +1 -1
  122. package/lib/ui-kit/Select/SelectPopup.js.map +1 -1
  123. package/lib/ui-kit/YandexMap/renderSearchField.js +1 -1
  124. package/lib/ui-kit/YandexMap/renderSearchField.js.map +1 -1
  125. package/lib/utils/formatDate.d.ts +1 -0
  126. package/lib/utils/formatDate.js +2 -0
  127. package/lib/utils/formatDate.js.map +1 -0
  128. package/mobile/bundle/bundle.umd.js +20 -17
  129. package/mobile/bundle/bundle.umd.min.js +1 -1
  130. package/mobile/bundle/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
  131. package/mobile/bundle/components/Depository/useDepository.d.ts +1 -1
  132. package/mobile/bundle/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +3 -5
  133. package/mobile/bundle/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +6 -8
  134. package/mobile/bundle/ui-kit/BaseTile/BaseTile.d.ts +1 -1
  135. package/mobile/bundle/ui-kit/Pagination/PageSizeSelector.d.ts +7 -0
  136. package/mobile/bundle/ui-kit/Pagination/Pagination.d.ts +3 -2
  137. package/mobile/bundle/ui-kit/Pagination/PaginationContainer.d.ts +7 -0
  138. package/mobile/bundle/ui-kit/Pagination/paginationBlockStyle.d.ts +1 -0
  139. package/mobile/bundle/ui-kit/Pagination/renderPages.d.ts +2 -2
  140. package/mobile/bundle/utils/formatDate.d.ts +1 -0
  141. package/mobile/dist/components/Carousel/renderCardHighlight.js +1 -1
  142. package/mobile/dist/components/Carousel/renderCardHighlight.js.map +1 -1
  143. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  144. package/mobile/dist/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  145. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  146. package/mobile/dist/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  147. package/mobile/dist/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
  148. package/mobile/dist/components/Depository/Depository.js +3 -2
  149. package/mobile/dist/components/Depository/Depository.js.map +1 -1
  150. package/mobile/dist/components/Depository/DepositoryItem.js +3 -3
  151. package/mobile/dist/components/Depository/DepositoryItem.js.map +1 -1
  152. package/mobile/dist/components/Depository/useDepository.d.ts +1 -1
  153. package/mobile/dist/components/InvestmentInfo/InvestmentInfo.js +1 -1
  154. package/mobile/dist/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  155. package/mobile/dist/components/ProductTile/ProductTile.js +1 -1
  156. package/mobile/dist/components/ProductTile/ProductTile.js.map +1 -1
  157. package/mobile/dist/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +3 -5
  158. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTile.js +2 -2
  159. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  160. package/mobile/dist/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +6 -8
  161. package/mobile/dist/ui-kit/BaseTile/BaseTile.d.ts +1 -1
  162. package/mobile/dist/ui-kit/BaseTile/BaseTile.js +8 -5
  163. package/mobile/dist/ui-kit/BaseTile/BaseTile.js.map +1 -1
  164. package/mobile/dist/ui-kit/Button/ArrowButton.js +3 -2
  165. package/mobile/dist/ui-kit/Button/ArrowButton.js.map +1 -1
  166. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js +1 -1
  167. package/mobile/dist/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  168. package/mobile/dist/ui-kit/InputRange/renderRangeWithTicks.js +2 -1
  169. package/mobile/dist/ui-kit/InputRange/renderRangeWithTicks.js.map +1 -1
  170. package/mobile/dist/ui-kit/Pagination/PageSizeSelector.d.ts +7 -0
  171. package/mobile/dist/ui-kit/Pagination/PageSizeSelector.js +12 -0
  172. package/mobile/dist/ui-kit/Pagination/PageSizeSelector.js.map +1 -0
  173. package/mobile/dist/ui-kit/Pagination/Pagination.d.ts +3 -2
  174. package/mobile/dist/ui-kit/Pagination/Pagination.js +4 -27
  175. package/mobile/dist/ui-kit/Pagination/Pagination.js.map +1 -1
  176. package/mobile/dist/ui-kit/Pagination/PaginationContainer.d.ts +7 -0
  177. package/mobile/dist/ui-kit/Pagination/PaginationContainer.js +31 -0
  178. package/mobile/dist/ui-kit/Pagination/PaginationContainer.js.map +1 -0
  179. package/mobile/dist/ui-kit/Pagination/paginationBlockStyle.d.ts +1 -0
  180. package/mobile/dist/ui-kit/Pagination/paginationBlockStyle.js +4 -0
  181. package/mobile/dist/ui-kit/Pagination/paginationBlockStyle.js.map +1 -0
  182. package/mobile/dist/ui-kit/Pagination/renderPages.d.ts +2 -2
  183. package/mobile/dist/ui-kit/Pagination/renderPages.js +2 -2
  184. package/mobile/dist/ui-kit/Pagination/renderPages.js.map +1 -1
  185. package/mobile/dist/ui-kit/Select/Select.js +1 -1
  186. package/mobile/dist/ui-kit/Select/Select.js.map +1 -1
  187. package/mobile/dist/ui-kit/Select/SelectPopup.js +1 -1
  188. package/mobile/dist/ui-kit/Select/SelectPopup.js.map +1 -1
  189. package/mobile/dist/ui-kit/YandexMap/renderSearchField.js +1 -1
  190. package/mobile/dist/ui-kit/YandexMap/renderSearchField.js.map +1 -1
  191. package/mobile/dist/utils/formatDate.d.ts +1 -0
  192. package/mobile/dist/utils/formatDate.js +5 -0
  193. package/mobile/dist/utils/formatDate.js.map +1 -0
  194. package/mobile/lib/common.css +1 -1
  195. package/mobile/lib/components/Carousel/renderCardHighlight.js +1 -1
  196. package/mobile/lib/components/Carousel/renderCardHighlight.js.map +1 -1
  197. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js +2 -2
  198. package/mobile/lib/components/CarouselCatalogCard/CarouselCatalogCard.js.map +1 -1
  199. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js +1 -1
  200. package/mobile/lib/components/CarouselInvestmentCard/CarouselInvestmentCard.js.map +1 -1
  201. package/mobile/lib/components/CarouselRecommendationCard/CarouselRecommendationCardContent.d.ts +2 -0
  202. package/mobile/lib/components/Depository/Depository.js +3 -2
  203. package/mobile/lib/components/Depository/Depository.js.map +1 -1
  204. package/mobile/lib/components/Depository/DepositoryItem.js +3 -3
  205. package/mobile/lib/components/Depository/DepositoryItem.js.map +1 -1
  206. package/mobile/lib/components/Depository/useDepository.d.ts +1 -1
  207. package/mobile/lib/components/InvestmentInfo/InvestmentInfo.js +1 -1
  208. package/mobile/lib/components/InvestmentInfo/InvestmentInfo.js.map +1 -1
  209. package/mobile/lib/components/ProductTile/ProductTile.js +1 -1
  210. package/mobile/lib/components/ProductTile/ProductTile.js.map +1 -1
  211. package/mobile/lib/ui-kit/BaseFiltration/BaseFiltrationContent.d.ts +3 -5
  212. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTile.js +2 -2
  213. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTile.js.map +1 -1
  214. package/mobile/lib/ui-kit/BaseProductTile/BaseProductTileContent.d.ts +6 -8
  215. package/mobile/lib/ui-kit/BaseTile/BaseTile.d.ts +1 -1
  216. package/mobile/lib/ui-kit/BaseTile/BaseTile.js +8 -5
  217. package/mobile/lib/ui-kit/BaseTile/BaseTile.js.map +1 -1
  218. package/mobile/lib/ui-kit/Button/ArrowButton.js +3 -2
  219. package/mobile/lib/ui-kit/Button/ArrowButton.js.map +1 -1
  220. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js +1 -1
  221. package/mobile/lib/ui-kit/CookiePopup/CookiePopup.js.map +1 -1
  222. package/mobile/lib/ui-kit/InputRange/renderRangeWithTicks.js +2 -1
  223. package/mobile/lib/ui-kit/InputRange/renderRangeWithTicks.js.map +1 -1
  224. package/mobile/lib/ui-kit/Pagination/PageSizeSelector.d.ts +7 -0
  225. package/mobile/lib/ui-kit/Pagination/PageSizeSelector.js +9 -0
  226. package/mobile/lib/ui-kit/Pagination/PageSizeSelector.js.map +1 -0
  227. package/mobile/lib/ui-kit/Pagination/Pagination.d.ts +3 -2
  228. package/mobile/lib/ui-kit/Pagination/Pagination.js +3 -26
  229. package/mobile/lib/ui-kit/Pagination/Pagination.js.map +1 -1
  230. package/mobile/lib/ui-kit/Pagination/PaginationContainer.d.ts +7 -0
  231. package/mobile/lib/ui-kit/Pagination/PaginationContainer.js +28 -0
  232. package/mobile/lib/ui-kit/Pagination/PaginationContainer.js.map +1 -0
  233. package/mobile/lib/ui-kit/Pagination/paginationBlockStyle.d.ts +1 -0
  234. package/mobile/lib/ui-kit/Pagination/paginationBlockStyle.js +2 -0
  235. package/mobile/lib/ui-kit/Pagination/paginationBlockStyle.js.map +1 -0
  236. package/mobile/lib/ui-kit/Pagination/renderPages.d.ts +2 -2
  237. package/mobile/lib/ui-kit/Pagination/renderPages.js +1 -1
  238. package/mobile/lib/ui-kit/Pagination/renderPages.js.map +1 -1
  239. package/mobile/lib/ui-kit/Select/Select.js +1 -1
  240. package/mobile/lib/ui-kit/Select/Select.js.map +1 -1
  241. package/mobile/lib/ui-kit/Select/SelectPopup.js +1 -1
  242. package/mobile/lib/ui-kit/Select/SelectPopup.js.map +1 -1
  243. package/mobile/lib/ui-kit/YandexMap/renderSearchField.js +1 -1
  244. package/mobile/lib/ui-kit/YandexMap/renderSearchField.js.map +1 -1
  245. package/mobile/lib/utils/formatDate.d.ts +1 -0
  246. package/mobile/lib/utils/formatDate.js +2 -0
  247. package/mobile/lib/utils/formatDate.js.map +1 -0
  248. package/mobile/src/components/Carousel/renderCardHighlight.tsx +1 -1
  249. package/mobile/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +2 -2
  250. package/mobile/src/components/CarouselInvestmentCard/CarouselInvestmentCard.tsx +1 -1
  251. package/mobile/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -0
  252. package/mobile/src/components/Depository/Depository.tsx +5 -2
  253. package/mobile/src/components/Depository/DepositoryItem.tsx +3 -3
  254. package/mobile/src/components/Depository/useDepository.ts +1 -1
  255. package/mobile/src/components/InvestmentInfo/InvestmentInfo.tsx +1 -1
  256. package/mobile/src/components/ProductTile/ProductTile.example.json +1 -1
  257. package/mobile/src/components/ProductTile/ProductTile.tsx +1 -1
  258. package/mobile/src/ui-kit/BaseFiltration/BaseFiltrationContent.ts +3 -5
  259. package/mobile/src/ui-kit/BaseProductTile/BaseProductTile.tsx +6 -5
  260. package/mobile/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +7 -8
  261. package/mobile/src/ui-kit/BaseTile/BaseTile.tsx +24 -18
  262. package/mobile/src/ui-kit/Button/ArrowButton.tsx +6 -3
  263. package/mobile/src/ui-kit/CookiePopup/CookiePopup.tsx +1 -1
  264. package/mobile/src/ui-kit/InputRange/renderRangeWithTicks.tsx +5 -3
  265. package/mobile/src/ui-kit/Pagination/PageSizeSelector.tsx +27 -0
  266. package/mobile/src/ui-kit/Pagination/Pagination.tsx +26 -80
  267. package/mobile/src/ui-kit/Pagination/PaginationContainer.tsx +87 -0
  268. package/mobile/src/ui-kit/Pagination/paginationBlockStyle.ts +2 -0
  269. package/mobile/src/ui-kit/Pagination/renderPages.tsx +3 -2
  270. package/mobile/src/ui-kit/Select/Select.tsx +2 -2
  271. package/mobile/src/ui-kit/Select/SelectPopup.tsx +2 -2
  272. package/mobile/src/ui-kit/YandexMap/renderSearchField.tsx +1 -1
  273. package/mobile/src/utils/formatDate.ts +1 -0
  274. package/package.json +1 -1
  275. package/src/components/Carousel/renderCardHighlight.tsx +1 -1
  276. package/src/components/CarouselCatalogCard/CarouselCatalogCard.tsx +2 -2
  277. package/src/components/CarouselInvestmentCard/CarouselInvestmentCard.tsx +1 -1
  278. package/src/components/CarouselRecommendationCard/CarouselRecommendationCard.tsx +3 -1
  279. package/src/components/CarouselRecommendationCard/CarouselRecommendationCardContent.ts +2 -0
  280. package/src/components/Depository/Depository.fixture.tsx +2 -0
  281. package/src/components/Depository/Depository.tsx +5 -2
  282. package/src/components/Depository/DepositoryItem.tsx +3 -3
  283. package/src/components/Depository/useDepository.ts +1 -1
  284. package/src/components/InvestmentInfo/InvestmentInfo.tsx +1 -1
  285. package/src/components/ProductBlock/ProductBlock.fixture.mobile.tsx +1 -1
  286. package/src/components/ProductTile/ProductTile.example.json +1 -1
  287. package/src/components/ProductTile/ProductTile.tsx +1 -1
  288. package/src/components/Tile/Tile.fixture.tsx +1 -2
  289. package/src/ui-kit/BaseFiltration/BaseFiltrationContent.ts +3 -5
  290. package/src/ui-kit/BaseProductTile/BaseProductTile.tsx +6 -5
  291. package/src/ui-kit/BaseProductTile/BaseProductTileContent.ts +7 -8
  292. package/src/ui-kit/BaseTile/BaseTile.tsx +24 -18
  293. package/src/ui-kit/Button/ArrowButton.tsx +6 -3
  294. package/src/ui-kit/CookiePopup/CookiePopup.tsx +1 -1
  295. package/src/ui-kit/InputRange/renderRangeWithTicks.tsx +5 -3
  296. package/src/ui-kit/Pagination/PageSizeSelector.tsx +27 -0
  297. package/src/ui-kit/Pagination/Pagination.tsx +26 -80
  298. package/src/ui-kit/Pagination/PaginationContainer.tsx +87 -0
  299. package/src/ui-kit/Pagination/paginationBlockStyle.ts +2 -0
  300. package/src/ui-kit/Pagination/renderPages.tsx +3 -2
  301. package/src/ui-kit/Select/Select.tsx +2 -2
  302. package/src/ui-kit/Select/SelectPopup.tsx +2 -2
  303. package/src/ui-kit/YandexMap/renderSearchField.tsx +1 -1
  304. package/src/utils/formatDate.ts +1 -0
  305. package/tailwind.config.cjs +21 -1
  306. package/bundle/utils/convertTimestampToDate.d.ts +0 -1
  307. package/dist/utils/convertTimestampToDate.d.ts +0 -1
  308. package/dist/utils/convertTimestampToDate.js +0 -16
  309. package/dist/utils/convertTimestampToDate.js.map +0 -1
  310. package/lib/utils/convertTimestampToDate.d.ts +0 -1
  311. package/lib/utils/convertTimestampToDate.js +0 -13
  312. package/lib/utils/convertTimestampToDate.js.map +0 -1
  313. package/mobile/bundle/utils/convertTimestampToDate.d.ts +0 -1
  314. package/mobile/dist/utils/convertTimestampToDate.d.ts +0 -1
  315. package/mobile/dist/utils/convertTimestampToDate.js +0 -16
  316. package/mobile/dist/utils/convertTimestampToDate.js.map +0 -1
  317. package/mobile/lib/utils/convertTimestampToDate.d.ts +0 -1
  318. package/mobile/lib/utils/convertTimestampToDate.js +0 -13
  319. package/mobile/lib/utils/convertTimestampToDate.js.map +0 -1
  320. package/mobile/src/utils/convertTimestampToDate.ts +0 -15
  321. package/src/utils/convertTimestampToDate.ts +0 -15
@@ -1,8 +1,8 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import type { UniBlockProps } from '../../model/JSXBlock';
3
3
  import type { ProductColorVersion } from '../../model/ProductColorVersion';
4
- import { BlockWrapper } from '../../ui-kit/BlockWrapper';
5
4
  import { BaseTile } from '../../ui-kit/BaseTile/BaseTile';
5
+ import { BlockWrapper } from '../../ui-kit/BlockWrapper';
6
6
  import { renderButtonsSection } from '../../ui-kit/Button/renderButtonsSection';
7
7
  import { Img } from '../../ui-kit/Img/Img';
8
8
  import { Text } from '../../ui-kit/Text/Text';
@@ -54,7 +54,7 @@ export const CarouselCatalogCard = JSX<CarouselCatalogCardProps>(
54
54
  <Img className="flex justify-center align-center mb-xl" image={image} />
55
55
  ) : null
56
56
  }
57
- buttons={renderButtonsSection([button], { buttonClassName: 'w-full mt-lg' })}
57
+ buttons={renderButtonsSection([button], { buttonClassName: 'w-full self-end' })}
58
58
  >
59
59
  {colors?.length ? (
60
60
  <div className="flex text-secondary-text mb-m">
@@ -39,7 +39,7 @@ export const CarouselInvestmentCard = JSX<CarouselInvestmentCardProps>(
39
39
  title={
40
40
  title ? <Heading headingType="h4" as="h3" className="mb-m z-10" title={title} /> : null
41
41
  }
42
- backImage={image?.src ? <Img image={image} /> : null}
42
+ rightImage={image?.src ? <Img image={image} /> : null}
43
43
  >
44
44
  <div className="flex justify-between mb-m">
45
45
  {description ? (
@@ -16,4 +16,6 @@ export type CarouselRecommendationCardContent = UniBlockContent &
16
16
  AlignProps & {
17
17
  /** @title Соц сети */
18
18
  socialMedia?: ButtonContent[];
19
+ /** @title Изображение всегда справа */
20
+ isImageAlwaysOnRight?: boolean;
19
21
  };
@@ -15,11 +15,12 @@ interface DepositoryProps extends DepositoryContent, UniBlockProps {}
15
15
  export const Depository: JSXBlock<DepositoryProps> = JSX<DepositoryProps>(
16
16
  ({ className, ...rest }) => {
17
17
  const [currentPage, setCurrentPage] = useState(0);
18
- const [itemCount] = useState(DEFAULT_ITEMS_COUNT);
18
+ const [itemCount, setItemCount] = useState(DEFAULT_ITEMS_COUNT);
19
19
 
20
20
  const { totalPages = 0, items } = useDepository(itemCount, currentPage);
21
21
 
22
- const handleChangePage = useCallback((page) => setCurrentPage(page - 1), []);
22
+ const handleChangePage = useCallback((page: number) => setCurrentPage(page - 1), []);
23
+ const handleItemCountChange = useCallback((count: number) => setItemCount(count), []);
23
24
 
24
25
  return (
25
26
  <BlockWrapper className={style(className, 'container p-4xl')} {...rest}>
@@ -35,6 +36,8 @@ export const Depository: JSXBlock<DepositoryProps> = JSX<DepositoryProps>(
35
36
  currentPage={currentPage + 1}
36
37
  onPageChange={handleChangePage}
37
38
  totalPages={totalPages + 1}
39
+ itemCount={itemCount}
40
+ onItemCountChange={handleItemCountChange}
38
41
  />
39
42
  </div>
40
43
  </BlockWrapper>
@@ -1,15 +1,15 @@
1
1
  import { useLink } from '../../hooks/useLink';
2
- import { convertTimestampToDate } from '../../utils/convertTimestampToDate';
2
+ import { formatDate } from '../../utils/formatDate';
3
3
  import { DepositoryDataItem } from './useDepository';
4
4
 
5
- export const DepositoryItem = ({ title, timestamp = 0, publicId }: DepositoryDataItem) => {
5
+ export const DepositoryItem = ({ title, timestamp = '', publicId }: DepositoryDataItem) => {
6
6
  const link = useLink();
7
7
  const { href } = link({ href: `/api/v1/depository/${publicId}/file` });
8
8
 
9
9
  return (
10
10
  <div className="grid grid-cols-12 py-lg border-gray border-opacity-50 border-b" key={publicId}>
11
11
  <div className="col-span-2 text-m">
12
- <span>{convertTimestampToDate(timestamp)}</span>
12
+ <span>{formatDate(timestamp)}</span>
13
13
  </div>
14
14
  <div className="col-span-10 text-h6 hover:text-primary-active">
15
15
  <a href={href} download aria-label="Скачать">
@@ -3,7 +3,7 @@ import { fetchJSONUnsafe } from '../../utils/fetchJSON';
3
3
 
4
4
  export interface DepositoryDataItem {
5
5
  publicId?: number;
6
- timestamp?: number;
6
+ timestamp?: string;
7
7
  title?: number;
8
8
  }
9
9
 
@@ -44,7 +44,7 @@ export const InvestmentInfo = JSX<InvestmentInfoProps>((props) => {
44
44
  }
45
45
 
46
46
  return (
47
- <BlockWrapper className={className} {...rest}>
47
+ <BlockWrapper className={className} defaultPadding="p-4xl" {...rest}>
48
48
  <div className="container text-m font-light space-y-4xl">
49
49
  {columns?.length ? (
50
50
  <div>
@@ -37,7 +37,7 @@
37
37
  "imageOptions": {
38
38
  "directionRight": true,
39
39
  "imageAlign": "end",
40
- "isBackground": true
40
+ "isSecondary": true
41
41
  }
42
42
  }
43
43
  }
@@ -24,7 +24,7 @@ export const ProductTile = JSX<ProductTileProps>(
24
24
  padding={padding}
25
25
  headlineVersion={headlineVersion}
26
26
  isTabularBenefits={isTabularBenefits}
27
- imageOptions={{ isBackground: true, ...imageOptions }}
27
+ imageOptions={{ isImageSecondary: true, ...imageOptions }}
28
28
  {...rest}
29
29
  >
30
30
  {additionalDescription ? (
@@ -1,5 +1,5 @@
1
1
  import type { ButtonVersion } from '../../model/ButtonVersion';
2
- import type { DescriptionProps, TitleProps } from '../../model/HeadlineType';
2
+ import type { DescriptionProps, LabelProps, TitleProps } from '../../model/HeadlineType';
3
3
 
4
4
  /**
5
5
  * @title Заголовок
@@ -99,9 +99,7 @@ export type ResetButton = {
99
99
  */
100
100
  export type NotFound = TitleProps & DescriptionProps;
101
101
 
102
- export interface BaseFiltrationInnerContent {
103
- /** @title Название сворачивающейся кнопки */
104
- label?: string;
102
+ export type BaseFiltrationInnerContent = LabelProps & {
105
103
  /**
106
104
  * @title Количество отображаемых предметов
107
105
  * @minimum 1
@@ -109,4 +107,4 @@ export interface BaseFiltrationInnerContent {
109
107
  topItemsCount?: number;
110
108
  resetButton?: ResetButton;
111
109
  notFound?: NotFound;
112
- }
110
+ };
@@ -1,5 +1,6 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { Headline } from '../../components/Headline/Headline';
3
+ import type { HeadlineVersion } from '../../model/HeadlineType';
3
4
  import type { UniBlockProps } from '../../model/JSXBlock';
4
5
  import type { VNode } from '../../model/VNode';
5
6
  import { BaseTile } from '../BaseTile/BaseTile';
@@ -9,9 +10,8 @@ import { Img } from '../Img/Img';
9
10
  import { List } from '../List/List';
10
11
  import { RichText } from '../RichText/RichText';
11
12
  import { Tags } from '../Tags/Tags';
12
- import type { BaseProductTileContent } from './BaseProductTileContent';
13
- import type { HeadlineVersion } from '../../model/HeadlineType';
14
13
  import type { TextAlign } from '../Text/TextProps';
14
+ import type { BaseProductTileContent } from './BaseProductTileContent';
15
15
 
16
16
  interface BaseProductTileProps extends UniBlockProps, BaseProductTileContent {}
17
17
 
@@ -36,10 +36,10 @@ export const BaseProductTile = JSX<BaseProductTileProps>(
36
36
  buttons,
37
37
  image,
38
38
  imageOptions: {
39
- imageAlign = 'end',
39
+ imageAlign = 'center',
40
40
  directionRight = true,
41
- isBackground,
42
41
  isImageAlwaysOnRight,
42
+ isImageSecondary = false,
43
43
  } = {},
44
44
  children,
45
45
  }) => {
@@ -55,7 +55,8 @@ export const BaseProductTile = JSX<BaseProductTileProps>(
55
55
  padding={padding}
56
56
  defaultPadding={defaultPadding}
57
57
  {...(isFullWidthTitle ? { insetTitle: headline } : { title: headline })}
58
- {...(isBackground ? { backImage: img } : leftOrRightImage(img, directionRight))}
58
+ {...leftOrRightImage(img, directionRight)}
59
+ isImageSecondary={isImageSecondary}
59
60
  imageAlign={imageAlign}
60
61
  isImageAlwaysOnRight={isImageAlwaysOnRight}
61
62
  buttons={renderButtonsSection(buttons)}
@@ -1,12 +1,12 @@
1
1
  import type { Align } from '../../model/Align';
2
2
  import type { BulletsProps } from '../../model/Bullets';
3
- import type { HeadlineProps } from '../../model/HeadlineType';
3
+ import type { HeadlineProps, LabelProps } from '../../model/HeadlineType';
4
+ import type { BenefitsListContent } from '../BenefitsList/BenefitsListContent';
5
+ import type { ButtonsSectionContent } from '../Button/ButtonsSectionContent';
4
6
  import type { ImageContent } from '../Img/ImgProps';
5
7
  import type { ListContent } from '../List/ListContent';
6
8
  import type { RichTextProps } from '../RichText/RichTextProps';
7
9
  import type { TagsContent } from '../Tags/TagsContent';
8
- import type { BenefitsListContent } from '../BenefitsList/BenefitsListContent';
9
- import type { ButtonsSectionContent } from '../Button/ButtonsSectionContent';
10
10
 
11
11
  /** @title Доп. настройки картинки */
12
12
  export interface TileImageOptions {
@@ -14,8 +14,8 @@ export interface TileImageOptions {
14
14
  directionRight?: boolean;
15
15
  /** @title Выравнивание изображения */
16
16
  imageAlign?: Align;
17
- /** @title Фоновое изображение */
18
- isBackground?: boolean;
17
+ /** @title Второстепенное изображение */
18
+ isImageSecondary?: boolean;
19
19
  /** @title Изображение всегда справа */
20
20
  isImageAlwaysOnRight?: boolean;
21
21
  }
@@ -27,9 +27,8 @@ export type BaseProductTileContent = HeadlineProps &
27
27
  BulletsProps &
28
28
  TagsContent &
29
29
  ButtonsSectionContent &
30
- ImageContent & {
31
- /** @title Лейбл (моб.) */
32
- label?: string;
30
+ ImageContent &
31
+ LabelProps & {
33
32
  imageOptions?: TileImageOptions;
34
33
  /** @title Заголовок во всю ширину */
35
34
  isFullWidthTitle?: boolean;
@@ -10,9 +10,9 @@ interface BaseTileProps extends UniBlockProps {
10
10
  leftImage?: VNode;
11
11
  rightImage?: VNode;
12
12
  imageAlign?: Align;
13
- backImage?: VNode;
14
13
  buttons?: VNode;
15
14
  isImageAlwaysOnRight?: boolean;
15
+ isImageSecondary?: boolean;
16
16
  }
17
17
 
18
18
  const imageAlignmentMap: Record<Align, string> = {
@@ -32,8 +32,8 @@ export const BaseTile = JSX<BaseTileProps>(
32
32
  leftImage,
33
33
  rightImage,
34
34
  imageAlign,
35
- backImage,
36
35
  isImageAlwaysOnRight = false,
36
+ isImageSecondary,
37
37
  children,
38
38
  }) => (
39
39
  <div
@@ -46,35 +46,41 @@ export const BaseTile = JSX<BaseTileProps>(
46
46
  {title ? <div className="relative">{title}</div> : null}
47
47
  <div
48
48
  className={style(
49
- 'grow relative flex justify-around @lg:justify-between items-stretch gap-3xl',
50
- isImageAlwaysOnRight ? 'flex-row' : 'flex-col-reverse @lg:flex-row',
49
+ 'grow relative flex flex-col-reverse @xl:flex-row justify-around @xl:justify-between items-stretch gap-3xl',
51
50
  )}
52
51
  >
53
52
  {renderImageContainer(leftImage, { imageAlign })}
54
53
  <div
55
54
  className={style(
56
- 'flex flex-col gap-3xl max-w-[600px] @xl:max-w-[728px]',
55
+ 'grid gap-3xl',
56
+ rightImage ? '@xl:grid-cols-2' : '',
57
57
  leftImage ? '' : 'grow',
58
58
  )}
59
59
  >
60
- {insetTitle}
61
- <div className="grow">{children}</div>
62
- {backImage ? (
63
- <div className="justify-center mx-auto sm:absolute sm:-z-10 sm:-bottom-4 sm:-right-4">
64
- {backImage}
65
- </div>
66
- ) : null}
67
- {buttons}
60
+ <div className="grow grid gap-3xl row-span-1">
61
+ {insetTitle}
62
+ {children}
63
+ </div>
64
+ {renderImageContainer(rightImage, {
65
+ className: style(
66
+ '@xl:justify-self-end row-start-1 @xl:row-end-3 @xl:col-start-2',
67
+ positionStyle(isImageAlwaysOnRight),
68
+ isImageSecondary ? 'hidden @xl:block' : '',
69
+ ),
70
+ imageAlign,
71
+ })}
72
+ <div className="self-end">{buttons}</div>
68
73
  </div>
69
- {renderImageContainer(rightImage, {
70
- className: isImageAlwaysOnRight ? '' : '@xl:order-1',
71
- imageAlign,
72
- })}
73
74
  </div>
74
75
  </div>
75
76
  ),
76
77
  );
77
78
 
79
+ const positionStyle = (isImageAlwaysOnRight: boolean) =>
80
+ isImageAlwaysOnRight
81
+ ? 'ml-xl justify-self-end row-start-1 row-end-3 col-start-2 self-center'
82
+ : '';
83
+
78
84
  const renderImageContainer = (
79
85
  image: VNode | undefined,
80
86
  { className, imageAlign }: { className?: string; imageAlign?: Align },
@@ -82,7 +88,7 @@ const renderImageContainer = (
82
88
  image ? (
83
89
  <div
84
90
  className={style(
85
- 'md:flex-shrink-0 self-center',
91
+ 'shrink-1/2 justify-self-center',
86
92
  imageAlign && imageAlignmentMap[imageAlign],
87
93
  className,
88
94
  )}
@@ -1,4 +1,5 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
+ import { style } from '../../utils/style';
2
3
  import { Img } from '../Img/Img';
3
4
  import { Button } from './Button';
4
5
  import type { ButtonProps } from './ButtonProps';
@@ -6,11 +7,13 @@ import type { ButtonProps } from './ButtonProps';
6
7
  export const ArrowButton = JSX<ButtonProps>(({ className, disabled, ...rest }) => (
7
8
  <Button
8
9
  rounded
9
- className={`group/btn shadow-[0_4px_25px_rgba(0,0,0,0.07)] w-12 h-12 min-h-12 max-h-12 flex items-center justify-center ${
10
+ className={style(
11
+ 'group/btn w-12 h-12 min-h-12 max-h-12 flex items-center justify-center shadow-main-black',
10
12
  disabled
11
13
  ? 'bg-secondary-light text-secondary-text'
12
- : 'bg-white text-primary-text hover:text-primary-main'
13
- } ${className || ''}`}
14
+ : 'bg-white text-primary-text hover:text-primary-main',
15
+ className || '',
16
+ )}
14
17
  disabled={disabled}
15
18
  {...rest}
16
19
  >
@@ -36,7 +36,7 @@ export const CookiePopup = JSX<CookiePopupProps>(({ termLink, personalDataPolicy
36
36
 
37
37
  return opened ? (
38
38
  <div className="container fixed left-0 right-0 bottom-0 z-50">
39
- <div className="bg-white m-xl p-xl rounded-md flex sm:items-center shadow-[0_4px_25px_rgba(0,0,0,0.07)]">
39
+ <div className="bg-white m-xl p-xl rounded-md flex sm:items-center shadow-main-black">
40
40
  <div className="sm:flex-1">
41
41
  <Paragraph size="text-s" font="font-light" color="text-primary-text">
42
42
  АО «Россельхозбанк» использует
@@ -1,3 +1,4 @@
1
+ import { style } from '../../utils/style';
1
2
  import { parseDecimal } from './parseDecimal';
2
3
 
3
4
  interface RangeWithTicksProps {
@@ -32,9 +33,10 @@ export function renderRangeWithTicks({
32
33
  {list.map((_, i) => (
33
34
  <div
34
35
  key={String(i)}
35
- className={`w-2 h-2 rounded-full ${
36
- rangeValue <= i || disabled ? 'bg-gray' : 'bg-primary-main'
37
- }`}
36
+ className={style(
37
+ 'w-2 h-2 rounded-full',
38
+ rangeValue <= i || disabled ? 'bg-gray' : 'bg-primary-main',
39
+ )}
38
40
  />
39
41
  ))}
40
42
  </div>
@@ -0,0 +1,27 @@
1
+ import { useCallback } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { Select } from '../Select/Select';
3
+
4
+ const DEFAULT_OPTIONS = [{ key: '10' }, { key: '50' }, { key: '100' }];
5
+
6
+ interface PageSizeSelectorProps {
7
+ itemCount: number;
8
+ onItemCountChange: (count: number) => void;
9
+ }
10
+
11
+ export const PageSizeSelector = ({ itemCount, onItemCountChange }: PageSizeSelectorProps) => {
12
+ const handleItemCountChange = useCallback(
13
+ ({ key }: { key: string }) => onItemCountChange(Number(key)),
14
+ [],
15
+ );
16
+
17
+ return (
18
+ <div className="flex items-center gap-s">
19
+ <span>Показать по</span>
20
+ <Select
21
+ onChange={handleItemCountChange}
22
+ value={{ key: String(itemCount) }}
23
+ options={DEFAULT_OPTIONS}
24
+ />
25
+ </div>
26
+ );
27
+ };
@@ -1,87 +1,33 @@
1
- import { useCallback, useMemo } from '@redneckz/uni-jsx/lib/hooks';
2
- import { Icon } from '../Icon/Icon';
3
- import { renderPages } from './renderPages';
4
-
5
- export const paginationBlockStyle =
6
- 'py-m px-lg rounded-md cursor-pointer hover:bg-green-more-dark hover:text-white';
1
+ import { PageSizeSelector } from './PageSizeSelector';
2
+ import { PaginationContainer } from './PaginationContainer';
7
3
 
8
4
  export interface PaginationProps {
9
5
  currentPage: number;
10
6
  onPageChange: (page: number) => void;
11
7
  totalPages: number;
8
+ itemCount?: number;
9
+ onItemCountChange?: (count: number) => void;
12
10
  }
13
11
 
14
- const ICON_SIZE = { width: '24', height: '24' };
15
-
16
- export const Pagination = ({ currentPage, onPageChange, totalPages }: PaginationProps) => {
17
- const handlePrevPage = useCallback(() => {
18
- if (currentPage > 1) {
19
- onPageChange(currentPage - 1);
20
- }
21
- }, [currentPage]);
22
-
23
- const handleNextPage = useCallback(() => {
24
- if (currentPage < totalPages - 1) {
25
- onPageChange(currentPage + 1);
26
- }
27
- }, [currentPage, totalPages]);
28
-
29
- const handleFirstPage = useCallback(() => onPageChange(1), []);
30
- const handleLastPage = useCallback(() => onPageChange(totalPages), [totalPages]);
31
-
32
- const pages = useMemo(
33
- () =>
34
- new Array(totalPages).fill({
35
- currentPage,
36
- onPageChange,
37
- totalPages,
38
- }),
39
- [totalPages, currentPage],
40
- );
41
-
42
- return (
43
- <div className="mt-3xl flex items-center select-none" role="navigation" aria-label="Пагинация">
44
- <div className="flex gap-m items-center">
45
- <div onClick={handlePrevPage}>
46
- <Icon
47
- name="ArrowLeftIcon"
48
- iconVersion="black"
49
- imageClassName={getIconStyle(currentPage === 1)}
50
- {...ICON_SIZE}
51
- />
52
- </div>
53
- <div className="flex gap-xs">
54
- {currentPage > 1 ? (
55
- <div onClick={handleFirstPage} className={paginationBlockStyle} aria-label="Страница 1">
56
- 1
57
- </div>
58
- ) : null}
59
- {currentPage > 4 ? <div className="py-m px-s">...</div> : null}
60
- {pages.map(renderPages)}
61
- {currentPage < totalPages - 3 ? <div className="py-m px-s">...</div> : null}
62
- {currentPage < totalPages ? (
63
- <div
64
- onClick={handleLastPage}
65
- className={paginationBlockStyle}
66
- aria-label={`Страница ${totalPages}}`}
67
- >
68
- {totalPages}
69
- </div>
70
- ) : null}
71
- </div>
72
- <div onClick={handleNextPage}>
73
- <Icon
74
- className="rotate-180"
75
- name="ArrowLeftIcon"
76
- iconVersion="black"
77
- imageClassName={getIconStyle(currentPage === totalPages)}
78
- {...ICON_SIZE}
79
- />
80
- </div>
81
- </div>
82
- </div>
83
- );
84
- };
85
-
86
- const getIconStyle = (condition: boolean) =>
87
- condition ? 'opacity-20' : 'cursor-pointer hover:opacity-60';
12
+ export const Pagination = ({
13
+ currentPage,
14
+ onPageChange,
15
+ totalPages,
16
+ itemCount,
17
+ onItemCountChange,
18
+ }: PaginationProps) => (
19
+ <div
20
+ className="mt-3xl flex justify-between items-center select-none"
21
+ role="navigation"
22
+ aria-label="Пагинация"
23
+ >
24
+ <PaginationContainer
25
+ currentPage={currentPage}
26
+ onPageChange={onPageChange}
27
+ totalPages={totalPages}
28
+ />
29
+ {itemCount && onItemCountChange ? (
30
+ <PageSizeSelector itemCount={itemCount} onItemCountChange={onItemCountChange} />
31
+ ) : null}
32
+ </div>
33
+ );
@@ -0,0 +1,87 @@
1
+ import { useCallback, useMemo } from '@redneckz/uni-jsx/lib/hooks';
2
+ import { Icon } from '../Icon/Icon';
3
+ import { paginationBlockStyle } from './paginationBlockStyle';
4
+ import { renderPages } from './renderPages';
5
+
6
+ const ICON_SIZE = { width: '24', height: '24' };
7
+
8
+ export interface PaginationContainerProps {
9
+ currentPage: number;
10
+ onPageChange: (page: number) => void;
11
+ totalPages: number;
12
+ }
13
+
14
+ export const PaginationContainer = ({
15
+ currentPage,
16
+ onPageChange,
17
+ totalPages,
18
+ }: PaginationContainerProps) => {
19
+ const pages = useMemo(
20
+ () =>
21
+ new Array(totalPages).fill({
22
+ currentPage,
23
+ onPageChange,
24
+ totalPages,
25
+ }),
26
+ [totalPages, currentPage],
27
+ );
28
+
29
+ const handlePrevPage = useCallback(() => {
30
+ if (currentPage > 1) {
31
+ onPageChange(currentPage - 1);
32
+ }
33
+ }, [currentPage]);
34
+
35
+ const handleNextPage = useCallback(() => {
36
+ if (currentPage < totalPages - 1) {
37
+ onPageChange(currentPage + 1);
38
+ }
39
+ }, [currentPage, totalPages]);
40
+
41
+ const handleFirstPage = useCallback(() => onPageChange(1), []);
42
+ const handleLastPage = useCallback(() => onPageChange(totalPages), [totalPages]);
43
+
44
+ return (
45
+ <div className="flex gap-m items-center">
46
+ <div onClick={handlePrevPage}>
47
+ <Icon
48
+ name="ArrowLeftIcon"
49
+ iconVersion="black"
50
+ imageClassName={getIconStyle(currentPage === 1)}
51
+ {...ICON_SIZE}
52
+ />
53
+ </div>
54
+ <div className="flex gap-xs">
55
+ {currentPage > 1 ? (
56
+ <div onClick={handleFirstPage} className={paginationBlockStyle} aria-label="Страница 1">
57
+ 1
58
+ </div>
59
+ ) : null}
60
+ {currentPage > 4 ? <div className="py-m px-s">...</div> : null}
61
+ {pages.map(renderPages)}
62
+ {currentPage < totalPages - 3 ? <div className="py-m px-s">...</div> : null}
63
+ {currentPage < totalPages ? (
64
+ <div
65
+ onClick={handleLastPage}
66
+ className={paginationBlockStyle}
67
+ aria-label={`Страница ${totalPages}}`}
68
+ >
69
+ {totalPages}
70
+ </div>
71
+ ) : null}
72
+ </div>
73
+ <div onClick={handleNextPage}>
74
+ <Icon
75
+ className="rotate-180"
76
+ name="ArrowLeftIcon"
77
+ iconVersion="black"
78
+ imageClassName={getIconStyle(currentPage === totalPages)}
79
+ {...ICON_SIZE}
80
+ />
81
+ </div>
82
+ </div>
83
+ );
84
+ };
85
+
86
+ const getIconStyle = (condition: boolean) =>
87
+ condition ? 'opacity-20' : 'cursor-pointer hover:opacity-60';
@@ -0,0 +1,2 @@
1
+ export const paginationBlockStyle =
2
+ 'py-m px-lg rounded-md cursor-pointer hover:bg-green-more-dark hover:text-white';
@@ -1,7 +1,8 @@
1
- import { paginationBlockStyle, PaginationProps } from './Pagination';
1
+ import { paginationBlockStyle } from './paginationBlockStyle';
2
+ import type { PaginationContainerProps } from './PaginationContainer';
2
3
  import { shouldRenderPage } from './shouldRenderPage';
3
4
 
4
- export const renderPages = (pagesParams: PaginationProps, index: number) => {
5
+ export const renderPages = (pagesParams: PaginationContainerProps, index: number) => {
5
6
  const { currentPage, onPageChange, totalPages } = pagesParams;
6
7
  const page = index + 1;
7
8
  if (page === currentPage) {
@@ -2,12 +2,12 @@ import { JSX } from '@redneckz/uni-jsx';
2
2
  import { useCallback, useState } from '@redneckz/uni-jsx/lib/hooks';
3
3
  import { useBool } from '@redneckz/uni-jsx/lib/hooks/useBool';
4
4
  import { LabelProps } from '../../model/HeadlineType';
5
- import { Text } from '../../ui-kit/Text/Text';
6
5
  import { style } from '../../utils/style';
7
6
  import { Icon } from '../Icon/Icon';
8
7
  import { Input } from '../Input/Input';
9
- import type { Option } from './Option';
8
+ import { Text } from '../Text/Text';
10
9
  import { formatOption } from './formatOption';
10
+ import type { Option } from './Option';
11
11
  import { useSelectPopup } from './useSelectPopup';
12
12
 
13
13
  export type SelectProps = LabelProps & {
@@ -1,9 +1,9 @@
1
1
  import { JSX } from '@redneckz/uni-jsx';
2
2
  import { style } from '../../utils/style';
3
3
  import { Icon } from '../Icon/Icon';
4
- import type { Option } from './Option';
5
4
  import { filterOptions } from './filterOptions';
6
5
  import { formatOption } from './formatOption';
6
+ import type { Option } from './Option';
7
7
 
8
8
  export interface SelectPopupProps {
9
9
  popupRef?: { current: HTMLDivElement | null };
@@ -16,7 +16,7 @@ export interface SelectPopupProps {
16
16
  export const SelectPopup = JSX<SelectPopupProps>(({ popupRef, options, value, query, onChange }) =>
17
17
  options?.length ? (
18
18
  <div
19
- className="bg-white text-l max-h-64 overflow-y-auto overflow-x-hidden rounded-md shadow-[0_4px_25px_rgba(0,0,0,0.07)]"
19
+ className="bg-white text-l max-h-64 overflow-y-auto overflow-x-hidden rounded-md s1hadow-black"
20
20
  role="listbox"
21
21
  ref={popupRef}
22
22
  >