@gravity-ui/blog-constructor 1.0.0-alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (410) hide show
  1. package/CHANGELOG.md +231 -0
  2. package/LICENSE +21 -0
  3. package/README.md +14 -0
  4. package/build/cjs/blocks/Author/Author.css +31 -0
  5. package/build/cjs/blocks/Author/Author.d.ts +3 -0
  6. package/build/cjs/blocks/Author/Author.js +60 -0
  7. package/build/cjs/blocks/Banner/Banner.css +58 -0
  8. package/build/cjs/blocks/Banner/Banner.d.ts +3 -0
  9. package/build/cjs/blocks/Banner/Banner.js +51 -0
  10. package/build/cjs/blocks/CTA/CTA.css +56 -0
  11. package/build/cjs/blocks/CTA/CTA.d.ts +3 -0
  12. package/build/cjs/blocks/CTA/CTA.js +44 -0
  13. package/build/cjs/blocks/ColoredText/ColoredText.css +28 -0
  14. package/build/cjs/blocks/ColoredText/ColoredText.d.ts +3 -0
  15. package/build/cjs/blocks/ColoredText/ColoredText.js +37 -0
  16. package/build/cjs/blocks/Feed/Feed.d.ts +3 -0
  17. package/build/cjs/blocks/Feed/Feed.js +183 -0
  18. package/build/cjs/blocks/Feed/reducer.d.ts +65 -0
  19. package/build/cjs/blocks/Feed/reducer.js +40 -0
  20. package/build/cjs/blocks/Header/Header.d.ts +3 -0
  21. package/build/cjs/blocks/Header/Header.js +63 -0
  22. package/build/cjs/blocks/Layout/Layout.css +22 -0
  23. package/build/cjs/blocks/Layout/Layout.d.ts +3 -0
  24. package/build/cjs/blocks/Layout/Layout.js +78 -0
  25. package/build/cjs/blocks/Media/Media.css +41 -0
  26. package/build/cjs/blocks/Media/Media.d.ts +3 -0
  27. package/build/cjs/blocks/Media/Media.js +38 -0
  28. package/build/cjs/blocks/Meta/Meta.css +7 -0
  29. package/build/cjs/blocks/Meta/Meta.d.ts +3 -0
  30. package/build/cjs/blocks/Meta/Meta.js +66 -0
  31. package/build/cjs/blocks/Suggest/Suggest.d.ts +12 -0
  32. package/build/cjs/blocks/Suggest/Suggest.js +61 -0
  33. package/build/cjs/blocks/YFM/YFM.d.ts +3 -0
  34. package/build/cjs/blocks/YFM/YFM.js +24 -0
  35. package/build/cjs/blocks/constants.d.ts +8 -0
  36. package/build/cjs/blocks/constants.js +8 -0
  37. package/build/cjs/components/ButtonWithIcon/ButtonWithIcon.css +76 -0
  38. package/build/cjs/components/ButtonWithIcon/ButtonWithIcon.d.ts +12 -0
  39. package/build/cjs/components/ButtonWithIcon/ButtonWithIcon.js +13 -0
  40. package/build/cjs/components/FeedHeader/FeedHeader.css +54 -0
  41. package/build/cjs/components/FeedHeader/FeedHeader.d.ts +8 -0
  42. package/build/cjs/components/FeedHeader/FeedHeader.js +24 -0
  43. package/build/cjs/components/FeedHeader/components/Controls/Controls.css +106 -0
  44. package/build/cjs/components/FeedHeader/components/Controls/Controls.d.ts +16 -0
  45. package/build/cjs/components/FeedHeader/components/Controls/Controls.js +106 -0
  46. package/build/cjs/components/FeedHeader/components/Controls/customRenders.d.ts +11 -0
  47. package/build/cjs/components/FeedHeader/components/Controls/customRenders.js +22 -0
  48. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.css +14 -0
  49. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +8 -0
  50. package/build/cjs/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +13 -0
  51. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +53 -0
  52. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +11 -0
  53. package/build/cjs/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +47 -0
  54. package/build/cjs/components/MetaWrapper/MetaWrapper.d.ts +10 -0
  55. package/build/cjs/components/MetaWrapper/MetaWrapper.js +18 -0
  56. package/build/cjs/components/Paginator/Paginator.css +54 -0
  57. package/build/cjs/components/Paginator/Paginator.d.ts +2 -0
  58. package/build/cjs/components/Paginator/Paginator.js +118 -0
  59. package/build/cjs/components/Paginator/components/NavigationButton.d.ts +6 -0
  60. package/build/cjs/components/Paginator/components/NavigationButton.js +13 -0
  61. package/build/cjs/components/Paginator/components/PaginatorItem.d.ts +2 -0
  62. package/build/cjs/components/Paginator/components/PaginatorItem.js +15 -0
  63. package/build/cjs/components/Paginator/types.d.ts +29 -0
  64. package/build/cjs/components/Paginator/types.js +8 -0
  65. package/build/cjs/components/Paginator/utils.d.ts +3 -0
  66. package/build/cjs/components/Paginator/utils.js +32 -0
  67. package/build/cjs/components/PostCard/PostCard.css +85 -0
  68. package/build/cjs/components/PostCard/PostCard.d.ts +12 -0
  69. package/build/cjs/components/PostCard/PostCard.js +60 -0
  70. package/build/cjs/components/PostInfo/PostInfo.css +88 -0
  71. package/build/cjs/components/PostInfo/PostInfo.d.ts +28 -0
  72. package/build/cjs/components/PostInfo/PostInfo.js +55 -0
  73. package/build/cjs/components/PostInfo/SuggestPostInfo.d.ts +27 -0
  74. package/build/cjs/components/PostInfo/SuggestPostInfo.js +41 -0
  75. package/build/cjs/components/PostInfo/components/Date.d.ts +7 -0
  76. package/build/cjs/components/PostInfo/components/Date.js +36 -0
  77. package/build/cjs/components/PostInfo/components/ReadingTime.d.ts +7 -0
  78. package/build/cjs/components/PostInfo/components/ReadingTime.js +18 -0
  79. package/build/cjs/components/PostInfo/components/Save.d.ts +25 -0
  80. package/build/cjs/components/PostInfo/components/Save.js +73 -0
  81. package/build/cjs/components/PostInfo/components/Sharing.d.ts +7 -0
  82. package/build/cjs/components/PostInfo/components/Sharing.js +54 -0
  83. package/build/cjs/components/Posts/Posts.css +28 -0
  84. package/build/cjs/components/Posts/Posts.d.ts +19 -0
  85. package/build/cjs/components/Posts/Posts.js +32 -0
  86. package/build/cjs/components/PostsEmpty/PostsEmpty.css +25 -0
  87. package/build/cjs/components/PostsEmpty/PostsEmpty.d.ts +2 -0
  88. package/build/cjs/components/PostsEmpty/PostsEmpty.js +14 -0
  89. package/build/cjs/components/PostsError/PostError.css +30 -0
  90. package/build/cjs/components/PostsError/PostsError.d.ts +6 -0
  91. package/build/cjs/components/PostsError/PostsError.js +20 -0
  92. package/build/cjs/components/Search/Search.css +33 -0
  93. package/build/cjs/components/Search/Search.d.ts +15 -0
  94. package/build/cjs/components/Search/Search.js +67 -0
  95. package/build/cjs/components/Wrapper/Wrapper.css +32 -0
  96. package/build/cjs/components/Wrapper/Wrapper.d.ts +10 -0
  97. package/build/cjs/components/Wrapper/Wrapper.js +17 -0
  98. package/build/cjs/configure.d.ts +5 -0
  99. package/build/cjs/configure.js +8 -0
  100. package/build/cjs/constants.d.ts +27 -0
  101. package/build/cjs/constants.js +34 -0
  102. package/build/cjs/constructor/BlogConstructorProvider.d.ts +16 -0
  103. package/build/cjs/constructor/BlogConstructorProvider.js +46 -0
  104. package/build/cjs/constructor/blocksMap.d.ts +18 -0
  105. package/build/cjs/constructor/blocksMap.js +30 -0
  106. package/build/cjs/containers/BlogPage/BlogPage.css +21 -0
  107. package/build/cjs/containers/BlogPage/BlogPage.d.ts +15 -0
  108. package/build/cjs/containers/BlogPage/BlogPage.js +30 -0
  109. package/build/cjs/containers/BlogPostPage/BlogPostPage.css +251 -0
  110. package/build/cjs/containers/BlogPostPage/BlogPostPage.d.ts +18 -0
  111. package/build/cjs/containers/BlogPostPage/BlogPostPage.js +42 -0
  112. package/build/cjs/contexts/DeviceContext.d.ts +4 -0
  113. package/build/cjs/contexts/DeviceContext.js +8 -0
  114. package/build/cjs/contexts/FeedContext.d.ts +13 -0
  115. package/build/cjs/contexts/FeedContext.js +8 -0
  116. package/build/cjs/contexts/LikesContext.d.ts +7 -0
  117. package/build/cjs/contexts/LikesContext.js +8 -0
  118. package/build/cjs/contexts/LocaleContext.d.ts +6 -0
  119. package/build/cjs/contexts/LocaleContext.js +16 -0
  120. package/build/cjs/contexts/MobileContext.d.ts +2 -0
  121. package/build/cjs/contexts/MobileContext.js +8 -0
  122. package/build/cjs/contexts/PostPageContext.d.ts +14 -0
  123. package/build/cjs/contexts/PostPageContext.js +8 -0
  124. package/build/cjs/contexts/RouterContext.d.ts +9 -0
  125. package/build/cjs/contexts/RouterContext.js +8 -0
  126. package/build/cjs/contexts/UserContext.d.ts +18 -0
  127. package/build/cjs/contexts/UserContext.js +8 -0
  128. package/build/cjs/contexts/theme/ThemeContext.d.ts +8 -0
  129. package/build/cjs/contexts/theme/ThemeContext.js +13 -0
  130. package/build/cjs/contexts/theme/ThemeProvider.d.ts +23 -0
  131. package/build/cjs/contexts/theme/ThemeProvider.js +51 -0
  132. package/build/cjs/contexts/theme/ThemeValueContext.d.ts +7 -0
  133. package/build/cjs/contexts/theme/ThemeValueContext.js +11 -0
  134. package/build/cjs/contexts/theme/index.d.ts +6 -0
  135. package/build/cjs/contexts/theme/index.js +22 -0
  136. package/build/cjs/contexts/theme/useTheme.d.ts +2 -0
  137. package/build/cjs/contexts/theme/useTheme.js +13 -0
  138. package/build/cjs/contexts/theme/useThemeValue.d.ts +2 -0
  139. package/build/cjs/contexts/theme/useThemeValue.js +13 -0
  140. package/build/cjs/contexts/theme/withTheme.d.ts +6 -0
  141. package/build/cjs/contexts/theme/withTheme.js +21 -0
  142. package/build/cjs/contexts/theme/withThemeValue.d.ts +6 -0
  143. package/build/cjs/contexts/theme/withThemeValue.js +21 -0
  144. package/build/cjs/counters/metrika.d.ts +59 -0
  145. package/build/cjs/counters/metrika.js +170 -0
  146. package/build/cjs/counters/utils.d.ts +5 -0
  147. package/build/cjs/counters/utils.js +9 -0
  148. package/build/cjs/hooks/useIsIPhone.d.ts +1 -0
  149. package/build/cjs/hooks/useIsIPhone.js +10 -0
  150. package/build/cjs/hooks/useLikes.d.ts +15 -0
  151. package/build/cjs/hooks/useLikes.js +35 -0
  152. package/build/cjs/i18n/index.d.ts +22 -0
  153. package/build/cjs/i18n/index.js +74 -0
  154. package/build/cjs/icons/Close.d.ts +2 -0
  155. package/build/cjs/icons/Close.js +11 -0
  156. package/build/cjs/icons/DropdownArrow.d.ts +2 -0
  157. package/build/cjs/icons/DropdownArrow.js +11 -0
  158. package/build/cjs/icons/Save.d.ts +2 -0
  159. package/build/cjs/icons/Save.js +11 -0
  160. package/build/cjs/icons/SaveFilled.d.ts +2 -0
  161. package/build/cjs/icons/SaveFilled.js +11 -0
  162. package/build/cjs/icons/SearchIcon.d.ts +2 -0
  163. package/build/cjs/icons/SearchIcon.js +11 -0
  164. package/build/cjs/icons/ShareArrowUp.d.ts +2 -0
  165. package/build/cjs/icons/ShareArrowUp.js +11 -0
  166. package/build/cjs/icons/Time.d.ts +2 -0
  167. package/build/cjs/icons/Time.js +11 -0
  168. package/build/cjs/index.d.ts +7 -0
  169. package/build/cjs/index.js +29 -0
  170. package/build/cjs/internal-typings/bem-cn-lite.d.ts +17 -0
  171. package/build/cjs/internal-typings/global.d.ts +5 -0
  172. package/build/cjs/models/blocks.d.ts +84 -0
  173. package/build/cjs/models/blocks.js +2 -0
  174. package/build/cjs/models/common.d.ts +151 -0
  175. package/build/cjs/models/common.js +22 -0
  176. package/build/cjs/models/locale.d.ts +29 -0
  177. package/build/cjs/models/locale.js +14 -0
  178. package/build/cjs/models/paddings.d.ts +16 -0
  179. package/build/cjs/models/paddings.js +10 -0
  180. package/build/cjs/utils/cn.d.ts +4 -0
  181. package/build/cjs/utils/cn.js +12 -0
  182. package/build/cjs/utils/common.d.ts +42 -0
  183. package/build/cjs/utils/common.js +120 -0
  184. package/build/cjs/utils/date.d.ts +13 -0
  185. package/build/cjs/utils/date.js +59 -0
  186. package/build/cjs/utils/svg.d.ts +3 -0
  187. package/build/cjs/utils/svg.js +7 -0
  188. package/build/esm/blocks/Author/Author.css +31 -0
  189. package/build/esm/blocks/Author/Author.d.ts +4 -0
  190. package/build/esm/blocks/Author/Author.js +34 -0
  191. package/build/esm/blocks/Banner/Banner.css +58 -0
  192. package/build/esm/blocks/Banner/Banner.d.ts +4 -0
  193. package/build/esm/blocks/Banner/Banner.js +45 -0
  194. package/build/esm/blocks/CTA/CTA.css +56 -0
  195. package/build/esm/blocks/CTA/CTA.d.ts +4 -0
  196. package/build/esm/blocks/CTA/CTA.js +38 -0
  197. package/build/esm/blocks/ColoredText/ColoredText.css +28 -0
  198. package/build/esm/blocks/ColoredText/ColoredText.d.ts +4 -0
  199. package/build/esm/blocks/ColoredText/ColoredText.js +31 -0
  200. package/build/esm/blocks/Feed/Feed.d.ts +3 -0
  201. package/build/esm/blocks/Feed/Feed.js +153 -0
  202. package/build/esm/blocks/Feed/reducer.d.ts +65 -0
  203. package/build/esm/blocks/Feed/reducer.js +36 -0
  204. package/build/esm/blocks/Header/Header.d.ts +3 -0
  205. package/build/esm/blocks/Header/Header.js +36 -0
  206. package/build/esm/blocks/Layout/Layout.css +22 -0
  207. package/build/esm/blocks/Layout/Layout.d.ts +4 -0
  208. package/build/esm/blocks/Layout/Layout.js +52 -0
  209. package/build/esm/blocks/Media/Media.css +41 -0
  210. package/build/esm/blocks/Media/Media.d.ts +4 -0
  211. package/build/esm/blocks/Media/Media.js +32 -0
  212. package/build/esm/blocks/Meta/Meta.css +7 -0
  213. package/build/esm/blocks/Meta/Meta.d.ts +4 -0
  214. package/build/esm/blocks/Meta/Meta.js +40 -0
  215. package/build/esm/blocks/Suggest/Suggest.d.ts +12 -0
  216. package/build/esm/blocks/Suggest/Suggest.js +34 -0
  217. package/build/esm/blocks/YFM/YFM.d.ts +3 -0
  218. package/build/esm/blocks/YFM/YFM.js +17 -0
  219. package/build/esm/blocks/constants.d.ts +8 -0
  220. package/build/esm/blocks/constants.js +5 -0
  221. package/build/esm/components/ButtonWithIcon/ButtonWithIcon.css +76 -0
  222. package/build/esm/components/ButtonWithIcon/ButtonWithIcon.d.ts +13 -0
  223. package/build/esm/components/ButtonWithIcon/ButtonWithIcon.js +7 -0
  224. package/build/esm/components/FeedHeader/FeedHeader.css +54 -0
  225. package/build/esm/components/FeedHeader/FeedHeader.d.ts +9 -0
  226. package/build/esm/components/FeedHeader/FeedHeader.js +18 -0
  227. package/build/esm/components/FeedHeader/components/Controls/Controls.css +106 -0
  228. package/build/esm/components/FeedHeader/components/Controls/Controls.d.ts +17 -0
  229. package/build/esm/components/FeedHeader/components/Controls/Controls.js +77 -0
  230. package/build/esm/components/FeedHeader/components/Controls/customRenders.d.ts +12 -0
  231. package/build/esm/components/FeedHeader/components/Controls/customRenders.js +14 -0
  232. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.css +14 -0
  233. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.d.ts +9 -0
  234. package/build/esm/components/FeedHeader/components/CustomSelectOption/CustomSelectOption.js +7 -0
  235. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.css +53 -0
  236. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.d.ts +12 -0
  237. package/build/esm/components/FeedHeader/components/CustomSwitcher/CustomSwitcher.js +21 -0
  238. package/build/esm/components/MetaWrapper/MetaWrapper.d.ts +10 -0
  239. package/build/esm/components/MetaWrapper/MetaWrapper.js +11 -0
  240. package/build/esm/components/Paginator/Paginator.css +54 -0
  241. package/build/esm/components/Paginator/Paginator.d.ts +3 -0
  242. package/build/esm/components/Paginator/Paginator.js +89 -0
  243. package/build/esm/components/Paginator/components/NavigationButton.d.ts +7 -0
  244. package/build/esm/components/Paginator/components/NavigationButton.js +7 -0
  245. package/build/esm/components/Paginator/components/PaginatorItem.d.ts +3 -0
  246. package/build/esm/components/Paginator/components/PaginatorItem.js +9 -0
  247. package/build/esm/components/Paginator/types.d.ts +29 -0
  248. package/build/esm/components/Paginator/types.js +5 -0
  249. package/build/esm/components/Paginator/utils.d.ts +3 -0
  250. package/build/esm/components/Paginator/utils.js +27 -0
  251. package/build/esm/components/PostCard/PostCard.css +85 -0
  252. package/build/esm/components/PostCard/PostCard.d.ts +13 -0
  253. package/build/esm/components/PostCard/PostCard.js +34 -0
  254. package/build/esm/components/PostInfo/PostInfo.css +88 -0
  255. package/build/esm/components/PostInfo/PostInfo.d.ts +29 -0
  256. package/build/esm/components/PostInfo/PostInfo.js +29 -0
  257. package/build/esm/components/PostInfo/SuggestPostInfo.d.ts +28 -0
  258. package/build/esm/components/PostInfo/SuggestPostInfo.js +35 -0
  259. package/build/esm/components/PostInfo/components/Date.d.ts +8 -0
  260. package/build/esm/components/PostInfo/components/Date.js +10 -0
  261. package/build/esm/components/PostInfo/components/ReadingTime.d.ts +8 -0
  262. package/build/esm/components/PostInfo/components/ReadingTime.js +12 -0
  263. package/build/esm/components/PostInfo/components/Save.d.ts +26 -0
  264. package/build/esm/components/PostInfo/components/Save.js +44 -0
  265. package/build/esm/components/PostInfo/components/Sharing.d.ts +8 -0
  266. package/build/esm/components/PostInfo/components/Sharing.js +25 -0
  267. package/build/esm/components/Posts/Posts.css +28 -0
  268. package/build/esm/components/Posts/Posts.d.ts +20 -0
  269. package/build/esm/components/Posts/Posts.js +26 -0
  270. package/build/esm/components/PostsEmpty/PostsEmpty.css +25 -0
  271. package/build/esm/components/PostsEmpty/PostsEmpty.d.ts +3 -0
  272. package/build/esm/components/PostsEmpty/PostsEmpty.js +8 -0
  273. package/build/esm/components/PostsError/PostError.css +30 -0
  274. package/build/esm/components/PostsError/PostsError.d.ts +7 -0
  275. package/build/esm/components/PostsError/PostsError.js +14 -0
  276. package/build/esm/components/Search/Search.css +33 -0
  277. package/build/esm/components/Search/Search.d.ts +16 -0
  278. package/build/esm/components/Search/Search.js +41 -0
  279. package/build/esm/components/Wrapper/Wrapper.css +32 -0
  280. package/build/esm/components/Wrapper/Wrapper.d.ts +11 -0
  281. package/build/esm/components/Wrapper/Wrapper.js +11 -0
  282. package/build/esm/configure.d.ts +5 -0
  283. package/build/esm/configure.js +4 -0
  284. package/build/esm/constants.d.ts +27 -0
  285. package/build/esm/constants.js +31 -0
  286. package/build/esm/constructor/BlogConstructorProvider.d.ts +16 -0
  287. package/build/esm/constructor/BlogConstructorProvider.js +19 -0
  288. package/build/esm/constructor/blocksMap.d.ts +18 -0
  289. package/build/esm/constructor/blocksMap.js +28 -0
  290. package/build/esm/containers/BlogPage/BlogPage.css +21 -0
  291. package/build/esm/containers/BlogPage/BlogPage.d.ts +16 -0
  292. package/build/esm/containers/BlogPage/BlogPage.js +24 -0
  293. package/build/esm/containers/BlogPostPage/BlogPostPage.css +251 -0
  294. package/build/esm/containers/BlogPostPage/BlogPostPage.d.ts +19 -0
  295. package/build/esm/containers/BlogPostPage/BlogPostPage.js +36 -0
  296. package/build/esm/contexts/DeviceContext.d.ts +4 -0
  297. package/build/esm/contexts/DeviceContext.js +2 -0
  298. package/build/esm/contexts/FeedContext.d.ts +13 -0
  299. package/build/esm/contexts/FeedContext.js +2 -0
  300. package/build/esm/contexts/LikesContext.d.ts +7 -0
  301. package/build/esm/contexts/LikesContext.js +2 -0
  302. package/build/esm/contexts/LocaleContext.d.ts +6 -0
  303. package/build/esm/contexts/LocaleContext.js +10 -0
  304. package/build/esm/contexts/MobileContext.d.ts +2 -0
  305. package/build/esm/contexts/MobileContext.js +2 -0
  306. package/build/esm/contexts/PostPageContext.d.ts +14 -0
  307. package/build/esm/contexts/PostPageContext.js +2 -0
  308. package/build/esm/contexts/RouterContext.d.ts +9 -0
  309. package/build/esm/contexts/RouterContext.js +2 -0
  310. package/build/esm/contexts/UserContext.d.ts +18 -0
  311. package/build/esm/contexts/UserContext.js +2 -0
  312. package/build/esm/contexts/theme/ThemeContext.d.ts +8 -0
  313. package/build/esm/contexts/theme/ThemeContext.js +7 -0
  314. package/build/esm/contexts/theme/ThemeProvider.d.ts +23 -0
  315. package/build/esm/contexts/theme/ThemeProvider.js +44 -0
  316. package/build/esm/contexts/theme/ThemeValueContext.d.ts +7 -0
  317. package/build/esm/contexts/theme/ThemeValueContext.js +5 -0
  318. package/build/esm/contexts/theme/index.d.ts +6 -0
  319. package/build/esm/contexts/theme/index.js +6 -0
  320. package/build/esm/contexts/theme/useTheme.d.ts +2 -0
  321. package/build/esm/contexts/theme/useTheme.js +6 -0
  322. package/build/esm/contexts/theme/useThemeValue.d.ts +2 -0
  323. package/build/esm/contexts/theme/useThemeValue.js +6 -0
  324. package/build/esm/contexts/theme/withTheme.d.ts +6 -0
  325. package/build/esm/contexts/theme/withTheme.js +14 -0
  326. package/build/esm/contexts/theme/withThemeValue.d.ts +6 -0
  327. package/build/esm/contexts/theme/withThemeValue.js +14 -0
  328. package/build/esm/counters/metrika.d.ts +59 -0
  329. package/build/esm/counters/metrika.js +166 -0
  330. package/build/esm/counters/utils.d.ts +5 -0
  331. package/build/esm/counters/utils.js +6 -0
  332. package/build/esm/hooks/useIsIPhone.d.ts +1 -0
  333. package/build/esm/hooks/useIsIPhone.js +6 -0
  334. package/build/esm/hooks/useLikes.d.ts +15 -0
  335. package/build/esm/hooks/useLikes.js +31 -0
  336. package/build/esm/i18n/index.d.ts +22 -0
  337. package/build/esm/i18n/index.js +71 -0
  338. package/build/esm/icons/Close.d.ts +2 -0
  339. package/build/esm/icons/Close.js +4 -0
  340. package/build/esm/icons/DropdownArrow.d.ts +2 -0
  341. package/build/esm/icons/DropdownArrow.js +4 -0
  342. package/build/esm/icons/Save.d.ts +2 -0
  343. package/build/esm/icons/Save.js +4 -0
  344. package/build/esm/icons/SaveFilled.d.ts +2 -0
  345. package/build/esm/icons/SaveFilled.js +4 -0
  346. package/build/esm/icons/SearchIcon.d.ts +2 -0
  347. package/build/esm/icons/SearchIcon.js +4 -0
  348. package/build/esm/icons/ShareArrowUp.d.ts +2 -0
  349. package/build/esm/icons/ShareArrowUp.js +4 -0
  350. package/build/esm/icons/Time.d.ts +2 -0
  351. package/build/esm/icons/Time.js +4 -0
  352. package/build/esm/index.d.ts +7 -0
  353. package/build/esm/index.js +7 -0
  354. package/build/esm/internal-typings/bem-cn-lite.d.ts +17 -0
  355. package/build/esm/internal-typings/global.d.ts +5 -0
  356. package/build/esm/models/blocks.d.ts +84 -0
  357. package/build/esm/models/blocks.js +1 -0
  358. package/build/esm/models/common.d.ts +151 -0
  359. package/build/esm/models/common.js +19 -0
  360. package/build/esm/models/locale.d.ts +29 -0
  361. package/build/esm/models/locale.js +11 -0
  362. package/build/esm/models/paddings.d.ts +16 -0
  363. package/build/esm/models/paddings.js +7 -0
  364. package/build/esm/utils/cn.d.ts +4 -0
  365. package/build/esm/utils/cn.js +5 -0
  366. package/build/esm/utils/common.d.ts +42 -0
  367. package/build/esm/utils/common.js +107 -0
  368. package/build/esm/utils/date.d.ts +13 -0
  369. package/build/esm/utils/date.js +55 -0
  370. package/build/esm/utils/svg.d.ts +3 -0
  371. package/build/esm/utils/svg.js +4 -0
  372. package/package.json +140 -0
  373. package/server/data/config.d.ts +32 -0
  374. package/server/data/config.js +39 -0
  375. package/server/data/contentFilter.d.ts +27 -0
  376. package/server/data/contentFilter.js +61 -0
  377. package/server/data/createReadableContent.d.ts +17 -0
  378. package/server/data/createReadableContent.js +47 -0
  379. package/server/data/sanitizeMeta.d.ts +24 -0
  380. package/server/data/sanitizeMeta.js +18 -0
  381. package/server/data/transformPageContent.d.ts +21 -0
  382. package/server/data/transformPageContent.js +35 -0
  383. package/server/data/transformPost.d.ts +11 -0
  384. package/server/data/transformPost.js +34 -0
  385. package/server/index.d.ts +4 -0
  386. package/server/index.js +11 -0
  387. package/server/models/blocks.d.ts +84 -0
  388. package/server/models/blocks.js +2 -0
  389. package/server/models/common.d.ts +151 -0
  390. package/server/models/common.js +22 -0
  391. package/server/models/locale.d.ts +29 -0
  392. package/server/models/locale.js +14 -0
  393. package/server/models/paddings.d.ts +16 -0
  394. package/server/models/paddings.js +10 -0
  395. package/styles/fonts.css +195 -0
  396. package/styles/fonts.scss +223 -0
  397. package/styles/mixins.css +2 -0
  398. package/styles/mixins.scss +59 -0
  399. package/styles/root.css +21 -0
  400. package/styles/root.scss +25 -0
  401. package/styles/storybook/common.scss +29 -0
  402. package/styles/storybook/index.scss +21 -0
  403. package/styles/storybook/palette.scss +75 -0
  404. package/styles/storybook/typography.scss +139 -0
  405. package/styles/styles.css +196 -0
  406. package/styles/styles.scss +2 -0
  407. package/styles/variables.css +0 -0
  408. package/styles/variables.scss +7 -0
  409. package/styles/yfm.css +103 -0
  410. package/styles/yfm.scss +123 -0
package/package.json ADDED
@@ -0,0 +1,140 @@
1
+ {
2
+ "name": "@gravity-ui/blog-constructor",
3
+ "version": "1.0.0-alpha.1",
4
+ "description": "Gravity UI Blog Constructor",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/gravity-ui/blog-constructor"
9
+ },
10
+ "files": [
11
+ "build",
12
+ "styles",
13
+ "server"
14
+ ],
15
+ "sideEffects": [
16
+ "*.css",
17
+ "*.scss"
18
+ ],
19
+ "main": "build/cjs/index.js",
20
+ "module": "build/esm/index.js",
21
+ "typings": "build/esm/index.d.ts",
22
+ "scripts": {
23
+ "deps:install": "npm ci",
24
+ "deps:truncate": "npm prune --production",
25
+ "lint:fix": "run-s lint:js:fix lint:styles:fix lint:prettier:fix typecheck",
26
+ "lint:js": "eslint '**/*.{js,jsx,ts,tsx}' --max-warnings=0",
27
+ "lint:js:fix": "eslint '**/*.{js,jsx,ts,tsx}' --max-warnings=0 --quiet --fix",
28
+ "lint:styles": "stylelint '{styles,src}/**/*.scss'",
29
+ "lint:styles:fix": "stylelint **/*.scss -s scss --fix",
30
+ "lint:prettier": "prettier --check '**/*.{js,jsx,ts,tsx,css,scss,json,yaml,yml,md}'",
31
+ "lint:prettier:fix": "prettier --write '**/*.{js,jsx,ts,tsx,css,scss,json,yaml,yml,md}'",
32
+ "lint": "run-p lint:js lint:styles lint:prettier typecheck",
33
+ "typecheck": "tsc --noEmit",
34
+ "dev": "npm run storybook:start",
35
+ "start": "node dist",
36
+ "clean": "gulp clean",
37
+ "build": "npm run clean && gulp",
38
+ "storybook:start": "TS_NODE_PROJECT=.storybook/tsconfig.json start-storybook -p 7010",
39
+ "storybook:build": "TS_NODE_PROJECT=.storybook/tsconfig.json build-storybook -c .storybook -o storybook-static .storybook/public",
40
+ "prepublishOnly": "npm run lint && npm run build",
41
+ "prepare": "husky install",
42
+ "svgo": "svgo --config svgo.config.js",
43
+ "svgo:all": "svgo --config svgo.config.js -r -f assets"
44
+ },
45
+ "dependencies": {
46
+ "@gravity-ui/i18n": "^1.0.0",
47
+ "@gravity-ui/uikit": "^3.20.0",
48
+ "@types/fast-html-parser": "^1.0.2",
49
+ "@types/recompose": "^0.30.10",
50
+ "bem-cn-lite": "^4.0.0",
51
+ "fast-html-parser": "^1.0.1",
52
+ "gulp": "^4.0.2",
53
+ "gulp-dart-sass": "^1.0.2",
54
+ "gulp-rename": "^2.0.0",
55
+ "gulp-replace": "^1.1.3",
56
+ "gulp-typescript": "^6.0.0-alpha.1",
57
+ "html-loader": "^1.3.2",
58
+ "isomorphic-dompurify": "^0.20.0",
59
+ "lodash": "^4.17.21",
60
+ "markdown-loader": "^6.0.0",
61
+ "react-helmet": "^6.1.0",
62
+ "react-player": "^2.9.0",
63
+ "react-slick": "^0.28.1",
64
+ "react-spring": "^9.3.0",
65
+ "react-transition-group": "^4.4.2",
66
+ "react-waypoint": "^10.1.0",
67
+ "recompose": "^0.30.0",
68
+ "rimraf": "^3.0.2",
69
+ "sanitize-html": "^2.6.1",
70
+ "sass": "^1.54.4",
71
+ "snakecase-keys": "^5.1.0",
72
+ "typograf": "^6.14.0",
73
+ "ua-parser-js": "^0.7.28",
74
+ "url": "^0.11.0",
75
+ "url-join": "^5.0.0",
76
+ "webpack": "^4.46.0"
77
+ },
78
+ "peerDependencies": {
79
+ "@doc-tools/components": "^2.0.0",
80
+ "@doc-tools/transform": "^2.6.1",
81
+ "@gravity-ui/page-constructor": "^1.1.0",
82
+ "react": "^16.0.0 || ^17.0.0"
83
+ },
84
+ "devDependencies": {
85
+ "@babel/core": "^7.15.8",
86
+ "@doc-tools/components": "^2.1.0",
87
+ "@doc-tools/transform": "^2.9.0",
88
+ "@gravity-ui/eslint-config": "^1.0.2",
89
+ "@gravity-ui/page-constructor": "^1.4.1",
90
+ "@gravity-ui/prettier-config": "^1.0.1",
91
+ "@gravity-ui/stylelint-config": "^1.0.0",
92
+ "@gravity-ui/tsconfig": "^1.0.0",
93
+ "@storybook/addon-actions": "^6.3.12",
94
+ "@storybook/addon-essentials": "^6.5.10",
95
+ "@storybook/addon-knobs": "^6.3.1",
96
+ "@storybook/addon-viewport": "^6.3.12",
97
+ "@storybook/preset-scss": "^1.0.3",
98
+ "@storybook/react": "^6.5.10",
99
+ "@types/js-yaml": "^4.0.5",
100
+ "@types/lodash": "^4.14.176",
101
+ "@types/react": "^18.0.26",
102
+ "@types/react-helmet": "^6.1.5",
103
+ "@types/react-slick": "^0.23.7",
104
+ "@types/react-transition-group": "^4.4.4",
105
+ "@types/sanitize-html": "^2.6.0",
106
+ "@types/ua-parser-js": "^0.7.36",
107
+ "eslint": "^7.32.0",
108
+ "eslint-plugin-local": "./eslint-plugin-local",
109
+ "husky": "^7.0.4",
110
+ "js-yaml": "^3.14.1",
111
+ "lint-staged": "^11.2.6",
112
+ "move-file-cli": "^3.0.0",
113
+ "npm-run-all": "^4.1.5",
114
+ "postcss": "^8.4.14",
115
+ "prettier": "2.4.1",
116
+ "react": "^18.2.0",
117
+ "react-dom": "^18.2.0",
118
+ "sass-loader": "^10.3.1",
119
+ "stylelint": "^14.11.0",
120
+ "stylelint-scss": "^3.21.0",
121
+ "svg-sprite-loader": "^6.0.11",
122
+ "typescript": "^4.9.3"
123
+ },
124
+ "lint-staged": {
125
+ "*.{css,scss}": [
126
+ "stylelint --fix",
127
+ "prettier --write"
128
+ ],
129
+ "*.{js,jsx,ts,tsx}": [
130
+ "eslint --fix --quiet",
131
+ "prettier --write"
132
+ ],
133
+ "*.{json,yaml,yml,md}": [
134
+ "prettier --write"
135
+ ]
136
+ },
137
+ "publishConfig": {
138
+ "tag": "alpha"
139
+ }
140
+ }
@@ -0,0 +1,32 @@
1
+ import { BlockType as PCBlockType } from '@gravity-ui/page-constructor';
2
+ import { BlockType } from '../models/common';
3
+ type GetConfigForCreateReadableContent = () => {
4
+ [x in BlockType | PCBlockType]: {
5
+ fields: string[];
6
+ };
7
+ };
8
+ /**
9
+ * Func for create extended typography config for page-constructor
10
+ *
11
+ * @returns - {
12
+ * [blockTypes.YFM]: [
13
+ * {
14
+ * fields: ['text'],
15
+ * transformer: yfmTransformer,
16
+ * },
17
+ * ],
18
+ * }
19
+ */
20
+ export declare const getExtendTypographyConfig: () => {};
21
+ /**
22
+ * Func for create readable content func
23
+ *
24
+ * @returns - {
25
+ * [blockTypes.YFM]: {
26
+ * fields: ['text'],
27
+ * transformer: yfmTransformer,
28
+ * },
29
+ * }
30
+ */
31
+ export declare const getConfigForCreateReadableContent: GetConfigForCreateReadableContent;
32
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getConfigForCreateReadableContent = exports.getExtendTypographyConfig = void 0;
4
+ const server_1 = require("@gravity-ui/page-constructor/server");
5
+ const common_1 = require("../models/common");
6
+ const BLOCKS_FOR_TYPOGRAPHY_TRANSFORM = [common_1.BlockType.YFM, common_1.BlockType.ColoredText, common_1.BlockType.Media];
7
+ /**
8
+ * Func for create extended typography config for page-constructor
9
+ *
10
+ * @returns - {
11
+ * [blockTypes.YFM]: [
12
+ * {
13
+ * fields: ['text'],
14
+ * transformer: yfmTransformer,
15
+ * },
16
+ * ],
17
+ * }
18
+ */
19
+ const getExtendTypographyConfig = () => BLOCKS_FOR_TYPOGRAPHY_TRANSFORM.reduce((result, current) => (Object.assign({ [current]: [
20
+ {
21
+ fields: ['text'],
22
+ transformer: server_1.yfmTransformer,
23
+ },
24
+ ] }, result)), {});
25
+ exports.getExtendTypographyConfig = getExtendTypographyConfig;
26
+ /**
27
+ * Func for create readable content func
28
+ *
29
+ * @returns - {
30
+ * [blockTypes.YFM]: {
31
+ * fields: ['text'],
32
+ * transformer: yfmTransformer,
33
+ * },
34
+ * }
35
+ */
36
+ const getConfigForCreateReadableContent = () => BLOCKS_FOR_TYPOGRAPHY_TRANSFORM.reduce((result, current) => (Object.assign({ [current]: {
37
+ fields: ['text'],
38
+ } }, result)), {});
39
+ exports.getConfigForCreateReadableContent = getConfigForCreateReadableContent;
@@ -0,0 +1,27 @@
1
+ import { PageContent } from '@gravity-ui/page-constructor';
2
+ import { Lang } from '../models/locale';
3
+ type FilteringOptions = {
4
+ lang: Lang;
5
+ region?: string;
6
+ };
7
+ type FilterItemsProps = {
8
+ items: Record<string, unknown>[] | unknown;
9
+ itemsKey: string;
10
+ options: FilteringOptions;
11
+ };
12
+ /**
13
+ * Filters items by expression and removes empty items.
14
+ * @param {Array} items
15
+ * @param {string} itemsKey
16
+ * @param {Object.<string, Lang>} vars
17
+ * @return {Array}
18
+ */
19
+ export declare const filterItems: ({ items, itemsKey, options }: FilterItemsProps) => any;
20
+ /**
21
+ * Filters content.
22
+ * @param {PageContent} content
23
+ * @param {Object.<string, Lang>} options
24
+ * @return {PageContent}
25
+ */
26
+ export declare const filterContent: (content: PageContent, options: FilteringOptions) => any;
27
+ export {};
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.filterContent = exports.filterItems = void 0;
7
+ const evaluation_1 = __importDefault(require("@doc-tools/transform/lib/liquid/evaluation"));
8
+ /**
9
+ * Filters items by expression and removes empty items.
10
+ * @param {Array} items
11
+ * @param {string} itemsKey
12
+ * @param {Object.<string, Lang>} vars
13
+ * @return {Array}
14
+ */
15
+ const filterItems = ({ items, itemsKey, options }) => {
16
+ if (!Array.isArray(items)) {
17
+ throw new Error(`Error while filtering: items has invalid key '${itemsKey}' equals ${JSON.stringify(items)}`);
18
+ }
19
+ return items.reduce((result, item) => {
20
+ const { when } = item;
21
+ const whenResult = when === true ||
22
+ when === undefined ||
23
+ (typeof when === 'string' && (0, evaluation_1.default)(when, options));
24
+ delete item.when;
25
+ if (whenResult) {
26
+ const property = item[itemsKey];
27
+ if (property === undefined) {
28
+ result.push(item);
29
+ }
30
+ else {
31
+ const filteredProperty = (0, exports.filterItems)({ items: property, itemsKey, options });
32
+ if (filteredProperty.length !== 0) {
33
+ result.push(Object.assign(Object.assign({}, item), { [itemsKey]: filteredProperty }));
34
+ }
35
+ }
36
+ }
37
+ return result;
38
+ }, []);
39
+ };
40
+ exports.filterItems = filterItems;
41
+ /**
42
+ * Filters content.
43
+ * @param {PageContent} content
44
+ * @param {Object.<string, Lang>} options
45
+ * @return {PageContent}
46
+ */
47
+ const filterContent = (content, options) => {
48
+ if (Array.isArray(content)) {
49
+ return (0, exports.filterItems)({ items: content, itemsKey: '', options }).map((item) => (0, exports.filterContent)(item, options));
50
+ }
51
+ else if (content && typeof content === 'object') {
52
+ return Object.entries(content).reduce((acc, [key, value]) => {
53
+ acc[key] = (0, exports.filterContent)(value, options);
54
+ return acc;
55
+ }, {});
56
+ }
57
+ else {
58
+ return content;
59
+ }
60
+ };
61
+ exports.filterContent = filterContent;
@@ -0,0 +1,17 @@
1
+ import { Block } from '../models/blocks';
2
+ type CreateReadableContentProps = {
3
+ blocks: Block[];
4
+ content?: string;
5
+ authors?: unknown[];
6
+ };
7
+ /**
8
+ * Function for create readable content
9
+ *
10
+ * @param blocks - content blocks array
11
+ * @param content - content data
12
+ * @param authors - authors array
13
+ *
14
+ * @returns readable content
15
+ */
16
+ export declare const createReadableContent: ({ content, blocks, authors, }: CreateReadableContentProps) => string;
17
+ export {};
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createReadableContent = void 0;
4
+ const config_1 = require("./config");
5
+ const common_1 = require("../models/common");
6
+ /**
7
+ * Function for create readable content
8
+ *
9
+ * @param blocks - content blocks array
10
+ * @param content - content data
11
+ * @param authors - authors array
12
+ *
13
+ * @returns readable content
14
+ */
15
+ const createReadableContent = ({ content = '', blocks, authors = [], }) => {
16
+ try {
17
+ const config = (0, config_1.getConfigForCreateReadableContent)();
18
+ const readableContent = blocks.reduce((resultContent, block) => {
19
+ let innerContent = resultContent;
20
+ if (config[block.type]) {
21
+ innerContent += config[block.type].fields
22
+ .map((field) => block[field])
23
+ .filter(Boolean)
24
+ .join('\n');
25
+ innerContent += '\n';
26
+ }
27
+ if (block.type === common_1.BlockType.Author) {
28
+ authors.push(block.uid);
29
+ }
30
+ if (block.children && block.children.length) {
31
+ innerContent = (0, exports.createReadableContent)({
32
+ content: innerContent,
33
+ blocks: block.children,
34
+ authors,
35
+ });
36
+ }
37
+ return innerContent;
38
+ }, content);
39
+ return readableContent;
40
+ }
41
+ catch (err) {
42
+ // eslint-disable-next-line no-console
43
+ console.error('Page content transformation error', err);
44
+ return '';
45
+ }
46
+ };
47
+ exports.createReadableContent = createReadableContent;
@@ -0,0 +1,24 @@
1
+ import { PostMetaProps } from '../models/common';
2
+ /**
3
+ * Function for sanitized meta-data fields
4
+ */
5
+ export declare const sanitizeMeta: (metaData: PostMetaProps) => {
6
+ title: string;
7
+ description: string;
8
+ date: string;
9
+ image: string;
10
+ canonicalUrl: string;
11
+ organization: import("../models/common").MetaOrganizationType;
12
+ content?: string | undefined;
13
+ sharing: {
14
+ shareTitle: string;
15
+ shareDescription: string;
16
+ shareImage: string;
17
+ shareGenImage: string;
18
+ shareGenTitle: string;
19
+ };
20
+ keywords?: string[] | undefined;
21
+ noIndex?: boolean | undefined;
22
+ authors?: import("../models/common").Author[] | undefined;
23
+ tags?: import("../models/common").Tag[] | undefined;
24
+ };
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sanitizeMeta = void 0;
4
+ const server_1 = require("@gravity-ui/page-constructor/server");
5
+ /**
6
+ * Function for sanitized meta-data fields
7
+ */
8
+ const sanitizeMeta = (metaData) => {
9
+ const { title, description, date, image, canonicalUrl, organization } = metaData;
10
+ // this func for resolve type conflicts in reduce method
11
+ const stringObjectKeys = (obj) => Object.keys(obj);
12
+ const sanitizedOrganization = stringObjectKeys(organization).reduce((acc, current) => {
13
+ acc[current] = (0, server_1.sanitizeHtml)(organization[current]);
14
+ return acc;
15
+ }, {});
16
+ return Object.assign(Object.assign({}, metaData), { title: (0, server_1.sanitizeHtml)(title), description: (0, server_1.sanitizeHtml)(description), date: (0, server_1.sanitizeHtml)(date), image: (0, server_1.sanitizeHtml)(image), canonicalUrl: (0, server_1.sanitizeHtml)(canonicalUrl), organization: sanitizedOrganization });
17
+ };
18
+ exports.sanitizeMeta = sanitizeMeta;
@@ -0,0 +1,21 @@
1
+ import { Lang } from '../models/locale';
2
+ type TypographyConfigType = {
3
+ [x: string]: Record<string, unknown>;
4
+ };
5
+ type TransformPageContentPropsType = {
6
+ content: string;
7
+ lang: Lang;
8
+ region?: string;
9
+ typographyConfig?: TypographyConfigType;
10
+ };
11
+ /**
12
+ * Func for transform blog page content
13
+ *
14
+ * @param content - content yaml in string
15
+ * @param lang - runtime app lang
16
+ * @param region - runtime app region
17
+ * @param typographyConfig - page-constructor extend typography config
18
+ * @returns transformed content
19
+ */
20
+ export declare const transformPageContent: ({ content, lang, region, typographyConfig, }: TransformPageContentPropsType) => any;
21
+ export {};
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.transformPageContent = void 0;
7
+ const js_yaml_1 = __importDefault(require("js-yaml"));
8
+ const server_1 = require("@gravity-ui/page-constructor/server");
9
+ const config_1 = require("./config");
10
+ const contentFilter_1 = require("./contentFilter");
11
+ const transformBlocks = ({ blocks, lang, typographyConfig }) => (0, server_1.transformBlocks)(blocks, lang, Object.assign(Object.assign({}, typographyConfig), (0, config_1.getExtendTypographyConfig)()));
12
+ /**
13
+ * Func for transform blog page content
14
+ *
15
+ * @param content - content yaml in string
16
+ * @param lang - runtime app lang
17
+ * @param region - runtime app region
18
+ * @param typographyConfig - page-constructor extend typography config
19
+ * @returns transformed content
20
+ */
21
+ const transformPageContent = ({ content, lang, region, typographyConfig = {}, }) => {
22
+ try {
23
+ const transformedContent = (0, contentFilter_1.filterContent)(js_yaml_1.default.load(content), { lang, region });
24
+ if (transformedContent.blocks) {
25
+ transformBlocks({ blocks: transformedContent.blocks, lang, typographyConfig });
26
+ }
27
+ return transformedContent;
28
+ }
29
+ catch (err) {
30
+ // eslint-disable-next-line no-console
31
+ console.error('Problem when transforming page content', err);
32
+ return {};
33
+ }
34
+ };
35
+ exports.transformPageContent = transformPageContent;
@@ -0,0 +1,11 @@
1
+ import { Lang } from '../models/locale';
2
+ import { PostData } from '../models/common';
3
+ /**
4
+ * Func for transform post data
5
+ *
6
+ * @param postData - post data
7
+ * @param lang - runtime language
8
+ *
9
+ * @returns -prepared post
10
+ */
11
+ export declare const transformPost: (postData: PostData, lang: Lang) => PostData;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.transformPost = void 0;
15
+ const server_1 = require("@gravity-ui/page-constructor/server");
16
+ /**
17
+ * Func for transform post data
18
+ *
19
+ * @param postData - post data
20
+ * @param lang - runtime language
21
+ *
22
+ * @returns -prepared post
23
+ */
24
+ const transformPost = (postData, lang) => {
25
+ if (!postData) {
26
+ // eslint-disable-next-line no-console
27
+ console.error('Post not found');
28
+ return {};
29
+ }
30
+ const { tags, title, metaTitle, description } = postData, post = __rest(postData, ["tags", "title", "metaTitle", "description"]);
31
+ return Object.assign(Object.assign({}, post), { title,
32
+ tags, textTitle: (0, server_1.typografToText)(title, lang), htmlTitle: (0, server_1.typografToHTML)(title, lang), metaTitle: metaTitle || title, description: (0, server_1.yfmTransformer)(lang, description) });
33
+ };
34
+ exports.transformPost = transformPost;
@@ -0,0 +1,4 @@
1
+ export { transformPageContent } from "./data/transformPageContent";
2
+ export { createReadableContent } from "./data/createReadableContent";
3
+ export { sanitizeMeta } from "./data/sanitizeMeta";
4
+ export { transformPost } from "./data/transformPost";
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.transformPost = exports.sanitizeMeta = exports.createReadableContent = exports.transformPageContent = void 0;
4
+ var transformPageContent_1 = require("./data/transformPageContent");
5
+ Object.defineProperty(exports, "transformPageContent", { enumerable: true, get: function () { return transformPageContent_1.transformPageContent; } });
6
+ var createReadableContent_1 = require("./data/createReadableContent");
7
+ Object.defineProperty(exports, "createReadableContent", { enumerable: true, get: function () { return createReadableContent_1.createReadableContent; } });
8
+ var sanitizeMeta_1 = require("./data/sanitizeMeta");
9
+ Object.defineProperty(exports, "sanitizeMeta", { enumerable: true, get: function () { return sanitizeMeta_1.sanitizeMeta; } });
10
+ var transformPost_1 = require("./data/transformPost");
11
+ Object.defineProperty(exports, "transformPost", { enumerable: true, get: function () { return transformPost_1.transformPost; } });
@@ -0,0 +1,84 @@
1
+ import { ReactElement } from 'react';
2
+ import { ContentBlockProps, HeaderBlockProps, MediaProps as PCMediaProps, TextTheme } from '@gravity-ui/page-constructor';
3
+ import { PaddingsYFMProps } from './paddings';
4
+ import { ClassNameProps, PostData, BlockType } from './common';
5
+ export type AuthorProps = ClassNameProps & {
6
+ authorId: number;
7
+ image: string;
8
+ } & PaddingsYFMProps;
9
+ export type BannerProps = ContentBlockProps & {
10
+ background?: string;
11
+ color?: string;
12
+ image?: string;
13
+ imageSize?: 's' | 'm';
14
+ } & PaddingsYFMProps;
15
+ export type ColoredTextProps = ContentBlockProps & {
16
+ background?: {
17
+ color?: string;
18
+ image?: string;
19
+ altText?: string;
20
+ };
21
+ } & PaddingsYFMProps;
22
+ export type CTAProps = {
23
+ items: Array<ContentBlockProps>;
24
+ columnCount?: number;
25
+ } & PaddingsYFMProps;
26
+ export type HeaderProps = HeaderBlockProps & PaddingsYFMProps;
27
+ export type LayoutProps = {
28
+ fullWidth?: boolean;
29
+ mobileOrder?: string;
30
+ children: ReactElement[];
31
+ } & PaddingsYFMProps;
32
+ export type MediaProps = ClassNameProps & PaddingsYFMProps & Partial<Pick<PCMediaProps, 'youtube' | 'previewImg' | 'image' | 'video' | 'dataLens'>> & {
33
+ text?: string;
34
+ };
35
+ export type MetaProps = {
36
+ locale: string;
37
+ theme?: TextTheme;
38
+ } & PaddingsYFMProps;
39
+ export type SuggestProps = ClassNameProps & {
40
+ posts: PostData[];
41
+ } & PaddingsYFMProps;
42
+ export type YFMProps = {
43
+ text: string;
44
+ } & PaddingsYFMProps;
45
+ export type FeedProps = {
46
+ image: string;
47
+ };
48
+ export type AuthorBlockModel = {
49
+ type: BlockType.Author;
50
+ } & AuthorProps;
51
+ export type BannerBlockModel = {
52
+ type: BlockType.Banner;
53
+ } & BannerProps;
54
+ export type ColoredTextBlockModel = {
55
+ type: BlockType.ColoredText;
56
+ } & ColoredTextProps;
57
+ export type CTABlockModel = {
58
+ type: BlockType.CTA;
59
+ } & CTAProps;
60
+ export type HeaderBlockModel = {
61
+ type: BlockType.Header;
62
+ } & HeaderProps;
63
+ export type LayoutBlockModel = {
64
+ type: BlockType.Layout;
65
+ } & LayoutProps;
66
+ export type MediaBlockModel = {
67
+ type: BlockType.Media;
68
+ } & MediaProps;
69
+ export type MetaBlockModel = {
70
+ type: BlockType.Meta;
71
+ } & MetaProps;
72
+ export type SuggestBlockModel = {
73
+ type: BlockType.Suggest;
74
+ } & SuggestProps;
75
+ export type YFMBlockModel = {
76
+ type: BlockType.YFM;
77
+ } & YFMProps;
78
+ export type FeedBlockModel = {
79
+ type: BlockType.Feed;
80
+ } & FeedProps;
81
+ export type BlockModel = AuthorBlockModel | BannerBlockModel | ColoredTextBlockModel | CTABlockModel | HeaderBlockModel | LayoutBlockModel | MediaBlockModel | MetaBlockModel | SuggestBlockModel | YFMBlockModel | FeedBlockModel;
82
+ export type Block = BlockModel & {
83
+ [x: string]: any;
84
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });