@gravity-ui/blog-constructor 6.5.1-beta.0 → 6.6.1

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 (600) hide show
  1. package/build/cjs/blocks/Author/Author.d.ts +3 -2
  2. package/build/cjs/blocks/Author/Author.js +13 -13
  3. package/build/cjs/blocks/Author/schema.js +3 -4
  4. package/build/cjs/blocks/Banner/Banner.d.ts +3 -2
  5. package/build/cjs/blocks/Banner/Banner.js +15 -11
  6. package/build/cjs/blocks/Banner/schema.js +3 -4
  7. package/build/cjs/blocks/CTA/CTA.d.ts +3 -2
  8. package/build/cjs/blocks/CTA/CTA.js +20 -19
  9. package/build/cjs/blocks/CTA/schema.js +3 -4
  10. package/build/cjs/blocks/ColoredText/ColoredText.d.ts +3 -2
  11. package/build/cjs/blocks/ColoredText/ColoredText.js +12 -9
  12. package/build/cjs/blocks/ColoredText/schema.js +3 -4
  13. package/build/cjs/blocks/Feed/Feed.d.ts +3 -2
  14. package/build/cjs/blocks/Feed/Feed.js +31 -31
  15. package/build/cjs/blocks/Feed/reducer.d.ts +1 -1
  16. package/build/cjs/blocks/Feed/reducer.js +2 -3
  17. package/build/cjs/blocks/Feed/schema.js +2 -3
  18. package/build/cjs/blocks/Form/Form.d.ts +3 -2
  19. package/build/cjs/blocks/Form/Form.js +10 -10
  20. package/build/cjs/blocks/Form/schema.js +3 -4
  21. package/build/cjs/blocks/Header/Header.d.ts +3 -2
  22. package/build/cjs/blocks/Header/Header.js +18 -18
  23. package/build/cjs/blocks/Header/schema.d.ts +0 -3
  24. package/build/cjs/blocks/Header/schema.js +3 -4
  25. package/build/cjs/blocks/Layout/Layout.d.ts +3 -3
  26. package/build/cjs/blocks/Layout/Layout.js +13 -12
  27. package/build/cjs/blocks/Layout/schema.js +3 -4
  28. package/build/cjs/blocks/Media/Media.d.ts +3 -2
  29. package/build/cjs/blocks/Media/Media.js +15 -12
  30. package/build/cjs/blocks/Media/schema.d.ts +0 -3
  31. package/build/cjs/blocks/Media/schema.js +3 -4
  32. package/build/cjs/blocks/Meta/Meta.d.ts +3 -2
  33. package/build/cjs/blocks/Meta/Meta.js +23 -22
  34. package/build/cjs/blocks/Meta/schema.js +3 -4
  35. package/build/cjs/blocks/Suggest/Suggest.d.ts +3 -2
  36. package/build/cjs/blocks/Suggest/Suggest.js +14 -15
  37. package/build/cjs/blocks/Suggest/schema.js +3 -4
  38. package/build/cjs/blocks/YFM/YFM.d.ts +3 -2
  39. package/build/cjs/blocks/YFM/YFM.js +11 -10
  40. package/build/cjs/blocks/YFM/schema.js +3 -4
  41. package/build/cjs/blocks/constants.js +1 -2
  42. package/build/cjs/components/FeedHeader/FeedHeader.d.ts +4 -3
  43. package/build/cjs/components/FeedHeader/FeedHeader.js +14 -10
  44. package/build/cjs/components/FeedHeader/components/Controls/Controls.d.ts +4 -4
  45. package/build/cjs/components/FeedHeader/components/Controls/Controls.js +40 -30
  46. package/build/cjs/components/FeedHeader/components/Controls/customRenders.d.ts +3 -2
  47. package/build/cjs/components/FeedHeader/components/Controls/customRenders.js +9 -13
  48. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  49. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +7 -5
  50. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +1 -1
  51. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +3 -2
  52. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +17 -13
  53. package/build/cjs/components/MetaWrapper/MetaWrapper.d.ts +1 -1
  54. package/build/cjs/components/MetaWrapper/MetaWrapper.js +4 -4
  55. package/build/cjs/components/Paginator/Paginator.d.ts +3 -2
  56. package/build/cjs/components/Paginator/Paginator.js +29 -25
  57. package/build/cjs/components/Paginator/components/NavigationButton.d.ts +3 -2
  58. package/build/cjs/components/Paginator/components/NavigationButton.js +7 -7
  59. package/build/cjs/components/Paginator/components/PaginatorItem.d.ts +3 -2
  60. package/build/cjs/components/Paginator/components/PaginatorItem.js +11 -13
  61. package/build/cjs/components/Paginator/types.d.ts +3 -3
  62. package/build/cjs/components/Paginator/types.js +1 -2
  63. package/build/cjs/components/Paginator/utils.d.ts +2 -2
  64. package/build/cjs/components/Paginator/utils.js +1 -2
  65. package/build/cjs/components/PostCard/PostCard.d.ts +3 -2
  66. package/build/cjs/components/PostCard/PostCard.js +23 -16
  67. package/build/cjs/components/PostInfo/PostInfo.d.ts +3 -2
  68. package/build/cjs/components/PostInfo/PostInfo.js +15 -13
  69. package/build/cjs/components/PostInfo/SuggestPostInfo.d.ts +3 -2
  70. package/build/cjs/components/PostInfo/SuggestPostInfo.js +16 -12
  71. package/build/cjs/components/PostInfo/components/Date.d.ts +3 -2
  72. package/build/cjs/components/PostInfo/components/Date.js +8 -10
  73. package/build/cjs/components/PostInfo/components/ReadingTime.d.ts +3 -2
  74. package/build/cjs/components/PostInfo/components/ReadingTime.js +10 -7
  75. package/build/cjs/components/PostInfo/components/Save.d.ts +3 -2
  76. package/build/cjs/components/PostInfo/components/Save.js +16 -14
  77. package/build/cjs/components/PostInfo/components/Sharing.d.ts +2 -1
  78. package/build/cjs/components/PostInfo/components/Sharing.js +17 -17
  79. package/build/cjs/components/Posts/Posts.d.ts +4 -4
  80. package/build/cjs/components/Posts/Posts.js +28 -16
  81. package/build/cjs/components/PostsEmpty/PostsEmpty.d.ts +2 -1
  82. package/build/cjs/components/PostsEmpty/PostsEmpty.js +8 -6
  83. package/build/cjs/components/PostsError/PostsError.d.ts +2 -1
  84. package/build/cjs/components/PostsError/PostsError.js +10 -6
  85. package/build/cjs/components/Prompt/Prompt.d.ts +2 -1
  86. package/build/cjs/components/Prompt/Prompt.js +12 -10
  87. package/build/cjs/components/PromptSignIn/PromptSignIn.d.ts +4 -4
  88. package/build/cjs/components/PromptSignIn/PromptSignIn.js +5 -6
  89. package/build/cjs/components/PromptSignIn/hooks/usePromptSignInProps.d.ts +2 -2
  90. package/build/cjs/components/PromptSignIn/hooks/usePromptSignInProps.js +5 -6
  91. package/build/cjs/components/Search/Search.d.ts +3 -2
  92. package/build/cjs/components/Search/Search.js +17 -17
  93. package/build/cjs/components/Wrapper/Wrapper.d.ts +3 -3
  94. package/build/cjs/components/Wrapper/Wrapper.js +7 -7
  95. package/build/cjs/constants.d.ts +2 -2
  96. package/build/cjs/constants.js +3 -4
  97. package/build/cjs/constructor/BlogConstructorProvider.d.ts +7 -7
  98. package/build/cjs/constructor/BlogConstructorProvider.js +19 -21
  99. package/build/cjs/constructor/blocksMap.d.ts +12 -12
  100. package/build/cjs/constructor/blocksMap.js +14 -15
  101. package/build/cjs/containers/BlogPage/BlogPage.d.ts +4 -4
  102. package/build/cjs/containers/BlogPage/BlogPage.js +25 -22
  103. package/build/cjs/containers/BlogPostPage/BlogPostPage.d.ts +4 -4
  104. package/build/cjs/containers/BlogPostPage/BlogPostPage.js +30 -27
  105. package/build/cjs/contexts/DeviceContext.d.ts +2 -2
  106. package/build/cjs/contexts/DeviceContext.js +2 -3
  107. package/build/cjs/contexts/FeedContext.d.ts +2 -2
  108. package/build/cjs/contexts/FeedContext.js +2 -3
  109. package/build/cjs/contexts/LikesContext.d.ts +2 -2
  110. package/build/cjs/contexts/LikesContext.js +2 -3
  111. package/build/cjs/contexts/LocaleContext.d.ts +2 -2
  112. package/build/cjs/contexts/LocaleContext.js +3 -4
  113. package/build/cjs/contexts/MobileContext.d.ts +1 -1
  114. package/build/cjs/contexts/MobileContext.js +2 -3
  115. package/build/cjs/contexts/PostPageContext.d.ts +2 -2
  116. package/build/cjs/contexts/PostPageContext.js +2 -3
  117. package/build/cjs/contexts/RouterContext.d.ts +2 -2
  118. package/build/cjs/contexts/RouterContext.js +2 -3
  119. package/build/cjs/contexts/SettingsContext.d.ts +1 -1
  120. package/build/cjs/contexts/SettingsContext.js +2 -3
  121. package/build/cjs/contexts/theme/ThemeContext.d.ts +2 -2
  122. package/build/cjs/contexts/theme/ThemeContext.js +3 -4
  123. package/build/cjs/contexts/theme/ThemeProvider.d.ts +4 -4
  124. package/build/cjs/contexts/theme/ThemeProvider.js +8 -9
  125. package/build/cjs/contexts/theme/ThemeValueContext.d.ts +1 -1
  126. package/build/cjs/contexts/theme/ThemeValueContext.js +2 -3
  127. package/build/cjs/contexts/theme/index.d.ts +6 -6
  128. package/build/cjs/contexts/theme/index.js +6 -7
  129. package/build/cjs/contexts/theme/useTheme.d.ts +1 -1
  130. package/build/cjs/contexts/theme/useTheme.js +5 -5
  131. package/build/cjs/contexts/theme/useThemeValue.d.ts +1 -1
  132. package/build/cjs/contexts/theme/useThemeValue.js +5 -5
  133. package/build/cjs/contexts/theme/withTheme.d.ts +2 -2
  134. package/build/cjs/contexts/theme/withTheme.js +6 -7
  135. package/build/cjs/contexts/theme/withThemeValue.d.ts +2 -2
  136. package/build/cjs/contexts/theme/withThemeValue.js +6 -7
  137. package/build/cjs/counters/metrika.js +3 -3
  138. package/build/cjs/counters/utils.js +1 -2
  139. package/build/cjs/hooks/useAriaAttributes.js +4 -6
  140. package/build/cjs/hooks/useExtendedComponentMap.d.ts +17 -18
  141. package/build/cjs/hooks/useExtendedComponentMap.js +4 -5
  142. package/build/cjs/hooks/useHover.d.ts +1 -1
  143. package/build/cjs/hooks/useHover.js +6 -6
  144. package/build/cjs/hooks/useIsIPhone.js +4 -6
  145. package/build/cjs/hooks/useLikes.d.ts +1 -1
  146. package/build/cjs/hooks/useLikes.js +6 -8
  147. package/build/cjs/hooks/useOpenCloseTimer.js +5 -6
  148. package/build/cjs/i18n/index.d.ts +1 -5
  149. package/build/cjs/i18n/index.js +2 -3
  150. package/build/cjs/icons/Close.d.ts +2 -2
  151. package/build/cjs/icons/Close.js +6 -5
  152. package/build/cjs/icons/DropdownArrow.d.ts +2 -2
  153. package/build/cjs/icons/DropdownArrow.js +6 -5
  154. package/build/cjs/icons/Save.d.ts +2 -2
  155. package/build/cjs/icons/Save.js +6 -5
  156. package/build/cjs/icons/SaveFilled.d.ts +2 -2
  157. package/build/cjs/icons/SaveFilled.js +6 -5
  158. package/build/cjs/icons/SearchIcon.d.ts +2 -2
  159. package/build/cjs/icons/SearchIcon.js +6 -5
  160. package/build/cjs/icons/ShareArrowUp.d.ts +2 -2
  161. package/build/cjs/icons/ShareArrowUp.js +6 -5
  162. package/build/cjs/icons/Time.d.ts +2 -2
  163. package/build/cjs/icons/Time.js +6 -5
  164. package/build/cjs/index.d.ts +8 -8
  165. package/build/cjs/index.js +8 -9
  166. package/build/cjs/models/blocks.d.ts +4 -4
  167. package/build/cjs/models/blocks.js +1 -2
  168. package/build/cjs/models/common.d.ts +3 -3
  169. package/build/cjs/models/common.js +5 -6
  170. package/build/cjs/models/locale.js +1 -2
  171. package/build/cjs/models/paddings.js +1 -2
  172. package/build/cjs/schema/blocks.d.ts +10 -10
  173. package/build/cjs/schema/blocks.js +10 -11
  174. package/build/cjs/schema/common.js +1 -2
  175. package/build/cjs/schema/headers.d.ts +1 -1
  176. package/build/cjs/schema/headers.js +1 -2
  177. package/build/cjs/schema/index.d.ts +2 -8
  178. package/build/cjs/schema/index.js +4 -5
  179. package/build/cjs/schema/utils.d.ts +1 -1
  180. package/build/cjs/schema/utils.js +1 -2
  181. package/build/cjs/utils/cn.js +1 -2
  182. package/build/cjs/utils/common.d.ts +19 -18
  183. package/build/cjs/utils/common.js +8 -9
  184. package/build/cjs/utils/date.js +1 -2
  185. package/build/cjs/utils/index.d.ts +1 -1
  186. package/build/cjs/utils/index.js +2 -3
  187. package/build/cjs/utils/svg.js +1 -2
  188. package/build/esm/blocks/Author/Author.d.ts +3 -2
  189. package/build/esm/blocks/Author/Author.js +13 -13
  190. package/build/esm/blocks/Author/schema.js +3 -4
  191. package/build/esm/blocks/Banner/Banner.d.ts +3 -2
  192. package/build/esm/blocks/Banner/Banner.js +15 -11
  193. package/build/esm/blocks/Banner/schema.js +3 -4
  194. package/build/esm/blocks/CTA/CTA.d.ts +3 -2
  195. package/build/esm/blocks/CTA/CTA.js +19 -19
  196. package/build/esm/blocks/CTA/schema.js +3 -4
  197. package/build/esm/blocks/ColoredText/ColoredText.d.ts +3 -2
  198. package/build/esm/blocks/ColoredText/ColoredText.js +12 -9
  199. package/build/esm/blocks/ColoredText/schema.js +3 -4
  200. package/build/esm/blocks/Feed/Feed.d.ts +3 -2
  201. package/build/esm/blocks/Feed/Feed.js +31 -31
  202. package/build/esm/blocks/Feed/reducer.d.ts +1 -1
  203. package/build/esm/blocks/Feed/reducer.js +1 -2
  204. package/build/esm/blocks/Feed/schema.js +2 -3
  205. package/build/esm/blocks/Form/Form.d.ts +3 -2
  206. package/build/esm/blocks/Form/Form.js +10 -10
  207. package/build/esm/blocks/Form/schema.js +3 -4
  208. package/build/esm/blocks/Header/Header.d.ts +3 -2
  209. package/build/esm/blocks/Header/Header.js +18 -18
  210. package/build/esm/blocks/Header/schema.d.ts +0 -3
  211. package/build/esm/blocks/Header/schema.js +3 -4
  212. package/build/esm/blocks/Layout/Layout.d.ts +3 -3
  213. package/build/esm/blocks/Layout/Layout.js +13 -12
  214. package/build/esm/blocks/Layout/schema.js +3 -4
  215. package/build/esm/blocks/Media/Media.d.ts +3 -2
  216. package/build/esm/blocks/Media/Media.js +15 -12
  217. package/build/esm/blocks/Media/schema.d.ts +0 -3
  218. package/build/esm/blocks/Media/schema.js +3 -4
  219. package/build/esm/blocks/Meta/Meta.d.ts +3 -2
  220. package/build/esm/blocks/Meta/Meta.js +23 -22
  221. package/build/esm/blocks/Meta/schema.js +3 -4
  222. package/build/esm/blocks/Suggest/Suggest.d.ts +3 -2
  223. package/build/esm/blocks/Suggest/Suggest.js +14 -15
  224. package/build/esm/blocks/Suggest/schema.js +3 -4
  225. package/build/esm/blocks/YFM/YFM.d.ts +3 -2
  226. package/build/esm/blocks/YFM/YFM.js +10 -10
  227. package/build/esm/blocks/YFM/schema.js +3 -4
  228. package/build/esm/blocks/constants.js +1 -2
  229. package/build/esm/components/FeedHeader/FeedHeader.d.ts +4 -3
  230. package/build/esm/components/FeedHeader/FeedHeader.js +13 -10
  231. package/build/esm/components/FeedHeader/components/Controls/Controls.d.ts +4 -4
  232. package/build/esm/components/FeedHeader/components/Controls/Controls.js +40 -30
  233. package/build/esm/components/FeedHeader/components/Controls/customRenders.d.ts +3 -2
  234. package/build/esm/components/FeedHeader/components/Controls/customRenders.js +8 -12
  235. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +2 -2
  236. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +5 -4
  237. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +1 -1
  238. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +3 -2
  239. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +17 -13
  240. package/build/esm/components/MetaWrapper/MetaWrapper.d.ts +1 -1
  241. package/build/esm/components/MetaWrapper/MetaWrapper.js +2 -3
  242. package/build/esm/components/Paginator/Paginator.d.ts +3 -2
  243. package/build/esm/components/Paginator/Paginator.js +29 -25
  244. package/build/esm/components/Paginator/components/NavigationButton.d.ts +3 -2
  245. package/build/esm/components/Paginator/components/NavigationButton.js +5 -6
  246. package/build/esm/components/Paginator/components/PaginatorItem.d.ts +3 -2
  247. package/build/esm/components/Paginator/components/PaginatorItem.js +11 -13
  248. package/build/esm/components/Paginator/types.d.ts +3 -3
  249. package/build/esm/components/Paginator/types.js +1 -2
  250. package/build/esm/components/Paginator/utils.d.ts +2 -2
  251. package/build/esm/components/Paginator/utils.js +1 -2
  252. package/build/esm/components/PostCard/PostCard.d.ts +3 -2
  253. package/build/esm/components/PostCard/PostCard.js +23 -16
  254. package/build/esm/components/PostInfo/PostInfo.d.ts +3 -2
  255. package/build/esm/components/PostInfo/PostInfo.js +15 -13
  256. package/build/esm/components/PostInfo/SuggestPostInfo.d.ts +3 -2
  257. package/build/esm/components/PostInfo/SuggestPostInfo.js +15 -12
  258. package/build/esm/components/PostInfo/components/Date.d.ts +3 -2
  259. package/build/esm/components/PostInfo/components/Date.js +8 -10
  260. package/build/esm/components/PostInfo/components/ReadingTime.d.ts +3 -2
  261. package/build/esm/components/PostInfo/components/ReadingTime.js +8 -6
  262. package/build/esm/components/PostInfo/components/Save.d.ts +3 -2
  263. package/build/esm/components/PostInfo/components/Save.js +16 -14
  264. package/build/esm/components/PostInfo/components/Sharing.d.ts +2 -1
  265. package/build/esm/components/PostInfo/components/Sharing.js +17 -17
  266. package/build/esm/components/Posts/Posts.d.ts +4 -4
  267. package/build/esm/components/Posts/Posts.js +26 -15
  268. package/build/esm/components/PostsEmpty/PostsEmpty.d.ts +2 -1
  269. package/build/esm/components/PostsEmpty/PostsEmpty.js +6 -5
  270. package/build/esm/components/PostsError/PostsError.d.ts +2 -1
  271. package/build/esm/components/PostsError/PostsError.js +9 -6
  272. package/build/esm/components/Prompt/Prompt.d.ts +2 -1
  273. package/build/esm/components/Prompt/Prompt.js +12 -10
  274. package/build/esm/components/PromptSignIn/PromptSignIn.d.ts +4 -4
  275. package/build/esm/components/PromptSignIn/PromptSignIn.js +5 -6
  276. package/build/esm/components/PromptSignIn/hooks/usePromptSignInProps.d.ts +2 -2
  277. package/build/esm/components/PromptSignIn/hooks/usePromptSignInProps.js +4 -5
  278. package/build/esm/components/Search/Search.d.ts +3 -2
  279. package/build/esm/components/Search/Search.js +17 -17
  280. package/build/esm/components/Wrapper/Wrapper.d.ts +3 -3
  281. package/build/esm/components/Wrapper/Wrapper.js +5 -6
  282. package/build/esm/constants.d.ts +2 -2
  283. package/build/esm/constants.js +2 -3
  284. package/build/esm/constructor/BlogConstructorProvider.d.ts +7 -7
  285. package/build/esm/constructor/BlogConstructorProvider.js +18 -20
  286. package/build/esm/constructor/blocksMap.d.ts +12 -12
  287. package/build/esm/constructor/blocksMap.js +14 -15
  288. package/build/esm/containers/BlogPage/BlogPage.d.ts +4 -4
  289. package/build/esm/containers/BlogPage/BlogPage.js +25 -22
  290. package/build/esm/containers/BlogPostPage/BlogPostPage.d.ts +4 -4
  291. package/build/esm/containers/BlogPostPage/BlogPostPage.js +30 -27
  292. package/build/esm/contexts/DeviceContext.d.ts +2 -2
  293. package/build/esm/contexts/DeviceContext.js +2 -3
  294. package/build/esm/contexts/FeedContext.d.ts +2 -2
  295. package/build/esm/contexts/FeedContext.js +2 -3
  296. package/build/esm/contexts/LikesContext.d.ts +2 -2
  297. package/build/esm/contexts/LikesContext.js +2 -3
  298. package/build/esm/contexts/LocaleContext.d.ts +2 -2
  299. package/build/esm/contexts/LocaleContext.js +2 -3
  300. package/build/esm/contexts/MobileContext.d.ts +1 -1
  301. package/build/esm/contexts/MobileContext.js +2 -3
  302. package/build/esm/contexts/PostPageContext.d.ts +2 -2
  303. package/build/esm/contexts/PostPageContext.js +2 -3
  304. package/build/esm/contexts/RouterContext.d.ts +2 -2
  305. package/build/esm/contexts/RouterContext.js +2 -3
  306. package/build/esm/contexts/SettingsContext.d.ts +1 -1
  307. package/build/esm/contexts/SettingsContext.js +2 -3
  308. package/build/esm/contexts/theme/ThemeContext.d.ts +2 -2
  309. package/build/esm/contexts/theme/ThemeContext.js +3 -4
  310. package/build/esm/contexts/theme/ThemeProvider.d.ts +4 -4
  311. package/build/esm/contexts/theme/ThemeProvider.js +7 -8
  312. package/build/esm/contexts/theme/ThemeValueContext.d.ts +1 -1
  313. package/build/esm/contexts/theme/ThemeValueContext.js +2 -3
  314. package/build/esm/contexts/theme/index.d.ts +6 -6
  315. package/build/esm/contexts/theme/index.js +6 -7
  316. package/build/esm/contexts/theme/useTheme.d.ts +1 -1
  317. package/build/esm/contexts/theme/useTheme.js +3 -4
  318. package/build/esm/contexts/theme/useThemeValue.d.ts +1 -1
  319. package/build/esm/contexts/theme/useThemeValue.js +3 -4
  320. package/build/esm/contexts/theme/withTheme.d.ts +2 -2
  321. package/build/esm/contexts/theme/withTheme.js +4 -6
  322. package/build/esm/contexts/theme/withThemeValue.d.ts +2 -2
  323. package/build/esm/contexts/theme/withThemeValue.js +4 -6
  324. package/build/esm/counters/metrika.js +1 -2
  325. package/build/esm/counters/utils.js +1 -2
  326. package/build/esm/hooks/useAriaAttributes.js +4 -5
  327. package/build/esm/hooks/useExtendedComponentMap.d.ts +17 -18
  328. package/build/esm/hooks/useExtendedComponentMap.js +3 -4
  329. package/build/esm/hooks/useHover.d.ts +1 -1
  330. package/build/esm/hooks/useHover.js +2 -3
  331. package/build/esm/hooks/useIsIPhone.js +4 -5
  332. package/build/esm/hooks/useLikes.d.ts +1 -1
  333. package/build/esm/hooks/useLikes.js +6 -7
  334. package/build/esm/hooks/useOpenCloseTimer.js +4 -5
  335. package/build/esm/i18n/index.d.ts +1 -5
  336. package/build/esm/i18n/index.js +1 -2
  337. package/build/esm/icons/Close.d.ts +2 -2
  338. package/build/esm/icons/Close.js +4 -4
  339. package/build/esm/icons/DropdownArrow.d.ts +2 -2
  340. package/build/esm/icons/DropdownArrow.js +4 -4
  341. package/build/esm/icons/Save.d.ts +2 -2
  342. package/build/esm/icons/Save.js +4 -4
  343. package/build/esm/icons/SaveFilled.d.ts +2 -2
  344. package/build/esm/icons/SaveFilled.js +4 -4
  345. package/build/esm/icons/SearchIcon.d.ts +2 -2
  346. package/build/esm/icons/SearchIcon.js +4 -4
  347. package/build/esm/icons/ShareArrowUp.d.ts +2 -2
  348. package/build/esm/icons/ShareArrowUp.js +4 -4
  349. package/build/esm/icons/Time.d.ts +2 -2
  350. package/build/esm/icons/Time.js +4 -4
  351. package/build/esm/index.d.ts +8 -8
  352. package/build/esm/index.js +8 -9
  353. package/build/esm/models/blocks.d.ts +4 -4
  354. package/build/esm/models/blocks.js +1 -2
  355. package/build/esm/models/common.d.ts +3 -3
  356. package/build/esm/models/common.js +1 -2
  357. package/build/esm/models/locale.js +1 -2
  358. package/build/esm/models/paddings.js +1 -2
  359. package/build/esm/schema/blocks.d.ts +10 -10
  360. package/build/esm/schema/blocks.js +10 -11
  361. package/build/esm/schema/common.js +1 -2
  362. package/build/esm/schema/headers.d.ts +1 -1
  363. package/build/esm/schema/headers.js +1 -2
  364. package/build/esm/schema/index.d.ts +2 -8
  365. package/build/esm/schema/index.js +4 -5
  366. package/build/esm/schema/utils.d.ts +1 -1
  367. package/build/esm/schema/utils.js +1 -2
  368. package/build/esm/utils/cn.js +1 -2
  369. package/build/esm/utils/common.d.ts +19 -18
  370. package/build/esm/utils/common.js +6 -7
  371. package/build/esm/utils/date.js +1 -2
  372. package/build/esm/utils/index.d.ts +1 -1
  373. package/build/esm/utils/index.js +1 -2
  374. package/build/esm/utils/svg.js +1 -2
  375. package/package.json +24 -37
  376. package/server/data/config.js +1 -1
  377. package/server/data/contentFilter.js +3 -5
  378. package/server/data/createReadableContent.js +1 -1
  379. package/server/data/sanitizeMeta.d.ts +5 -5
  380. package/server/data/sanitizeMeta.js +1 -1
  381. package/server/data/transformPageContent.js +3 -5
  382. package/server/data/transformPost.js +3 -13
  383. package/server/index.d.ts +4 -4
  384. package/server/models/blocks.d.ts +2 -2
  385. package/server/models/blocks.js +1 -1
  386. package/server/models/common.d.ts +2 -2
  387. package/server/models/common.js +5 -5
  388. package/server/models/locale.js +1 -1
  389. package/server/models/paddings.js +1 -1
  390. package/styles/storybook/common.scss +0 -7
  391. package/build/cjs/blocks/Author/Author.js.map +0 -1
  392. package/build/cjs/blocks/Author/schema.js.map +0 -1
  393. package/build/cjs/blocks/Banner/Banner.js.map +0 -1
  394. package/build/cjs/blocks/Banner/schema.js.map +0 -1
  395. package/build/cjs/blocks/CTA/CTA.js.map +0 -1
  396. package/build/cjs/blocks/CTA/schema.js.map +0 -1
  397. package/build/cjs/blocks/ColoredText/ColoredText.js.map +0 -1
  398. package/build/cjs/blocks/ColoredText/schema.js.map +0 -1
  399. package/build/cjs/blocks/Feed/Feed.js.map +0 -1
  400. package/build/cjs/blocks/Feed/reducer.js.map +0 -1
  401. package/build/cjs/blocks/Feed/schema.js.map +0 -1
  402. package/build/cjs/blocks/Form/Form.js.map +0 -1
  403. package/build/cjs/blocks/Form/schema.js.map +0 -1
  404. package/build/cjs/blocks/Header/Header.js.map +0 -1
  405. package/build/cjs/blocks/Header/schema.js.map +0 -1
  406. package/build/cjs/blocks/Layout/Layout.js.map +0 -1
  407. package/build/cjs/blocks/Layout/schema.js.map +0 -1
  408. package/build/cjs/blocks/Media/Media.js.map +0 -1
  409. package/build/cjs/blocks/Media/schema.js.map +0 -1
  410. package/build/cjs/blocks/Meta/Meta.js.map +0 -1
  411. package/build/cjs/blocks/Meta/schema.js.map +0 -1
  412. package/build/cjs/blocks/Suggest/Suggest.js.map +0 -1
  413. package/build/cjs/blocks/Suggest/schema.js.map +0 -1
  414. package/build/cjs/blocks/YFM/YFM.js.map +0 -1
  415. package/build/cjs/blocks/YFM/schema.js.map +0 -1
  416. package/build/cjs/blocks/constants.js.map +0 -1
  417. package/build/cjs/components/FeedHeader/FeedHeader.js.map +0 -1
  418. package/build/cjs/components/FeedHeader/components/Controls/Controls.js.map +0 -1
  419. package/build/cjs/components/FeedHeader/components/Controls/customRenders.js.map +0 -1
  420. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js.map +0 -1
  421. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js.map +0 -1
  422. package/build/cjs/components/MetaWrapper/MetaWrapper.js.map +0 -1
  423. package/build/cjs/components/Paginator/Paginator.js.map +0 -1
  424. package/build/cjs/components/Paginator/components/NavigationButton.js.map +0 -1
  425. package/build/cjs/components/Paginator/components/PaginatorItem.js.map +0 -1
  426. package/build/cjs/components/Paginator/types.js.map +0 -1
  427. package/build/cjs/components/Paginator/utils.js.map +0 -1
  428. package/build/cjs/components/PostCard/PostCard.js.map +0 -1
  429. package/build/cjs/components/PostInfo/PostInfo.js.map +0 -1
  430. package/build/cjs/components/PostInfo/SuggestPostInfo.js.map +0 -1
  431. package/build/cjs/components/PostInfo/components/Date.js.map +0 -1
  432. package/build/cjs/components/PostInfo/components/ReadingTime.js.map +0 -1
  433. package/build/cjs/components/PostInfo/components/Save.js.map +0 -1
  434. package/build/cjs/components/PostInfo/components/Sharing.js.map +0 -1
  435. package/build/cjs/components/Posts/Posts.js.map +0 -1
  436. package/build/cjs/components/PostsEmpty/PostsEmpty.js.map +0 -1
  437. package/build/cjs/components/PostsError/PostsError.js.map +0 -1
  438. package/build/cjs/components/Prompt/Prompt.js.map +0 -1
  439. package/build/cjs/components/PromptSignIn/PromptSignIn.js.map +0 -1
  440. package/build/cjs/components/PromptSignIn/hooks/usePromptSignInProps.js.map +0 -1
  441. package/build/cjs/components/Search/Search.js.map +0 -1
  442. package/build/cjs/components/Wrapper/Wrapper.js.map +0 -1
  443. package/build/cjs/constants.js.map +0 -1
  444. package/build/cjs/constructor/BlogConstructorProvider.js.map +0 -1
  445. package/build/cjs/constructor/blocksMap.js.map +0 -1
  446. package/build/cjs/containers/BlogPage/BlogPage.js.map +0 -1
  447. package/build/cjs/containers/BlogPostPage/BlogPostPage.js.map +0 -1
  448. package/build/cjs/contexts/DeviceContext.js.map +0 -1
  449. package/build/cjs/contexts/FeedContext.js.map +0 -1
  450. package/build/cjs/contexts/LikesContext.js.map +0 -1
  451. package/build/cjs/contexts/LocaleContext.js.map +0 -1
  452. package/build/cjs/contexts/MobileContext.js.map +0 -1
  453. package/build/cjs/contexts/PostPageContext.js.map +0 -1
  454. package/build/cjs/contexts/RouterContext.js.map +0 -1
  455. package/build/cjs/contexts/SettingsContext.js.map +0 -1
  456. package/build/cjs/contexts/theme/ThemeContext.js.map +0 -1
  457. package/build/cjs/contexts/theme/ThemeProvider.js.map +0 -1
  458. package/build/cjs/contexts/theme/ThemeValueContext.js.map +0 -1
  459. package/build/cjs/contexts/theme/index.js.map +0 -1
  460. package/build/cjs/contexts/theme/useTheme.js.map +0 -1
  461. package/build/cjs/contexts/theme/useThemeValue.js.map +0 -1
  462. package/build/cjs/contexts/theme/withTheme.js.map +0 -1
  463. package/build/cjs/contexts/theme/withThemeValue.js.map +0 -1
  464. package/build/cjs/counters/metrika.js.map +0 -1
  465. package/build/cjs/counters/utils.js.map +0 -1
  466. package/build/cjs/hooks/useAriaAttributes.js.map +0 -1
  467. package/build/cjs/hooks/useExtendedComponentMap.js.map +0 -1
  468. package/build/cjs/hooks/useHover.js.map +0 -1
  469. package/build/cjs/hooks/useIsIPhone.js.map +0 -1
  470. package/build/cjs/hooks/useLikes.js.map +0 -1
  471. package/build/cjs/hooks/useOpenCloseTimer.js.map +0 -1
  472. package/build/cjs/i18n/index.js.map +0 -1
  473. package/build/cjs/icons/Close.js.map +0 -1
  474. package/build/cjs/icons/DropdownArrow.js.map +0 -1
  475. package/build/cjs/icons/Save.js.map +0 -1
  476. package/build/cjs/icons/SaveFilled.js.map +0 -1
  477. package/build/cjs/icons/SearchIcon.js.map +0 -1
  478. package/build/cjs/icons/ShareArrowUp.js.map +0 -1
  479. package/build/cjs/icons/Time.js.map +0 -1
  480. package/build/cjs/index.js.map +0 -1
  481. package/build/cjs/models/blocks.js.map +0 -1
  482. package/build/cjs/models/common.js.map +0 -1
  483. package/build/cjs/models/locale.js.map +0 -1
  484. package/build/cjs/models/paddings.js.map +0 -1
  485. package/build/cjs/package.json +0 -1
  486. package/build/cjs/schema/blocks.js.map +0 -1
  487. package/build/cjs/schema/common.js.map +0 -1
  488. package/build/cjs/schema/headers.js.map +0 -1
  489. package/build/cjs/schema/index.js.map +0 -1
  490. package/build/cjs/schema/utils.js.map +0 -1
  491. package/build/cjs/utils/cn.js.map +0 -1
  492. package/build/cjs/utils/common.js.map +0 -1
  493. package/build/cjs/utils/date.js.map +0 -1
  494. package/build/cjs/utils/index.js.map +0 -1
  495. package/build/cjs/utils/svg.js.map +0 -1
  496. package/build/esm/blocks/Author/Author.js.map +0 -1
  497. package/build/esm/blocks/Author/schema.js.map +0 -1
  498. package/build/esm/blocks/Banner/Banner.js.map +0 -1
  499. package/build/esm/blocks/Banner/schema.js.map +0 -1
  500. package/build/esm/blocks/CTA/CTA.js.map +0 -1
  501. package/build/esm/blocks/CTA/schema.js.map +0 -1
  502. package/build/esm/blocks/ColoredText/ColoredText.js.map +0 -1
  503. package/build/esm/blocks/ColoredText/schema.js.map +0 -1
  504. package/build/esm/blocks/Feed/Feed.js.map +0 -1
  505. package/build/esm/blocks/Feed/reducer.js.map +0 -1
  506. package/build/esm/blocks/Feed/schema.js.map +0 -1
  507. package/build/esm/blocks/Form/Form.js.map +0 -1
  508. package/build/esm/blocks/Form/schema.js.map +0 -1
  509. package/build/esm/blocks/Header/Header.js.map +0 -1
  510. package/build/esm/blocks/Header/schema.js.map +0 -1
  511. package/build/esm/blocks/Layout/Layout.js.map +0 -1
  512. package/build/esm/blocks/Layout/schema.js.map +0 -1
  513. package/build/esm/blocks/Media/Media.js.map +0 -1
  514. package/build/esm/blocks/Media/schema.js.map +0 -1
  515. package/build/esm/blocks/Meta/Meta.js.map +0 -1
  516. package/build/esm/blocks/Meta/schema.js.map +0 -1
  517. package/build/esm/blocks/Suggest/Suggest.js.map +0 -1
  518. package/build/esm/blocks/Suggest/schema.js.map +0 -1
  519. package/build/esm/blocks/YFM/YFM.js.map +0 -1
  520. package/build/esm/blocks/YFM/schema.js.map +0 -1
  521. package/build/esm/blocks/constants.js.map +0 -1
  522. package/build/esm/components/FeedHeader/FeedHeader.js.map +0 -1
  523. package/build/esm/components/FeedHeader/components/Controls/Controls.js.map +0 -1
  524. package/build/esm/components/FeedHeader/components/Controls/customRenders.js.map +0 -1
  525. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js.map +0 -1
  526. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js.map +0 -1
  527. package/build/esm/components/MetaWrapper/MetaWrapper.js.map +0 -1
  528. package/build/esm/components/Paginator/Paginator.js.map +0 -1
  529. package/build/esm/components/Paginator/components/NavigationButton.js.map +0 -1
  530. package/build/esm/components/Paginator/components/PaginatorItem.js.map +0 -1
  531. package/build/esm/components/Paginator/types.js.map +0 -1
  532. package/build/esm/components/Paginator/utils.js.map +0 -1
  533. package/build/esm/components/PostCard/PostCard.js.map +0 -1
  534. package/build/esm/components/PostInfo/PostInfo.js.map +0 -1
  535. package/build/esm/components/PostInfo/SuggestPostInfo.js.map +0 -1
  536. package/build/esm/components/PostInfo/components/Date.js.map +0 -1
  537. package/build/esm/components/PostInfo/components/ReadingTime.js.map +0 -1
  538. package/build/esm/components/PostInfo/components/Save.js.map +0 -1
  539. package/build/esm/components/PostInfo/components/Sharing.js.map +0 -1
  540. package/build/esm/components/Posts/Posts.js.map +0 -1
  541. package/build/esm/components/PostsEmpty/PostsEmpty.js.map +0 -1
  542. package/build/esm/components/PostsError/PostsError.js.map +0 -1
  543. package/build/esm/components/Prompt/Prompt.js.map +0 -1
  544. package/build/esm/components/PromptSignIn/PromptSignIn.js.map +0 -1
  545. package/build/esm/components/PromptSignIn/hooks/usePromptSignInProps.js.map +0 -1
  546. package/build/esm/components/Search/Search.js.map +0 -1
  547. package/build/esm/components/Wrapper/Wrapper.js.map +0 -1
  548. package/build/esm/constants.js.map +0 -1
  549. package/build/esm/constructor/BlogConstructorProvider.js.map +0 -1
  550. package/build/esm/constructor/blocksMap.js.map +0 -1
  551. package/build/esm/containers/BlogPage/BlogPage.js.map +0 -1
  552. package/build/esm/containers/BlogPostPage/BlogPostPage.js.map +0 -1
  553. package/build/esm/contexts/DeviceContext.js.map +0 -1
  554. package/build/esm/contexts/FeedContext.js.map +0 -1
  555. package/build/esm/contexts/LikesContext.js.map +0 -1
  556. package/build/esm/contexts/LocaleContext.js.map +0 -1
  557. package/build/esm/contexts/MobileContext.js.map +0 -1
  558. package/build/esm/contexts/PostPageContext.js.map +0 -1
  559. package/build/esm/contexts/RouterContext.js.map +0 -1
  560. package/build/esm/contexts/SettingsContext.js.map +0 -1
  561. package/build/esm/contexts/theme/ThemeContext.js.map +0 -1
  562. package/build/esm/contexts/theme/ThemeProvider.js.map +0 -1
  563. package/build/esm/contexts/theme/ThemeValueContext.js.map +0 -1
  564. package/build/esm/contexts/theme/index.js.map +0 -1
  565. package/build/esm/contexts/theme/useTheme.js.map +0 -1
  566. package/build/esm/contexts/theme/useThemeValue.js.map +0 -1
  567. package/build/esm/contexts/theme/withTheme.js.map +0 -1
  568. package/build/esm/contexts/theme/withThemeValue.js.map +0 -1
  569. package/build/esm/counters/metrika.js.map +0 -1
  570. package/build/esm/counters/utils.js.map +0 -1
  571. package/build/esm/hooks/useAriaAttributes.js.map +0 -1
  572. package/build/esm/hooks/useExtendedComponentMap.js.map +0 -1
  573. package/build/esm/hooks/useHover.js.map +0 -1
  574. package/build/esm/hooks/useIsIPhone.js.map +0 -1
  575. package/build/esm/hooks/useLikes.js.map +0 -1
  576. package/build/esm/hooks/useOpenCloseTimer.js.map +0 -1
  577. package/build/esm/i18n/index.js.map +0 -1
  578. package/build/esm/icons/Close.js.map +0 -1
  579. package/build/esm/icons/DropdownArrow.js.map +0 -1
  580. package/build/esm/icons/Save.js.map +0 -1
  581. package/build/esm/icons/SaveFilled.js.map +0 -1
  582. package/build/esm/icons/SearchIcon.js.map +0 -1
  583. package/build/esm/icons/ShareArrowUp.js.map +0 -1
  584. package/build/esm/icons/Time.js.map +0 -1
  585. package/build/esm/index.js.map +0 -1
  586. package/build/esm/models/blocks.js.map +0 -1
  587. package/build/esm/models/common.js.map +0 -1
  588. package/build/esm/models/locale.js.map +0 -1
  589. package/build/esm/models/paddings.js.map +0 -1
  590. package/build/esm/package.json +0 -1
  591. package/build/esm/schema/blocks.js.map +0 -1
  592. package/build/esm/schema/common.js.map +0 -1
  593. package/build/esm/schema/headers.js.map +0 -1
  594. package/build/esm/schema/index.js.map +0 -1
  595. package/build/esm/schema/utils.js.map +0 -1
  596. package/build/esm/utils/cn.js.map +0 -1
  597. package/build/esm/utils/common.js.map +0 -1
  598. package/build/esm/utils/date.js.map +0 -1
  599. package/build/esm/utils/index.js.map +0 -1
  600. package/build/esm/utils/svg.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"../../../../src","sources":["blocks/Suggest/schema.ts"],"names":[],"mappings":";;;AAAA,mEAAwD;AAExD,MAAM,EACF,MAAM,EAAE,EAAC,cAAc,EAAC,GAC3B,GAAG,6BAAU,CAAC;AAEf,mDAA8C;AAC9C,mDAAkD;AAErC,QAAA,OAAO,GAAG;IACnB,CAAC,kBAAS,CAAC,OAAO,CAAC,EAAE;QACjB,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,UAAU,kCACH,cAAc,GACd,sBAAa,CACnB;KACJ;CACJ,CAAC","sourcesContent":["import {validators} from '@gravity-ui/page-constructor';\n\nconst {\n common: {BlockBaseProps},\n} = validators;\n\nimport {BlockType} from '../../models/common';\nimport {BlogBlockBase} from '../../schema/common';\n\nexport const Suggest = {\n [BlockType.Suggest]: {\n type: 'object',\n additionalProperties: false,\n properties: {\n ...BlockBaseProps,\n ...BlogBlockBase,\n },\n },\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"YFM.js","sourceRoot":"../../../../src","sources":["blocks/YFM/YFM.tsx"],"names":[],"mappings":";;;;AAAA,mEAAwD;AAExD,iEAAyD;AAEzD,uDAAyD;AACzD,0CAAkC;AAClC,kDAAmD;AAEnD,MAAM,CAAC,GAAG,IAAA,OAAE,EAAC,KAAK,CAAC,CAAC;AAEb,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,EAAE;IACnC,MAAM,EAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,EAAE,EAAC,GAAG,KAAK,CAAC;IACpD,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,EAAE,CAAC,CAAC;IAEzC,OAAO,CACH,uBAAC,iBAAO,IACJ,QAAQ,EAAE;YACN,CAAC,6BAAkB,CAAC,GAAG,CAAC,EAAE,UAAU;YACpC,CAAC,6BAAkB,CAAC,MAAM,CAAC,EAAE,aAAa;SAC7C,EACD,EAAE,EAAE,YAAY,CAAC,OAAO,YAExB,uBAAC,6BAAU,IACP,OAAO,EAAE,IAAI,EACb,SAAS,EAAE;gBACP,IAAI,EAAE,IAAI;gBACV,aAAa,EAAE,IAAI;aACtB,EACD,SAAS,EAAE,CAAC,CAAC,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC,GACvC,GACI,CACb,CAAC;AACN,CAAC,CAAC;AAtBW,QAAA,GAAG,OAsBd","sourcesContent":["import {YFMWrapper} from '@gravity-ui/page-constructor';\n\nimport {Wrapper} from '../../components/Wrapper/Wrapper';\nimport {YFMProps} from '../../models/blocks';\nimport {PaddingsDirections} from '../../models/paddings';\nimport {cn} from '../../utils/cn';\nimport {getQaAttributes} from '../../utils/common';\n\nconst b = cn('yfm');\n\nexport const YFM = (props: YFMProps) => {\n const {text, paddingTop, paddingBottom, qa} = props;\n const qaAttributes = getQaAttributes(qa);\n\n return (\n <Wrapper\n paddings={{\n [PaddingsDirections.top]: paddingTop,\n [PaddingsDirections.bottom]: paddingBottom,\n }}\n qa={qaAttributes.wrapper}\n >\n <YFMWrapper\n content={text}\n modifiers={{\n blog: true,\n resetPaddings: true,\n }}\n className={b({'no-list-reset': true})}\n />\n </Wrapper>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"../../../../src","sources":["blocks/YFM/schema.ts"],"names":[],"mappings":";;;AAAA,mEAAwD;AAExD,MAAM,EACF,MAAM,EAAE,EAAC,cAAc,EAAC,GAC3B,GAAG,6BAAU,CAAC;AAEf,mDAA8C;AAC9C,mDAAkD;AAErC,QAAA,GAAG,GAAG;IACf,CAAC,kBAAS,CAAC,GAAG,CAAC,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,oBAAoB,EAAE,KAAK;QAC3B,QAAQ,EAAE,CAAC,MAAM,CAAC;QAClB,UAAU,gDACH,cAAc,GACd,sBAAa,KAChB,IAAI,EAAE;gBACF,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,KAAK;aACrB,GACJ;KACJ;CACJ,CAAC","sourcesContent":["import {validators} from '@gravity-ui/page-constructor';\n\nconst {\n common: {BlockBaseProps},\n} = validators;\n\nimport {BlockType} from '../../models/common';\nimport {BlogBlockBase} from '../../schema/common';\n\nexport const YFM = {\n [BlockType.YFM]: {\n type: 'object',\n additionalProperties: false,\n required: ['text'],\n properties: {\n ...BlockBaseProps,\n ...BlogBlockBase,\n text: {\n type: 'string',\n contentType: 'yfm',\n },\n },\n },\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"../../../src","sources":["blocks/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,GAAG,CAAC;AAE3B,QAAA,yBAAyB,GAAG,EAAC,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAC,CAAC;AAE9C,QAAA,qBAAqB,GAAG,SAAS,CAAC;AAElC,QAAA,YAAY,GAAG,CAAC,CAAC;AAEjB,QAAA,qBAAqB,GAAG,EAAE,CAAC","sourcesContent":["export const CONTENT_DEFAULT_SIZE = 's';\n\nexport const CONTENT_DEFAULT_COL_SIZES = {all: 12, md: 12};\n\nexport const CONTENT_DEFAULT_THEME = 'default';\n\nexport const DEFAULT_PAGE = 1;\n\nexport const DEFAULT_ROWS_PER_PAGE = 12;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeedHeader.js","sourceRoot":"../../../../src","sources":["components/FeedHeader/FeedHeader.tsx"],"names":[],"mappings":";;;;AAAA,mEAMsC;AAGtC,0CAAqC;AAErC,gEAAuE;AAIvE,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,aAAa,CAAC,CAAC;AAQxB,MAAM,UAAU,GAAG,CAAC,EACvB,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,MAAM,GAAG,SAAS,EAClB,UAAU,EACV,KAAK,GAAG,OAAO,EACf,cAAc,GAAG,GAAG,EACpB,SAAS,EACT,WAAW,GACY,EAAE,EAAE;IAC3B,MAAM,gBAAgB,GAAG,UAAU,IAAI,IAAA,iCAAc,EAAC,UAAU,EAAE,KAAc,CAAC,CAAC;IAElF,OAAO,CACH,oCAAQ,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAC,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,EAAC,EAAE,SAAS,CAAC,aAC/E,CAAA,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,EAAC,CAAC,CAAC,CACvB,uBAAC,sCAAmB,IAChB,KAAK,EAAE,EAAC,eAAe,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK,EAAC,EACjD,KAAK,EAAC,SAAS,GACjB,CACL,CAAC,CAAC,CAAC,IAAI,EACR,wBAAC,uBAAI,IAAC,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAC,CAAC,aAC5E,gBAAgB,CAAC,CAAC,CAAC,CAChB,uBAAC,kCAAe,IACZ,GAAG,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,GAAG,EAC1B,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,EAC1B,cAAc,EAAE,CAAC,CAAC,gBAAgB,CAAC,EACnC,KAAK,EAAE;4BACH,eAAe,EAAE,gBAAgB,CAAC,SAAS;gCACvC,CAAC,CAAC,EAAE;gCACJ,CAAC,CAAC,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,KAAK;yBAChC,EACD,eAAe,EAAE,gBAAgB,aAAhB,gBAAgB,uBAAhB,gBAAgB,CAAE,eAAe,GACpD,CACL,CAAC,CAAC,CAAC,IAAI,EACR,uBAAC,mBAAQ,IACL,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,GAC1B,IACC,IACF,CACZ,CAAC;AACN,CAAC,CAAC;AA5CW,QAAA,UAAU,cA4CrB","sourcesContent":["import {\n BackgroundImage,\n FullWidthBackground,\n Grid,\n Theme,\n getThemedValue,\n} from '@gravity-ui/page-constructor';\n\nimport {ClassNameProps, HeaderBlockProps} from '../../models/common';\nimport {block} from '../../utils/cn';\n\nimport {Controls, ControlsProps} from './components/Controls/Controls';\n\nimport './FeedHeader.scss';\n\nconst b = block('feed-header');\n\ntype HeaderProps = Pick<HeaderBlockProps, 'background' | 'offset' | 'theme' | 'verticalOffset'>;\n\ntype FeedHeaderProps = HeaderProps & ControlsProps;\n\ntype FeedHeaderContainerProps = FeedHeaderProps & ClassNameProps;\n\nexport const FeedHeader = ({\n tags,\n services,\n handleLoadData,\n offset = 'default',\n background,\n theme = 'light',\n verticalOffset = 'l',\n className,\n queryParams,\n}: FeedHeaderContainerProps) => {\n const backgroundThemed = background && getThemedValue(background, theme as Theme);\n\n return (\n <header className={b('header', {['has-background']: Boolean(background)}, className)}>\n {backgroundThemed?.color ? (\n <FullWidthBackground\n style={{backgroundColor: backgroundThemed?.color}}\n theme=\"rounded\"\n />\n ) : null}\n <Grid className={b('content', {offset, theme, 'vertical-offset': verticalOffset})}>\n {backgroundThemed ? (\n <BackgroundImage\n src={backgroundThemed?.url}\n className={b('background')}\n imageClassName={b('background-img')}\n style={{\n backgroundColor: backgroundThemed.fullWidth\n ? ''\n : backgroundThemed?.color,\n }}\n disableCompress={backgroundThemed?.disableCompress}\n />\n ) : null}\n <Controls\n tags={tags}\n services={services}\n handleLoadData={handleLoadData}\n queryParams={queryParams}\n />\n </Grid>\n </header>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Controls.js","sourceRoot":"../../../../../../src","sources":["components/FeedHeader/components/Controls/Controls.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {useAnalytics} from '@gravity-ui/page-constructor';\nimport {Button, Icon, Select} from '@gravity-ui/uikit';\n\nimport {DefaultGoalIds} from '../../../../constants';\nimport {LikesContext} from '../../../../contexts/LikesContext';\nimport {MobileContext} from '../../../../contexts/MobileContext';\nimport {AnalyticsCounter} from '../../../../counters/utils';\nimport {Keyset, i18n} from '../../../../i18n';\nimport {Save} from '../../../../icons/Save';\nimport {DefaultEventNames, FetchArgs, Query} from '../../../../models/common';\nimport {block} from '../../../../utils/cn';\nimport {Search} from '../../../Search/Search';\nimport {prepareAnalyticsEvent} from '../../../../utils/common';\n\nimport {renderFilter, renderOption, renderSwitcher} from './customRenders';\n\nimport './Controls.scss';\n\nconst b = block('feed-controls');\n\nexport type SelectItem = {\n content: string;\n value: string;\n icon?: React.ReactNode;\n};\n\nexport type ControlsProps = {\n handleLoadData: (props: FetchArgs) => void;\n tags?: SelectItem[];\n services?: SelectItem[];\n queryParams: Query;\n};\n\nconst ICON_SIZE = 16;\nconst DEFAULT_PAGE = 1;\nconst VIRTUALIZATION_THRESHOLD = 1000;\n\nexport const Controls = ({\n handleLoadData,\n tags = [],\n services = [],\n queryParams,\n}: ControlsProps) => {\n const {hasLikes} = React.useContext(LikesContext);\n const handleAnalyticsTag = useAnalytics(DefaultEventNames.Tag);\n const handleAnalyticsService = useAnalytics(DefaultEventNames.Service);\n const handleAnalyticsSaveOnly = useAnalytics(DefaultEventNames.SaveOnly);\n\n const {\n savedOnly: savedOnlyInitial,\n search: searchInitial,\n tags: tagInitial,\n services: servicesInitial,\n } = queryParams || {};\n\n const [savedOnly, setSavedOnly] = React.useState<boolean>(savedOnlyInitial === 'true');\n const [search, setSearch] = React.useState<string>(searchInitial as string);\n\n const isMobile = React.useContext(MobileContext);\n\n const handleSavedOnly = () => {\n handleAnalyticsSaveOnly();\n setSavedOnly(!savedOnly);\n handleLoadData({\n page: DEFAULT_PAGE,\n query: {\n savedOnly: savedOnly ? '' : 'true',\n search: '',\n tags: '',\n page: DEFAULT_PAGE,\n services: '',\n },\n });\n };\n\n const handleSearch = (searchValue: string) => {\n setSearch(searchValue);\n\n handleLoadData({\n page: DEFAULT_PAGE,\n query: {search: searchValue, page: DEFAULT_PAGE},\n });\n };\n\n const handleTagSelect = (selectedTags: string[]) => {\n const event = prepareAnalyticsEvent({\n name: DefaultGoalIds.tag,\n counter: AnalyticsCounter.CrossSite,\n });\n handleAnalyticsTag(event, {\n theme: selectedTags[0],\n });\n\n const isEmptyTag = selectedTags.some((tag) => tag === 'empty');\n\n handleLoadData({\n page: DEFAULT_PAGE,\n query: {\n tags: isEmptyTag ? '' : selectedTags[0],\n page: DEFAULT_PAGE,\n },\n });\n };\n\n const handleServicesSelect = (selectedServices: string[]) => {\n const forAnalyticsServices = services.filter((service) => {\n return selectedServices.includes(service.value);\n });\n\n const servicesAsStringForAnalytics = forAnalyticsServices\n .map((service) => service.content)\n .join(',');\n\n const event = prepareAnalyticsEvent({\n name: DefaultGoalIds.service,\n counter: AnalyticsCounter.CrossSite,\n });\n handleAnalyticsService(event, {\n service: servicesAsStringForAnalytics,\n });\n\n const servicesAsString = selectedServices.join(',');\n\n handleLoadData({\n page: DEFAULT_PAGE,\n query: {services: servicesAsString, page: DEFAULT_PAGE},\n });\n };\n\n const tagsItems = React.useMemo(\n () => [{value: 'empty', content: i18n(Keyset.AllTags)} as unknown as SelectItem, ...tags],\n [tags],\n );\n\n const servicesItems = React.useMemo(\n () => (servicesInitial ? [...(servicesInitial as string).split(',')] : []),\n [servicesInitial],\n );\n\n return (\n <div className={b('header')}>\n <h1 className={b('header-item', {title: true})}>{i18n(Keyset.Title)}</h1>\n <div className={b('header-item', {filters: true})}>\n <div className={b('filter-item')}>\n <Search\n className={b('search')}\n placeholder={i18n(Keyset.Search)}\n initialValue={search && typeof search === 'string' ? search : ''}\n onSubmit={handleSearch}\n />\n </div>\n <div className={b('filter-item')}>\n <Select\n className={b('select')}\n size=\"xl\"\n options={tagsItems}\n defaultValue={[tagInitial] as string[]}\n onUpdate={handleTagSelect}\n placeholder={i18n(Keyset.AllTags)}\n popupClassName={b('popup', {isMobile})}\n renderControl={renderSwitcher({\n initial: [tagInitial],\n list: tagsItems,\n defaultLabel: i18n(Keyset.AllTags),\n })}\n disablePortal\n virtualizationThreshold={VIRTUALIZATION_THRESHOLD}\n renderOption={renderOption}\n />\n </div>\n\n {services.length > 0 ? (\n <div className={b('filter-item')}>\n <Select\n className={b('select')}\n size=\"xl\"\n multiple\n filterable\n hasClear\n disablePortal\n options={services}\n defaultValue={servicesItems}\n popupClassName={b('popup', {isMobile})}\n onUpdate={handleServicesSelect}\n placeholder={i18n(Keyset.AllServices)}\n renderControl={renderSwitcher({\n initial: servicesItems,\n list: services,\n defaultLabel: i18n(Keyset.AllServices),\n })}\n virtualizationThreshold={VIRTUALIZATION_THRESHOLD}\n renderOption={renderOption}\n renderFilter={renderFilter}\n />\n </div>\n ) : null}\n {hasLikes ? (\n <div className={b('filter-item', {'width-auto': true})}>\n <Button\n view={'outlined'}\n className={b('saved-only-button', {savedOnly})}\n size=\"xl\"\n onClick={handleSavedOnly}\n selected={savedOnly}\n >\n <Icon data={Save} size={ICON_SIZE} className={b('icon', {savedOnly})} />\n {i18n(Keyset.ActionSavedOnly)}\n </Button>\n </div>\n ) : null}\n </div>\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"customRenders.js","sourceRoot":"../../../../../../src","sources":["components/FeedHeader/components/Controls/customRenders.tsx"],"names":[],"mappings":";;;;;AAAA,6CAAuE;AAEvE,oDAA8C;AAC9C,gDAA2C;AAC3C,oFAGkD;AAClD,wEAAqF;AAIrF,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,eAAe,CAAC,CAAC;AAc1B,MAAM,cAAc,GACvB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,YAAY,EAAC,EAAE,EAAE;AAClC,8CAA8C;AAC9C,CAAC,EAAwF,EAAE,EAAE;QAA5F,EAAC,GAAG,EAAE,WAAW,OAAuE,EAArE,oBAAoE,EAApE,EAAe,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,OAAe,EAAV,SAAS,sBAArD,kDAAsD,CAAD;IAAO,OAAA,CAC1F,uBAAC,+BAAc,IACX,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,YAAY,EAC1B,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,GAAG,EACf,YAAY,EAAE;YACV,OAAO;YACP,SAAS;SACZ,EACD,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,SAAS,GACtB,CACL,CAAA;CAAA,CAAC;AAnBO,QAAA,cAAc,kBAmBrB;AAEC,MAAM,YAAY,GAAqB,CAAC,EAI9C,EAAE,EAAE;QAJ0C,EAC3C,GAAG,EACH,QAAQ,OAEX,EADG,kBAAqF,EAArF,EAAa,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,OAAe,EAAV,SAAS,sBAAxE,yDAAyE,CAAD;IAClF,OAAA,CACF,uBAAC,iBAAS,IACN,KAAK,EAAE,KAAK,EACZ,IAAI,EAAC,OAAO,EACZ,WAAW,EAAE,IAAA,WAAI,EAAC,aAAM,CAAC,MAAM,CAAC,EAChC,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,CAAC,CAAC,cAAc,CAAC,EAC5B,UAAU,EAAE,GAAG,EACf,YAAY,kBAAG,IAAI,EAAE,CAAC,IAAK,SAAS,IACtC,CACL,CAAA;CAAA,CAAC;AAfW,QAAA,YAAY,gBAevB;AAEK,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAE,EAAE,CAAC,CAClD,uBAAC,uCAAkB,IAAC,IAAI,EAAE,MAAyC,GAAI,CAC1E,CAAC;AAFW,QAAA,YAAY,gBAEvB","sourcesContent":["import {SelectOption, SelectProps, TextInput} from '@gravity-ui/uikit';\n\nimport {Keyset, i18n} from '../../../../i18n';\nimport {block} from '../../../../utils/cn';\nimport {\n CustomSelectOption,\n CustomSelectOptionProps,\n} from '../CustomSelectOption/CustomSelectOption';\nimport {CustomSwitcher, CustomSwitcherProps} from '../CustomSwitcher/CustomSwitcher';\n\nimport './Controls.scss';\n\nconst b = block('feed-controls');\n\ntype RenderSwitcherType = ({\n initial,\n list,\n defaultLabel,\n}: {\n initial: CustomSwitcherProps['initial'];\n list: CustomSwitcherProps['list'];\n defaultLabel: string;\n}) => SelectProps['renderControl'];\n\ntype RenderFilterType = SelectProps['renderFilter'];\n\nexport const renderSwitcher: RenderSwitcherType =\n ({initial, list, defaultLabel}) =>\n // eslint-disable-next-line react/display-name\n ({ref, renderClear, triggerProps: {id, disabled, type, onClick, onKeyDown, ...a11yProps}}) => (\n <CustomSwitcher\n id={id}\n disabled={disabled}\n type={type}\n initial={initial}\n defaultLabel={defaultLabel}\n list={list}\n controlRef={ref}\n triggerProps={{\n onClick,\n onKeyDown,\n }}\n renderClear={renderClear}\n a11yProps={a11yProps}\n />\n );\n\nexport const renderFilter: RenderFilterType = ({\n ref,\n onChange,\n inputProps: {value, onKeyDown, onChange: _, size: __, placeholder: ___, ...a11yProps},\n}) => (\n <TextInput\n value={value}\n view=\"clear\"\n placeholder={i18n(Keyset.Search)}\n onUpdate={onChange}\n onKeyDown={onKeyDown}\n className={b('popup-filter')}\n controlRef={ref}\n controlProps={{size: 1, ...a11yProps}}\n />\n);\n\nexport const renderOption = (option: SelectOption) => (\n <CustomSelectOption data={option as CustomSelectOptionProps['data']} />\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomSelectOption.js","sourceRoot":"../../../../../../src","sources":["components/FeedHeader/components/CustomSelectOption/CustomSelectOption.tsx"],"names":[],"mappings":";;;;AAIA,gDAA2C;AAI3C,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,2BAA2B,CAAC,CAAC;AAQtC,MAAM,kBAAkB,GAAG,CAAC,EAAC,IAAI,EAA0B,EAAE,EAAE,CAAC,CACnE,iCAAK,SAAS,EAAE,CAAC,EAAE,aACf,iCAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAAG,IAAI,CAAC,IAAI,GAAQ,EAC9C,2CAAO,IAAI,CAAC,OAAO,GAAQ,IACzB,CACT,CAAC;AALW,QAAA,kBAAkB,sBAK7B","sourcesContent":["import * as React from 'react';\n\nimport {SelectOption as SelectOptionType} from '@gravity-ui/uikit';\n\nimport {block} from '../../../../utils/cn';\n\nimport './CustomSelectOption.scss';\n\nconst b = block('feed-custom-select-option');\n\nexport type CustomSelectOptionProps = {\n data: {\n icon?: React.ReactElement;\n } & SelectOptionType;\n};\n\nexport const CustomSelectOption = ({data}: CustomSelectOptionProps) => (\n <div className={b()}>\n <span className={b('icon')}>{data.icon}</span>\n <span>{data.content}</span>\n </div>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"CustomSwitcher.js","sourceRoot":"../../../../../../src","sources":["components/FeedHeader/components/CustomSwitcher/CustomSwitcher.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,6CAA+D;AAE/D,sEAA8D;AAC9D,sDAA8C;AAC9C,gDAA2C;AAK3C,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,sBAAsB,CAAC,CAAC;AAoBxC,MAAM,SAAS,GAAG,EAAE,CAAC;AACrB,MAAM,eAAe,GAAG,EAAE,CAAC;AAEpB,MAAM,cAAc,GAAG,CAAC,EAC3B,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,OAAO,EACP,YAAY,EACZ,IAAI,EACJ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,GACS,EAAE,EAAE;IACtB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QAClC,MAAM,KAAK,GAAG,IAAI;aACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;aAC9C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAEzC,MAAM,gBAAgB,GAAG,IAAA,iBAAS,GAAE,CAAC;IAErC,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,iBAAiB,CAAC,EAAE,GAAG,EAAE,UAA6C,aAEpF,iDACI,EAAE,EAAE,EAAE,EACN,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,EAC9B,SAAS,EAAE,CAAC,CAAC,yBAAyB,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,EACxD,SAAS,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,SAAS,IAC9B,SAAS,uBACI,gBAAgB,IACnC,EACF,gCACI,EAAE,EAAE,gBAAgB,EACpB,SAAS,EAAE,CAAC,CAAC,yBAAyB,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,iCAGvD,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,IAAI,CAAC,GACrB,EACL,WAAW;gBACR,WAAW,CAAC;oBACR,UAAU,EAAE,GAAG,EAAE,CAAC,CACd,uBAAC,YAAI,IAAC,IAAI,EAAE,aAAK,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,GAAI,CACtE;iBACJ,CAAC,EACL,UAAU,IAAI,CACX,gCAAK,SAAS,EAAE,CAAC,CAAC,yBAAyB,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,YACxD,UAAU,CAAC,MAAM,GAChB,CACT,EACD,gCAAK,SAAS,EAAE,CAAC,CAAC,yBAAyB,EAAE,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC,YACvD,uBAAC,YAAI,IAAC,IAAI,EAAE,6BAAa,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,gBAAgB,CAAC,GAAI,GAC5E,IACJ,CACT,CAAC;AACN,CAAC,CAAC;AA3DW,QAAA,cAAc,kBA2DzB","sourcesContent":["import * as React from 'react';\n\nimport {Icon, SelectProps, useUniqId} from '@gravity-ui/uikit';\n\nimport {DropdownArrow} from '../../../../icons/DropdownArrow';\nimport {Close} from '../../../../icons/Close';\nimport {block} from '../../../../utils/cn';\nimport {SelectItem} from '../Controls/Controls';\n\nimport './CustomSwitcher.scss';\n\nconst b = block('feed-custom-switcher');\n\ntype RenderControlParameters = Partial<Parameters<Required<SelectProps>['renderControl']>[0]>;\ntype TriggerProps = Required<RenderControlParameters>['triggerProps'];\n\ntype A11yKeys = {\n [K in keyof TriggerProps]-?: K extends `aria-${string}` | 'role' ? K : never;\n}[keyof TriggerProps];\n\ntype RenderControlA11yProps = Pick<TriggerProps, A11yKeys>;\n\nexport type CustomSwitcherProps = {\n initial: (string | number | null)[];\n defaultLabel: string;\n list: SelectItem[];\n controlRef: RenderControlParameters['ref'];\n a11yProps: RenderControlA11yProps;\n} & Omit<RenderControlParameters, 'ref'> &\n Pick<TriggerProps, 'id' | 'disabled' | 'type'>;\n\nconst ICON_SIZE = 12;\nconst CLEAR_ICON_SIZE = 11;\n\nexport const CustomSwitcher = ({\n id,\n disabled,\n type,\n initial,\n defaultLabel,\n list,\n triggerProps,\n controlRef,\n renderClear,\n a11yProps,\n}: CustomSwitcherProps) => {\n const itemsNames = React.useMemo(() => {\n const items = list\n .filter((item) => initial.includes(item.value))\n .map((item) => item.content);\n\n return items.length ? items : [defaultLabel];\n }, [defaultLabel, initial, list]);\n const hasCounter = itemsNames.length > 1;\n\n const contentElementId = useUniqId();\n\n return (\n <div className={b('custom-switcher')} ref={controlRef as React.LegacyRef<HTMLDivElement>}>\n {/* eslint-disable-next-line jsx-a11y/role-supports-aria-props */}\n <button\n id={id}\n disabled={disabled}\n type={type}\n onClick={triggerProps?.onClick}\n className={b('custom-switcher-element', {overlay: true})}\n onKeyDown={triggerProps?.onKeyDown}\n {...a11yProps}\n aria-labelledby={contentElementId}\n />\n <div\n id={contentElementId}\n className={b('custom-switcher-element', {content: true})}\n aria-hidden\n >\n {itemsNames?.join(', ')}\n </div>\n {renderClear &&\n renderClear({\n renderIcon: () => (\n <Icon data={Close} size={CLEAR_ICON_SIZE} className={b('clear')} />\n ),\n })}\n {hasCounter && (\n <div className={b('custom-switcher-element', {counter: true})}>\n {itemsNames.length}\n </div>\n )}\n <div className={b('custom-switcher-element', {arrow: true})}>\n <Icon data={DropdownArrow} size={ICON_SIZE} className={b('switcher-arrow')} />\n </div>\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MetaWrapper.js","sourceRoot":"../../../../src","sources":["components/MetaWrapper/MetaWrapper.tsx"],"names":[],"mappings":";;;;AAAA,+CAAoC;AAIpC;;;;;;;GAOG;AACI,MAAM,WAAW,GAAG,CAAC,EAAC,iBAAiB,GAAG,KAAK,EAAE,aAAa,EAAY,EAAE,EAAE,CACjF,iBAAiB,CAAC,CAAC,CAAC,uBAAC,qBAAM,cAAE,aAAa,GAAU,CAAC,CAAC,CAAC,aAAa,CAAC;AAD5D,QAAA,WAAW,eACiD","sourcesContent":["import {Helmet} from 'react-helmet';\n\nimport {MetaProps} from '../../models/common';\n\n/**\n * Wrapper on meta data of page\n *\n * @param needHelmetWrapper - component needs helmet wrapper\n * @param metaComponent - meta data component\n *\n * @returns jsx\n */\nexport const MetaWrapper = ({needHelmetWrapper = false, metaComponent}: MetaProps) =>\n needHelmetWrapper ? <Helmet>{metaComponent}</Helmet> : metaComponent;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Paginator.js","sourceRoot":"../../../../src","sources":["components/Paginator/Paginator.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {useAnalytics} from '@gravity-ui/page-constructor';\n\nimport {DefaultGoalIds} from '../../constants';\nimport {AnalyticsCounter} from '../../counters/utils';\nimport {DefaultEventNames} from '../../models/common';\nimport {block} from '../../utils/cn';\n\nimport {NavigationButton} from './components/NavigationButton';\nimport {PaginatorItem} from './components/PaginatorItem';\nimport {ArrowType, PaginatorItemProps, PaginatorProps} from './types';\nimport {getPageConfigs, getPagesCount} from './utils';\nimport {prepareAnalyticsEvent} from '../../utils/common';\n\nimport _ from 'lodash';\n\nimport './Paginator.scss';\n\nconst b = block('paginator');\n\nconst DEFAULT_PAGE_COUNT_FOR_SHOW_SUPPORT_BUTTONS = 6;\n\nexport const Paginator = ({\n itemsPerPage,\n totalItems,\n maxPages,\n page,\n className,\n onPageChange,\n queryParams,\n pageCountForShowSupportButtons = DEFAULT_PAGE_COUNT_FOR_SHOW_SUPPORT_BUTTONS,\n}: PaginatorProps) => {\n const [pagesCount, setPagesCount] = React.useState(\n getPagesCount({itemsPerPage, totalItems, maxPages}),\n );\n\n const nonPagedQuery = React.useMemo(() => {\n return _.omit(queryParams, ['page']);\n }, [queryParams]);\n\n React.useEffect(() => {\n const count = getPagesCount({itemsPerPage, totalItems, maxPages});\n setPagesCount(count);\n }, [itemsPerPage, totalItems, maxPages]);\n\n const handlePageChange = (pageIndex: number) => onPageChange?.(pageIndex);\n\n const isShowSupportButtons = React.useMemo(\n () => pagesCount > pageCountForShowSupportButtons,\n [pageCountForShowSupportButtons, pagesCount],\n );\n\n const handleAnalyticsHome = useAnalytics(DefaultEventNames.PaginatorHome);\n const handleAnalyticsNext = useAnalytics(DefaultEventNames.PaginatorNext);\n const handleAnalyticsPage = useAnalytics(DefaultEventNames.PaginatorPage);\n\n if (pagesCount <= 1) {\n return null;\n }\n\n const handleArrowClick = (type: ArrowType | number) => {\n let newPage = page;\n\n if (type === 'prev' && page > 1) {\n const event = prepareAnalyticsEvent({\n name: DefaultGoalIds.home,\n counter: AnalyticsCounter.CrossSite,\n });\n handleAnalyticsHome(event);\n newPage = 1;\n } else if (type === 'next' && page < pagesCount) {\n const event = prepareAnalyticsEvent({\n name: DefaultGoalIds.next,\n counter: AnalyticsCounter.CrossSite,\n });\n handleAnalyticsNext(event);\n newPage = page + 1;\n }\n\n if (newPage !== page) {\n handlePageChange(newPage);\n }\n };\n\n const handlePageClick = (index: number | ArrowType) => {\n if (index !== page && typeof index === 'number') {\n const event = prepareAnalyticsEvent({\n name: DefaultGoalIds.page,\n counter: AnalyticsCounter.CrossSite,\n });\n handleAnalyticsPage(event, {page: String(index)});\n handlePageChange(index);\n }\n };\n\n const paginatorItems = getPageConfigs({\n page,\n pagesCount,\n queryParams: nonPagedQuery,\n handlePageClick,\n });\n\n if (page > 1 && isShowSupportButtons) {\n paginatorItems.unshift({\n key: ArrowType.Prev,\n dataKey: ArrowType.Prev,\n queryParams: nonPagedQuery,\n mods: {type: ArrowType.Prev},\n onClick: handleArrowClick,\n index: 0,\n content: <NavigationButton arrowType={ArrowType.Prev} />,\n });\n }\n\n if (page < pagesCount && isShowSupportButtons) {\n paginatorItems.push({\n key: ArrowType.Next,\n queryParams: nonPagedQuery,\n dataKey: ArrowType.Next,\n mods: {type: ArrowType.Next},\n index: page + 1,\n onClick: handleArrowClick,\n content: <NavigationButton arrowType={ArrowType.Next} />,\n });\n }\n\n const renderPaginatorItem = (item: PaginatorItemProps) => {\n const {key, ...rest} = item;\n return <PaginatorItem key={`page_${key}`} {...rest} />;\n };\n\n return (\n <div className={b('pagination')}>\n {page > 1 && (\n <div className={b('pagination-block')}>\n <ul className={b(null, className)}>\n {paginatorItems.slice(0, 1).map(renderPaginatorItem)}\n </ul>\n </div>\n )}\n <div className={b('pagination-block')}>\n <ul className={b(null, className)}>\n {paginatorItems\n .slice(\n page > 1 ? 1 : 0,\n page < pagesCount ? paginatorItems.length - 1 : paginatorItems.length,\n )\n .map(renderPaginatorItem)}\n </ul>\n </div>\n {page < pagesCount && (\n <div className={b('pagination-block')}>\n <ul className={b(null, className)}>\n {paginatorItems\n .slice(paginatorItems.length - 1, paginatorItems.length)\n .map(renderPaginatorItem)}\n </ul>\n </div>\n )}\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"NavigationButton.js","sourceRoot":"../../../../../src","sources":["components/Paginator/components/NavigationButton.tsx"],"names":[],"mappings":";;;;AAAA,iDAA2C;AAC3C,6CAAwC;AACxC,uCAAmC;AAInC,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAOtB,MAAM,gBAAgB,GAAG,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAwB,EAAE,EAAE,CAC7E,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACd,gCAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YACpB,SAAS,KAAK,iBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,aAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,aAAM,CAAC,aAAa,CAAC,GACnF,CACT,CAAC;AALO,QAAA,gBAAgB,oBAKvB","sourcesContent":["import {Keyset, i18n} from '../../../i18n';\nimport {block} from '../../../utils/cn';\nimport {ArrowType} from '../types';\n\nimport '../Paginator.scss';\n\nconst b = block('paginator');\n\nexport type NavigationButtonProps = {\n arrowType: ArrowType;\n disabled?: boolean;\n};\n\nexport const NavigationButton = ({arrowType, disabled}: NavigationButtonProps) =>\n disabled ? null : (\n <div className={b('icon')}>\n {arrowType === ArrowType.Prev ? i18n(Keyset.ButtonBegin) : i18n(Keyset.ButtonFarther)}\n </div>\n );\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PaginatorItem.js","sourceRoot":"../../../../../src","sources":["components/Paginator/components/PaginatorItem.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,6CAAyC;AAEzC,sEAA8D;AAC9D,0EAAkE;AAClE,6CAAwC;AACxC,qDAAwE;AAKxE,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAEtB,MAAM,aAAa,GAAG,CAAC,EAC1B,OAAO,EACP,IAAI,EACJ,OAAO,EACP,WAAW,EACX,OAAO,EACP,OAAO,GAAG,KAAK,EACf,KAAK,GACY,EAAE,EAAE;IACrB,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,6BAAa,CAAC,CAAC;IACjD,MAAM,EAAC,yBAAyB,EAAE,WAAW,GAAG,oBAAkB,EAAC,GAC/D,KAAK,CAAC,UAAU,CAAC,iCAAe,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,KAAI,EAAE,CAAC,CAAC;IAEtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,OAAqB,CAAC;IAC/E,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACtC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,iCAC3B,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GACvC,WAAW,EAChB;aACG,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,IAAI,KAAK,EAAE,CAAC;aAC5C,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,OAAO,WAAW,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;IAC/D,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;IAElC,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,CAGjC,CAAC,KAAK,EAAE,EAAE;QACN,IAAI,yBAAyB,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,OAAO;QACX,CAAC;QAED,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,OAAO,CAAC,CAAC;IACvB,CAAC,EACD,CAAC,yBAAyB,EAAE,OAAO,EAAE,OAAO,CAAC,CAChD,CAAC;IAEF,OAAO,CACH,uBAAC,cAAM,IACH,IAAI,EAAC,MAAM,EACX,IAAI,EAAC,IAAI,EACT,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1B,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,yBAAyB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,EAC5D,OAAO,EAAE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,YAEvC,OAAO,GACH,CACZ,CAAC;AACN,CAAC,CAAC;AAlDW,QAAA,aAAa,iBAkDxB","sourcesContent":["import * as React from 'react';\n\nimport {Button} from '@gravity-ui/uikit';\n\nimport {LocaleContext} from '../../../contexts/LocaleContext';\nimport {SettingsContext} from '../../../contexts/SettingsContext';\nimport {block} from '../../../utils/cn';\nimport {getBlogPath as getDefaultBlogPath} from '../../../utils/common';\nimport {ArrowType, PaginatorItemProps} from '../types';\n\nimport '../Paginator.scss';\n\nconst b = block('paginator');\n\nexport const PaginatorItem = ({\n dataKey,\n mods,\n content,\n queryParams,\n onClick,\n loading = false,\n index,\n}: PaginatorItemProps) => {\n const {locale} = React.useContext(LocaleContext);\n const {addNavigationLinkForPages, getBlogPath = getDefaultBlogPath} =\n React.useContext(SettingsContext);\n const urlPath = getBlogPath(locale?.pathPrefix || '');\n\n const itemKey = Number(dataKey) > 0 ? Number(dataKey) : (dataKey as ArrowType);\n const navigationLink = React.useMemo(() => {\n const queryString = Object.entries({\n ...(index > 1 ? {page: index} : undefined),\n ...queryParams,\n })\n .map(([param, value]) => `${param}=${value}`)\n .join('&');\n return queryString ? `${urlPath}?${queryString}` : urlPath;\n }, [queryParams, index, urlPath]);\n\n const handleClick = React.useCallback<\n (event: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement, MouseEvent>) => void\n >(\n (event) => {\n if (addNavigationLinkForPages && (event.metaKey || event.ctrlKey)) {\n return;\n }\n\n onClick?.(itemKey);\n },\n [addNavigationLinkForPages, itemKey, onClick],\n );\n\n return (\n <Button\n view=\"flat\"\n size=\"xl\"\n className={b('item', mods)}\n onClick={handleClick}\n href={addNavigationLinkForPages ? navigationLink : undefined}\n loading={loading && Boolean(mods.active)}\n >\n {content}\n </Button>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"../../../../src","sources":["components/Paginator/types.ts"],"names":[],"mappings":";;;AA2BA,IAAY,SAGX;AAHD,WAAY,SAAS;IACjB,0BAAa,CAAA;IACb,0BAAa,CAAA;AACjB,CAAC,EAHW,SAAS,yBAAT,SAAS,QAGpB","sourcesContent":["import * as React from 'react';\n\nimport type {NoStrictEntityMods} from '@bem-react/classname';\n\nimport type {ClassNameProps, Query} from '../../models/common';\n\nexport interface PaginatorItemProps {\n key: string | ArrowType;\n dataKey: string | ArrowType;\n mods: NoStrictEntityMods;\n content: React.ReactNode;\n queryParams: Query;\n onClick?: (key: number | ArrowType) => void;\n loading?: boolean;\n index: number;\n}\n\nexport type PaginatorProps = {\n page: number;\n totalItems: number;\n itemsPerPage: number;\n maxPages: number;\n onPageChange: (page: number) => void;\n pageCountForShowSupportButtons?: number;\n queryParams: Query;\n} & ClassNameProps;\n\nexport enum ArrowType {\n Prev = 'prev',\n Next = 'next',\n}\n\nexport type GetPageConfigParams = {\n page: number;\n pagesCount: number;\n queryParams: Query;\n handlePageClick: (key: number | ArrowType) => void;\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"../../../../src","sources":["components/Paginator/utils.ts"],"names":[],"mappings":";;;AAEA,MAAM,iBAAiB,GAAG,CAAC,CAAC;AAErB,MAAM,cAAc,GAAG,CAAC,EAC3B,IAAI,EACJ,WAAW,EACX,UAAU,EACV,eAAe,GACG,EAAE,EAAE;IACtB,MAAM,cAAc,GAA8B,EAAE,CAAC;IACrD,sDAAsD;IACtD,MAAM,UAAU,GAAG,CAAC,iBAAiB,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,SAAS,GAAG,IAAI,GAAG,UAAU,CAAC;IAClC,IAAI,OAAO,GAAG,IAAI,GAAG,UAAU,CAAC;IAEhC,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAChB,OAAO,GAAG,IAAI,GAAG,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;QAC5C,SAAS,GAAG,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAExC,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,cAAc,CAAC,IAAI,CAAC;YAChB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YACd,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YAClB,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,EAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,KAAK,CAAC,EAAC;YACxC,WAAW;YACX,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,CAAC;SACb,CAAC,CAAC;IACP,CAAC;IAED,OAAO,cAAc,CAAC;AAC1B,CAAC,CAAC;AAhCW,QAAA,cAAc,kBAgCzB;AAEK,MAAM,aAAa,GAAG,CACzB,KAAuE,EACzE,EAAE;IACA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;IAEpE,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;AAChD,CAAC,CAAC;AANW,QAAA,aAAa,iBAMxB","sourcesContent":["import {GetPageConfigParams, PaginatorItemProps, PaginatorProps} from './types';\n\nconst MAX_VISIBLE_PAGES = 5;\n\nexport const getPageConfigs = ({\n page,\n queryParams,\n pagesCount,\n handlePageClick,\n}: GetPageConfigParams) => {\n const paginatorItems: Array<PaginatorItemProps> = [];\n // it is calculating the middle of visible pages below\n const pageOffset = (MAX_VISIBLE_PAGES - 1) / 2;\n let startPage = page - pageOffset;\n let endPage = page + pageOffset;\n\n if (startPage < 1) {\n endPage = page + pageOffset - startPage + 1;\n startPage = 1;\n }\n\n endPage = Math.min(endPage, pagesCount);\n\n for (let i = startPage; i <= endPage; i++) {\n paginatorItems.push({\n key: String(i),\n dataKey: String(i),\n index: i,\n mods: {type: 'page', active: page === i},\n queryParams,\n onClick: handlePageClick,\n content: i,\n });\n }\n\n return paginatorItems;\n};\n\nexport const getPagesCount = (\n props: Pick<PaginatorProps, 'totalItems' | 'itemsPerPage' | 'maxPages'>,\n) => {\n const totalPages = Math.ceil(props.totalItems / props.itemsPerPage);\n\n return Math.min(totalPages, props.maxPages);\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostCard.js","sourceRoot":"../../../../src","sources":["components/PostCard/PostCard.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport {AnalyticsEventsProp, CardBase, HTML, YFMWrapper} from '@gravity-ui/page-constructor';\nimport {useUniqId} from '@gravity-ui/uikit';\n\nimport {LikesContext} from '../../contexts/LikesContext';\nimport {PostCardSize, PostCardTitleHeadingLevel, PostData} from '../../models/common';\nimport {block} from '../../utils/cn';\nimport {SuggestPostInfo} from '../PostInfo/SuggestPostInfo';\nimport {useAriaAttributes} from '../../hooks/useAriaAttributes';\n\nimport './PostCard.scss';\n\ntype PostCardProps = {\n post: PostData;\n fullWidth?: boolean;\n showTag?: boolean;\n size?: PostCardSize;\n titleHeadingLevel?: PostCardTitleHeadingLevel;\n analyticsEvents?: AnalyticsEventsProp;\n};\n\nconst b = block('post-card');\n\nexport const PostCard = ({\n post,\n fullWidth = false,\n size = PostCardSize.SMALL,\n showTag = false,\n titleHeadingLevel = PostCardTitleHeadingLevel.H3,\n analyticsEvents,\n}: PostCardProps) => {\n const {\n title: postTitle,\n htmlTitle,\n textTitle,\n blogPostId,\n id,\n date,\n readingTime,\n hasUserLike,\n likes,\n image,\n description,\n tags,\n url,\n } = post;\n\n const title = postTitle || textTitle || htmlTitle;\n\n const {toggleLike, hasLikes} = React.useContext(LikesContext);\n\n const likesProps = React.useMemo(\n () =>\n hasLikes\n ? {\n hasUserLike,\n likesCount: likes,\n toggleLike,\n }\n : undefined,\n [hasUserLike, likes, toggleLike, hasLikes],\n );\n const titleId = useUniqId();\n const descriptionId = useUniqId();\n const dateId = useUniqId();\n const tagId = useUniqId();\n const readingTimeId = useUniqId();\n const isTagVisible = showTag && tags?.[0]?.name;\n const ariaAttributes = useAriaAttributes({\n labelIds: [isTagVisible && tagId, title && titleId],\n descriptionIds: [\n description && descriptionId,\n date && dateId,\n readingTime && readingTimeId,\n ],\n });\n\n return (\n <CardBase\n url={url}\n analyticsEvents={analyticsEvents}\n className={b('card', {fullWidth})}\n extraProps={ariaAttributes}\n >\n <CardBase.Header image={image} className={b('header', {fullWidth})}>\n <div className={b('image-container')} data-qa=\"blog-suggest-header\" />\n </CardBase.Header>\n <CardBase.Content>\n {isTagVisible && (\n <div id={tagId} className={b('tag', {size})}>\n {tags[0].name}\n </div>\n )}\n {title &&\n React.createElement(\n titleHeadingLevel,\n {className: b('title', {size})},\n <span>\n <HTML id={titleId}>{title}</HTML>\n </span>,\n )}\n {description && (\n <YFMWrapper\n className={b('description')}\n content={description}\n modifiers={{\n blog: size === 'm',\n blogCard: true,\n }}\n id={descriptionId}\n />\n )}\n </CardBase.Content>\n <CardBase.Footer>\n <SuggestPostInfo\n postId={blogPostId || id}\n date={date}\n readingTime={readingTime}\n hasUserLike={hasUserLike}\n likes={likesProps}\n size={size}\n qa=\"blog-suggest-block\"\n dateId={dateId}\n readingTimeId={readingTimeId}\n />\n </CardBase.Footer>\n </CardBase>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostInfo.js","sourceRoot":"../../../../src","sources":["components/PostInfo/PostInfo.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAG/B,uEAA+D;AAE/D,0CAAqC;AAErC,+CAAuC;AACvC,6DAAqD;AACrD,+CAAuC;AACvC,qDAA6C;AAC7C,kDAAmD;AAInD,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAU7B;;;;;;;;;;;GAWG;AACI,MAAM,QAAQ,GAAG,CAAC,EACrB,IAAI,EACJ,WAAW,EACX,MAAM,EACN,KAAK,GAAG,OAAO,EACf,EAAE,EACF,wBAAwB,GACZ,EAAE,EAAE;IAChB,MAAM,EAAC,KAAK,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,iCAAe,CAAC,CAAC;IAClD,MAAM,YAAY,GAAG,IAAA,wBAAe,EAAC,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC;IAEzE,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,WAAW,EAAE,EAAC,KAAK,EAAC,CAAC,aAClC,IAAI,IAAI,uBAAC,WAAI,IAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,CAAC,IAAI,GAAI,EACnD,WAAW,IAAI,uBAAC,yBAAW,IAAC,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,CAAC,WAAW,GAAI,EACvF,uBAAC,iBAAO,IAAC,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,OAAO,GAAI,EAC5E,KAAK,IAAI,CACN,uBAAC,WAAI,IACD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,KAAK,CAAC,UAAU,EACvB,WAAW,EAAE,KAAK,CAAC,WAAW,EAC9B,cAAc,EAAE,KAAK,CAAC,cAAc,EACpC,eAAe,EAAE,wBAAwB,aAAxB,wBAAwB,uBAAxB,wBAAwB,CAAE,IAAI,EAC/C,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,YAAY,CAAC,IAAI,GACvB,CACL,IACC,CACT,CAAC;AACN,CAAC,CAAC;AA7BW,QAAA,QAAQ,YA6BnB","sourcesContent":["import * as React from 'react';\n\nimport {AnalyticsEventsProp} from '@gravity-ui/page-constructor';\nimport {PostPageContext} from '../../contexts/PostPageContext';\nimport {PostData, QAProps} from '../../models/common';\nimport {block} from '../../utils/cn';\n\nimport {Date} from './components/Date';\nimport {ReadingTime} from './components/ReadingTime';\nimport {Save} from './components/Save';\nimport {Sharing} from './components/Sharing';\nimport {getQaAttributes} from '../../utils/common';\n\nimport './PostInfo.scss';\n\nconst b = block('post-info');\n\ntype PostInfoProps = QAProps & {\n postId: PostData['id'];\n readingTime: PostData['readingTime'];\n date: PostData['date'];\n theme?: 'light' | 'dark';\n analyticsEventsContainer?: Record<string, AnalyticsEventsProp>;\n};\n\n/**\n * Blog post info panel component\n *\n * @param postId - post id\n * @param readingTime - post reading time\n * @param date - post create date\n * @param theme - theme name\n * @param qa - test-attr\n * @param analyticsEventsContainer - a map of records with a single or collection of objects detailing analytics events\n *\n * @returns jsx\n */\nexport const PostInfo = ({\n date,\n readingTime,\n postId,\n theme = 'light',\n qa,\n analyticsEventsContainer,\n}: PostInfoProps) => {\n const {likes} = React.useContext(PostPageContext);\n const qaAttributes = getQaAttributes(qa, 'date', 'reading-time', 'save');\n\n return (\n <div className={b('container', {theme})}>\n {date && <Date date={date} qa={qaAttributes.date} />}\n {readingTime && <ReadingTime readingTime={readingTime} qa={qaAttributes.readingTime} />}\n <Sharing theme={theme} analyticsEvents={analyticsEventsContainer?.sharing} />\n {likes && (\n <Save\n postId={postId}\n title={likes.likesCount}\n hasUserLike={likes.hasUserLike}\n handleUserLike={likes.handleUserLike}\n analyticsEvents={analyticsEventsContainer?.save}\n theme={theme}\n qa={qaAttributes.save}\n />\n )}\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SuggestPostInfo.js","sourceRoot":"../../../../src","sources":["components/PostInfo/SuggestPostInfo.tsx"],"names":[],"mappings":";;;;AAAA,sDAA8C;AAC9C,mDAA4F;AAC5F,0CAAqC;AAErC,+CAAuC;AACvC,6DAAqD;AACrD,+CAAuC;AACvC,kDAAyD;AACzD,kDAA+C;AAI/C,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAE7B,MAAM,UAAU,GAAG,IAAA,8BAAqB,EAAC,EAAC,IAAI,EAAE,0BAAc,CAAC,WAAW,EAAC,CAAC,CAAC;AAgB7E;;;;;;;;;;;;;;;GAeG;AACI,MAAM,eAAe,GAAG,CAAC,EAC5B,MAAM,EACN,IAAI,EACJ,WAAW,EACX,KAAK,EACL,IAAI,GAAG,qBAAY,CAAC,KAAK,EACzB,EAAE,EACF,MAAM,EACN,aAAa,GACM,EAAE,EAAE;IACvB,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAC,GAAG,IAAA,mBAAQ,EAAC;QACnD,OAAO,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW;QAC3B,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU;QACxB,kBAAkB,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU;QACrC,MAAM,EAAE,MAAM;KACjB,CAAC,CAAC;IAEH,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,aAC1B,iCAAK,SAAS,EAAE,CAAC,CAAC,mBAAmB,CAAC,aACjC,IAAI,IAAI,uBAAC,WAAI,IAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,GAAI,EACpD,WAAW,IAAI,CACZ,uBAAC,yBAAW,IAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,GAAI,CAC3E,IACC,EACL,KAAK,IAAI,MAAM,IAAI,CAChB,uBAAC,WAAI,IACD,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,UAAU,EAC3B,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,UAAU,EAC1B,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,EAAE,GACR,CACL,IACC,CACT,CAAC;AACN,CAAC,CAAC;AAtCW,QAAA,eAAe,mBAsC1B","sourcesContent":["import {useLikes} from '../../hooks/useLikes';\nimport {PostCardSize, PostData, QAProps, ToggleLikeCallbackType} from '../../models/common';\nimport {block} from '../../utils/cn';\n\nimport {Date} from './components/Date';\nimport {ReadingTime} from './components/ReadingTime';\nimport {Save} from './components/Save';\nimport {prepareAnalyticsEvent} from '../../utils/common';\nimport {DefaultGoalIds} from '../../constants';\n\nimport './PostInfo.scss';\n\nconst b = block('post-info');\n\nconst saveEvents = prepareAnalyticsEvent({name: DefaultGoalIds.saveSuggest});\n\nexport interface SuggestPostInfoProps\n extends Pick<PostData, 'date' | 'readingTime' | 'hasUserLike'>,\n QAProps {\n postId: PostData['blogPostId'];\n size?: PostCardSize;\n likes?: {\n likesCount?: number;\n hasUserLike?: boolean;\n toggleLike?: ToggleLikeCallbackType;\n };\n dateId?: string;\n readingTimeId?: string;\n}\n\n/**\n * Suggest blog card info component\n *\n * @param postId - post id\n * @param date - post create date\n * @param readingTime - post reading time\n * @param hasUserLike - flag that the user liked the post\n * @param likes - likes count\n * @param qa - test-attr\n * @param size - text size\n * @param isModernIcon - flag what we need render 'bookmark' icon\n * @param dateId - id value for element with post date. Useful when providing accessible description\n * @param readingTimeId - id value for element with reading time. Useful when providing accessible description\n *\n * @returns jsx\n */\nexport const SuggestPostInfo = ({\n postId,\n date,\n readingTime,\n likes,\n size = PostCardSize.SMALL,\n qa,\n dateId,\n readingTimeId,\n}: SuggestPostInfoProps) => {\n const {hasUserLike, likesCount, handleLike} = useLikes({\n hasLike: likes?.hasUserLike,\n count: likes?.likesCount,\n toggleLikeCallback: likes?.toggleLike,\n postId: postId,\n });\n\n return (\n <div className={b('container')}>\n <div className={b('suggest-container')}>\n {date && <Date date={date} size={size} id={dateId} />}\n {readingTime && (\n <ReadingTime readingTime={readingTime} size={size} id={readingTimeId} />\n )}\n </div>\n {likes && postId && (\n <Save\n postId={postId}\n title={likesCount}\n analyticsEvents={saveEvents}\n hasUserLike={hasUserLike}\n handleUserLike={handleLike}\n size={size}\n qa={qa}\n />\n )}\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Date.js","sourceRoot":"../../../../../src","sources":["components/PostInfo/components/Date.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,sEAA8D;AAC9D,sDAA6D;AAC7D,6CAAwC;AACxC,iDAA2C;AAI3C,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAQtB,MAAM,IAAI,GAAG,CAAC,EAAC,IAAI,EAAE,IAAI,GAAG,qBAAY,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE,EAAY,EAAE,EAAE;IACzE,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,6BAAa,CAAC,CAAC;IAEjD,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,IAAI,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,aAAW,EAAE,YACjD,IAAA,aAAM,EAAC,IAAI,EAAE,UAAU,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,CAAC,GACrC,CACT,CAAC;AACN,CAAC,CAAC;AARW,QAAA,IAAI,QAQf","sourcesContent":["import * as React from 'react';\n\nimport {LocaleContext} from '../../../contexts/LocaleContext';\nimport {PostCardSize, QAProps} from '../../../models/common';\nimport {block} from '../../../utils/cn';\nimport {format} from '../../../utils/date';\n\nimport '../PostInfo.scss';\n\nconst b = block('post-info');\n\ntype DateProps = QAProps & {\n date: string | number;\n size?: PostCardSize;\n id?: string;\n};\n\nexport const Date = ({date, size = PostCardSize.SMALL, id, qa}: DateProps) => {\n const {locale} = React.useContext(LocaleContext);\n\n return (\n <div className={b('item', {size})} id={id} data-qa={qa}>\n {format(date, 'longDate', locale?.code)}\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReadingTime.js","sourceRoot":"../../../../../src","sources":["components/PostInfo/components/ReadingTime.tsx"],"names":[],"mappings":";;;;AAAA,6CAAuC;AAEvC,iDAA2C;AAC3C,iDAAyC;AACzC,6CAAwC;AAKxC,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAE7B,MAAM,SAAS,GAAG,EAAE,CAAC;AAQd,MAAM,WAAW,GAAG,CAAC,EAAC,WAAW,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAmB,EAAE,EAAE,CAAC,CAChF,iCAAK,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,IAAI,EAAC,CAAC,EAAE,EAAE,EAAE,EAAE,aAAW,EAAE,aAClD,iCAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YACtB,uBAAC,YAAI,IAAC,IAAI,EAAE,WAAI,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,GAAI,GAC9D,EACN,IAAA,WAAI,EAAC,aAAM,CAAC,kBAAkB,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC,IACpD,CACT,CAAC;AAPW,QAAA,WAAW,eAOtB","sourcesContent":["import {Icon} from '@gravity-ui/uikit';\n\nimport {Keyset, i18n} from '../../../i18n';\nimport {Time} from '../../../icons/Time';\nimport {block} from '../../../utils/cn';\n\nimport {QAProps} from '../../../models/common';\nimport '../PostInfo.scss';\n\nconst b = block('post-info');\n\nconst ICON_SIZE = 16;\n\ntype ReadingTimeProps = QAProps & {\n readingTime: number;\n size?: 's' | 'm';\n id?: string;\n};\n\nexport const ReadingTime = ({readingTime, size = 's', id, qa}: ReadingTimeProps) => (\n <div className={b('item', {size})} id={id} data-qa={qa}>\n <span className={b('icon')}>\n <Icon data={Time} size={ICON_SIZE} className={b('icon-color')} />\n </span>\n {i18n(Keyset.ContextReadingTime, {count: readingTime})}\n </div>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Save.js","sourceRoot":"../../../../../src","sources":["components/PostInfo/components/Save.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,mEAA+E;AAC/E,6CAAkD;AAElD,oEAA4D;AAC5D,iDAAqD;AACrD,6DAAqD;AACrD,sDAAkE;AAClE,6CAAwC;AACxC,qDAAqD;AAGrD,iDAA2C;AAE3C,MAAM,SAAS,GAAG,EAAE,CAAC;AAErB,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAY7B;;;;;;;;;;;GAWG;AACI,MAAM,IAAI,GAAG,CAAC,EACjB,KAAK,EACL,MAAM,EACN,WAAW,EACX,cAAc,EACd,IAAI,EACJ,KAAK,EACL,EAAE,EACF,eAAe,GACP,EAAE,EAAE;IACZ,MAAM,EAAC,UAAU,EAAE,cAAc,EAAE,aAAa,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,2BAAY,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,IAAA,+BAAY,EAAC,0BAAiB,CAAC,UAAU,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAEvC,MAAM,cAAc,GAAG,IAAA,iBAAS,GAAE,CAAC;IACnC,MAAM,cAAc,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC;IAEjD,OAAO,CACH,mCACI,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,EACxC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,6EAA6E;YAC7E,mHAAmH;YACnH,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,WAAW,CAAC,wBAAwB,EAAE,CAAC;YAE7C,IAAI,CAAC,UAAU,EAAE,CAAC;gBACd,OAAO;YACX,CAAC;YAED,8CAA8C;YAC9C,IAAI,CAAC,cAAc,IAAI,aAAa,EAAE,CAAC;gBACnC,aAAa,CAAC,KAAK,CAAC,CAAC;gBACrB,OAAO;YACX,CAAC;YAED,IAAA,uBAAc,EAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7C,cAAc,EAAE,CAAC;YACjB,eAAe,CAAC,eAAe,CAAC,CAAC;QACrC,CAAC,aACQ,EAAE,kBACG,WAAW,gBACb,cAAc,CAAC,CAAC,CAAC,IAAA,WAAI,EAAC,aAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,sBACxC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,YAE7D,iCAAK,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAC,CAAC,aACrD,iCAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YACtB,uBAAC,YAAI,IACD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,uBAAU,CAAC,CAAC,CAAC,WAAQ,EACzC,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,CAAC,CAAC,EAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,EAAC,CAAC,GAC9C,GACC,EACP,iCAAM,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,EAAC,MAAM,EAAE,UAAU,EAAC,CAAC,YAChE,KAAK,GACH,IACL,GACD,CACZ,CAAC;AACN,CAAC,CAAC;AA3DW,QAAA,IAAI,QA2Df","sourcesContent":["import * as React from 'react';\n\nimport {AnalyticsEventsProp, useAnalytics} from '@gravity-ui/page-constructor';\nimport {Icon, useUniqId} from '@gravity-ui/uikit';\n\nimport {LikesContext} from '../../../contexts/LikesContext';\nimport {Save as SaveIcon} from '../../../icons/Save';\nimport {SaveFilled} from '../../../icons/SaveFilled';\nimport {DefaultEventNames, QAProps} from '../../../models/common';\nimport {block} from '../../../utils/cn';\nimport {postLikeStatus} from '../../../utils/common';\n\nimport '../PostInfo.scss';\nimport {Keyset, i18n} from '../../../i18n';\n\nconst ICON_SIZE = 16;\n\nconst b = block('post-info');\n\ntype SaveProps = QAProps & {\n title: string | number;\n postId: number | string;\n hasUserLike: boolean;\n handleUserLike: () => void;\n theme?: 'light' | 'dark';\n size?: 's' | 'm';\n analyticsEvents?: AnalyticsEventsProp;\n};\n\n/**\n * Components for 'save' blog UI-component\n *\n * @param title - post title\n * @param postId - post id\n * @param hasUserLike - flag what blog has like from current user\n * @param qa - test-attr\n * @param size - text size\n * @param analyticsEvents - a single or collection of objects detailing analytics events\n *\n * @returns jsx\n */\nexport const Save = ({\n title,\n postId,\n hasUserLike,\n handleUserLike,\n size,\n theme,\n qa,\n analyticsEvents,\n}: SaveProps) => {\n const {toggleLike, isSignedInUser, requireSignIn} = React.useContext(LikesContext);\n const handleAnalytics = useAnalytics(DefaultEventNames.SaveButton);\n const isLikeable = Boolean(toggleLike);\n\n const titleElementId = useUniqId();\n const isNumericTitle = typeof title === 'number';\n\n return (\n <button\n className={b('item', {size, save: true})}\n onClick={(event) => {\n // both preventDefault and stopImmediatePropagation required to work properly\n // https://stackoverflow.com/questions/24415631/reactjs-syntheticevent-stoppropagation-only-works-with-react-events\n event.preventDefault();\n event.nativeEvent.stopImmediatePropagation();\n\n if (!isLikeable) {\n return;\n }\n\n // Open Popup to ask the User to sign in first\n if (!isSignedInUser && requireSignIn) {\n requireSignIn(event);\n return;\n }\n\n postLikeStatus(postId, Boolean(hasUserLike));\n handleUserLike();\n handleAnalytics(analyticsEvents);\n }}\n data-qa={qa}\n aria-pressed={hasUserLike}\n aria-label={isNumericTitle ? i18n(Keyset.Save) : undefined}\n aria-describedby={isNumericTitle ? titleElementId : undefined}\n >\n <div className={b('content', {cursor: isLikeable, theme})}>\n <span className={b('icon')}>\n <Icon\n data={hasUserLike ? SaveFilled : SaveIcon}\n size={ICON_SIZE}\n className={b({filled: Boolean(hasUserLike)})}\n />\n </span>\n <span id={titleElementId} className={b('title', {cursor: isLikeable})}>\n {title}\n </span>\n </div>\n </button>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Sharing.js","sourceRoot":"../../../../../src","sources":["components/PostInfo/components/Sharing.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,uDAA0E;AAC1E,mEAA+E;AAE/E,sEAA8D;AAC9D,0EAAkE;AAClE,sEAA8D;AAC9D,iDAA2C;AAC3C,iEAAyD;AACzD,sDAAyD;AACzD,6CAAwC;AACxC,qDAAsD;AAItD,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,WAAW,CAAC,CAAC;AAOtB,MAAM,OAAO,GAAG,CAAC,EAAC,KAAK,EAAE,eAAe,EAAe,EAAE,EAAE;IAC9D,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,CAAC,6BAAa,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,KAAK,CAAC,UAAU,CAAC,6BAAa,CAAC,CAAC;IACjD,MAAM,EAAC,YAAY,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,iCAAe,CAAC,CAAC;IACzD,MAAM,qBAAqB,GAAG,IAAA,+BAAY,EAAC,0BAAiB,CAAC,WAAW,CAAC,CAAC;IAE1E,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QAC3C,qBAAqB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC,EAAE,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC,CAAC;IAE7C,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YACrB,gCAAK,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YACrB,uBAAC,yBAAY,IACT,GAAG,EAAE,IAAA,wBAAe,EAAC,MAAM,CAAC,EAC5B,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,EACrB,SAAS,EAAE,CAAC,CAAC,YAAY,CAAC,EAC1B,iBAAiB,EAAE,CAAC,CAAC,UAAU,EAAE,EAAC,KAAK,EAAC,CAAC,EACzC,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,EAC5B,cAAc,EAAE,QAAQ,EACxB,SAAS,EAAE,iCAAoB,CAAC,MAAM,EACtC,WAAW,EAAE,IAAA,WAAI,EAAC,aAAM,CAAC,WAAW,CAAC,EACrC,UAAU,EAAE,2BAAY,EACxB,SAAS,EAAC,QAAQ,EAClB,WAAW,EAAE,KAAK,EAClB,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,eAAe,GAC1B,GACA,GACJ,CACT,CAAC;AACN,CAAC,CAAC;AA/BW,QAAA,OAAO,WA+BlB","sourcesContent":["import * as React from 'react';\n\nimport {ShareLayoutDirection, SharePopover} from '@gravity-ui/components';\nimport {AnalyticsEventsProp, useAnalytics} from '@gravity-ui/page-constructor';\n\nimport {MobileContext} from '../../../contexts/MobileContext';\nimport {PostPageContext} from '../../../contexts/PostPageContext';\nimport {RouterContext} from '../../../contexts/RouterContext';\nimport {Keyset, i18n} from '../../../i18n';\nimport {ShareArrowUp} from '../../../icons/ShareArrowUp';\nimport {DefaultEventNames} from '../../../models/common';\nimport {block} from '../../../utils/cn';\nimport {getAbsolutePath} from '../../../utils/common';\n\nimport '../PostInfo.scss';\n\nconst b = block('post-info');\n\ntype SharingProps = {\n theme?: 'light' | 'dark';\n analyticsEvents?: AnalyticsEventsProp;\n};\n\nexport const Sharing = ({theme, analyticsEvents}: SharingProps) => {\n const router = React.useContext(RouterContext);\n const isMobile = React.useContext(MobileContext);\n const {shareOptions} = React.useContext(PostPageContext);\n const handleAnalyticsGlobal = useAnalytics(DefaultEventNames.ShareButton);\n\n const handleAnalytics = React.useCallback(() => {\n handleAnalyticsGlobal(analyticsEvents);\n }, [analyticsEvents, handleAnalyticsGlobal]);\n\n return (\n <div className={b('item')}>\n <div className={b('icon')}>\n <SharePopover\n url={getAbsolutePath(router)}\n className={b('share')}\n iconClass={b('share-icon')}\n switcherClassName={b('switcher', {theme})}\n tooltipClassName={b('popup')}\n useWebShareApi={isMobile}\n direction={ShareLayoutDirection.Column}\n buttonTitle={i18n(Keyset.ActionShare)}\n customIcon={ShareArrowUp}\n placement=\"bottom\"\n openByHover={false}\n shareOptions={shareOptions}\n onClick={handleAnalytics}\n />\n </div>\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Posts.js","sourceRoot":"../../../../src","sources":["components/Posts/Posts.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {CardLayoutBlock} from '@gravity-ui/page-constructor';\nimport {Button} from '@gravity-ui/uikit';\n\nimport {Keyset, i18n} from '../../i18n';\nimport {PostCardSize, PostCardTitleHeadingLevel, PostData, Query} from '../../models/common';\nimport {block} from '../../utils/cn';\nimport {Paginator} from '../Paginator/Paginator';\nimport {PostCard} from '../PostCard/PostCard';\nimport {PostsEmpty} from '../PostsEmpty/PostsEmpty';\n\nimport './Posts.scss';\n\nconst b = block('posts');\n\ntype PostCardProps = {\n containerId: string;\n currentPage: number;\n isShowMoreVisible: boolean;\n errorShowMore: boolean;\n postCountOnPage: number;\n perPageInQuery: number;\n isFetching: boolean;\n handleShowMore: (\n value?: React.MouseEvent<HTMLButtonElement | HTMLAnchorElement>,\n ) => Promise<void> | void;\n handlePageChange: (value: number) => Promise<void> | void;\n postsOnPage?: PostData[];\n pinnedPostOnPage?: PostData;\n pageCountForShowSupportButtons?: number;\n queryParams: Query;\n};\n\nexport const Posts = ({\n containerId,\n pinnedPostOnPage,\n currentPage,\n postsOnPage,\n isShowMoreVisible,\n errorShowMore,\n postCountOnPage,\n perPageInQuery,\n isFetching,\n handleShowMore,\n handlePageChange,\n pageCountForShowSupportButtons,\n queryParams,\n}: PostCardProps) => (\n <div className={b()}>\n {isFetching && <div className={b('loaderContainer')} />}\n <div id={containerId} className={b('cards-container', {isLoading: isFetching})}>\n {pinnedPostOnPage && currentPage === 1 && (\n <div className={b('pinned-container')}>\n <PostCard\n post={pinnedPostOnPage}\n size={PostCardSize.MEDIUM}\n fullWidth\n showTag\n titleHeadingLevel={PostCardTitleHeadingLevel.H2}\n />\n </div>\n )}\n {postsOnPage?.length ? (\n <CardLayoutBlock\n title={''}\n colSizes={{\n all: 12,\n lg: 4,\n md: 6,\n }}\n >\n {postsOnPage?.map((post) => (\n <PostCard\n key={post.id}\n post={post}\n showTag\n titleHeadingLevel={\n pinnedPostOnPage\n ? PostCardTitleHeadingLevel.H3\n : PostCardTitleHeadingLevel.H2\n }\n />\n ))}\n </CardLayoutBlock>\n ) : (\n <PostsEmpty />\n )}\n </div>\n\n <div className={b('pagination')}>\n {Boolean(isShowMoreVisible && postsOnPage?.length) && (\n <Button\n view=\"outlined\"\n size=\"xl\"\n className={b('more-button')}\n onClick={handleShowMore}\n >\n {i18n(Keyset.ActionLoadMore)}\n </Button>\n )}\n {errorShowMore && (\n <div className={b('error-show-more')}>\n <div>{i18n(Keyset.ErrorTitle)}</div>\n <div>{i18n(Keyset.PostLoadError)}</div>\n </div>\n )}\n {Boolean(currentPage && postCountOnPage) && (\n <div className={b('paginator')}>\n <Paginator\n onPageChange={handlePageChange}\n page={currentPage}\n totalItems={postCountOnPage}\n itemsPerPage={perPageInQuery}\n maxPages={Infinity}\n pageCountForShowSupportButtons={pageCountForShowSupportButtons}\n queryParams={queryParams}\n />\n </div>\n )}\n </div>\n </div>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostsEmpty.js","sourceRoot":"../../../../src","sources":["components/PostsEmpty/PostsEmpty.tsx"],"names":[],"mappings":";;;;AAAA,8CAAwC;AACxC,0CAAqC;AAIrC,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,aAAa,CAAC,CAAC;AAExB,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,CAC5B,iCAAK,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,aAC1B,gCAAK,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAAG,IAAA,WAAI,EAAC,aAAM,CAAC,mBAAmB,CAAC,GAAO,EACpE,gCAAK,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,YAAG,IAAA,WAAI,EAAC,aAAM,CAAC,qBAAqB,CAAC,GAAO,IACvE,CACT,CAAC;AALW,QAAA,UAAU,cAKrB","sourcesContent":["import {Keyset, i18n} from '../../i18n';\nimport {block} from '../../utils/cn';\n\nimport './PostsEmpty.scss';\n\nconst b = block('posts-empty');\n\nexport const PostsEmpty = () => (\n <div className={b('container')}>\n <div className={b('title')}>{i18n(Keyset.TitleEmptyContainer)}</div>\n <div className={b('subtitle')}>{i18n(Keyset.ContextEmptyContainer)}</div>\n </div>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostsError.js","sourceRoot":"../../../../src","sources":["components/PostsError/PostsError.tsx"],"names":[],"mappings":";;;;AAAA,6CAAyC;AAEzC,8CAAwC;AACxC,0CAAqC;AAIrC,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,aAAa,CAAC,CAAC;AAMxB,MAAM,UAAU,GAAG,CAAC,EAAC,aAAa,EAA2B,EAAE,EAAE;IACpE,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IAEvF,OAAO,CACH,iCAAK,SAAS,EAAE,CAAC,CAAC,WAAW,CAAC,aAC1B,gCAAK,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,YAAG,IAAA,WAAI,EAAC,aAAM,CAAC,UAAU,CAAC,GAAO,EAC3D,gCAAK,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,YAAG,IAAA,WAAI,EAAC,aAAM,CAAC,aAAa,CAAC,GAAO,EACjE,gCAAK,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,YACvB,uBAAC,cAAM,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,UAAU,EAAC,OAAO,EAAE,WAAW,YACjD,IAAA,WAAI,EAAC,aAAM,CAAC,cAAc,CAAC,GACvB,GACP,IACJ,CACT,CAAC;AACN,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB","sourcesContent":["import {Button} from '@gravity-ui/uikit';\n\nimport {Keyset, i18n} from '../../i18n';\nimport {block} from '../../utils/cn';\n\nimport './PostError.scss';\n\nconst b = block('posts-error');\n\ntype PostsErrorContainerProps = {\n onButtonClick?: () => void | Promise<void>;\n};\n\nexport const PostsError = ({onButtonClick}: PostsErrorContainerProps) => {\n const handleClick = () => (onButtonClick ? onButtonClick() : window.location.reload());\n\n return (\n <div className={b('container')}>\n <div className={b('title')}>{i18n(Keyset.ErrorTitle)}</div>\n <div className={b('subtitle')}>{i18n(Keyset.PostLoadError)}</div>\n <div className={b('button')}>\n <Button size=\"xl\" view=\"outlined\" onClick={handleClick}>\n {i18n(Keyset.ActionTryAgain)}\n </Button>\n </div>\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Prompt.js","sourceRoot":"../../../../src","sources":["components/Prompt/Prompt.tsx"],"names":[],"mappings":";;;;;AAAA,6CAAsD;AAEtD,sDAA8C;AAC9C,wEAAgE;AAChE,0CAAqC;AAIrC,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,QAAQ,CAAC,CAAC;AAc1B;;;;;;GAMG;AACI,MAAM,MAAM,GAAG,CAAC,EACnB,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAAa,GAAG,CAAC,EACjB,YAAY,EACZ,KAAK,GACK,EAAE,EAAE;IACd,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,GAAG,IAAA,mBAAQ,GAAkB,CAAC;IACnD,MAAM,EAAC,IAAI,EAAE,MAAM,EAAC,GAAG,IAAA,qCAAiB,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,MAAM,IAAI,QAAQ,CAAC;IAChC,MAAM,OAAO,GAAG,aAAa,GAAG,CAAC,CAAC;IAElC,OAAO,CACH,gCAAK,SAAS,EAAE,CAAC,CAAC,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,EAAC,EAAE,SAAS,CAAC,YAC9D,iCAAK,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,aAClC,iCAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,YAAG,IAAI,GAAQ,EACzC,gCAAK,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,YACvB,OAAO,CAAC,GAAG,CAAC,CAAC,EAAmD,EAAE,CAAC,EAAE,EAAE;4BAA1D,EAAC,IAAI,GAAG,QAAQ,EAAE,SAAS,EAAE,QAAQ,OAAc,EAAT,QAAQ,sBAAlD,qBAAmD,CAAD;wBAAS,OAAA,CACrE,uBAAC,cAAM,kBAEH,SAAS,EAAE,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,EAChC,IAAI,EAAE,IAAI,IACN,QAAQ,GAHP,CAAC,CAIR,CACL,CAAA;qBAAA,CAAC,GACA,IACJ,GACJ,CACT,CAAC;AACN,CAAC,CAAC;AA9BW,QAAA,MAAM,UA8BjB","sourcesContent":["import {Button, ButtonProps} from '@gravity-ui/uikit';\n\nimport {useHover} from '../../hooks/useHover';\nimport {useOpenCloseTimer} from '../../hooks/useOpenCloseTimer';\nimport {block} from '../../utils/cn';\n\nimport './Prompt.scss';\n\nconst b = block('prompt');\n\nexport interface PromptProps {\n // Prompt message\n text: string;\n actions: ButtonProps[];\n // Unix Timestamp in milliseconds when the Prompt opens\n openTimestamp?: number;\n // Milliseconds to remain visible\n openDuration?: number;\n className?: string;\n theme?: 'grey' | 'beige' | 'white';\n}\n\n/**\n * Popup that appears with text message and button(s) for given `actions`.\n * Features:\n * - Automatically disappears after `openDuration` in milliseconds\n * - `openTimestamp` (`Date.now()`) resets the visible duration\n * @returns {JSX|null}\n */\nexport const Prompt = ({\n text,\n actions,\n className,\n openTimestamp = 0,\n openDuration,\n theme,\n}: PromptProps) => {\n const [ref, hovering] = useHover<HTMLDivElement>();\n const {open: isOpen} = useOpenCloseTimer(openTimestamp, openDuration);\n const open = isOpen || hovering;\n const mounted = openTimestamp > 0;\n\n return (\n <div className={b({theme, open, close: !open, mounted}, className)}>\n <div className={b('content')} ref={ref}>\n <span className={b('text')}>{text}</span>\n <div className={b('actions')}>\n {actions.map(({view = 'action', className: btnClass, ...btnProps}, i) => (\n <Button\n key={i}\n className={b('action', btnClass)}\n view={view}\n {...btnProps}\n />\n ))}\n </div>\n </div>\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PromptSignIn.js","sourceRoot":"../../../../src","sources":["components/PromptSignIn/PromptSignIn.tsx"],"names":[],"mappings":";;;;;AAEA,8CAAwC;AACxC,gDAAqD;AAMrD;;;GAGG;AACI,MAAM,YAAY,GAAG,CAAC,EAWT,EAAE,EAAE;QAXK,EACzB,IAAI,GAAG,IAAA,WAAI,EAAC,aAAM,CAAC,kBAAkB,CAAC,EACtC,aAAa,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,IAAA,WAAI,EAAC,aAAM,CAAC,MAAM,CAAC,CAAC,EAChD,OAAO,GAAG;QACN;YACI,QAAQ,EAAE,IAAA,WAAI,EAAC,aAAM,CAAC,MAAM,CAAC;YAC7B,OAAO,EAAE,aAAa;YACtB,IAAI,EAAE,GAAG;SACZ;KACJ,OAEe,EADb,KAAK,sBAViB,oCAW5B,CADW;IACa,OAAA,uBAAC,eAAM,kBAAM,IAAI,EAAE,OAAO,IAAO,KAAK,EAAI,CAAA;CAAA,CAAC;AAXvD,QAAA,YAAY,gBAW2C","sourcesContent":["import * as React from 'react';\n\nimport {Keyset, i18n} from '../../i18n';\nimport {Prompt, PromptProps} from '../Prompt/Prompt';\n\nexport interface PromptSignInProps extends Partial<PromptProps> {\n onClickSignIn?: React.EventHandler<React.SyntheticEvent>;\n}\n\n/**\n * Authentication Popup that appears when user action requires login\n * @returns {JSX|null}\n */\nexport const PromptSignIn = ({\n text = i18n(Keyset.PromptSignInOnLike),\n onClickSignIn = () => alert(i18n(Keyset.SignIn)),\n actions = [\n {\n children: i18n(Keyset.SignIn),\n onClick: onClickSignIn,\n size: 'l',\n },\n ],\n ...props\n}: PromptSignInProps) => <Prompt {...{text, actions}} {...props} />;\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"usePromptSignInProps.js","sourceRoot":"../../../../../src","sources":["components/PromptSignIn/hooks/usePromptSignInProps.ts"],"names":[],"mappings":";;AAEA,oDAWC;;AAbD,qDAA+B;AAE/B,SAAgB,oBAAoB,CAAC,aAAwD;IACzF,MAAM,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnD,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACrC,OAAO,aAAa;YAChB,CAAC,CAAC,GAAG,EAAE;gBACD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YACxB,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;IACpB,CAAC,EAAE,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAE7B,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,aAAa,EAAC,CAAC;AACzD,CAAC","sourcesContent":["import * as React from 'react';\n\nexport function usePromptSignInProps(onClickSignIn?: React.EventHandler<React.SyntheticEvent>) {\n const [openTimestamp, setTime] = React.useState(0);\n const requireSignIn = React.useMemo(() => {\n return onClickSignIn\n ? () => {\n setTime(Date.now());\n }\n : undefined;\n }, [onClickSignIn, setTime]);\n\n return {onClickSignIn, openTimestamp, requireSignIn};\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Search.js","sourceRoot":"../../../../src","sources":["components/Search/Search.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport {Icon, TextInput} from '@gravity-ui/uikit';\nimport lodashDebounce from 'lodash/debounce';\n\nimport {useIsIPhone} from '../../hooks/useIsIPhone';\nimport {Keyset, i18n} from '../../i18n';\nimport {Close} from '../../icons/Close';\nimport {SearchIcon} from '../../icons/SearchIcon';\nimport {ClassNameProps} from '../../models/common';\nimport {block} from '../../utils/cn';\n\nimport './Search.scss';\n\nconst b = block('search');\n\nexport type SearchSize = 's' | 'm';\n\ninterface SearchProps extends ClassNameProps {\n value?: string;\n initialValue: string;\n onSubmit: (value: string) => void;\n debounce?: number;\n placeholder?: string;\n size?: SearchSize;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst SEARCH_ICON_SIZE = 16;\nconst CLOSE_ICON_SIZE = 12;\nconst AUTOFOCUS_TIMEOUT = 0;\n\n/**\n * Search component, placed on blog main page,\n * based on TextInput from uikit\n *\n * @returns {JSX|null}\n */\nexport const Search = ({\n className,\n initialValue,\n onSubmit,\n debounce = 300,\n placeholder = i18n(Keyset.Search),\n size = 'm',\n autoFocus = false,\n value: externalValue,\n}: SearchProps) => {\n const handleChange = lodashDebounce(onSubmit, debounce);\n\n const [value, setValue] = React.useState<string>(initialValue);\n const inputRef = React.useRef<HTMLInputElement>(null);\n const isIPhone = useIsIPhone();\n\n React.useEffect(() => {\n if (externalValue !== undefined) {\n setValue(externalValue);\n }\n }, [externalValue]);\n\n React.useEffect(() => {\n if (autoFocus && !isIPhone) {\n setTimeout(() => inputRef?.current?.focus({preventScroll: true}), AUTOFOCUS_TIMEOUT);\n }\n }, [autoFocus, inputRef, isIPhone]);\n\n const rightContent = React.useMemo(() => {\n const iconData = value ? Close : SearchIcon;\n const iconSize = value ? CLOSE_ICON_SIZE : SEARCH_ICON_SIZE;\n\n const handleClick = () => {\n if (value) {\n handleChange.cancel();\n setValue('');\n onSubmit('');\n inputRef.current?.focus();\n }\n };\n\n return (\n <button\n className={b('input-icon')}\n onClick={handleClick}\n aria-label={value ? i18n(Keyset.ClearAction) : undefined}\n aria-hidden={!value}\n >\n <Icon size={iconSize} data={iconData} />\n </button>\n );\n }, [handleChange, onSubmit, value]);\n\n return (\n <div className={b({size}, className)}>\n <TextInput\n className={b('search-suggest')}\n value={value}\n onUpdate={(query) => {\n setValue(query);\n handleChange(query);\n }}\n placeholder={placeholder}\n size={size === 'm' ? 'xl' : 'l'}\n controlRef={inputRef}\n view=\"clear\"\n controlProps={{\n className: b('search-suggest-control'),\n }}\n endContent={rightContent}\n />\n </div>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Wrapper.js","sourceRoot":"../../../../src","sources":["components/Wrapper/Wrapper.tsx"],"names":[],"mappings":";;;;AAEA,kDAAiD;AAGjD,0CAAqC;AAIrC,MAAM,CAAC,GAAG,IAAA,UAAK,EAAC,SAAS,CAAC,CAAC;AAQpB,MAAM,OAAO,GAA0C,CAAC,EAC3D,QAAQ,EACR,QAAQ,GAAG,4BAAgB,EAC3B,SAAS,EACT,EAAE,GACL,EAAE,EAAE,CAAC,CACF,oCACI,SAAS,EAAE,CAAC,CACR;QACI,CAAC,aAAa,CAAC,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,GAAG,KAAI,IAAI;QACtC,CAAC,gBAAgB,CAAC,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,MAAM,KAAI,GAAG;QAC3C,CAAC,cAAc,CAAC,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,EAAE;QACtC,CAAC,eAAe,CAAC,EAAE,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,KAAI,EAAE;KAC3C,EACD,SAAS,CACZ,aACQ,EAAE,YAEV,QAAQ,GACH,CACb,CAAC;AApBW,QAAA,OAAO,WAoBlB","sourcesContent":["import * as React from 'react';\n\nimport {DEFAULT_PADDINGS} from '../../constants';\nimport {ClassNameProps, QAProps} from '../../models/common';\nimport {Paddings} from '../../models/paddings';\nimport {block} from '../../utils/cn';\n\nimport './Wrapper.scss';\n\nconst b = block('wrapper');\n\ntype WrapperProps = ClassNameProps &\n QAProps & {\n paddings?: Paddings;\n children?: React.ReactNode;\n };\n\nexport const Wrapper: React.FunctionComponent<WrapperProps> = ({\n children,\n paddings = DEFAULT_PADDINGS,\n className,\n qa,\n}) => (\n <section\n className={b(\n {\n ['padding-top']: paddings?.top || 'xs',\n ['padding-bottom']: paddings?.bottom || 'l',\n ['padding-left']: paddings?.left || '',\n ['padding-right']: paddings?.right || '',\n },\n className,\n )}\n data-qa={qa}\n >\n {children}\n </section>\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"../../src","sources":["constants.ts"],"names":[],"mappings":";;;AAAA,mDAA+D;AAElD,QAAA,WAAW,GAAG;IACvB,EAAE,EAAE,CAAC;IACL,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,GAAG;IACP,EAAE,EAAE,IAAI;IACR,EAAE,EAAE,IAAI;CACX,CAAC;AAEW,QAAA,aAAa,GAAG,OAAO,CAAC;AAExB,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,QAAA,uBAAuB,GAAG,GAAG,wBAAgB,UAAU,qBAAa,EAAE,CAAC;AAEpF,IAAY,cAiBX;AAjBD,WAAY,cAAc;IACtB,wDAAsC,CAAA;IACtC,8DAA4C,CAAA;IAC5C,oEAAkD,CAAA;IAClD,0EAAwD,CAAA;IACxD,sDAAoC,CAAA;IACpC,4DAA0C,CAAA;IAC1C,8DAA4C,CAAA;IAC5C,8DAA4C,CAAA;IAC5C,8DAA4C,CAAA;IAC5C,6CAA2B,CAAA;IAC3B,uDAAqC,CAAA;IACrC,6DAA2C,CAAA;IAC3C,kEAAgD,CAAA;IAChD,yDAAuC,CAAA;IACvC,yDAAuC,CAAA;IACvC,8DAA4C,CAAA;AAChD,CAAC,EAjBW,cAAc,8BAAd,cAAc,QAiBzB;AAEY,QAAA,gBAAgB,GAAa;IACtC,CAAC,6BAAkB,CAAC,MAAM,CAAC,EAAE,GAAG;IAChC,CAAC,6BAAkB,CAAC,GAAG,CAAC,EAAE,IAAI;CACjC,CAAC","sourcesContent":["import {Paddings, PaddingsDirections} from './models/paddings';\n\nexport const BREAKPOINTS = {\n xs: 0,\n sm: 577,\n md: 769,\n lg: 1081,\n xl: 1185,\n};\n\nexport const DEFAULT_THEME = 'light';\n\nexport const UIKIT_ROOT_CLASS = 'g-root';\nexport const UIKIT_THEME_LIGHT_CLASS = `${UIKIT_ROOT_CLASS}_theme_${DEFAULT_THEME}`;\n\nexport enum DefaultGoalIds {\n shareTop = 'SITE_BLOG_SHARE-TOP_CLICK',\n shareBottom = 'SITE_BLOG_SHARE-BOTTOM_CLICK',\n breadcrumbsTop = 'SITE_BLOG_BREADCRUMBS-TOP_CLICK',\n breadcrumbsBottom = 'SITE_BLOG_BREADCRUMBS-BOTTOM_CLICK',\n saveTop = 'SITE_BLOG_SAVE-TOP_CLICK',\n saveBottom = 'SITE_BLOG_SAVE-BOTTOM_CLICK',\n saveSuggest = 'SITE_BLOG_SAVE-SUGGEST_CLICK',\n suggest = 'SITE_BLOG_INTERESTING-CARD_CLICK',\n bannerCommon = 'SITE_BLOG_TEXT-BANNER_CLICK',\n cta = 'SITE_BLOG_CTA_CLICK',\n tag = 'SITE_BLOG_THEME-SELECTOR_CLCK',\n service = 'SITE_BLOG_SERVICE-SELECTOR_CLCK',\n showMore = 'SITE_BLOG-PAGINATION_SHOW-MORE_CLCK',\n next = 'SITE_BLOG-PAGINATION_NEXT_CLCK',\n home = 'SITE_BLOG-PAGINATION_HOME_CLCK',\n page = 'SITE_BLOG-PAGINATION_PAGE-NMBR_CLCK',\n}\n\nexport const DEFAULT_PADDINGS: Paddings = {\n [PaddingsDirections.bottom]: 'l',\n [PaddingsDirections.top]: 'xs',\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlogConstructorProvider.js","sourceRoot":"../../../src","sources":["constructor/BlogConstructorProvider.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,mEAKsC;AAEtC,+CAA2C;AAC3C,gEAA4E;AAC5E,gEAAwD;AACxD,gEAAwD;AACxD,gEAA4E;AAC5E,oEAAkF;AAClF,8EAAsF;AAc/E,MAAM,uBAAuB,GAAG,CAAC,EACpC,QAAQ,EACR,MAAM,GAAG,EAAY,EACrB,MAAM,GAAG,EAAwB,EACjC,KAAK,GAAG,yBAAa,EACrB,MAAM,GAAG,EAAE,EACX,SAAS,GAAG,EAAE,EACd,QAAQ,GAAG,EAAE,EACb,QAAQ,GAC4C,EAAE,EAAE;IACxD,MAAM,OAAO,GAAG;QACZ,uBAAC,qCAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,UAAU,EAAE,KAAK,EAAC,IAAM,eAAe,CAAG;QAC9E,uBAAC,+BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,KAAK,EAAE,KAAc,EAAC,IAAM,UAAU,CAAG;QACxE,uBAAC,6BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,MAAM,EAAC,IAAM,gBAAgB,CAAG;QAChE,uBAAC,6BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,IAAM,gBAAgB,CAAG;QAC9D,uBAAC,6BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAM,mBAAmB,CAAG;QAC5E,uBAAC,6BAAa,CAAC,QAAQ,IAAC,KAAK,EAAE,MAAM,IAAM,gBAAgB,CAAG;QAC9D,uBAAC,iCAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,QAAQ,IAAM,kBAAkB,CAAG;QACpE,uBAAC,mCAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,IAAM,mBAAmB,CAAG;KAC1E,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAEpF,OAAO,uBAAC,KAAK,CAAC,QAAQ,cAAE,OAAO,GAAkB,CAAC;AACtD,CAAC,CAAC;AAtBW,QAAA,uBAAuB,2BAsBlC","sourcesContent":["import * as React from 'react';\n\nimport {\n AnalyticsContext,\n AnalyticsContextProps,\n Theme,\n ThemeContext,\n} from '@gravity-ui/page-constructor';\n\nimport {DEFAULT_THEME} from '../constants';\nimport {DeviceContext, DeviceContextProps} from '../contexts/DeviceContext';\nimport {LocaleContext} from '../contexts/LocaleContext';\nimport {MobileContext} from '../contexts/MobileContext';\nimport {RouterContext, RouterContextProps} from '../contexts/RouterContext';\nimport {SettingsContext, SettingsContextProps} from '../contexts/SettingsContext';\nimport {ThemeValueContext, ThemeValueType} from '../contexts/theme/ThemeValueContext';\nimport {Locale} from '../models/locale';\n\nexport interface BlogConstructorProviderProps {\n isMobile?: boolean;\n locale?: Locale;\n router?: RouterContextProps;\n theme?: ThemeValueType;\n device?: DeviceContextProps;\n analytics?: AnalyticsContextProps;\n settings?: SettingsContextProps;\n children?: React.ReactNode;\n}\n\nexport const BlogConstructorProvider = ({\n isMobile,\n locale = {} as Locale,\n router = {} as RouterContextProps,\n theme = DEFAULT_THEME,\n device = {},\n analytics = {},\n settings = {},\n children,\n}: React.PropsWithChildren<BlogConstructorProviderProps>) => {\n const context = [\n <ThemeValueContext.Provider value={{themeValue: theme}} key=\"theme-context\" />,\n <ThemeContext.Provider value={{theme: theme as Theme}} key=\"pc-theme\" />,\n <LocaleContext.Provider value={{locale}} key=\"locale-context\" />,\n <RouterContext.Provider value={router} key=\"router-context\" />,\n <MobileContext.Provider value={Boolean(isMobile)} key=\"is-mobile-context\" />,\n <DeviceContext.Provider value={device} key=\"device-context\" />,\n <SettingsContext.Provider value={settings} key=\"settings-context\" />,\n <AnalyticsContext.Provider value={analytics} key=\"analytics-context\" />,\n ].reduceRight((prev, provider) => React.cloneElement(provider, {}, prev), children);\n\n return <React.Fragment>{context}</React.Fragment>;\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"blocksMap.js","sourceRoot":"../../../src","sources":["constructor/blocksMap.ts"],"names":[],"mappings":";;AAAA,uDAA+C;AAC/C,uDAA+C;AAC/C,8CAAsC;AACtC,sEAA8D;AAC9D,iDAAyC;AACzC,iDAAyC;AACzC,uDAA+C;AAC/C,uDAA+C;AAC/C,oDAA4C;AAC5C,iDAAyC;AACzC,0DAAkD;AAClD,8CAAsC;AACtC,gDAA2C;AAE3C,MAAM,MAAM,GAAG;IACX,CAAC,kBAAS,CAAC,GAAG,CAAC,EAAE,SAAG;IACpB,CAAC,kBAAS,CAAC,MAAM,CAAC,EAAE,eAAM;IAC1B,CAAC,kBAAS,CAAC,KAAK,CAAC,EAAE,aAAK;IACxB,CAAC,kBAAS,CAAC,MAAM,CAAC,EAAE,eAAM;IAC1B,CAAC,kBAAS,CAAC,GAAG,CAAC,EAAE,SAAG;IACpB,CAAC,kBAAS,CAAC,WAAW,CAAC,EAAE,yBAAW;IACpC,CAAC,kBAAS,CAAC,MAAM,CAAC,EAAE,eAAM;IAC1B,CAAC,kBAAS,CAAC,OAAO,CAAC,EAAE,iBAAO;IAC5B,CAAC,kBAAS,CAAC,IAAI,CAAC,EAAE,WAAI;IACtB,CAAC,kBAAS,CAAC,IAAI,CAAC,EAAE,WAAI;IACtB,CAAC,kBAAS,CAAC,IAAI,CAAC,EAAE,WAAI;CACzB,CAAC;AAEF,MAAM,OAAO,GAAG;IACZ,CAAC,kBAAS,CAAC,MAAM,CAAC,EAAE,eAAM;CAC7B,CAAC;AAEF,kBAAe,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC","sourcesContent":["import {Author} from '../blocks/Author/Author';\nimport {Banner} from '../blocks/Banner/Banner';\nimport {CTA} from '../blocks/CTA/CTA';\nimport {ColoredText} from '../blocks/ColoredText/ColoredText';\nimport {Feed} from '../blocks/Feed/Feed';\nimport {Form} from '../blocks/Form/Form';\nimport {Header} from '../blocks/Header/Header';\nimport {Layout} from '../blocks/Layout/Layout';\nimport {Media} from '../blocks/Media/Media';\nimport {Meta} from '../blocks/Meta/Meta';\nimport {Suggest} from '../blocks/Suggest/Suggest';\nimport {YFM} from '../blocks/YFM/YFM';\nimport {BlockType} from '../models/common';\n\nconst blocks = {\n [BlockType.YFM]: YFM,\n [BlockType.Layout]: Layout,\n [BlockType.Media]: Media,\n [BlockType.Banner]: Banner,\n [BlockType.CTA]: CTA,\n [BlockType.ColoredText]: ColoredText,\n [BlockType.Author]: Author,\n [BlockType.Suggest]: Suggest,\n [BlockType.Meta]: Meta,\n [BlockType.Feed]: Feed,\n [BlockType.Form]: Form,\n};\n\nconst headers = {\n [BlockType.Header]: Header,\n};\n\nexport default {blocks, headers};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlogPage.js","sourceRoot":"../../../../src","sources":["containers/BlogPage/BlogPage.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,mEAOsC;AAEtC,6EAAqE;AACrE,gFAAwE;AACxE,sGAA8F;AAC9F,+DAAuD;AACvD,iEAAyD;AACzD,oFAA4E;AAS5E,uEAA+D;AAsBxD,MAAM,QAAQ,GAAG,CAAC,EACrB,OAAO,EACP,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,UAAU,EACV,UAAU,EACV,QAAQ,EACR,8BAA8B,EAC9B,cAAc,GAAG,KAAK,EACtB,aAAa,GACD,EAAE,EAAE;IAChB,MAAM,EAAC,kBAAkB,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,iCAAe,CAAC,CAAC;IAC/D,MAAM,KAAwC,IAAA,2CAAoB,EAAC,aAAa,CAAC,EAA3E,EAAC,aAAa,OAA6D,EAAxD,iBAAiB,sBAApC,iBAAqC,CAAsC,CAAC;IAElF,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAClC,GAAG,EAAE,CAAC,CAAC,EAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,EAAC,CAAC,EAC7D,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,aAAa,CAAC,CACxD,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,iDAAuB,EAAC,MAAM,CAAC,CAAC;IAE3D,OAAO,CACH,wBAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,gBAAgB,aAC1C,uBAAC,yBAAW,CAAC,QAAQ,IACjB,KAAK,EAAE;oBACH,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,UAAU,EAAE,KAAK,CAAC,UAAU;oBAC5B,UAAU,EAAE,KAAK,CAAC,KAAK;oBACvB,IAAI;oBACJ,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE;oBACxB,QAAQ;oBACR,8BAA8B;iBACjC,YAED,wBAAC,0CAAuB,oBAChB,QAAQ,IACZ,eAAe,kCAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,eAAe,KAAI,EAAE,CAAC,KAAE,kBAAkB,gBAEzE,QAAQ,CAAC,CAAC,CAAC,uBAAC,yBAAW,oBAAK,QAAQ,EAAI,CAAC,CAAC,CAAC,IAAI,EAChD,uBAAC,kCAAe,IACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,UAAU,GACxB,KACoB,GACP,EACvB,uBAAC,2BAAY,oBAAK,iBAAiB,EAAI,IACnB,CAC3B,CAAC;AACN,CAAC,CAAC;AAtDW,QAAA,QAAQ,YAsDnB","sourcesContent":["import * as React from 'react';\n\nimport {\n CustomConfig,\n NavigationData,\n PageConstructor,\n PageConstructorProvider,\n PageConstructorProviderProps,\n PageContent,\n} from '@gravity-ui/page-constructor';\n\nimport {MetaWrapper} from '../../components/MetaWrapper/MetaWrapper';\nimport {PromptSignIn} from '../../components/PromptSignIn/PromptSignIn';\nimport {usePromptSignInProps} from '../../components/PromptSignIn/hooks/usePromptSignInProps';\nimport {FeedContext} from '../../contexts/FeedContext';\nimport {LikesContext} from '../../contexts/LikesContext';\nimport {useExtendedComponentMap} from '../../hooks/useExtendedComponentMap';\nimport {\n GetPostsType,\n MetaProps,\n PostsProps,\n Service,\n Tag,\n ToggleLikeCallbackType,\n} from '../../models/common';\nimport {SettingsContext} from '../../contexts/SettingsContext';\n\nimport './BlogPage.scss';\n\nexport type BlogPageProps = {\n content: PageContent;\n posts: PostsProps;\n tags: Tag[];\n services?: Service[];\n navigation?: NavigationData;\n getPosts: GetPostsType;\n hasLikes?: boolean;\n toggleLike?: ToggleLikeCallbackType;\n metaData?: MetaProps;\n settings?: PageConstructorProviderProps;\n custom?: CustomConfig;\n pageCountForShowSupportButtons?: number;\n isSignedInUser?: boolean;\n // Required to enable Sign In on Post like\n onClickSignIn?: React.EventHandler<React.SyntheticEvent>;\n};\n\nexport const BlogPage = ({\n content,\n posts,\n tags,\n services,\n getPosts,\n metaData,\n custom,\n hasLikes = false,\n toggleLike,\n navigation,\n settings,\n pageCountForShowSupportButtons,\n isSignedInUser = false,\n onClickSignIn,\n}: BlogPageProps) => {\n const {isAnimationEnabled} = React.useContext(SettingsContext);\n const {requireSignIn, ...promptSignInProps} = usePromptSignInProps(onClickSignIn);\n\n const likesContextData = React.useMemo(\n () => ({toggleLike, hasLikes, isSignedInUser, requireSignIn}),\n [toggleLike, hasLikes, isSignedInUser, requireSignIn],\n );\n\n const actualComponentMap = useExtendedComponentMap(custom);\n\n return (\n <LikesContext.Provider value={likesContextData}>\n <FeedContext.Provider\n value={{\n posts: posts.posts,\n pinnedPost: posts.pinnedPost,\n totalCount: posts.count,\n tags,\n services: services ?? [],\n getPosts,\n pageCountForShowSupportButtons,\n }}\n >\n <PageConstructorProvider\n {...settings}\n projectSettings={{...(settings?.projectSettings || {}), isAnimationEnabled}}\n >\n {metaData ? <MetaWrapper {...metaData} /> : null}\n <PageConstructor\n content={content}\n custom={actualComponentMap}\n navigation={navigation}\n />\n </PageConstructorProvider>\n </FeedContext.Provider>\n <PromptSignIn {...promptSignInProps} />\n </LikesContext.Provider>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlogPostPage.js","sourceRoot":"../../../../src","sources":["containers/BlogPostPage/BlogPostPage.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAG/B,mEAQsC;AAEtC,6EAAqE;AACrE,gFAAwE;AACxE,sGAA8F;AAC9F,iEAAyD;AACzD,uEAA+D;AAC/D,oFAA4E;AAC5E,sDAA8C;AAE9C,uEAA+D;AAwBxD,MAAM,YAAY,GAAG,CAAC,EACzB,QAAQ,EACR,cAAc,EACd,KAAK,EACL,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,UAAU,EACV,MAAM,EACN,YAAY,EACZ,cAAc,GAAG,KAAK,EACtB,aAAa,EACb,WAAW,GACK,EAAE,EAAE;IACpB,MAAM,EAAC,kBAAkB,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,iCAAe,CAAC,CAAC;IAC/D,MAAM,EAAC,WAAW,EAAE,UAAU,EAAE,UAAU,EAAC,GAAG,IAAA,mBAAQ,EAAC;QACnD,OAAO,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW;QAC3B,KAAK,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU;QACxB,kBAAkB,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU;QACrC,MAAM,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,UAAU;KAC3B,CAAC,CAAC;IAEH,MAAM,KAAwC,IAAA,2CAAoB,EAAC,aAAa,CAAC,EAA3E,EAAC,aAAa,OAA6D,EAAxD,iBAAiB,sBAApC,iBAAqC,CAAsC,CAAC;IAElF,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAClC,GAAG,EAAE,CAAC,CAAC;QACH,UAAU,EAAE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU;QAC7B,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC;QACxB,cAAc;QACd,aAAa;KAChB,CAAC,EACF,CAAC,KAAK,EAAE,cAAc,EAAE,aAAa,CAAC,CACzC,CAAC;IAEF,MAAM,kBAAkB,GAAG,IAAA,iDAAuB,EAAC,MAAM,CAAC,CAAC;IAE3D,OAAO,CACH,wBAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,gBAAgB,aAC1C,uBAAC,iCAAe,CAAC,QAAQ,IACrB,KAAK,EAAE;oBACH,IAAI;oBACJ,cAAc;oBACd,KAAK,EAAE,KAAK;wBACR,CAAC,CAAC;4BACI,cAAc,EAAE,UAAU;4BAC1B,WAAW;4BACX,UAAU;yBACb;wBACH,CAAC,CAAC,SAAS;oBACf,YAAY;oBACZ,WAAW;iBACd,YAED,wBAAC,0CAAuB,oBAChB,QAAQ,IACZ,eAAe,kCAAM,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,eAAe,KAAI,EAAE,CAAC,KAAE,kBAAkB,gBAEzE,QAAQ,CAAC,CAAC,CAAC,uBAAC,yBAAW,oBAAK,QAAQ,EAAI,CAAC,CAAC,CAAC,IAAI,EAChD,uBAAC,kCAAe,IACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,kBAAkB,EAC1B,UAAU,EAAE,UAAU,GACxB,KACoB,GACH,EAC3B,uBAAC,2BAAY,oBAAK,iBAAiB,EAAI,IACnB,CAC3B,CAAC;AACN,CAAC,CAAC;AApEW,QAAA,YAAY,gBAoEvB","sourcesContent":["import * as React from 'react';\n\nimport {ShareOptions} from '@gravity-ui/components';\nimport {\n CustomConfig,\n HeaderBreadCrumbsProps,\n NavigationData,\n PageConstructor,\n PageConstructorProvider,\n PageConstructorProviderProps,\n PageContent,\n} from '@gravity-ui/page-constructor';\n\nimport {MetaWrapper} from '../../components/MetaWrapper/MetaWrapper';\nimport {PromptSignIn} from '../../components/PromptSignIn/PromptSignIn';\nimport {usePromptSignInProps} from '../../components/PromptSignIn/hooks/usePromptSignInProps';\nimport {LikesContext} from '../../contexts/LikesContext';\nimport {PostPageContext} from '../../contexts/PostPageContext';\nimport {useExtendedComponentMap} from '../../hooks/useExtendedComponentMap';\nimport {useLikes} from '../../hooks/useLikes';\nimport {MetaProps, PostData, ToggleLikeCallbackType} from '../../models/common';\nimport {SettingsContext} from '../../contexts/SettingsContext';\n\nimport './BlogPostPage.scss';\n\nexport interface BlogPostPageProps {\n suggestedPosts: PostData[];\n metaData?: MetaProps;\n likes?: {\n hasUserLike?: boolean;\n likesCount?: number;\n toggleLike?: ToggleLikeCallbackType;\n };\n content: PageContent;\n post: PostData;\n settings?: PageConstructorProviderProps;\n navigation?: NavigationData;\n custom?: CustomConfig;\n shareOptions?: ShareOptions[];\n isSignedInUser?: boolean;\n // Required to enable Sign In on Post like\n onClickSignIn?: React.EventHandler<React.SyntheticEvent>;\n breadcrumbs?: HeaderBreadCrumbsProps;\n}\n\nexport const BlogPostPage = ({\n metaData,\n suggestedPosts,\n likes,\n content,\n post,\n settings,\n navigation,\n custom,\n shareOptions,\n isSignedInUser = false,\n onClickSignIn,\n breadcrumbs,\n}: BlogPostPageProps) => {\n const {isAnimationEnabled} = React.useContext(SettingsContext);\n const {hasUserLike, likesCount, handleLike} = useLikes({\n hasLike: likes?.hasUserLike,\n count: likes?.likesCount,\n toggleLikeCallback: likes?.toggleLike,\n postId: post?.blogPostId,\n });\n\n const {requireSignIn, ...promptSignInProps} = usePromptSignInProps(onClickSignIn);\n\n const likesContextData = React.useMemo(\n () => ({\n toggleLike: likes?.toggleLike,\n hasLikes: Boolean(likes),\n isSignedInUser,\n requireSignIn,\n }),\n [likes, isSignedInUser, requireSignIn],\n );\n\n const actualComponentMap = useExtendedComponentMap(custom);\n\n return (\n <LikesContext.Provider value={likesContextData}>\n <PostPageContext.Provider\n value={{\n post,\n suggestedPosts,\n likes: likes\n ? {\n handleUserLike: handleLike,\n hasUserLike,\n likesCount,\n }\n : undefined,\n shareOptions,\n breadcrumbs,\n }}\n >\n <PageConstructorProvider\n {...settings}\n projectSettings={{...(settings?.projectSettings || {}), isAnimationEnabled}}\n >\n {metaData ? <MetaWrapper {...metaData} /> : null}\n <PageConstructor\n content={content}\n custom={actualComponentMap}\n navigation={navigation}\n />\n </PageConstructorProvider>\n </PostPageContext.Provider>\n <PromptSignIn {...promptSignInProps} />\n </LikesContext.Provider>\n );\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"DeviceContext.js","sourceRoot":"../../../src","sources":["contexts/DeviceContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAMlB,QAAA,aAAa,GAAG,KAAK,CAAC,aAAa,CAAqB,EAAwB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {WithDeviceProps} from '../models/common';\n\nexport type DeviceContextProps = Partial<WithDeviceProps>;\n\nexport const DeviceContext = React.createContext<DeviceContextProps>({} as DeviceContextProps);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FeedContext.js","sourceRoot":"../../../src","sources":["contexts/FeedContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAclB,QAAA,WAAW,GAAG,KAAK,CAAC,aAAa,CAAmB,EAAsB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {GetPostsType, PostData, Service, Tag} from '../models/common';\n\nexport interface FeedContextProps {\n posts?: PostData[];\n pinnedPost?: PostData;\n totalCount?: number;\n tags?: Tag[];\n services?: Service[];\n getPosts?: GetPostsType;\n pageCountForShowSupportButtons?: number;\n}\n\nexport const FeedContext = React.createContext<FeedContextProps>({} as FeedContextProps);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LikesContext.js","sourceRoot":"../../../src","sources":["contexts/LikesContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAWlB,QAAA,YAAY,GAAG,KAAK,CAAC,aAAa,CAAoB,EAAuB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ToggleLikeCallbackType} from '../models/common';\n\nexport interface LikesContextProps {\n toggleLike?: ToggleLikeCallbackType;\n hasLikes?: boolean;\n isSignedInUser?: boolean;\n requireSignIn?: React.MouseEventHandler;\n}\n\nexport const LikesContext = React.createContext<LikesContextProps>({} as LikesContextProps);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LocaleContext.js","sourceRoot":"../../../src","sources":["contexts/LocaleContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAG/B,6CAAuC;AAM1B,QAAA,aAAa,GAAG,KAAK,CAAC,aAAa,CAAqB;IACjE,MAAM,EAAE;QACJ,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,YAAI,CAAC,EAAE;QACb,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,IAAI;KACnB;CACJ,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {Locale} from '../models/locale';\nimport {Lang} from '@gravity-ui/uikit';\n\nexport type LocaleContextProps = {\n locale: Locale;\n};\n\nexport const LocaleContext = React.createContext<LocaleContextProps>({\n locale: {\n code: 'en-En',\n lang: Lang.En,\n langName: 'English',\n pathPrefix: 'en',\n },\n});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"MobileContext.js","sourceRoot":"../../../src","sources":["contexts/MobileContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAElB,QAAA,aAAa,GAAG,KAAK,CAAC,aAAa,CAAU,KAAK,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nexport const MobileContext = React.createContext<boolean>(false);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"PostPageContext.js","sourceRoot":"../../../src","sources":["contexts/PostPageContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAqBlB,QAAA,eAAe,GAAG,KAAK,CAAC,aAAa,CAC9C,EAA0B,CAC7B,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ShareOptions} from '@gravity-ui/components';\n\nimport {PostData} from '../models/common';\nimport {HeaderBreadCrumbsProps} from '@gravity-ui/page-constructor';\n\nexport type LikesRoutineType = {\n handleUserLike: () => void;\n hasUserLike: boolean;\n likesCount: number;\n};\n\nexport interface PostPageContextProps {\n post: PostData;\n suggestedPosts: PostData[];\n likes?: LikesRoutineType;\n shareOptions?: ShareOptions[];\n breadcrumbs?: HeaderBreadCrumbsProps;\n}\n\nexport const PostPageContext = React.createContext<PostPageContextProps>(\n {} as PostPageContextProps,\n);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"RouterContext.js","sourceRoot":"../../../src","sources":["contexts/RouterContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAYlB,QAAA,aAAa,GAAG,KAAK,CAAC,aAAa,CAAqB,EAAwB,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {Query} from '../models/common';\n\nexport interface RouterContextProps {\n pathname: string;\n as: string;\n hostname: string;\n query?: Query;\n updateQueryCallback: (query: Query) => void;\n}\n\nexport const RouterContext = React.createContext<RouterContextProps>({} as RouterContextProps);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SettingsContext.js","sourceRoot":"../../../src","sources":["contexts/SettingsContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AASlB,QAAA,eAAe,GAAG,KAAK,CAAC,aAAa,CAAuB,EAAE,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nexport interface SettingsContextProps {\n addNavigationLinkForPages?: boolean;\n isAnimationEnabled?: boolean;\n\n getBlogPath?: (pathPrefix: string) => string;\n}\n\nexport const SettingsContext = React.createContext<SettingsContextProps>({});\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeContext.js","sourceRoot":"../../../../src","sources":["contexts/theme/ThemeContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAE/B,kDAA8C;AASjC,QAAA,YAAY,GAAsB;IAC3C,KAAK,EAAE,yBAAa;IACpB,QAAQ,EAAE,GAAG,EAAE,GAAE,CAAC;CACrB,CAAC;AAEW,QAAA,YAAY,GAAG,KAAK,CAAC,aAAa,CAAC,oBAAY,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {DEFAULT_THEME} from '../../constants';\n\nimport {ThemeValueType} from './ThemeValueContext';\n\nexport interface ThemeContextProps {\n theme: ThemeValueType;\n setTheme: (newTheme: ThemeValueType) => void;\n}\n\nexport const initialValue: ThemeContextProps = {\n theme: DEFAULT_THEME,\n setTheme: () => {},\n};\n\nexport const ThemeContext = React.createContext(initialValue);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeProvider.js","sourceRoot":"../../../../src","sources":["contexts/theme/ThemeProvider.tsx"],"names":[],"mappings":";;;;;AAAA,qDAA+B;AAE/B,kDAAgE;AAEhE,oDAA+D;AAC/D,8DAAsE;AAiBtE,MAAa,aAAc,SAAQ,KAAK,CAAC,SAGxC;IAHD;;QAQI,UAAK,GAAuB;YACxB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YAC5B,QAAQ,EAAE,CAAC,KAAqB,EAAE,EAAE;gBAChC,IAAI,CAAC,QAAQ,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC;YAC3B,CAAC;SACJ,CAAC;IAsCN,CAAC;IApCG,iBAAiB;QACb,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;IAED,kBAAkB,CAAC,SAA6B,EAAE,SAA6B;QAC3E,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC;IAED,MAAM;QACF,OAAO,CACH,uBAAC,2BAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,IAAI,CAAC,KAAK,YACpC,uBAAC,qCAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,EAAC,YACjE,IAAI,CAAC,KAAK,CAAC,QAAQ,GACK,GACT,CAC3B,CAAC;IACN,CAAC;IAEO,mBAAmB,CAAC,KAAa;QACrC,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC;QAE7B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,4BAAgB,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,4BAAgB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,4BAAgB,cAAc,EAAE,KAAK,KAAK,OAAO,CAAC,CAAC;QAC9E,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,4BAAgB,aAAa,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC;IAChF,CAAC;;AAnDL,sCAoDC;AAhDU,0BAAY,GAA8B;IAC7C,KAAK,EAAE,yBAAa;CACvB,AAFkB,CAEjB","sourcesContent":["import * as React from 'react';\n\nimport {DEFAULT_THEME, UIKIT_ROOT_CLASS} from '../../constants';\n\nimport {ThemeContext, ThemeContextProps} from './ThemeContext';\nimport {ThemeValueContext, ThemeValueType} from './ThemeValueContext';\n\ninterface ThemeProviderExternalProps {}\n\ninterface ThemeProviderDefaultProps {\n theme: ThemeValueType;\n children?: React.ReactNode;\n}\n\nexport interface ThemeProviderProps\n extends ThemeProviderExternalProps,\n Partial<ThemeProviderDefaultProps> {}\n\ninterface ThemeProviderState extends ThemeContextProps {\n themeValue: ThemeValueType;\n}\n\nexport class ThemeProvider extends React.Component<\n ThemeProviderExternalProps & ThemeProviderDefaultProps,\n ThemeProviderState\n> {\n static defaultProps: ThemeProviderDefaultProps = {\n theme: DEFAULT_THEME,\n };\n\n state: ThemeProviderState = {\n theme: this.props.theme,\n themeValue: this.props.theme,\n setTheme: (theme: ThemeValueType) => {\n this.setState({theme});\n },\n };\n\n componentDidMount() {\n this.updateBodyClassName(this.state.themeValue);\n }\n\n componentDidUpdate(prevProps: ThemeProviderProps, prevState: ThemeProviderState) {\n if (prevState.theme !== this.state.theme) {\n this.setState({themeValue: this.state.theme});\n this.updateBodyClassName(this.state.theme);\n }\n\n if (prevProps.theme !== this.props.theme) {\n this.setState({themeValue: this.state.theme});\n this.updateBodyClassName(this.state.theme);\n }\n }\n\n render() {\n return (\n <ThemeContext.Provider value={this.state}>\n <ThemeValueContext.Provider value={{themeValue: this.state.themeValue}}>\n {this.props.children}\n </ThemeValueContext.Provider>\n </ThemeContext.Provider>\n );\n }\n\n private updateBodyClassName(theme: string) {\n const bodyEl = document.body;\n\n if (!bodyEl.classList.contains(UIKIT_ROOT_CLASS)) {\n bodyEl.classList.add(UIKIT_ROOT_CLASS);\n }\n\n bodyEl.classList.toggle(`${UIKIT_ROOT_CLASS}_theme_light`, theme === 'light');\n bodyEl.classList.toggle(`${UIKIT_ROOT_CLASS}_theme_dark`, theme === 'dark');\n }\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThemeValueContext.js","sourceRoot":"../../../../src","sources":["contexts/theme/ThemeValueContext.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAQlB,QAAA,YAAY,GAA2B;IAChD,UAAU,EAAE,OAAO;CACtB,CAAC;AAEW,QAAA,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,oBAAY,CAAC,CAAC","sourcesContent":["import * as React from 'react';\n\nexport type ThemeValueType = 'light' | 'dark';\n\nexport interface ThemeValueContextProps {\n themeValue: ThemeValueType;\n}\n\nexport const initialValue: ThemeValueContextProps = {\n themeValue: 'light',\n};\n\nexport const ThemeValueContext = React.createContext(initialValue);\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"../../../../src","sources":["contexts/theme/index.ts"],"names":[],"mappings":";;;AAAA,4DAA+B;AAC/B,6DAAgC;AAChC,wDAA2B;AAC3B,6DAAgC;AAChC,yDAA4B;AAC5B,8DAAiC","sourcesContent":["export * from './ThemeContext';\nexport * from './ThemeProvider';\nexport * from './useTheme';\nexport * from './useThemeValue';\nexport * from './withTheme';\nexport * from './withThemeValue';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTheme.js","sourceRoot":"../../../../src","sources":["contexts/theme/useTheme.ts"],"names":[],"mappings":";;AAIA,4BAGC;;AAPD,qDAA+B;AAE/B,oDAA+D;AAE/D,SAAgB,QAAQ;IACpB,MAAM,EAAC,KAAK,EAAE,QAAQ,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,2BAAY,CAAC,CAAC;IACzD,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ThemeContext, ThemeContextProps} from './ThemeContext';\n\nexport function useTheme(): [ThemeContextProps['theme'], ThemeContextProps['setTheme']] {\n const {theme, setTheme} = React.useContext(ThemeContext);\n return [theme, setTheme];\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useThemeValue.js","sourceRoot":"../../../../src","sources":["contexts/theme/useThemeValue.ts"],"names":[],"mappings":";;AAIA,sCAGC;;AAPD,qDAA+B;AAE/B,8DAA8E;AAE9E,SAAgB,aAAa;IACzB,MAAM,EAAC,UAAU,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,qCAAiB,CAAC,CAAC;IACzD,OAAO,UAAU,CAAC;AACtB,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {ThemeValueContext, ThemeValueContextProps} from './ThemeValueContext';\n\nexport function useThemeValue(): ThemeValueContextProps['themeValue'] {\n const {themeValue} = React.useContext(ThemeValueContext);\n return themeValue;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"withTheme.js","sourceRoot":"../../../../src","sources":["contexts/theme/withTheme.tsx"],"names":[],"mappings":";;AAQA,8BAoBC;;;AA5BD,qDAA+B;AAI/B,oDAA+D;AAI/D,SAAgB,SAAS,CACrB,gBAAwC;;IAExC,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IAE3F,YAAO,MAAM,kBAAmB,SAAQ,KAAK,CAAC,SAAsC;YAKhF,MAAM;gBACF,OAAO,CACH,uBAAC,gBAAgB,oBACR,IAAI,CAAC,KAAW,IACrB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EACzB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,IACjC,CACL,CAAC;YACN,CAAC;SACJ;QAbU,cAAW,GAAG,aAAa,aAAa,GAAI;QAC5C,cAAW,GAAG,2BAAa;WAYpC;AACN,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {Subtract} from 'utility-types';\n\nimport {ThemeContext, ThemeContextProps} from './ThemeContext';\n\nexport interface WithThemeProps extends ThemeContextProps {}\n\nexport function withTheme<T extends WithThemeProps>(\n WrappedComponent: React.ComponentType<T>,\n): React.ComponentType<Subtract<T, WithThemeProps>> {\n const componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n return class WithThemeComponent extends React.Component<Subtract<T, WithThemeProps>> {\n static displayName = `withTheme(${componentName})`;\n static contextType = ThemeContext;\n context!: ThemeContextProps;\n\n render() {\n return (\n <WrappedComponent\n {...(this.props as T)}\n theme={this.context.theme}\n setTheme={this.context.setTheme}\n />\n );\n }\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"withThemeValue.js","sourceRoot":"../../../../src","sources":["contexts/theme/withThemeValue.tsx"],"names":[],"mappings":";;AAQA,wCAcC;;;AAtBD,qDAA+B;AAI/B,8DAA8E;AAI9E,SAAgB,cAAc,CAC1B,gBAAwC;;IAExC,MAAM,aAAa,GAAG,gBAAgB,CAAC,WAAW,IAAI,gBAAgB,CAAC,IAAI,IAAI,WAAW,CAAC;IAE3F,YAAO,MAAM,uBAAwB,SAAQ,KAAK,CAAC,SAA2C;YAK1F,MAAM;gBACF,OAAO,uBAAC,gBAAgB,oBAAM,IAAI,CAAC,KAAW,IAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC;YAC5F,CAAC;SACJ;QAPU,cAAW,GAAG,kBAAkB,aAAa,GAAI;QACjD,cAAW,GAAG,qCAAkB;WAMzC;AACN,CAAC","sourcesContent":["import * as React from 'react';\n\nimport {Subtract} from 'utility-types';\n\nimport {ThemeValueContext, ThemeValueContextProps} from './ThemeValueContext';\n\nexport interface WithThemeValueProps extends ThemeValueContextProps {}\n\nexport function withThemeValue<T extends WithThemeValueProps>(\n WrappedComponent: React.ComponentType<T>,\n): React.ComponentType<Subtract<T, WithThemeValueProps>> {\n const componentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n\n return class WithThemeValueComponent extends React.Component<Subtract<T, WithThemeValueProps>> {\n static displayName = `withThemeValue(${componentName})`;\n static contextType = ThemeValueContext;\n context!: ThemeValueContextProps;\n\n render() {\n return <WrappedComponent {...(this.props as T)} themeValue={this.context.themeValue} />;\n }\n };\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrika.js","sourceRoot":"../../../src","sources":["counters/metrika.ts"],"names":[],"mappings":"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","sourcesContent":["const Goal = {\n SUPPORT_OPEN_FORM: 'SUPPORTOPENFORM',\n SUPPORT_STEP_1_SUBMIT: 'SUPPORTSTEP1SUBMIT',\n SUPPORT_STEP_2_SUBMIT: 'SUPPORTSTEP2SUBMIT',\n SUPPORT_STEP_3_SUBMIT: 'SUPPORTSTEP3SUBMIT',\n SUPPORT_THANKYOU_SUBMIT: 'SUPPORTTHANKYOUSUBMIT',\n\n MP_OPEN_FORM: 'MPOPENFORM',\n\n EDIT_ON_GITHUB: 'EDITONGITHUB',\n\n MAIN_GO_TO_VAR: 'MAINGOTOVAR',\n MAIN_GO_TO_ISV: 'MAINGOTOISV',\n MAIN_ALL_PARTNERS: 'MAINALLPARTNERS',\n FIND_GO_TO_VAR: 'FINDGOTOVAR',\n ISV_GO_TO_MP: 'ISVGOTOMP',\n\n FOOTER_SUBSCRIBE: 'FOOTERSUBSCRIBE',\n FOOTER_MNG_SUBSCRIPTIONS: 'FOOTERMNGSUBSCRIPTIONS',\n\n MOBILE_STORE_IOS: '154_Mobile_App_Store_Badge',\n MOBILE_STORE_ANDROID: '155_Mobile_Google_Play_Badge',\n\n REGION_POPUP_SHOW: 'REGIONPOPUP',\n REGION_POPUP_YES: 'REGIONPOPUPYES',\n REGION_POPUP_NO: 'REGIONPOPUPNO',\n REGION_POPUP_CLOSE: 'REGIONPOPUPCLOSE',\n\n SCALE_REGISTRATION: 'Scale_registration',\n DLGOTOPRODUCT_MPSITE: 'DLGOTOPRODUCT_MPSITE',\n MPK8S_CLCK: 'MPK8S_CLCK',\n 'SITE_CALCULATOR_SHARE-RESULT_CLICK': 'SITE_CALCULATOR_SHARE-RESULT_CLICK',\n};\n\nconst HIT_COUNTERS = ['main', 'cross-site', 'scale'];\n\nconst counterIds: Record<string, string> = {};\n\nfunction getCounter(name: string) {\n const counterId = counterIds[name];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (window as unknown as Record<string, any>)['yaCounter' + counterId];\n}\n\nexport function initCounters(configs: Record<string, string>[]) {\n configs.forEach((config) => {\n counterIds[config.name] = config.id;\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction hit(...args: any[]) {\n HIT_COUNTERS.forEach((counterName) => {\n const counter = getCounter(counterName);\n\n if (!counter) {\n return;\n }\n\n counter.hit(...args);\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction params(...args: Record<string, any>[]) {\n const counter = getCounter('main');\n\n if (!counter) {\n return;\n }\n\n counter.params(...args);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction reachGoal(counterName: string, ...args: any[]) {\n const counter = getCounter(counterName);\n\n if (!counter) {\n return;\n }\n\n counter.reachGoal(...args);\n}\n\nfunction reachGoals(goals: string | object, counterName = 'main') {\n if (!goals) {\n return;\n }\n\n const goalsArray = Array.isArray(goals) ? goals : [goals];\n\n goalsArray.forEach((goal) => {\n if (typeof goal === 'object') {\n reachGoal(counterName, goal.name, goal.params);\n } else {\n reachGoal(counterName, goal);\n }\n });\n}\n\n// eslint-disable-next-line complexity\nfunction getServicePrefix(id: string) {\n switch (id) {\n case 'compute':\n return 'CMPT';\n case 'iam':\n return 'IAM';\n case 'vpc':\n return 'VPC';\n case 'storage':\n return 'STRG';\n case 'speechkit':\n return 'SK';\n case 'managed-clickhouse':\n return 'CH';\n case 'managed-mongodb':\n return 'MONGO';\n case 'managed-postgresql':\n return 'POSTGR';\n case 'managed-redis':\n return 'MR';\n case 'managed-mysql':\n return 'MMSQL';\n case 'managed-kubernetes':\n return 'MK';\n case 'translate':\n return 'TRSL';\n case 'instance-groups':\n return 'INSTGR';\n case 'load-balancer':\n return 'LB';\n case 'message-queue':\n return 'MQ';\n case 'datalens':\n return 'DL';\n case 'monitoring':\n return 'MNTRG';\n case 'data-proc':\n return 'DP';\n case 'kms':\n return 'KMS';\n case 'ydb':\n return 'YDB';\n case 'interconnect':\n return 'INTRCNCT';\n }\n\n return undefined;\n}\n\nfunction getMarketPlacePrefix(id: string) {\n return `product_${id}_`;\n}\n\nfunction goalGoToConsole(prefix: string) {\n return prefix && `${prefix}GOTOCONSOLE`;\n}\n\nfunction goalGoToForm(prefix: string) {\n return prefix && `${prefix}GOTOFORM`;\n}\n\nfunction goalGoToDocs(prefix: string) {\n return prefix && `${prefix}GOTODOCS`;\n}\n\nfunction goalFormSubmit(prefix: string) {\n return prefix && `${prefix}FORMSUBMIT`;\n}\n\nfunction goalEventFormSubmit(id: string) {\n return `event${id || 's'}_form_submit`;\n}\n\nfunction goalEventVideoAction(id: string, action: string) {\n return `event${id}_video_${action}`;\n}\n\nfunction goalCaseFormSubmit(id: string) {\n return `case${id ? `_${id}` : 's'}_form_submit`;\n}\n\nfunction goalSwitchLang(place: string) {\n return `SWITCH_LANG_${place}`;\n}\n\nexport default {\n hit,\n params,\n reachGoal,\n reachGoals,\n Goal,\n getServicePrefix,\n getMarketPlacePrefix,\n goalGoToConsole,\n goalGoToForm,\n goalGoToDocs,\n goalFormSubmit,\n goalEventFormSubmit,\n goalEventVideoAction,\n goalCaseFormSubmit,\n goalSwitchLang,\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"../../../src","sources":["counters/utils.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IACxB,iCAAa,CAAA;IACb,4CAAwB,CAAA;IACxB,mCAAe,CAAA;AACnB,CAAC,EAJW,gBAAgB,gCAAhB,gBAAgB,QAI3B","sourcesContent":["export enum AnalyticsCounter {\n Main = 'main',\n CrossSite = 'cross-site',\n Scale = 'scale',\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useAriaAttributes.js","sourceRoot":"../../../src","sources":["hooks/useAriaAttributes.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAS/B;;;;;GAKG;AACI,MAAM,iBAAiB,GAAG,CAAC,EAAC,QAAQ,GAAG,EAAE,EAAE,cAAc,GAAG,EAAE,EAAyB,EAAE,EAAE;IAC9F,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IACvF,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAC7B,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAC9C,CAAC,cAAc,CAAC,CACnB,CAAC;IAEF,OAAO;QACH,iBAAiB,EAAE,UAAU;QAC7B,kBAAkB,EAAE,WAAW;KAClC,CAAC;AACN,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B","sourcesContent":["import * as React from 'react';\n\ntype Labels = string | number | boolean | undefined;\ntype Description = string | number | boolean | undefined;\ninterface UseAriaAttributesProps {\n labelIds?: Labels[];\n descriptionIds: Description[];\n}\n\n/**\n * Returns aria-attributes\n * @param labelIds - labels ids. Falsy values will be ignored\n * @param descriptionIds - descriptions ids. Falsy values will be ignored\n * @returns aria attributes for the element to be labelled\n */\nexport const useAriaAttributes = ({labelIds = [], descriptionIds = []}: UseAriaAttributesProps) => {\n const labelledBy = React.useMemo(() => labelIds.filter(Boolean).join(' '), [labelIds]);\n const describedBy = React.useMemo(\n () => descriptionIds.filter(Boolean).join(' '),\n [descriptionIds],\n );\n\n return {\n 'aria-labelledby': labelledBy,\n 'aria-describedby': describedBy,\n };\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useExtendedComponentMap.js","sourceRoot":"../../../src","sources":["hooks/useExtendedComponentMap.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAE/B,mEAA0E;AAE1E,oFAAoD;AAE7C,MAAM,uBAAuB,GAAG,CAAC,MAAgC,EAAE,EAAE,CACxE,KAAK,CAAC,OAAO,CACT,GAAG,EAAE,CAAC,iCACC,MAAM,KACT,MAAM,kCAAM,mBAAY,CAAC,MAAM,GAAK,IAAA,iCAAc,EAAC,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,GACtE,OAAO,kCAAM,mBAAY,CAAC,OAAO,GAAK,IAAA,iCAAc,EAAC,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,KAC3E,EACF,CAAC,MAAM,CAAC,CACX,CAAC;AARO,QAAA,uBAAuB,2BAQ9B","sourcesContent":["import * as React from 'react';\n\nimport {CustomConfig, getCustomItems} from '@gravity-ui/page-constructor';\n\nimport componentMap from '../constructor/blocksMap';\n\nexport const useExtendedComponentMap = (custom: CustomConfig | undefined) =>\n React.useMemo(\n () => ({\n ...custom,\n blocks: {...componentMap.blocks, ...getCustomItems(['blocks'], custom)},\n headers: {...componentMap.headers, ...getCustomItems(['headers'], custom)},\n }),\n [custom],\n );\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useHover.js","sourceRoot":"../../../src","sources":["hooks/useHover.ts"],"names":[],"mappings":";;AAMA,4BA+BC;;AArCD,qDAA+B;AAE/B;;;GAGG;AACH,SAAgB,QAAQ;IAIpB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAE/B,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAiC,CAAC;QAEnD,IAAI,CAAC,IAAI;YAAE,OAAO;QAElB,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC1B,WAAW,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,gBAAgB,GAAG,GAAG,EAAE;YAC1B,WAAW,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAEtD,6CAA6C;QAC7C,OAAO,GAAG,EAAE;YACR,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;YACzD,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;QAC7D,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AAC3B,CAAC","sourcesContent":["import * as React from 'react';\n\n/*\n * Source code copied from https://github.com/uidotdev/usehooks | MIT License\n * @see https://usehooks.com/usehover\n */\nexport function useHover<T extends HTMLElement = HTMLElement>(): [\n ref: React.RefObject<T>,\n hovering: boolean,\n] {\n const [hovering, setHovering] = React.useState(false);\n const ref = React.useRef(null);\n\n React.useEffect(() => {\n const node = ref.current as unknown as HTMLElement;\n\n if (!node) return;\n\n const handleMouseEnter = () => {\n setHovering(true);\n };\n\n const handleMouseLeave = () => {\n setHovering(false);\n };\n\n node.addEventListener('mouseenter', handleMouseEnter);\n node.addEventListener('mouseleave', handleMouseLeave);\n\n // eslint-disable-next-line consistent-return\n return () => {\n node.removeEventListener('mouseenter', handleMouseEnter);\n node.removeEventListener('mouseleave', handleMouseLeave);\n };\n }, []);\n\n return [ref, hovering];\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useIsIPhone.js","sourceRoot":"../../../src","sources":["hooks/useIsIPhone.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAE/B,gEAAwD;AAEjD,MAAM,WAAW,GAAG,GAAG,EAAE;IAC5B,MAAM,EAAC,MAAM,EAAC,GAAG,KAAK,CAAC,UAAU,CAAC,6BAAa,CAAC,CAAC;IAEjD,OAAO,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,MAAK,QAAQ,CAAC;AACtC,CAAC,CAAC;AAJW,QAAA,WAAW,eAItB","sourcesContent":["import * as React from 'react';\n\nimport {DeviceContext} from '../contexts/DeviceContext';\n\nexport const useIsIPhone = () => {\n const {device} = React.useContext(DeviceContext);\n\n return device?.model === 'iPhone';\n};\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useLikes.js","sourceRoot":"../../../src","sources":["hooks/useLikes.ts"],"names":[],"mappings":";;;;AAAA,qDAA+B;AAmBxB,MAAM,QAAQ,GAAiB,CAAC,EAAC,OAAO,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAC,EAAE,EAAE;IACnF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,CAAC,CAAC;IACvE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC,CAAC;IAE/D,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE;QACtC,IAAI,aAAa,GAAG,UAAU,CAAC;QAE/B,IAAI,WAAW,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;YAChC,aAAa,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACf,aAAa,EAAE,CAAC;QACpB,CAAC;QAED,cAAc,CAAC,CAAC,WAAW,CAAC,CAAC;QAC7B,aAAa,CAAC,aAAa,CAAC,CAAC;QAE7B,IAAI,kBAAkB,EAAE,CAAC;YACrB,kBAAkB,CAAC;gBACf,MAAM;gBACN,OAAO,EAAE,CAAC,WAAW;aACxB,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;IAE1D,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACjB,cAAc,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,KAAK,CAAC,CAAC;QACjC,aAAa,CAAC,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,CAAC,CAAC,CAAC;IAC9B,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;IAErB,OAAO;QACH,UAAU;QACV,WAAW;QACX,UAAU;KACb,CAAC;AACN,CAAC,CAAC;AApCW,QAAA,QAAQ,YAoCnB","sourcesContent":["import * as React from 'react';\n\nimport {ToggleLikeCallbackType} from '../models/common';\n\ntype UseLikesProps = {\n hasLike?: boolean;\n count?: number;\n postId?: number | string;\n toggleLikeCallback?: ToggleLikeCallbackType;\n};\n\ntype UseLikeData = {\n likesCount: number;\n hasUserLike: boolean;\n handleLike: () => void;\n};\n\ntype UseLikesType = (props: UseLikesProps) => UseLikeData;\n\nexport const useLikes: UseLikesType = ({hasLike, count, toggleLikeCallback, postId}) => {\n const [hasUserLike, setHasUserLike] = React.useState(hasLike ?? false);\n const [likesCount, setLikesCount] = React.useState(count ?? 0);\n\n const handleLike = React.useCallback(() => {\n let newLikesCount = likesCount;\n\n if (hasUserLike && likesCount > 0) {\n newLikesCount--;\n }\n\n if (!hasUserLike) {\n newLikesCount++;\n }\n\n setHasUserLike(!hasUserLike);\n setLikesCount(newLikesCount);\n\n if (toggleLikeCallback) {\n toggleLikeCallback({\n postId,\n hasLike: !hasUserLike,\n });\n }\n }, [hasUserLike, likesCount, postId, toggleLikeCallback]);\n\n React.useEffect(() => {\n setHasUserLike(hasLike ?? false);\n setLikesCount(count ?? 0);\n }, [hasLike, count]);\n\n return {\n likesCount,\n hasUserLike,\n handleLike,\n };\n};\n"]}