@meduza/ui-kit-2 0.4.15 → 0.5.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 (166) hide show
  1. package/package.json +12 -7
  2. package/src/Cover/index.tsx +2 -10
  3. package/src/DocumentItemsCount/DocumentItemsCount.module.css +12 -1
  4. package/src/DocumentItemsCount/DocumentItemsCount.test.tsx +9 -2
  5. package/src/DocumentItemsCount/index.tsx +3 -3
  6. package/src/Footnote/Footnote.module.css +6 -46
  7. package/src/Footnote/Footnote.stories.tsx +9 -26
  8. package/src/Image/Image.module.css +0 -11
  9. package/src/Meta/Meta.module.css +0 -5
  10. package/src/Meta/Meta.stories.module.css +0 -16
  11. package/src/Meta/Meta.stories.tsx +4 -51
  12. package/src/Meta/MetaContainer.tsx +0 -8
  13. package/src/Popover/Popover.module.css +29 -47
  14. package/src/Popover/Popover.stories.tsx +1 -25
  15. package/src/Popover/index.tsx +21 -1
  16. package/src/RawHtmlBlock/index.tsx +5 -0
  17. package/src/RelatedRichBlock/RelatedRichBlock.module.css +1 -11
  18. package/src/RenderBlocks/index.tsx +1 -5
  19. package/src/RichTitle/RichTitle.module.css +6 -16
  20. package/src/ShopRelatedBlock/ShopRelatedBlock.module.css +210 -0
  21. package/src/ShopRelatedBlock/ShopRelatedBlock.stories.module.css +12 -0
  22. package/src/ShopRelatedBlock/ShopRelatedBlock.stories.tsx +52 -0
  23. package/src/ShopRelatedBlock/ShopRelatedBlock.test.tsx +20 -0
  24. package/src/ShopRelatedBlock/ShopRelatedBlock.types.ts +4 -0
  25. package/src/ShopRelatedBlock/index.tsx +120 -0
  26. package/src/ShopRelatedBlock/mock.json +153 -0
  27. package/src/SimpleBlock/SimpleBlock.types.ts +1 -0
  28. package/src/SimpleBlock/index.tsx +3 -1
  29. package/src/Tag/Tag.module.css +3 -8
  30. package/src/Tag/Tag.stories.tsx +3 -16
  31. package/src/Tag/Tag.types.ts +1 -7
  32. package/src/index.tsx +1 -1
  33. package/dist/AnnouncementInText/AnnouncementInText.types.d.ts +0 -4
  34. package/dist/AnnouncementInText/index.d.ts +0 -3
  35. package/dist/BookmarkButton/BookmarkButton.types.d.ts +0 -6
  36. package/dist/BookmarkButton/index.d.ts +0 -3
  37. package/dist/Button/Button.d.ts +0 -3
  38. package/dist/Button/Button.types.d.ts +0 -16
  39. package/dist/Button/ButtonLoader.d.ts +0 -2
  40. package/dist/Button/index.d.ts +0 -2
  41. package/dist/CardTitle/CardTitle.types.d.ts +0 -10
  42. package/dist/CardTitle/index.d.ts +0 -3
  43. package/dist/ChapterBlock/ChapterBlock.types.d.ts +0 -7
  44. package/dist/ChapterBlock/index.d.ts +0 -3
  45. package/dist/Cover/Cover.types.d.ts +0 -24
  46. package/dist/Cover/index.d.ts +0 -3
  47. package/dist/DocumentItemsCount/DocumentItemsCount.types.d.ts +0 -7
  48. package/dist/DocumentItemsCount/index.d.ts +0 -3
  49. package/dist/DonatesTeaser/DonatesTeaser.types.d.ts +0 -4
  50. package/dist/DonatesTeaser/index.d.ts +0 -3
  51. package/dist/DotsOnImage/DotsOnImage.types.d.ts +0 -46
  52. package/dist/DotsOnImage/index.d.ts +0 -3
  53. package/dist/Dropdown/Dropdown.types.d.ts +0 -6
  54. package/dist/Dropdown/index.d.ts +0 -4
  55. package/dist/EmbedBlock/EmbedBlock.d.ts +0 -3
  56. package/dist/EmbedBlock/EmbedBlock.types.d.ts +0 -12
  57. package/dist/EmbedBlock/EmbedGif.d.ts +0 -3
  58. package/dist/EmbedBlock/IframeBlock.d.ts +0 -3
  59. package/dist/EmbedBlock/index.d.ts +0 -3
  60. package/dist/Footnote/Footnote.types.d.ts +0 -5
  61. package/dist/Footnote/index.d.ts +0 -3
  62. package/dist/GroupedBlock/GroupedBlock.types.d.ts +0 -4
  63. package/dist/GroupedBlock/index.d.ts +0 -3
  64. package/dist/HalfBlock/HalfBlock.types.d.ts +0 -4
  65. package/dist/HalfBlock/index.d.ts +0 -3
  66. package/dist/Image/Image.types.d.ts +0 -35
  67. package/dist/Image/RenderPicture.d.ts +0 -4
  68. package/dist/Image/index.d.ts +0 -3
  69. package/dist/ImportantLead/ImportantLead.types.d.ts +0 -4
  70. package/dist/ImportantLead/index.d.ts +0 -3
  71. package/dist/Lazy/Lazy.types.d.ts +0 -5
  72. package/dist/Lazy/index.d.ts +0 -3
  73. package/dist/ListBlock/ListBlock.types.d.ts +0 -10
  74. package/dist/ListBlock/index.d.ts +0 -3
  75. package/dist/MaterialNote/MaterialNote.types.d.ts +0 -13
  76. package/dist/MaterialNote/index.d.ts +0 -3
  77. package/dist/MaterialTitle/MaterialTitle.types.d.ts +0 -4
  78. package/dist/MaterialTitle/index.d.ts +0 -5
  79. package/dist/MediaCaption/MediaCaption.types.d.ts +0 -5
  80. package/dist/MediaCaption/index.d.ts +0 -3
  81. package/dist/Meta/Meta.mock.d.ts +0 -12
  82. package/dist/Meta/Meta.types.d.ts +0 -19
  83. package/dist/Meta/MetaContainer.d.ts +0 -3
  84. package/dist/Meta/index.d.ts +0 -3
  85. package/dist/MetaItem/MetaItem.types.d.ts +0 -7
  86. package/dist/MetaItem/index.d.ts +0 -3
  87. package/dist/MetaItemLive/MetaItemLive.types.d.ts +0 -3
  88. package/dist/MetaItemLive/index.d.ts +0 -3
  89. package/dist/Popover/Popover.types.d.ts +0 -5
  90. package/dist/Popover/index.d.ts +0 -3
  91. package/dist/QuoteBlock/QuoteBlock.types.d.ts +0 -6
  92. package/dist/QuoteBlock/index.d.ts +0 -3
  93. package/dist/RawHtmlBlock/RawHtmlBlock.types.d.ts +0 -17
  94. package/dist/RawHtmlBlock/index.d.ts +0 -3
  95. package/dist/RelatedBlock/RelatedBlock.types.d.ts +0 -17
  96. package/dist/RelatedBlock/index.d.ts +0 -3
  97. package/dist/RelatedBook/RelatedBook.mock.d.ts +0 -65
  98. package/dist/RelatedBook/RelatedBook.types.d.ts +0 -4
  99. package/dist/RelatedBook/index.d.ts +0 -3
  100. package/dist/RelatedRichBlock/RelatedRichBlock.types.d.ts +0 -4
  101. package/dist/RelatedRichBlock/index.d.ts +0 -3
  102. package/dist/RenderBlocks/RenderBlocks.types.d.ts +0 -11
  103. package/dist/RenderBlocks/index.d.ts +0 -3
  104. package/dist/RichTitle/RichTitle.types.d.ts +0 -13
  105. package/dist/RichTitle/index.d.ts +0 -3
  106. package/dist/SensitiveBlock/SensitiveBlock.types.d.ts +0 -15
  107. package/dist/SensitiveBlock/index.d.ts +0 -3
  108. package/dist/SimpleBlock/SimpleBlock.types.d.ts +0 -4
  109. package/dist/SimpleBlock/index.d.ts +0 -3
  110. package/dist/SimpleTitle/SimpleTitle.types.d.ts +0 -9
  111. package/dist/SimpleTitle/index.d.ts +0 -3
  112. package/dist/SourceBlock/SourceBlock.types.d.ts +0 -15
  113. package/dist/SourceBlock/index.d.ts +0 -3
  114. package/dist/Spoiler/Spoiler.types.d.ts +0 -4
  115. package/dist/Spoiler/index.d.ts +0 -3
  116. package/dist/SvgSymbol/SvgSymbol.types.d.ts +0 -8
  117. package/dist/SvgSymbol/icons.d.ts +0 -167
  118. package/dist/SvgSymbol/index.d.ts +0 -3
  119. package/dist/Switcher/Switcher.types.d.ts +0 -12
  120. package/dist/Switcher/index.d.ts +0 -3
  121. package/dist/Table/Table.types.d.ts +0 -25
  122. package/dist/Table/index.d.ts +0 -3
  123. package/dist/Tag/Tag.types.d.ts +0 -12
  124. package/dist/Tag/index.d.ts +0 -3
  125. package/dist/Timestamp/Timestamp.types.d.ts +0 -5
  126. package/dist/Timestamp/index.d.ts +0 -4
  127. package/dist/Toolbar/Toolbar.d.ts +0 -3
  128. package/dist/Toolbar/Toolbar.types.d.ts +0 -8
  129. package/dist/Toolbar/ToolbarItem.d.ts +0 -3
  130. package/dist/Toolbar/index.d.ts +0 -2
  131. package/dist/ToolbarButton/ToolbarButton.types.d.ts +0 -10
  132. package/dist/ToolbarButton/index.d.ts +0 -3
  133. package/dist/Tooltip/Tooltip.d.ts +0 -3
  134. package/dist/Tooltip/Tooltip.types.d.ts +0 -8
  135. package/dist/Tooltip/TooltipFooter.d.ts +0 -3
  136. package/dist/Tooltip/index.d.ts +0 -2
  137. package/dist/constants.d.ts +0 -41
  138. package/dist/index.d.ts +0 -45
  139. package/dist/types.d.ts +0 -20
  140. package/dist/ui-kit-2.cjs.development.js +0 -2639
  141. package/dist/ui-kit-2.cjs.development.js.map +0 -1
  142. package/dist/ui-kit-2.cjs.production.min.js +0 -2
  143. package/dist/ui-kit-2.cjs.production.min.js.map +0 -1
  144. package/dist/ui-kit-2.esm.js +0 -2585
  145. package/dist/ui-kit-2.esm.js.map +0 -1
  146. package/dist/ui-kit.css +0 -6068
  147. package/dist/utils/BlockContext.d.ts +0 -8
  148. package/dist/utils/DangerousHtml.d.ts +0 -8
  149. package/dist/utils/capitalizeFirstLetter.d.ts +0 -1
  150. package/dist/utils/converCase.d.ts +0 -2
  151. package/dist/utils/generateGradient.d.ts +0 -2
  152. package/dist/utils/getElementPositionRelativeToViewport.d.ts +0 -2
  153. package/dist/utils/makeClassName.d.ts +0 -3
  154. package/dist/utils/makeStyleContext.d.ts +0 -3
  155. package/dist/utils/pluralize.d.ts +0 -2
  156. package/dist/utils/postMessage.d.ts +0 -2
  157. package/dist/utils/viewportSize.d.ts +0 -6
  158. package/src/.DS_Store +0 -0
  159. package/src/Meta/Meta.mock.ts +0 -19
  160. package/src/RelatedBook/RelatedBook.mock.ts +0 -68
  161. package/src/RelatedBook/RelatedBook.module.css +0 -210
  162. package/src/RelatedBook/RelatedBook.stories.module.css +0 -5
  163. package/src/RelatedBook/RelatedBook.stories.tsx +0 -35
  164. package/src/RelatedBook/RelatedBook.test.tsx +0 -20
  165. package/src/RelatedBook/RelatedBook.types.ts +0 -4
  166. package/src/RelatedBook/index.tsx +0 -68
@@ -1,2639 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var reactIntersectionObserver = require('react-intersection-observer');
7
- var dayjs = require('dayjs');
8
- require('dayjs/locale/ru');
9
- var relativeTime = require('dayjs/plugin/relativeTime');
10
- var reactRouterDom = require('react-router-dom');
11
-
12
- const makeClassName = list => {
13
- return list.filter(([, active]) => active).map(([className]) => className).join(' ');
14
- };
15
-
16
- const ButtonLoader = () => /*#__PURE__*/React.createElement("svg", {
17
- width: "30px",
18
- height: "30px",
19
- viewBox: "0 0 30 30",
20
- xmlns: "http://www.w3.org/2000/svg"
21
- }, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
22
- d: "M15 0C6.716 0 0 6.716 0 15c0 8.284 6.716 15 15 15 8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15zm0 2c7.18 0 13 5.82 13 13s-5.82 13-13 13S2 22.18 2 15 7.82 2 15 2z",
23
- opacity: "0.3"
24
- })), /*#__PURE__*/React.createElement("g", {
25
- fillRule: "evenodd"
26
- }, /*#__PURE__*/React.createElement("animateTransform", {
27
- attributeName: "transform",
28
- type: "rotate",
29
- from: "0 15 15",
30
- to: "360 15 15",
31
- dur: "1000ms",
32
- repeatCount: "indefinite"
33
- }), /*#__PURE__*/React.createElement("path", {
34
- d: "M15 0c8.18 0 14.83 6.547 14.997 14.686L30 15h-2c0-7.077-5.655-12.833-12.693-12.996L15 2V0z"
35
- })));
36
-
37
- var styles$G = {"root":"Button-module_root__9OQ5b","gold":"Button-module_gold__q-XBP","isLoading":"Button-module_isLoading__Z53G4","gray":"Button-module_gray__fypDq","sand":"Button-module_sand__e5v-k","dark":"Button-module_dark__qv4NQ","light":"Button-module_light__TLYLT","black":"Button-module_black__GIsbk","red":"Button-module_red__kybni","default":"Button-module_default__utLb-","isInSpoiler":"Button-module_isInSpoiler__pGp-w","ghost":"Button-module_ghost__1s5-r","isInDropdown":"Button-module_isInDropdown__gN7TI","loader":"Button-module_loader__r0Mjs","isFancy":"Button-module_isFancy__gTRmu"};
38
-
39
- const Button = ({
40
- theme = 'gold',
41
- size = 'default',
42
- state = 'isDefault',
43
- styleContext = 'isInToolbar',
44
- appearance,
45
- disabled = false,
46
- onClick,
47
- children
48
- }) => {
49
- const handleClick = () => {
50
- if (disabled || !onClick) {
51
- return;
52
- }
53
- onClick();
54
- };
55
- return /*#__PURE__*/React.createElement("button", {
56
- "data-testid": "button",
57
- className: makeClassName([[styles$G.root, true], [styles$G[size], !!size], [styles$G[theme], !!theme], [styles$G[appearance], !!appearance], [styles$G[state], !!state && !!styles$G[state]], [styles$G[styleContext], !!styleContext]]),
58
- disabled: disabled,
59
- onClick: handleClick,
60
- type: "button"
61
- }, state === 'isLoading' ? /*#__PURE__*/React.createElement("span", {
62
- className: styles$G.loader
63
- }, /*#__PURE__*/React.createElement(ButtonLoader, null)) : children);
64
- };
65
-
66
- const icons = {
67
- meduzaLogo: {
68
- width: 544,
69
- height: 115,
70
- content: '<path d="M59.1008614,49.65632 L59.1008614,106.01472 L84.9480411,114.24 L84.9480411,49.65632 L101.574882,49.65632 L101.574882,106.01472 L127.270909,114.24 L144.048902,91.392 L127.422062,91.392 L127.422062,35.7952 L101.726035,26.80832 L84.9480411,46.60992 L84.9480411,35.7952 L59.2520145,26.80832 L42.4740206,46.60992 L42.4740206,35.7952 L16.7779939,26.80832 L0,49.65632 L16.6268408,49.65632 L16.6268408,106.01472 L42.4740206,114.24 L42.4740206,49.65632 L59.1008614,49.65632 L59.1008614,49.65632 Z M336.61795,91.392 L336.61795,35.0336 L310.770769,26.80832 L310.770769,105.25312 L336.466796,114.24 L353.24479,94.4384 L353.24479,105.25312 L378.940817,114.24 L395.71881,91.392 L379.091969,91.392 L379.091969,35.0336 L353.24479,26.80832 L353.24479,91.392 L336.61795,91.392 L336.61795,91.392 Z M527.373159,38.08 L502.130592,26.80832 L472.202278,41.1264 L502.130592,52.39808 L461.016949,72.352 L461.016949,104.94848 L486.86413,114.24 L502.130592,94.28608 L502.130592,105.25312 L527.977771,114.24 L544,91.23968 L527.373159,91.23968 L527.373159,38.08 L527.373159,38.08 Z M177.453737,114.24 L207.079744,102.35904 L177.453737,91.23968 L177.453737,75.24608 L216.300083,56.3584 L194.231731,26.80832 L151.606557,47.37152 L151.606557,103.12064 L177.453737,114.24 L177.453737,114.24 Z M455.424284,89.56416 L423.984441,79.968 L453.459295,42.19264 L416.577937,26.80832 L397.230341,51.48416 L428.821339,61.23264 L398.741873,98.85568 L436.076687,114.24 L455.424284,89.56416 L455.424284,89.56416 Z M486.86413,91.392 L486.86413,68.84864 L502.130592,61.53728 L502.130592,91.392 L486.86413,91.392 L486.86413,91.392 Z M177.453737,41.58336 L190.452904,59.55712 L177.453737,65.80224 L177.453737,41.58336 L177.453737,41.58336 Z M222.95082,103.12064 L248.797999,114.24 L291.27202,97.18016 L291.27202,29.7024 L222.95082,0 L222.95082,26.30784 L265.424841,43.21536 L265.424841,97.33248 L248.797999,91.23968 L248.797999,43.71584 L222.95082,51.94112 L222.95082,103.12064 L222.95082,103.12064 Z" />'
71
- },
72
- menu: {
73
- width: 24,
74
- height: 24,
75
- content: '<path d="M2 21h20M2 12h20M2 3h20" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" vector-effect="non-scaling-stroke" />'
76
- },
77
- fb: {
78
- width: 16,
79
- height: 18,
80
- content: '<path d="M15.117 1H.883A.883.883 0 0 0 0 1.883v14.234A.883.883 0 0 0 .883 17h7.663v-6.196H6.461V8.389h2.085V6.61a2.91 2.91 0 0 1 3.106-3.192c.622-.003 1.244.03 1.863.095v2.16h-1.279c-1.002 0-1.196.476-1.196 1.176v1.541h2.39l-.31 2.415h-2.08V17h4.077a.883.883 0 0 0 .883-.883V1.883A.883.883 0 0 0 15.117 1" />'
81
- },
82
- tw: {
83
- width: 20,
84
- height: 18,
85
- content: '<path d="M20 3.1c-.7.3-1.5.6-2.4.7.8-.5 1.5-1.4 1.8-2.4-.8.5-1.7.8-2.6 1-.7-.8-1.8-1.4-3-1.4-2.3 0-4.1 1.9-4.1 4.3 0 .3 0 .7.1 1-3.3-.1-6.4-1.8-8.4-4.4-.3.6-.5 1.4-.5 2.2 0 1.5.7 2.8 1.8 3.6-.7 0-1.3-.2-1.9-.5v.1c0 2.1 1.4 3.8 3.3 4.2-.3.1-.7.2-1.1.2-.3 0-.5 0-.8-.1.5 1.7 2 2.9 3.8 3-1.3 1-3.1 1.6-5 1.6-.3 0-.7 0-1-.1C1.8 17.3 4 18 6.3 18 13.8 18 18 11.5 18 5.8v-.6c.8-.5 1.5-1.2 2-2.1" fill-rule="nonzero"/>'
86
- },
87
- vk: {
88
- width: 20,
89
- height: 18,
90
- content: '<path d="M16.517 9.851s2.587-3.768 2.886-5.058c.1-.396-.1-.694-.498-.694h-2.288c-.498 0-.697.199-.896.595 0 0-1.194 2.678-2.686 4.364-.498.496-.697.694-.995.694-.2 0-.299-.198-.299-.694V4.793c0-.595-.1-.793-.597-.793H7.463c-.2 0-.398.198-.398.397 0 .595.796.694.796 2.28v3.174c0 .595 0 .893-.299.893-.796 0-2.686-2.777-3.681-5.851-.2-.595-.398-.794-.995-.794H.597C.299 4.1 0 4.298 0 4.694c0 .595.697 3.471 3.483 7.34C5.373 14.611 7.86 16 10.05 16c1.393 0 1.691-.198 1.691-.793v-1.984c0-.496.2-.694.498-.694s.895.1 2.189 1.388C15.92 15.405 16.02 16 16.915 16h2.587c.299 0 .498-.1.498-.595 0-.595-.796-1.587-1.89-2.876-.498-.595-1.195-1.29-1.493-1.686-.398-.397-.299-.595-.1-.992" fill-rule="nonzero"/>'
91
- },
92
- ok: {
93
- width: 9,
94
- height: 18,
95
- content: '<path d="M4.5 2c-2.2 0-4 1.8-4 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4m0 5.7c-.9 0-1.6-.8-1.6-1.7 0-.9.7-1.6 1.6-1.6.9 0 1.7.7 1.7 1.7 0 .8-.8 1.6-1.7 1.6" fill-rule="nonzero"/> <path d="M6.127 12.982a9.194 9.194 0 0 0 2.307-.904c.602-.301.703-1.004.402-1.507-.301-.502-1.104-.703-1.605-.401-1.605 1.004-3.812 1.004-5.417 0-.502-.302-1.304-.201-1.605.3-.401.604-.2 1.206.401 1.608a9.194 9.194 0 0 0 2.307.904L.61 15.092c-.502.401-.502 1.104 0 1.607a1.357 1.357 0 0 0 1.705 0l2.207-2.11L6.73 16.7a1.357 1.357 0 0 0 1.705 0c.502-.402.502-1.105 0-1.608l-2.307-2.109" fill-rule="nonzero"/>'
96
- },
97
- tg: {
98
- width: 18,
99
- height: 18,
100
- content: '<path d="M9 18c-5 0-9-4-9-9s4-9 9-9 9 4 9 9-4 9-9 9zm-1.5-7.4c1.1 1 2 3.3 2 3.3.4.2.7.1.8-.4l2.1-7.4c.1-.6-.2-.8-.6-.7L4 8.3c-.6.2-.6.5-.1.7 0 .1 2.4.6 3.6 1.6z" fill-rule="nonzero"/>'
101
- },
102
- meduzaSymbol: {
103
- width: 24,
104
- height: 18,
105
- content: '<path d="M10.026233,17.0968697 L13.9737671,18.3530831 L13.9737671,10.9855851 L13.9737671,8.48948164 L16.5131165,8.48948164 L16.5131165,17.0968697 L20.4375656,18.3530831 L23,14.8636014 L20.4606507,14.8636014 L20.4606507,6.37252945 L16.5362015,5 L13.9737671,8.02421743 L13.9737671,6.37252945 L10.049318,5 L7.48688354,8.02421743 L7.48688354,6.37252945 L3.56243443,5 L1,8.48948164 L3.53934943,8.48948164 L3.53934943,17.0968697 L7.48688354,18.3530831 L7.48688354,8.48948164 L10.026233,8.48948164 L10.026233,17.0968697 Z" />'
106
- },
107
- backward: {
108
- width: 25,
109
- height: 27,
110
- content: '<path d="M13 0v2.01c6.672.263 12 5.754 12 12.49C25 21.404 19.404 27 12.5 27S0 21.404 0 14.5c0-3.493 1.441-6.758 3.936-9.105a.75.75 0 111.028 1.092A10.965 10.965 0 001.5 14.5c0 6.075 4.925 11 11 11s11-4.925 11-11c0-5.907-4.656-10.727-10.499-10.989L13 6 8 3l5-3zm3.295 11.33v1.25h-3.16v1.63c.32-.32.86-.56 1.47-.56 1.13 0 2.14.81 2.14 2.16 0 1.42-1.06 2.31-2.67 2.31-1.16 0-2-.38-2.57-1l.79-.99c.45.47 1.07.73 1.77.73.79 0 1.24-.45 1.24-.99 0-.59-.44-.99-1.2-.99-.55 0-1 .16-1.4.54l-.99-.26v-3.83h4.58zm-5.94 0V18h-1.42v-4.84l-1.11 1.13-.81-.85 2.1-2.11h1.24z" fill-rule="nonzero"/>'
111
- },
112
- forward: {
113
- width: 25,
114
- height: 27,
115
- content: '<path d="M12 0l5 3-5 3V3.511C6.157 3.773 1.5 8.592 1.5 14.5c0 6.075 4.925 11 11 11s11-4.925 11-11c0-3.075-1.267-5.946-3.464-8.013a.75.75 0 011.028-1.092A12.465 12.465 0 0125 14.5C25 21.404 19.404 27 12.5 27S0 21.404 0 14.5C0 7.764 5.328 2.272 12 2.01V0zm4.295 11.33v1.25h-3.16v1.63c.32-.32.86-.56 1.47-.56 1.13 0 2.14.81 2.14 2.16 0 1.42-1.06 2.31-2.67 2.31-1.16 0-2-.38-2.57-1l.79-.99c.45.47 1.07.73 1.77.73.79 0 1.24-.45 1.24-.99 0-.59-.44-.99-1.2-.99-.55 0-1 .16-1.4.54l-.99-.26v-3.83h4.58zm-5.94 0V18h-1.42v-4.84l-1.11 1.13-.81-.85 2.1-2.11h1.24z" fill-rule="nonzero"/>'
116
- },
117
- download: {
118
- width: 25,
119
- height: 27,
120
- content: '<path d="M12.5 2C19.404 2 25 7.596 25 14.5S19.404 27 12.5 27 0 21.404 0 14.5 5.596 2 12.5 2zm0 1.5c-6.075 0-11 4.925-11 11s4.925 11 11 11 11-4.925 11-11-4.925-11-11-11zm6 15.75a.75.75 0 01.102 1.493l-.102.007h-12a.75.75 0 01-.102-1.493l.102-.007h12zm-6-12a.75.75 0 01.743.648L13.25 8v7.598l1.834-1.222a.75.75 0 11.832 1.248l-3 2a.75.75 0 01-.832 0l-3-2a.75.75 0 11.832-1.248l1.834 1.223V8a.75.75 0 01.648-.743l.102-.007z" fill-rule="nonzero" fill="currentColor" />'
121
- },
122
- play: {
123
- width: 62,
124
- height: 62,
125
- content: '<path d="M24.35 41.772a.5.5 0 0 1-.739-.439V20.667a.5.5 0 0 1 .74-.44l18.944 10.334a.5.5 0 0 1 0 .878L24.351 41.772z" fill-rule="nonzero"/>'
126
- },
127
- pause: {
128
- width: 22,
129
- height: 22,
130
- content: '<path d="M12.832 4h2.8c.276 0 .5.224.5.5v12.394c0 .277-.224.5-.5.5h-2.8c-.276 0-.5-.223-.5-.5V4.5c0-.276.224-.5.5-.5zM6.5 4h2.8c.277 0 .5.224.5.5v12.394c0 .277-.223.5-.5.5H6.5c-.276 0-.5-.223-.5-.5V4.5c0-.276.224-.5.5-.5z" />'
131
- },
132
- speedHalf: {
133
- width: 25,
134
- height: 27,
135
- content: '<path d="M7.212 15.198V12.29l-.676.724L6 12.406 7.35 11h.825v4.198h-.963zM8.056 18H7.3l4.23-7h.765l-4.24 7zm2.99 0v-.735c1.717-1.27 2.134-1.679 2.134-2.14 0-.389-.288-.578-.665-.578-.467 0-.884.263-1.083.525l-.496-.64c.417-.493 1.053-.693 1.599-.693.913 0 1.599.462 1.599 1.312 0 .682-.556 1.28-1.708 2.14h1.737V18h-3.118zm5.998-2.918l-1.39 1.48-.567-.577 1.4-1.49-1.4-1.48.566-.588 1.39 1.49 1.4-1.49.557.588-1.4 1.48 1.4 1.49-.556.577-1.4-1.48z" /><path d="M12.5 27C19.404 27 25 21.404 25 14.5S19.404 2 12.5 2 0 7.596 0 14.5 5.596 27 12.5 27zm0-1.5c-6.075 0-11-4.925-11-11s4.925-11 11-11 11 4.925 11 11-4.925 11-11 11z" />'
136
- },
137
- speedOne: {
138
- width: 25,
139
- height: 27,
140
- content: '<path d="M9.955 18v-4.84l-1.11 1.13-.81-.85 2.1-2.11h1.24V18h-1.42zm4.6-2.78l-1.4 1.41-.57-.55 1.41-1.42-1.41-1.41.57-.56 1.4 1.42 1.41-1.42.56.56-1.41 1.41 1.41 1.42-.56.55-1.41-1.41z" fill-rule="nonzero"/><path d="M12.5 27C19.404 27 25 21.404 25 14.5S19.404 2 12.5 2 0 7.596 0 14.5 5.596 27 12.5 27zm0-1.5c-6.075 0-11-4.925-11-11s4.925-11 11-11 11 4.925 11 11-4.925 11-11 11z" fill-rule="nonzero"/>'
141
- },
142
- speedOneHalf: {
143
- width: 25,
144
- height: 27,
145
- content: '<path d="M5.62 18v-4.84l-1.11 1.13-.81-.85 2.1-2.11h1.24V18H5.62zm3.37-2.67v-2.77l-.68.69-.54-.58 1.36-1.34h.83v4h-.97zM9.84 18h-.76l4.26-6.67h.77L9.84 18zm3.01 0v-.7c1.73-1.21 2.15-1.6 2.15-2.04 0-.37-.29-.55-.67-.55-.47 0-.89.25-1.09.5l-.5-.61c.42-.47 1.06-.66 1.61-.66.92 0 1.61.44 1.61 1.25 0 .65-.56 1.22-1.72 2.04h1.75V18h-3.14zm6.04-2.78l-1.4 1.41-.57-.55 1.41-1.42-1.41-1.41.57-.56 1.4 1.42 1.41-1.42.56.56-1.41 1.41 1.41 1.42-.56.55-1.41-1.41z" fill-rule="nonzero"/><path d="M12.5 27C19.404 27 25 21.404 25 14.5S19.404 2 12.5 2 0 7.596 0 14.5 5.596 27 12.5 27zm0-1.5c-6.075 0-11-4.925-11-11s4.925-11 11-11 11 4.925 11 11-4.925 11-11 11z" fill-rule="nonzero"/>'
146
- },
147
- speedTwo: {
148
- width: 25,
149
- height: 27,
150
- content: '<path d="M7.147 18v-1.158c2.685-2.078 3.471-2.792 3.471-3.64 0-.6-.52-.9-1.061-.9-.748 0-1.318.311-1.76.797L7 12.127C7.64 11.352 8.613 11 9.527 11c1.396 0 2.507.827 2.507 2.202 0 1.18-.924 2.203-2.625 3.506h2.675V18H7.147zm7.916-2.874l-1.377 1.457-.56-.568 1.386-1.468-1.386-1.458.56-.58 1.377 1.469 1.386-1.468.551.579-1.386 1.458L17 16.015l-.55.568-1.387-1.457z" fill-rule="nonzero"/><path d="M12.5 27C19.404 27 25 21.404 25 14.5S19.404 2 12.5 2 0 7.596 0 14.5 5.596 27 12.5 27zm0-1.5c-6.075 0-11-4.925-11-11s4.925-11 11-11 11 4.925 11 11-4.925 11-11 11z" fill-rule="nonzero"/>'
151
- },
152
- podcastBookmark: {
153
- width: 25,
154
- height: 27,
155
- content: '<path d="M12.5 27C19.404 27 25 21.404 25 14.5S19.404 2 12.5 2 0 7.596 0 14.5 5.596 27 12.5 27zm0-1.5c-6.075 0-11-4.925-11-11s4.925-11 11-11 11 4.925 11 11-4.925 11-11 11z" /> <path d="M17.071 8.25H8a.75.75 0 00-.75.75v11.545l.007.104a.75.75 0 001.228.468l4.05-3.437 4.051 3.437a.75.75 0 001.235-.572V9a.75.75 0 00-.75-.75zm-.75 1.499v9.176l-3.3-2.8-.098-.07a.75.75 0 00-.873.07l-3.3 2.799V9.749h7.571z" data-stroke="true" /> <path d="M17.071 8.25H8a.75.75 0 00-.75.75v11.545l.007.104a.75.75 0 001.228.468l4.05-3.437 4.051 3.437a.75.75 0 001.235-.572V9a.75.75 0 00-.75-.75z" data-fill="true" />'
156
- },
157
- reaction: {
158
- width: 16,
159
- height: 16,
160
- content: '<path data-theme="light" fill="#D09959" d="M1 2h14v12H1z"/> <path d="M0 1.778C0 .8.8 0 1.778 0h12.444C15.2 0 16 .8 16 1.778v12.444C16 15.2 15.2 16 14.222 16H1.778C.8 16 0 15.2 0 14.222V1.778zM6.8 11.7l2.5.8V6.2h1.6v5.5l2.5.8 1.6-2.3h-1.6V4.8L10.9 4 9.3 5.9V4.8L6.8 4 5.1 5.9V4.8L2.6 4 1 6.2h1.6v5.5l2.5.8V6.2h1.7v5.5z" />'
161
- },
162
- cross: {
163
- width: 18,
164
- height: 18,
165
- content: '<path fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" vector-effect="non-scaling-stroke" d="M2 2l14 14M16 2L2 16" />'
166
- },
167
- link: {
168
- width: 24,
169
- height: 24,
170
- content: '<path d="M9.158 18.928c-1.065 0-2.13-.405-2.94-1.215-1.624-1.623-1.624-4.262 0-5.884l.643-.645c.327-.326.854-.326 1.18 0 .325.326.325.853 0 1.178l-.645.645c-.972.972-.972 2.554 0 3.526.973.972 2.554.973 3.526 0l2.842-2.84c.97-.972.97-2.555 0-3.527-.325-.325-.325-.854 0-1.18.325-.324.853-.324 1.178 0 1.623 1.625 1.623 4.264 0 5.885l-2.84 2.84c-.81.81-1.877 1.216-2.942 1.216" /> <path d="M10.578 14.184c-.213 0-.426-.082-.59-.244-.784-.785-1.217-1.83-1.217-2.94 0-1.113.433-2.158 1.22-2.944l2.84-2.84c1.622-1.62 4.26-1.62 5.883 0 1.622 1.623 1.622 4.262 0 5.883l-.645.643c-.325.326-.852.326-1.178 0-.325-.325-.325-.852 0-1.178l.645-.644c.972-.97.972-2.554 0-3.526s-2.556-.972-3.527 0l-2.84 2.842c-.47.47-.73 1.096-.73 1.762 0 .667.26 1.293.73 1.763.325.327.325.854 0 1.18-.163.162-.376.244-.59.244" />'
171
- },
172
- search: {
173
- width: 16,
174
- height: 16,
175
- content: '<g transform="translate(2 1)" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" vector-effect="non-scaling-stroke"><circle cx="5.5" cy="5.5" r="5.5"/><path d="M11.37 13.442l-.995-1.272"/></g>'
176
- },
177
- card: {
178
- width: 15,
179
- height: 15,
180
- content: '<path d="M9 5.5a.5.5 0 0 1 .5.5v5a.5.5 0 0 1-.5.5H4a.5.5 0 0 1-.5-.5V6a.5.5 0 0 1 .5-.5h5zm-.5 1h-4v4h4v-4zm2.5-3a.5.5 0 0 1 .5.5v5a.5.5 0 1 1-1 0V4.5H6a.5.5 0 0 1 0-1h5z" fill-rule="nonzero"/>'
181
- },
182
- podcast: {
183
- width: 15,
184
- height: 15,
185
- content: '<path d="M5.252 11.432A.5.5 0 0 1 4.5 11V4a.5.5 0 0 1 .752-.432l6 3.5a.5.5 0 0 1 0 .864l-6 3.5zm.248-1.303L10.008 7.5 5.5 4.87v5.26z" fill-rule="nonzero" />'
186
- },
187
- arrow: {
188
- width: 12,
189
- height: 12,
190
- content: '<path d="M3 7l3 3.5L9 7M6 10V1" fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.2" vector-effect="non-scaling-stroke" />'
191
- },
192
- brent: {
193
- width: 9,
194
- height: 12,
195
- content: '<g fill="#999" fill-rule="nonzero"><path d="M4.332 0l.528.606c2.528 2.902 3.804 5.07 3.804 6.634A4.332 4.332 0 110 7.24C0 5.676 1.276 3.508 3.804.606L4.332 0zm0 2.143l-.176.212C2.313 4.589 1.4 6.248 1.4 7.24a2.932 2.932 0 105.864 0c0-.992-.914-2.651-2.756-4.885l-.176-.212z"/><path d="M2.973 7.475c0 .415.417.863.835.924l.097.008v.7c-.79 0-1.548-.716-1.626-1.5l-.006-.132h.7z"/></g> '
196
- },
197
- user: {
198
- width: 16,
199
- height: 16,
200
- content: '<path fill="currentColor" fill-rule="nonzero" d="M8 1a4.25 4.25 0 012.676 7.552 6.751 6.751 0 014.074 6.198.75.75 0 11-1.5 0 5.25 5.25 0 00-10.5 0 .75.75 0 11-1.5 0 6.752 6.752 0 014.074-6.199A4.25 4.25 0 018 1zm0 1.5A2.75 2.75 0 108 8a2.75 2.75 0 000-5.5z" />'
201
- },
202
- bookmark: {
203
- width: 17,
204
- height: 21,
205
- content: '<path d="M16 20l-7.5-6.333L1 20V1h15z" stroke="currentColor" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round"/>'
206
- },
207
- shareBookmark: {
208
- width: 11,
209
- height: 15,
210
- content: '<path clip-rule="evenodd" d="M10 14 5.5 9.667 1 14V1h9v13Z" stroke="currentColor" stroke-width="1.2" stroke-linecap="round" stroke-linejoin="round"/>'
211
- },
212
- receipt: {
213
- width: 10,
214
- height: 13,
215
- content: '<g fill="currentColor" fill-rule="nonzero"><path d="M10 0H0v13l2-1.74 1.5 1.305L5 11.26l1.5 1.305L8 11.26 10 13V0zM9 .997v9.81l-1-.87-1.5 1.304L5 9.937 3.5 11.24 2 9.937l-1 .87V.996h8z"/><path d="M7 3v1H3V3zM7 6v1H3V6z"/></g>'
216
- },
217
- read: {
218
- width: 15,
219
- height: 15,
220
- content: '<g fill="none" fill-rule="evenodd"><path opacity=".98" d="M0 0h15v15H0z"/><path d="M13.085 1.694a.513.513 0 01.855.56l-.051.077-3.163 3.975a.514.514 0 01-.73.075l-.068-.069-1.812-2.208a.512.512 0 01.729-.716l.065.066 1.409 1.718 2.766-3.478z" fill="#6EAC65" fill-rule="nonzero"/><path d="M6.454 12.997l-.06-.01-.078-.023a.49.49 0 01-.266-.24l.011.015a2.349 2.349 0 00-.535-.607c-.89-.745-2.117-.917-3.813-.12a.5.5 0 01-.706-.37L1 11.558V4.568a.5.5 0 01.287-.453c2.053-.963 3.695-.733 4.88.26.327.272.556.548.698.77l.084.144.018.04.022.076.01.071L7 11.233l.126-.09c.95-.656 2.16-.857 3.608-.417l.266.087v-2.81a.5.5 0 01.41-.491l.09-.008a.5.5 0 01.492.41l.008.09v3.555a.5.5 0 01-.713.452c-1.696-.796-2.922-.624-3.813.12a2.533 2.533 0 00-.497.544l-.038.064a.486.486 0 01-.485.258zm-4.29-8.17L2 4.892v5.92c1.637-.572 2.977-.348 4 .42l.002-5.58a2.605 2.605 0 00-.476-.513c-.81-.677-1.897-.88-3.362-.314z" fill="currentColor" fill-rule="nonzero"/></g>'
221
- },
222
- listened: {
223
- width: 15,
224
- height: 15,
225
- content: '<g fill-rule="nonzero"><path d="M4.978 4.354a.5.5 0 01-.332.624c-1.197.367-2.064 1.527-2.14 2.897l-.005.167a.749.749 0 01.999.708v3a.75.75 0 01-1.458.248L2 12a1 1 0 01-1-1v-1a1 1 0 01.5-.866V8.072c0-1.886 1.172-3.535 2.854-4.05a.5.5 0 01.624.332zM10 7a.5.5 0 01.492.41l.008.09.001 1.634a1 1 0 01.492.745L11 10v1a1 1 0 01-.883.993L10 12l-.042-.002a.75.75 0 01-1.451-.146L8.5 11.75v-3a.75.75 0 011.001-.707L9.5 7.5l.008-.09A.5.5 0 0110 7z" fill="currentColor" /><path d="M11.585 1.194a.513.513 0 01.855.56l-.051.077-3.163 3.975a.514.514 0 01-.73.075l-.068-.069-1.812-2.208a.512.512 0 01.729-.716l.065.066 1.409 1.718 2.766-3.478z" fill="#6EAC65" /></g>'
226
- },
227
- magic: {
228
- width: 15,
229
- height: 15,
230
- content: '<g fill-rule="evenodd" clip-rule="evenodd"> <path d="M7.804.4a.6.6 0 0 1 .6.6v2.035a.6.6 0 0 1-1.2 0V1a.6.6 0 0 1 .6-.6ZM7.804 10.577a.6.6 0 0 1 .6.6v2.035a.6.6 0 1 1-1.2 0v-2.035a.6.6 0 0 1 .6-.6ZM14.636 7.106a.6.6 0 0 1-.6.6h-2.078a.6.6 0 1 1 0-1.2h2.078a.6.6 0 0 1 .6.6ZM4.25 7.106a.6.6 0 0 1-.6.6H1.573a.6.6 0 0 1 0-1.2H3.65a.6.6 0 0 1 .6.6ZM12.639 2.37a.585.585 0 0 1 0 .84l-1.442 1.412a.615.615 0 0 1-.857 0 .585.585 0 0 1 0-.84l1.442-1.412a.615.615 0 0 1 .857 0ZM12.639 11.843a.615.615 0 0 1-.857 0L10.34 10.43a.585.585 0 0 1 0-.84.615.615 0 0 1 .857 0l1.442 1.413a.585.585 0 0 1 0 .84ZM5.269 4.621a.615.615 0 0 1-.858 0L2.97 3.208a.585.585 0 0 1 0-.84.615.615 0 0 1 .858 0l1.442 1.413a.585.585 0 0 1 0 .84ZM8.926 6.074a.6.6 0 0 1 0 .849l-.863.863-.849-.849.863-.863a.6.6 0 0 1 .849 0ZM7.348 8.5l-5.924 5.924a.6.6 0 1 1-.848-.848L6.5 7.652l.848.848Z"/> </g>'
231
- }
232
- };
233
-
234
- var styles$F = {"root":"SvgSymbol-module_root__WctNR","small":"SvgSymbol-module_small__h9V-w","normal":"SvgSymbol-module_normal__gFAVe","medium":"SvgSymbol-module_medium__QaYjY","large":"SvgSymbol-module_large__o6A4o","adaptive":"SvgSymbol-module_adaptive__gL9qn","fb":"SvgSymbol-module_fb__HZqcB","vk":"SvgSymbol-module_vk__XctB2","ok":"SvgSymbol-module_ok__IM6Z9","tw":"SvgSymbol-module_tw__fio-Q","tg":"SvgSymbol-module_tg__GRhd-","magic":"SvgSymbol-module_magic__N-jKk","reaction":"SvgSymbol-module_reaction__xSbgo","card":"SvgSymbol-module_card__2nVFu","podcast":"SvgSymbol-module_podcast__Yp05r","read":"SvgSymbol-module_read__Bu653","listened":"SvgSymbol-module_listened__AOn7j","menu":"SvgSymbol-module_menu__z-dLm","cross":"SvgSymbol-module_cross__3Xej1","isInFeature":"SvgSymbol-module_isInFeature__BmyI-","isInCard":"SvgSymbol-module_isInCard__USxBS","isInTopicBlockItem":"SvgSymbol-module_isInTopicBlockItem__cnCgw","isInPageStatic":"SvgSymbol-module_isInPageStatic__7kMP-","isInMaterialMeta":"SvgSymbol-module_isInMaterialMeta__lIKJO","isInAudioPlayer":"SvgSymbol-module_isInAudioPlayer__mamWa","isInEpisodeBlock":"SvgSymbol-module_isInEpisodeBlock__oZ6JG","isInButtonPlaybackRate":"SvgSymbol-module_isInButtonPlaybackRate__NnADm","isInButtonBackward":"SvgSymbol-module_isInButtonBackward__x8L9a","isInButtonForward":"SvgSymbol-module_isInButtonForward__TtixK","isInToolbar":"SvgSymbol-module_isInToolbar__RzbaX","play":"SvgSymbol-module_play__dAES0","meduzaLogo":"SvgSymbol-module_meduzaLogo__aVKzZ","arrow":"SvgSymbol-module_arrow__lWTSJ","oil":"SvgSymbol-module_oil__VFGTp","search":"SvgSymbol-module_search__h06cc","user":"SvgSymbol-module_user__ORMm-","bookmark":"SvgSymbol-module_bookmark__JPKyG","shareBookmark":"SvgSymbol-module_shareBookmark__7w9X9","receipt":"SvgSymbol-module_receipt__o3V8u","isInHeader":"SvgSymbol-module_isInHeader__M5Tzw"};
235
-
236
- const SvgSymbol = ({
237
- icon,
238
- size,
239
- styleContext
240
- }) => {
241
- const data = icons[icon];
242
- return /*#__PURE__*/React.createElement("svg", {
243
- "data-testid": "svg-symbol",
244
- xmlns: "http://www.w3.org/2000/svg",
245
- xmlnsXlink: "http://www.w3.org/1999/xlink",
246
- className: makeClassName([[styles$F.root, true], [styles$F[size], !!styles$F[size]], [styles$F[icon], !!styles$F[icon]], [styles$F[styleContext], !!styles$F[styleContext]]]),
247
- width: data.width,
248
- height: data.height,
249
- viewBox: `0 0 ${data.width} ${data.height}`,
250
- dangerouslySetInnerHTML: {
251
- __html: data.content
252
- }
253
- });
254
- };
255
-
256
- var styles$E = {"root":"Switcher-module_root__cBsJB","dark":"Switcher-module_dark__1QQsH","control":"Switcher-module_control__60WMX","input":"Switcher-module_input__5UDnv","knob":"Switcher-module_knob__PwA1A","children":"Switcher-module_children__uLapU","left":"Switcher-module_left__5-HNa","right":"Switcher-module_right__82Edk","isInPanel":"Switcher-module_isInPanel__-nBSf","isInMenu":"Switcher-module_isInMenu__RQVhp","isInLive":"Switcher-module_isInLive__ZyMCT"};
257
-
258
- const Switcher = ({
259
- enabled,
260
- children,
261
- childrenPosition = 'left',
262
- onChange,
263
- styleContext,
264
- theme = 'light'
265
- }) => /*#__PURE__*/React.createElement("label", {
266
- "data-testid": "switcher",
267
- className: makeClassName([[styles$E.root, true], [styles$E[theme], !!styles$E[theme]], [styles$E[styleContext], !!styles$E[styleContext]]])
268
- }, children && childrenPosition === 'left' && /*#__PURE__*/React.createElement("div", {
269
- className: makeClassName([[styles$E.children, true], [styles$E.left, true]])
270
- }, children), /*#__PURE__*/React.createElement("input", {
271
- className: styles$E.input,
272
- type: "checkbox",
273
- checked: enabled,
274
- onChange: onChange
275
- }), /*#__PURE__*/React.createElement("span", {
276
- className: styles$E.control
277
- }, /*#__PURE__*/React.createElement("span", {
278
- className: styles$E.knob
279
- })), children && childrenPosition === 'right' && /*#__PURE__*/React.createElement("div", {
280
- className: makeClassName([[styles$E.children, true], [styles$E.right, true]])
281
- }, children));
282
-
283
- const makeStyleContext = (classNames, styleContext, styles) => {
284
- const context = Array.isArray(styleContext) ? styleContext.filter(ctx => styles[ctx]).map(ctx => [[styles[ctx]], true]) : [[styles[styleContext], !!styleContext && !!styles[styleContext]]];
285
- return classNames.concat(context);
286
- };
287
-
288
- const BlockContext = /*#__PURE__*/React.createContext({
289
- lightBox: null
290
- });
291
- const BlockProvider = BlockContext.Provider;
292
-
293
- const POST_MESSAGE_PREFIX = 'mdzKitMsg';
294
- const postMessage = (category, element, action) => {
295
- const target = window.top;
296
- const msg = `${POST_MESSAGE_PREFIX}=${JSON.stringify({
297
- category,
298
- element,
299
- action
300
- })}`;
301
- if (typeof target !== 'undefined') {
302
- target.postMessage(msg, '*');
303
- }
304
- };
305
-
306
- var styles$D = {"root":"Lazy-module_root__DWw8D"};
307
-
308
- const Lazy = ({
309
- children,
310
- threshold
311
- }) => {
312
- const [ref, inView, entry] = reactIntersectionObserver.useInView({
313
- threshold: threshold || 0
314
- });
315
- const [visible, setVisible] = React.useState(false);
316
- React.useEffect(() => {
317
- if (entry && entry.boundingClientRect && entry.boundingClientRect.y < 0) {
318
- setVisible(true);
319
- }
320
- }, [entry]);
321
- React.useEffect(() => {
322
- if (inView) {
323
- setVisible(true);
324
- }
325
- }, [inView]);
326
- return /*#__PURE__*/React.createElement("div", {
327
- className: makeClassName([[styles$D.root, true], [styles$D.visible, visible]]),
328
- ref: ref,
329
- "data-testid": "lazy"
330
- }, visible && children);
331
- };
332
-
333
- const MediaQuerySizes = {
334
- MOBILE: 512,
335
- PORTRAIT_TABLET: 768,
336
- LANDSCAPE_TABLET: 1024,
337
- DESKTOP: 1010,
338
- WIDE_DESKTOP: 1200
339
- };
340
- const imageBreakpoints = {
341
- 325: '(min-width: 0)',
342
- 520: '(min-width: 325px)',
343
- 600: '(min-width: 600px)',
344
- 650: '(min-width: 650px)',
345
- 980: '(min-width: 1000px)',
346
- 1335: '(min-width: 1000px)'
347
- };
348
- const imageConditionalKeys = {
349
- xs: [325],
350
- superFull: [1335, 650, 520, 325],
351
- full: [980, 650, 520, 325],
352
- default: [650, 520, 325],
353
- narrow: [600, 325]
354
- };
355
- const SocialLabels = {
356
- ru: {
357
- tg: 'Телеграм',
358
- fb: 'Фейсбук',
359
- tw: 'Твиттер',
360
- pdf: 'PDF',
361
- unblock: 'Magic link',
362
- bookmark: 'В закладки',
363
- reaction: 'Напишите нам'
364
- },
365
- en: {
366
- tg: 'Telegram',
367
- fb: 'Fb',
368
- tw: 'Twitter',
369
- pdf: 'PDF',
370
- unblock: 'Magic link',
371
- bookmark: 'Add to bookmarks'
372
- }
373
- };
374
-
375
- const toCamel = s => s.replace(/([_][a-z])/gi, str => str.toUpperCase().replace('_', ''));
376
- const toCapitalize = s => s[0].toUpperCase() + s.slice(1);
377
-
378
- const RenderPicture = ({
379
- source,
380
- fallbackSource,
381
- optimized,
382
- alt,
383
- display,
384
- onLoad
385
- }) => {
386
- const [fallback, setFallback] = React.useState(false);
387
- React.useEffect(() => {
388
- setFallback(!window.HTMLPictureElement);
389
- }, []);
390
- const keys = imageConditionalKeys[toCamel(display)] || imageConditionalKeys.default;
391
- return /*#__PURE__*/React.createElement("picture", null, source && /*#__PURE__*/React.createElement("source", {
392
- media: "(min-width: 325px)",
393
- srcSet: `${source[1]} 2x`
394
- }), optimized && !optimized.w325 && /*#__PURE__*/React.createElement("source", {
395
- media: "(min-width: 0)",
396
- srcSet: `${optimized.original}`
397
- }), optimized && keys.map(key => {
398
- const breakpoint = optimized[`w${key}`];
399
- if (!breakpoint) {
400
- return null;
401
- }
402
- return /*#__PURE__*/React.createElement(React.Fragment, {
403
- key: key
404
- }, /*#__PURE__*/React.createElement("source", {
405
- type: "image/webp",
406
- media: imageBreakpoints[key],
407
- srcSet: `${breakpoint['2x_webp']} 2x, ${breakpoint['1x_webp']} 1x `
408
- }), /*#__PURE__*/React.createElement("source", {
409
- type: "image/png",
410
- media: imageBreakpoints[key],
411
- srcSet: `${breakpoint['2x']} 2x, ${breakpoint['1x']} 1x `
412
- }));
413
- }), /*#__PURE__*/React.createElement("img", {
414
- src: fallback ? fallbackSource : 'data:image/gif;base64,R0lGODlhAQABAPAAAPLy8gAAACH5BAAAAAAALAAAAAABAAEAAAICRAEAOw==',
415
- alt: alt,
416
- onLoad: () => onLoad(true)
417
- }));
418
- };
419
-
420
- var styles$C = {"root":"Image-module_root__H5wAh","isLoaded":"Image-module_isLoaded__keFnD","wrapper":"Image-module_wrapper__gJtbB","fullscreen":"Image-module_fullscreen__4PU9c","dark":"Image-module_dark__qjo5O","isStatic":"Image-module_isStatic__TmQ1V"};
421
-
422
- const Image = ({
423
- alt,
424
- display,
425
- optimized,
426
- width,
427
- height,
428
- source,
429
- lazy,
430
- ratio,
431
- styleContext,
432
- fullscreen = true
433
- }) => {
434
- const {
435
- lightBox
436
- } = React.useContext(BlockContext);
437
- const [isLoaded, setIsLoaded] = React.useState(lazy ? false : true);
438
- const handleClick = () => {
439
- if (!lightBox || !fullscreen || optimized && !optimized.original) {
440
- return;
441
- }
442
- postMessage('', 'fullscreen_click', 'click');
443
- lightBox.show(optimized, width, height, alt);
444
- };
445
- const blockStyles = {
446
- maxWidth: width <= 649 ? width : '100%'
447
- };
448
- const pictureStyles = {
449
- paddingBottom: `${100 / (ratio || width / height)}%`
450
- };
451
- /* fallback w325 url until w6 was released */
452
- const fallbackSource = source && source[0] || optimized.w325 && optimized.w325['1x'] || optimized.original;
453
- let classNames = [[styles$C.root, true], [styles$C.isLoaded, isLoaded], [styles$C.fullscreen, lightBox && optimized && optimized.original && fullscreen]];
454
- if (styleContext) {
455
- classNames = makeStyleContext(classNames, styleContext, styles$C);
456
- }
457
- return /*#__PURE__*/React.createElement("div", {
458
- className: makeClassName(classNames),
459
- style: blockStyles,
460
- "data-testid": "image"
461
- }, /*#__PURE__*/React.createElement("div", {
462
- className: styles$C.wrapper,
463
- style: pictureStyles,
464
- onClick: () => handleClick(),
465
- onKeyPress: () => handleClick(),
466
- role: "button",
467
- tabIndex: 0
468
- }, lazy ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Lazy, {
469
- threshold: 0.25
470
- }, /*#__PURE__*/React.createElement(RenderPicture, {
471
- fallbackSource: fallbackSource,
472
- source: source,
473
- optimized: optimized,
474
- alt: alt,
475
- display: display,
476
- onLoad: setIsLoaded
477
- })), /*#__PURE__*/React.createElement("noscript", null, /*#__PURE__*/React.createElement("img", {
478
- src: fallbackSource,
479
- alt: alt
480
- }))) : /*#__PURE__*/React.createElement(RenderPicture, {
481
- fallbackSource: fallbackSource,
482
- source: source,
483
- optimized: optimized,
484
- alt: alt,
485
- display: display,
486
- onLoad: setIsLoaded
487
- })));
488
- };
489
-
490
- var styles$B = {"root":"Popover-module_root__nBiV4","fadeOut":"Popover-module_fadeOut__Y88V7","visible":"Popover-module_visible__XVQLW","fadeIn":"Popover-module_fadeIn__FK1gd","overlay":"Popover-module_overlay__NAPar","container":"Popover-module_container__y4SB1","disappear":"Popover-module_disappear__uUn2b","dismiss":"Popover-module_dismiss__W8KFF","appear":"Popover-module_appear__b-CZ2","body":"Popover-module_body__UJEZf"};
491
-
492
- const Popover = ({
493
- children,
494
- onClose
495
- }) => {
496
- const [visible, setVisible] = React.useState(true);
497
- const handleClose = () => {
498
- setVisible(false);
499
- setTimeout(onClose, 350);
500
- };
501
- const handleScroll = () => {
502
- handleClose();
503
- };
504
- const escFunction = event => {
505
- if (event.key === 'Escape') {
506
- handleClose();
507
- }
508
- };
509
- React.useEffect(() => {
510
- document.body.dataset.popover = 'true';
511
- window.addEventListener('keydown', escFunction, false);
512
- window.addEventListener('scroll', handleScroll, false);
513
- return () => {
514
- document.body.removeAttribute('data-popover');
515
- window.removeEventListener('keydown', escFunction, false);
516
- window.removeEventListener('scroll', handleScroll, false);
517
- };
518
- }, [visible]);
519
- /* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */
520
- return /*#__PURE__*/React.createElement("div", {
521
- "data-testid": "popover",
522
- className: makeClassName([[styles$B.root, true], [styles$B.visible, visible]])
523
- }, /*#__PURE__*/React.createElement("div", {
524
- className: styles$B.overlay,
525
- onClick: () => handleClose()
526
- }), /*#__PURE__*/React.createElement("div", {
527
- className: styles$B.container
528
- }, /*#__PURE__*/React.createElement("button", {
529
- type: "button",
530
- className: styles$B.dismiss,
531
- onClick: () => handleClose(),
532
- "aria-label": "dismiss"
533
- }), /*#__PURE__*/React.createElement("div", {
534
- className: styles$B.body
535
- }, children)));
536
- };
537
-
538
- var styles$A = {"root":"Footnote-module_root__W5D8G","body":"Footnote-module_body__C-ZC-","dismiss":"Footnote-module_dismiss__Q2hAX"};
539
-
540
- const Footnote = ({
541
- children,
542
- onClose
543
- }) => {
544
- return /*#__PURE__*/React.createElement("div", {
545
- "data-testid": "footnote",
546
- className: makeClassName([[styles$A.root, true]])
547
- }, /*#__PURE__*/React.createElement("button", {
548
- className: styles$A.dismiss,
549
- type: "button",
550
- onClick: () => onClose()
551
- }, /*#__PURE__*/React.createElement(SvgSymbol, {
552
- icon: "cross",
553
- size: "unset"
554
- })), /*#__PURE__*/React.createElement("div", {
555
- className: styles$A.body
556
- }, children));
557
- };
558
-
559
- var viewportSize = (() => ({
560
- width: window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth,
561
- height: window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
562
- }));
563
-
564
- var styles$z = {"root":"DotsOnImage-module_root__8UQf2","isVisible":"DotsOnImage-module_isVisible__rA5x9","marker":"DotsOnImage-module_marker__pLdQT","show":"DotsOnImage-module_show__Ec0lG","dot":"DotsOnImage-module_dot__e2MWx","isActive":"DotsOnImage-module_isActive__Bhb58","popover":"DotsOnImage-module_popover__zHSbU","isRight":"DotsOnImage-module_isRight__IaUbc","isTop":"DotsOnImage-module_isTop__RMK49","isLeft":"DotsOnImage-module_isLeft__Q6JZ-","isBottom":"DotsOnImage-module_isBottom__c-aLe"};
565
-
566
- const DotsOnImage = ({
567
- block: {
568
- optimized,
569
- width,
570
- height,
571
- credit,
572
- display,
573
- dots
574
- }
575
- }) => {
576
- const [ratio, setRatio] = React.useState(1);
577
- const [ref, inView, entry] = reactIntersectionObserver.useInView();
578
- const container = React.useRef(null);
579
- const [popover, setPopover] = React.useState({
580
- title: null,
581
- body: null,
582
- show: false,
583
- id: null
584
- });
585
- const [visible, setVisible] = React.useState(false);
586
- const defaultWidth = 375;
587
- React.useEffect(() => {
588
- if (entry && entry.boundingClientRect && entry.boundingClientRect.y < 0) {
589
- setVisible(true);
590
- }
591
- }, [entry]);
592
- React.useEffect(() => {
593
- if (inView) {
594
- setVisible(true);
595
- }
596
- }, [inView]);
597
- React.useEffect(() => {
598
- if (popover.id) {
599
- document.addEventListener('click', handleClickOutside);
600
- } else {
601
- document.removeEventListener('click', handleClickOutside);
602
- }
603
- return () => document.removeEventListener('click', handleClickOutside);
604
- }, [popover]);
605
- React.useEffect(() => {
606
- setDotSize();
607
- window.addEventListener('resize', setDotSize);
608
- return () => document.removeEventListener('resize', setDotSize);
609
- }, [visible]);
610
- const setDotSize = () => {
611
- const width = window.innerWidth;
612
- if (width < defaultWidth) {
613
- const ratio = width / defaultWidth;
614
- setRatio(ratio);
615
- } else {
616
- setRatio(1);
617
- }
618
- };
619
- const handleClickOutside = event => {
620
- const path = event.composedPath();
621
- if (path.indexOf(container.current) === -1) {
622
- setPopover({
623
- show: false
624
- });
625
- }
626
- };
627
- const handleDotClick = dot => {
628
- const shouldShow = dot.id !== popover.id;
629
- const side = dot.position.x > 50 ? 'isLeft' : 'isRight';
630
- const align = dot.position.y > 50 ? 'isBottom' : 'isTop';
631
- const style = {
632
- top: `${dot.position.y}%`,
633
- left: `${dot.position.x}%`
634
- };
635
- setPopover({
636
- title: dot.title,
637
- body: dot.body,
638
- show: shouldShow,
639
- id: shouldShow ? dot.id : null,
640
- style,
641
- side,
642
- align
643
- });
644
- };
645
- return /*#__PURE__*/React.createElement("div", {
646
- className: makeClassName([[styles$z.root, true], [styles$z.isVisible, visible]]),
647
- "data-testid": "dots-on-image",
648
- ref: ref
649
- }, /*#__PURE__*/React.createElement(Image, {
650
- fullscreen: false,
651
- optimized: optimized,
652
- width: width,
653
- height: height,
654
- alt: credit,
655
- display: display
656
- }), /*#__PURE__*/React.createElement("div", {
657
- ref: container
658
- }, dots.map(dot => /*#__PURE__*/React.createElement("div", {
659
- className: styles$z.dot,
660
- key: dot.id,
661
- style: {
662
- top: `${dot.position.y}%`,
663
- left: `${dot.position.x}%`,
664
- transform: `scale(${ratio}) translate(-${50 / ratio}%, -${50 / ratio}%)`
665
- }
666
- }, /*#__PURE__*/React.createElement("button", {
667
- className: makeClassName([[styles$z.marker, true], [styles$z.isActive, dot.id === popover.id]]),
668
- type: "button",
669
- style: {
670
- backgroundColor: dot.icon.color
671
- },
672
- onClick: () => handleDotClick(dot)
673
- }, dot.icon.type === 'svg' && /*#__PURE__*/React.createElement("div", {
674
- dangerouslySetInnerHTML: {
675
- __html: dot.icon.svg_string
676
- }
677
- }), dot.icon.type === 'number' && dot.icon.number))), popover.show && /*#__PURE__*/React.createElement(React.Fragment, null, viewportSize().width >= MediaQuerySizes.LANDSCAPE_TABLET ? /*#__PURE__*/React.createElement("div", {
678
- className: makeClassName([[styles$z.popover, true], [styles$z[popover.side], !!popover.side], [styles$z[popover.align], !!popover.align]]),
679
- style: popover.style
680
- }, /*#__PURE__*/React.createElement(Footnote, {
681
- onClose: () => {
682
- setPopover({
683
- show: false
684
- });
685
- }
686
- }, popover.title && /*#__PURE__*/React.createElement("h3", null, popover.title), /*#__PURE__*/React.createElement("div", {
687
- dangerouslySetInnerHTML: {
688
- __html: popover.body
689
- }
690
- }))) : /*#__PURE__*/React.createElement(Popover, {
691
- onClose: () => {
692
- setPopover({
693
- show: false
694
- });
695
- }
696
- }, popover.title && /*#__PURE__*/React.createElement("h3", null, popover.title), /*#__PURE__*/React.createElement("div", {
697
- dangerouslySetInnerHTML: {
698
- __html: popover.body
699
- }
700
- })))));
701
- };
702
-
703
- var styles$y = {"root":"Tag-module_root__sGbnM","small":"Tag-module_small__hcPrf","large":"Tag-module_large__EKMu6","dark":"Tag-module_dark__9SHCb","light":"Tag-module_light__qlfy3","gold":"Tag-module_gold__u0bzS","gray":"Tag-module_gray__eazPk","inherit":"Tag-module_inherit__z21c-","custom":"Tag-module_custom__NU9-e","is1to1":"Tag-module_is1to1__V-fH5","is1to2":"Tag-module_is1to2__b9Obh","isInSuperBlock":"Tag-module_isInSuperBlock__wrFUY","is1to3":"Tag-module_is1to3__vZT-R","is1to4":"Tag-module_is1to4__MBh5V","slide":"Tag-module_slide__gzptP","game":"Tag-module_game__NmKec","podcastMaterial":"Tag-module_podcastMaterial__O-LBI","richRelated":"Tag-module_richRelated__Qs6Ei","card":"Tag-module_card__TX87-","live":"Tag-module_live__ykyR7","episode":"Tag-module_episode__3OHmN","podcast":"Tag-module_podcast__K6dHn","rich":"Tag-module_rich__vPnWd","isInDynamicBlock":"Tag-module_isInDynamicBlock__WNleF","mobile":"Tag-module_mobile__19oMH","desktop":"Tag-module_desktop__cNyQs","isInBookRelated":"Tag-module_isInBookRelated__ikTaj"};
704
-
705
- const Tag = ({
706
- children,
707
- size = 'small',
708
- theme = 'gold',
709
- styleContext,
710
- correlation,
711
- onlyOn
712
- }) => {
713
- let classNames = [[styles$y.root, true], [styles$y[size], !!size && !!styles$y[size]], [styles$y[theme], !!theme && !!styles$y[theme]], [styles$y[onlyOn], !!onlyOn && !!styles$y[onlyOn]], [styles$y[correlation], !!correlation && !!styles$y[correlation]]];
714
- if (styleContext) {
715
- classNames = makeStyleContext(classNames, styleContext, styles$y);
716
- }
717
- return /*#__PURE__*/React.createElement("div", {
718
- "data-testid": "tag",
719
- className: makeClassName(classNames)
720
- }, children);
721
- };
722
-
723
- var styles$x = {"root":"MediaCaption-module_root__1r0wu","caption":"MediaCaption-module_caption__ewfcc","credit":"MediaCaption-module_credit__7y4v8","dark":"MediaCaption-module_dark__7a9Cm","video":"MediaCaption-module_video__RDTUa","picture":"MediaCaption-module_picture__abCvw","desktop":"MediaCaption-module_desktop__e0lCY","isDark":"MediaCaption-module_isDark__IFb9X"};
724
-
725
- const MediaCaption = ({
726
- credit,
727
- caption,
728
- styleContext
729
- }) => {
730
- let classNames = [[styles$x.root, true]];
731
- if (styleContext) {
732
- classNames = makeStyleContext(classNames, styleContext, styles$x);
733
- }
734
- return /*#__PURE__*/React.createElement("div", {
735
- "data-testid": "media-caption",
736
- className: makeClassName(classNames)
737
- }, caption && /*#__PURE__*/React.createElement("div", {
738
- className: styles$x.caption,
739
- dangerouslySetInnerHTML: {
740
- __html: caption
741
- }
742
- }), credit && /*#__PURE__*/React.createElement("div", {
743
- className: styles$x.credit,
744
- dangerouslySetInnerHTML: {
745
- __html: credit
746
- }
747
- }));
748
- };
749
-
750
- var styles$w = {"root":"Table-module_root__fRuZq","card":"Table-module_card__8r-EA","table":"Table-module_table__7Pagp","slide":"Table-module_slide__dgMPV","wrapper":"Table-module_wrapper__AP4Pz","tracks":"Table-module_tracks__mRNG0","default":"Table-module_default__nwBEg","full":"Table-module_full__YZPDz","row":"Table-module_row__9OHT3","cell":"Table-module_cell__yFdqc","fixedColumn":"Table-module_fixedColumn__O2528","white":"Table-module_white__Laj3-","gray":"Table-module_gray__FPFh0","pink":"Table-module_pink__CGkAA","blue":"Table-module_blue__b8BHs","yellow":"Table-module_yellow__YOJgu","orange":"Table-module_orange__B-i8L","green":"Table-module_green__Bt6iC","violet":"Table-module_violet__yTZd7","header":"Table-module_header__YPDzO","s":"Table-module_s__I-CeX","m":"Table-module_m__vxhDf","l":"Table-module_l__GYHhk","xs":"Table-module_xs__imR8t"};
751
-
752
- const Table = ({
753
- styleContext,
754
- block: {
755
- rows,
756
- options,
757
- display,
758
- columns_widths: columnsWidth,
759
- table_credit: tableCredit
760
- }
761
- }) => {
762
- const colors = {
763
- '#ffffff': 'white',
764
- '#f5f5f5': 'gray',
765
- '#feeeee': 'pink',
766
- '#e6f3ff': 'blue',
767
- '#fffde6': 'yellow',
768
- '#fff9f2': 'orange',
769
- '#e7f2ef': 'green',
770
- '#f4f0f8': 'violet'
771
- };
772
- let classNames = [[styles$w.root, true], [styles$w[display], !!display && !!styles$w[display]]];
773
- if (styleContext) {
774
- classNames = makeStyleContext(classNames, styleContext, styles$w);
775
- }
776
- return /*#__PURE__*/React.createElement("div", {
777
- "data-testid": "table",
778
- className: makeClassName(classNames)
779
- }, /*#__PURE__*/React.createElement("div", {
780
- className: styles$w.wrapper
781
- }, /*#__PURE__*/React.createElement("div", {
782
- className: styles$w.table
783
- }, /*#__PURE__*/React.createElement("div", {
784
- className: styles$w.tracks
785
- }, rows.map((row, i) => {
786
- return /*#__PURE__*/React.createElement("div", {
787
- key: row.key,
788
- className: styles$w.row
789
- }, row.cells.map((cell, j) => /*#__PURE__*/React.createElement("div", {
790
- key: cell.key,
791
- className: makeClassName([[styles$w.cell, true], [styles$w.header, options.header && i === 0], [styles$w[colors[cell.color]], true], [styles$w[columnsWidth[j]], true], [styles$w.fixedColumn, options.fixed_first_column && j === 0]]),
792
- dangerouslySetInnerHTML: {
793
- __html: cell.val
794
- }
795
- })));
796
- })))), tableCredit && /*#__PURE__*/React.createElement(MediaCaption, {
797
- credit: tableCredit,
798
- styleContext: styleContext
799
- }));
800
- };
801
-
802
- var styles$v = {"root":"MaterialNote-module_root__99HSA","dark":"MaterialNote-module_dark__etjym","note_credit":"MaterialNote-module_note_credit__J1skG","note_caption":"MaterialNote-module_note_caption__G2Ad0","center":"MaterialNote-module_center__mDLEO","default":"MaterialNote-module_default__ozgd7","card":"MaterialNote-module_card__EVuZe","slide":"MaterialNote-module_slide__mg8XV","game":"MaterialNote-module_game__c-r0n","gameSurvey":"MaterialNote-module_gameSurvey__azhu6"};
803
-
804
- const MaterialNote = ({
805
- block: {
806
- data
807
- },
808
- styleContext
809
- }) => {
810
- let classNames = [[styles$v.root, true]];
811
- if (styleContext) {
812
- classNames = makeStyleContext(classNames, styleContext, styles$v);
813
- }
814
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
815
- "data-testid": "material-note",
816
- className: makeClassName(classNames)
817
- }, data && data.map(item => /*#__PURE__*/React.createElement("p", {
818
- className: styles$v[item.type],
819
- key: item.id,
820
- dangerouslySetInnerHTML: {
821
- __html: item.data
822
- }
823
- }))));
824
- };
825
-
826
- var styles$u = {"root":"BookmarkButton-module_root__A-75w","control":"BookmarkButton-module_control__-xy5O","dark":"BookmarkButton-module_dark__GkMEC","light":"BookmarkButton-module_light__1W6tx","isInBookmarks":"BookmarkButton-module_isInBookmarks__YSjjj","isInGrid":"BookmarkButton-module_isInGrid__Desh-"};
827
-
828
- const BookmarkButton = ({
829
- styleContext,
830
- theme,
831
- isInBookmarks,
832
- onClick
833
- }) => {
834
- let classNames = [[styles$u.root, true], [styles$u.isInBookmarks, isInBookmarks], [styles$u[theme], !!theme && !!styles$u[theme]]];
835
- if (styleContext) {
836
- classNames = makeStyleContext(classNames, styleContext, styles$u);
837
- }
838
- return /*#__PURE__*/React.createElement("div", {
839
- "data-testid": "bookmark-button",
840
- className: makeClassName(classNames)
841
- }, /*#__PURE__*/React.createElement("button", {
842
- className: styles$u.control,
843
- onClick: () => onClick(),
844
- type: "button"
845
- }, /*#__PURE__*/React.createElement(SvgSymbol, {
846
- icon: "bookmark",
847
- size: "unset"
848
- })));
849
- };
850
-
851
- var styles$t = {"root":"MaterialTitle-module_root__VSphO","primary":"MaterialTitle-module_primary__XGnpb","secondary":"MaterialTitle-module_secondary__7IDEp"};
852
-
853
- const Primary = ({
854
- children
855
- }) => {
856
- return /*#__PURE__*/React.createElement("span", {
857
- className: styles$t.primary
858
- }, children);
859
- };
860
- const Secondary = ({
861
- children
862
- }) => {
863
- return /*#__PURE__*/React.createElement("span", {
864
- className: styles$t.secondary
865
- }, children);
866
- };
867
- const MaterialTitle = ({
868
- children
869
- }) => {
870
- return /*#__PURE__*/React.createElement("h1", {
871
- className: styles$t.root,
872
- "data-testid": "material-title"
873
- }, children);
874
- };
875
-
876
- var styles$s = {"root":"Dropdown-module_root__Wv7S-","active":"Dropdown-module_active__jEkE7","menu":"Dropdown-module_menu__11IQL","isInAudioPanel":"Dropdown-module_isInAudioPanel__UniSV"};
877
-
878
- const Menu = ({
879
- children
880
- }) => {
881
- return /*#__PURE__*/React.createElement("div", {
882
- "data-testid": "dropdown",
883
- className: styles$s.menu
884
- }, children);
885
- };
886
- const Dropdown = ({
887
- children,
888
- active,
889
- styleContext
890
- }) => {
891
- let classNames = [[styles$s.root, true], [styles$s.active, !!active && !!styles$s.active]];
892
- if (styleContext) {
893
- classNames = makeStyleContext(classNames, styleContext, styles$s);
894
- }
895
- return /*#__PURE__*/React.createElement("div", {
896
- "data-testid": "dropdown",
897
- className: makeClassName(classNames)
898
- }, children);
899
- };
900
-
901
- var styles$r = {"root":"Toolbar-module_root__RnmlI","list":"Toolbar-module_list__-IhdP","item":"Toolbar-module_item__CWmGM","isInTopbar":"Toolbar-module_isInTopbar__WEDi8","center":"Toolbar-module_center__pvdiJ","game":"Toolbar-module_game__etwIA","gameSurvey":"Toolbar-module_gameSurvey__v4D31","slide":"Toolbar-module_slide__PtB3l","card":"Toolbar-module_card__Lutyq","isDark":"Toolbar-module_isDark__MG6Ar","dark":"Toolbar-module_dark__a9sgz"};
902
-
903
- const ToolbarItem = ({
904
- children
905
- }) => {
906
- return /*#__PURE__*/React.createElement("li", {
907
- className: styles$r.item
908
- }, children);
909
- };
910
-
911
- const Toolbar = ({
912
- children,
913
- styleContext
914
- }) => {
915
- let classNames = [[styles$r.root, true]];
916
- if (styleContext) {
917
- classNames = makeStyleContext(classNames, styleContext, styles$r);
918
- }
919
- return /*#__PURE__*/React.createElement("div", {
920
- "data-testid": "toolbar",
921
- className: makeClassName(classNames)
922
- }, /*#__PURE__*/React.createElement("ul", {
923
- className: styles$r.list
924
- }, children));
925
- };
926
-
927
- var styles$q = {"root":"Meta-module_root__H-Q4d","rich":"Meta-module_rich__dCkJK","podcast":"Meta-module_podcast__MI8gD","episode":"Meta-module_episode__0n9CF","simple":"Meta-module_simple__tztcr","slide":"Meta-module_slide__3OyIN","card":"Meta-module_card__2vqfN","game":"Meta-module_game__HNcgr","isInMaterial":"Meta-module_isInMaterial__vKcTK","isInSearchItem":"Meta-module_isInSearchItem__ENqHo","isInMediaBlock":"Meta-module_isInMediaBlock__TENZG","center":"Meta-module_center__seHro","half":"Meta-module_half__aoa9h","podcastMaterial":"Meta-module_podcastMaterial__GTPyD","light":"Meta-module_light__oW3kc","dark":"Meta-module_dark__tLQNJ","isDark":"Meta-module_isDark__xSl1J","hasSource":"Meta-module_hasSource__OZJ0y","bookmark":"Meta-module_bookmark__jcFWn","isCustom":"Meta-module_isCustom__AeFf1","mobile":"Meta-module_mobile__PbG8N","desktop":"Meta-module_desktop__W5AB7"};
928
-
929
- const Meta = ({
930
- hasSource,
931
- theme,
932
- children,
933
- onlyOn,
934
- styleContext
935
- }) => {
936
- let classNames = [[styles$q.root, true], [styles$q[theme], !!theme && !!styles$q[theme]], [styles$q[onlyOn], !!onlyOn], [styles$q.hasSource, hasSource]];
937
- if (styleContext) {
938
- classNames = makeStyleContext(classNames, styleContext, styles$q);
939
- }
940
- return /*#__PURE__*/React.createElement("div", {
941
- "data-testid": "meta",
942
- className: makeClassName(classNames)
943
- }, children);
944
- };
945
-
946
- var styles$p = {"root":"Timestamp-module_root__jPJ6w"};
947
-
948
- const Timestamp = ({
949
- publishedAt,
950
- locale = 'ru',
951
- type
952
- }) => {
953
- let published;
954
- const timeFormat = locale === 'ru' ? 'HH:mm, D MMMM YYYY' : 'h:mm a, MMMM D, YYYY';
955
- const preparedPublishedAt = publishedAt * 1000;
956
- dayjs.locale(locale);
957
- dayjs.extend(relativeTime);
958
- if (type === 'fromNow') {
959
- published = dayjs(preparedPublishedAt).fromNow();
960
- } else if (type === 'format') {
961
- published = dayjs(preparedPublishedAt).format('HH:mm');
962
- } else if (type === 'date') {
963
- published = dayjs(preparedPublishedAt).format(timeFormat);
964
- } else {
965
- throw new Error('Unknown time type');
966
- }
967
- return /*#__PURE__*/React.createElement("time", {
968
- suppressHydrationWarning: true,
969
- "data-testid": "timestamp",
970
- className: styles$p.root
971
- }, published);
972
- };
973
-
974
- const DangerousHTML = ({
975
- className = '',
976
- tagName: TagName = 'div',
977
- html
978
- }) => {
979
- const element = React.useRef(null);
980
- const [canRenderHtml, setCanRenderHtml] = React.useState(false);
981
- React.useEffect(() => {
982
- setCanRenderHtml(true);
983
- }, []);
984
- const replaceScriptElementsRecursive = React.useCallback(node => {
985
- if (node.tagName === 'SCRIPT' && (!node.id || node.id.indexOf('script-') !== 0)) {
986
- const script = document.createElement('script');
987
- script.id = `script-${Math.random().toString(16).slice(2)}`;
988
- script.innerHTML = node.innerHTML;
989
- const attrs = node.attributes;
990
- for (let i = 0; i < attrs.length; i += 1) {
991
- const {
992
- name,
993
- value
994
- } = attrs[i];
995
- script.setAttribute(name, value);
996
- }
997
- node.parentElement.replaceChild(script, node);
998
- } else {
999
- let i = 0;
1000
- const children = node.childNodes;
1001
- while (i < children.length) {
1002
- replaceScriptElementsRecursive(children[i]);
1003
- i += 1;
1004
- }
1005
- }
1006
- }, []);
1007
- const prepareAnchors = React.useCallback(() => {
1008
- const anchors = Array.from(element.current.querySelectorAll('a'));
1009
- anchors.forEach(a => {
1010
- a.setAttribute('target', '_blank');
1011
- });
1012
- }, []);
1013
- React.useEffect(() => {
1014
- if (canRenderHtml && html.indexOf('script') > -1 && element.current.firstElementChild) {
1015
- element.current.firstElementChild.innerHTML = html;
1016
- replaceScriptElementsRecursive(element.current.firstElementChild);
1017
- prepareAnchors();
1018
- }
1019
- }, [canRenderHtml, element, html, replaceScriptElementsRecursive, prepareAnchors]);
1020
- return /*#__PURE__*/React.createElement("div", {
1021
- ref: element
1022
- }, /*#__PURE__*/React.createElement(TagName, {
1023
- className: className,
1024
- dangerouslySetInnerHTML: {
1025
- __html: html
1026
- }
1027
- }));
1028
- };
1029
-
1030
- var styles$o = {"root":"EmbedBlock-module_root__wNZlD","object":"EmbedBlock-module_object__DONQ0","objectWrap":"EmbedBlock-module_objectWrap__qpbni","gameEmbed":"EmbedBlock-module_gameEmbed__tO5Ha","proportional":"EmbedBlock-module_proportional__zDPfm","default":"EmbedBlock-module_default__np8MO","xs":"EmbedBlock-module_xs__PNHGz","full":"EmbedBlock-module_full__Gmz7o","super_full":"EmbedBlock-module_super_full__-h382","figure":"EmbedBlock-module_figure__fNZB-","dark":"EmbedBlock-module_dark__S2R9f","isInGroupedBlock":"EmbedBlock-module_isInGroupedBlock__Wjj7k","control":"EmbedBlock-module_control__9bJUa","raw_html":"EmbedBlock-module_raw_html__EfYVy","mobileFullwidth":"EmbedBlock-module_mobileFullwidth__1MDT5","isInCard":"EmbedBlock-module_isInCard__WnLHG","isInSlide":"EmbedBlock-module_isInSlide__BtdnY","cc":"EmbedBlock-module_cc__Gyw44","isInSensitiveBlock":"EmbedBlock-module_isInSensitiveBlock__nYajZ","isInAnswer":"EmbedBlock-module_isInAnswer__WuZ0H","picture":"EmbedBlock-module_picture__Weamy","wrapper":"EmbedBlock-module_wrapper__ynT7R","mobile":"EmbedBlock-module_mobile__lEuww","desktop":"EmbedBlock-module_desktop__599S7"};
1031
-
1032
- const EmbedGif = ({
1033
- gif,
1034
- mp4Url,
1035
- style
1036
- }) => {
1037
- const [videoFrozen, setVideoFrozen] = React.useState(false);
1038
- const videoElem = React.useRef(null);
1039
- const handleVideoTouch = () => {
1040
- videoElem.current.play();
1041
- setVideoFrozen(false);
1042
- };
1043
- const handleVideoError = () => {
1044
- const video = videoElem.current;
1045
- video.setAttribute('poster', video.dataset.gif);
1046
- setVideoFrozen(false);
1047
- };
1048
- React.useEffect(() => {
1049
- const video = videoElem.current;
1050
- const {
1051
- width: viewportWidth
1052
- } = viewportSize();
1053
- if (viewportWidth >= MediaQuerySizes.MOBILE) {
1054
- video.setAttribute('autoplay', true);
1055
- video.play();
1056
- } else {
1057
- setVideoFrozen(true);
1058
- video.pause();
1059
- video.addEventListener('touchstart', handleVideoTouch);
1060
- }
1061
- video.addEventListener('error', handleVideoError);
1062
- return () => {
1063
- video.removeEventListener('touchstart', handleVideoTouch);
1064
- video.removeEventListener('error', handleVideoError);
1065
- };
1066
- }, []);
1067
- return /*#__PURE__*/React.createElement("div", {
1068
- className: styles$o.figure
1069
- }, /*#__PURE__*/React.createElement("div", {
1070
- className: styles$o.objectWrap,
1071
- style: style,
1072
- "data-frozen": videoFrozen
1073
- }, /*#__PURE__*/React.createElement("video", {
1074
- playsInline: true,
1075
- muted: true,
1076
- loop: true,
1077
- autoPlay: true,
1078
- preload: "metadata",
1079
- "data-gif": gif,
1080
- ref: videoElem
1081
- }, /*#__PURE__*/React.createElement("source", {
1082
- src: `https://meduza.io${mp4Url}`,
1083
- type: "video/mp4"
1084
- }))));
1085
- };
1086
-
1087
- const EmbedBlock = ({
1088
- block,
1089
- block: {
1090
- data,
1091
- data: {
1092
- html,
1093
- display,
1094
- only_on: onlyOn,
1095
- provider,
1096
- cc,
1097
- optimized,
1098
- small_url: small,
1099
- large_url: large,
1100
- gif_url: gifUrl,
1101
- mp4_url: mp4Url
1102
- }
1103
- },
1104
- styleContext,
1105
- children
1106
- }) => {
1107
- const [isPopoverShown, setIsPopoverShown] = React.useState(false);
1108
- const style = {};
1109
- const isProportional = block.data.height && block.data.width;
1110
- const fullWidthProviders = ['youtube', 'vimeo', 'onetv', 'coub', 'meduza', 'facebook_video'];
1111
- const mobileFullwidth = fullWidthProviders.indexOf(provider) > -1 || block.type === 'dots_on_image';
1112
- const renderCC = context => /*#__PURE__*/React.createElement(MediaCaption, {
1113
- credit: data.credit,
1114
- caption: data.caption,
1115
- styleContext: context || styleContext
1116
- });
1117
- const renderEmbed = style => {
1118
- switch (block.type) {
1119
- case 'gif':
1120
- {
1121
- return /*#__PURE__*/React.createElement(EmbedGif, {
1122
- gif: gifUrl,
1123
- mp4Url: mp4Url,
1124
- style: style
1125
- });
1126
- }
1127
- case 'image':
1128
- {
1129
- return /*#__PURE__*/React.createElement("div", {
1130
- className: styles$o.figure
1131
- }, /*#__PURE__*/React.createElement(Image, {
1132
- source: !optimized && [small, large],
1133
- optimized: block.data.optimized,
1134
- width: block.data.width,
1135
- height: block.data.height,
1136
- alt: block.data.caption,
1137
- display: block.data.display,
1138
- lazy: block.data.lazy,
1139
- styleContext: styleContext
1140
- }));
1141
- }
1142
- case 'game_embed':
1143
- {
1144
- return /*#__PURE__*/React.createElement("div", {
1145
- className: styles$o.gameEmbed
1146
- }, /*#__PURE__*/React.createElement("iframe", {
1147
- src: block.data.game_src,
1148
- id: block.data.game_id,
1149
- title: "Game embed"
1150
- }));
1151
- }
1152
- case 'dots_on_image':
1153
- {
1154
- return /*#__PURE__*/React.createElement("div", {
1155
- className: styles$o.figure
1156
- }, /*#__PURE__*/React.createElement(DotsOnImage, {
1157
- block: data
1158
- }));
1159
- }
1160
- default:
1161
- {
1162
- return /*#__PURE__*/React.createElement("div", {
1163
- className: styles$o.object
1164
- }, /*#__PURE__*/React.createElement("div", {
1165
- className: styles$o.wrapper,
1166
- style: style
1167
- }, /*#__PURE__*/React.createElement(DangerousHTML, {
1168
- className: styles$o.objectWrap,
1169
- html: html
1170
- })));
1171
- }
1172
- }
1173
- };
1174
- if (isProportional) {
1175
- style.paddingBottom = `${block.data.height / block.data.width * 100}%`;
1176
- style.height = 0;
1177
- }
1178
- let classNames = [[styles$o.root, true], [styles$o.cc, cc], [styles$o[display], !!display && styles$o[display]], [styles$o[provider], !!provider && !!styles$o[provider]], [styles$o[onlyOn], !!onlyOn && styles$o[onlyOn]], [styles$o.mobileFullwidth, mobileFullwidth], [styles$o.proportional, isProportional]];
1179
- // Убираем из контекста все, что не начинается с приставки isIn,
1180
- // чтобы не применились лишние модификаторы
1181
- // TODO: в w6 модификаторы должны передаваться явно
1182
- if (styleContext && Array.isArray(styleContext)) {
1183
- const filteredContext = styleContext.filter(key => key.startsWith('isIn') && styles$o[key]).reduce((acc, key) => {
1184
- acc.push(key);
1185
- return acc;
1186
- }, []);
1187
- classNames = makeStyleContext(classNames, filteredContext, styles$o);
1188
- }
1189
- return /*#__PURE__*/React.createElement("figure", {
1190
- className: makeClassName(classNames)
1191
- }, children && /*#__PURE__*/React.createElement("div", {
1192
- className: styles$o.object
1193
- }, /*#__PURE__*/React.createElement("div", {
1194
- className: styles$o.wrapper,
1195
- style: style
1196
- }, /*#__PURE__*/React.createElement("div", {
1197
- className: styles$o.objectWrap
1198
- }, children))), !children && renderEmbed(style), cc === 'default' && /*#__PURE__*/React.createElement("figcaption", null, renderCC()), cc === 'button' && /*#__PURE__*/React.createElement("button", {
1199
- className: styles$o.control,
1200
- type: "button",
1201
- "aria-label": "Open",
1202
- onClick: () => {
1203
- setIsPopoverShown(!isPopoverShown);
1204
- }
1205
- }), cc === 'button' && isPopoverShown && /*#__PURE__*/React.createElement(Popover, {
1206
- onClose: () => {
1207
- setIsPopoverShown(false);
1208
- }
1209
- }, renderCC('isInPopover')));
1210
- };
1211
-
1212
- const IframeBlock = ({
1213
- block,
1214
- block: {
1215
- id
1216
- },
1217
- styleContext,
1218
- lang = 'ru'
1219
- }) => {
1220
- const element = React.useRef(null);
1221
- const renderIframe = () => {
1222
- const rootEl = document.createElement('div');
1223
- const contentEl = document.createElement('div');
1224
- const scriptEl = document.createElement('script');
1225
- const style = document.createElement('style');
1226
- const range = document.createRange();
1227
- range.setStart(contentEl, 0);
1228
- contentEl.setAttribute('id', 'content');
1229
- scriptEl.textContent = `
1230
- function getDocHeight() {
1231
- var doc = document;
1232
- var body = doc.body;
1233
- var html = doc.documentElement;
1234
- var height = Math.max( body.scrollHeight, body.offsetHeight,
1235
- html.clientHeight, html.scrollHeight, html.offsetHeight );
1236
-
1237
- doc.body.style.margin="0";
1238
-
1239
- return document.getElementById('content') ? document.getElementById('content').offsetHeight : height;
1240
- }
1241
-
1242
- function sendDocHeightMsg() {
1243
- var height = getDocHeight();
1244
- var message = JSON.stringify({
1245
- action: {
1246
- type: "UPDATE_HEIGHT",
1247
- payload: {
1248
- id: "${block.id}",
1249
- height: height
1250
- }
1251
- }
1252
- });
1253
- parent.postMessage("mdzMaterialEmbedHeight=" + message, '*');
1254
- }
1255
-
1256
- setInterval(sendDocHeightMsg, 300);
1257
- `;
1258
- style.type = 'text/css';
1259
- style.innerHTML = block.type === 'embed_code' ? '.twitter-tweet { padding-top: 15px; margin: 0 !important; }' : '.twitter-tweet { margin: 0 !important; } .fb-post { display: block; } .instagram-media { min-width: 0 !important; }';
1260
- contentEl.appendChild(range.createContextualFragment(block.data.html));
1261
- rootEl.appendChild(scriptEl);
1262
- rootEl.appendChild(contentEl);
1263
- contentEl.appendChild(style);
1264
- const frame = element.current.querySelector('iframe').contentDocument;
1265
- frame.open();
1266
- frame.close();
1267
- frame.documentElement.setAttribute('lang', lang);
1268
- frame.body.appendChild(rootEl);
1269
- };
1270
- React.useEffect(() => {
1271
- renderIframe();
1272
- }, []);
1273
- return /*#__PURE__*/React.createElement(EmbedBlock, {
1274
- block: block,
1275
- styleContext: styleContext
1276
- }, /*#__PURE__*/React.createElement("div", {
1277
- ref: element,
1278
- dangerouslySetInnerHTML: {
1279
- __html: `<iframe id=${id} frameBorder="0" scrolling="no"></iframe>`
1280
- }
1281
- }));
1282
- };
1283
-
1284
- const EmbedBlockContainer = ({
1285
- block,
1286
- styleContext,
1287
- lang
1288
- }) => {
1289
- if (block.data && block.data.wrap_with_iframe) {
1290
- return /*#__PURE__*/React.createElement(IframeBlock, {
1291
- block: block,
1292
- styleContext: styleContext,
1293
- lang: lang
1294
- });
1295
- }
1296
- return /*#__PURE__*/React.createElement(EmbedBlock, {
1297
- block: block,
1298
- styleContext: styleContext
1299
- });
1300
- };
1301
-
1302
- var styles$n = {"root":"QuoteBlock-module_root__4qa1J","center":"QuoteBlock-module_center__1f83y"};
1303
-
1304
- const QuoteBlock = ({
1305
- block: {
1306
- data
1307
- },
1308
- styleContext
1309
- }) => {
1310
- let classNames = [[styles$n.root, true]];
1311
- if (styleContext) {
1312
- classNames = makeStyleContext(classNames, styleContext, styles$n);
1313
- }
1314
- return /*#__PURE__*/React.createElement("div", {
1315
- "data-testid": "quote-block",
1316
- className: makeClassName(classNames)
1317
- }, /*#__PURE__*/React.createElement("p", {
1318
- dangerouslySetInnerHTML: {
1319
- __html: data
1320
- }
1321
- }));
1322
- };
1323
-
1324
- var styles$m = {"root":"CardTitle-module_root__Pvx--","index":"CardTitle-module_index__Keled","title":"CardTitle-module_title__Lkflo","mobile":"CardTitle-module_mobile__6N3hB","desktop":"CardTitle-module_desktop__sBokS"};
1325
-
1326
- const CardTitle = ({
1327
- block: {
1328
- data: {
1329
- only_on: onlyOn,
1330
- index,
1331
- text
1332
- }
1333
- },
1334
- styleContext
1335
- }) => {
1336
- return /*#__PURE__*/React.createElement("div", {
1337
- "data-testid": "card-title",
1338
- className: makeClassName([[styles$m.root, true], [styles$m[onlyOn], !!onlyOn], [styles$m[styleContext], !!styleContext && !!styles$m[styleContext]]])
1339
- }, /*#__PURE__*/React.createElement("div", {
1340
- className: styles$m.index
1341
- }, index), /*#__PURE__*/React.createElement("h3", {
1342
- className: styles$m.title
1343
- }, text));
1344
- };
1345
-
1346
- var styles$l = {"root":"ChapterBlock-module_root__iw7d2","subtitle":"ChapterBlock-module_subtitle__IpWgz","mobile":"ChapterBlock-module_mobile__V1Eye","desktop":"ChapterBlock-module_desktop__9xWf4"};
1347
-
1348
- const ChapterBlock = ({
1349
- block: {
1350
- data,
1351
- only_on: onlyOn
1352
- },
1353
- styleContext
1354
- }) => {
1355
- return /*#__PURE__*/React.createElement("div", {
1356
- "data-testid": "chapter-block",
1357
- className: makeClassName([[styles$l.root, true], [styles$l[onlyOn], !!onlyOn]])
1358
- }, /*#__PURE__*/React.createElement("div", {
1359
- className: makeClassName([[styles$l.subtitle, true], [styles$l[styleContext], !!styleContext && !!styles$l[styleContext]]]),
1360
- dangerouslySetInnerHTML: {
1361
- __html: data
1362
- }
1363
- }));
1364
- };
1365
-
1366
- const generateGradient = (color, type) => {
1367
- const steps = {
1368
- mediaBlockBottom: [[0, 7], [0.08, 12], [0.16, 17], [0.22, 21], [0.32, 26], [0.42, 32], [0.52, 38], [0.62, 47], [0.72, 57], [0.82, 65], [1, 82]],
1369
- mediaBlockTop: [[0.5, 0], [0, 97]]
1370
- };
1371
- const gradient = steps[type].map(i => `rgba(${color}, ${i[0]}) ${i[1]}%`);
1372
- return `linear-gradient(-180deg, ${gradient})`;
1373
- };
1374
-
1375
- var styles$k = {"root":"SimpleTitle-module_root__YOzNn","mobile":"SimpleTitle-module_mobile__1QiJd","desktop":"SimpleTitle-module_desktop__ZF5Af"};
1376
-
1377
- const SimpleTitle = ({
1378
- block: {
1379
- data: {
1380
- first
1381
- },
1382
- only_on: onlyOn
1383
- },
1384
- styleContext
1385
- }) => {
1386
- let classNames = [[styles$k.root, true], [styles$k[onlyOn], true]];
1387
- if (styleContext) {
1388
- classNames = makeStyleContext(classNames, styleContext, styles$k);
1389
- }
1390
- return /*#__PURE__*/React.createElement("h1", {
1391
- "data-testid": "simple-title",
1392
- className: makeClassName(classNames)
1393
- }, first);
1394
- };
1395
-
1396
- var styles$j = {"root":"RichTitle-module_root__U5XQu","slide":"RichTitle-module_slide__eU9Ob","game":"RichTitle-module_game__S1csb","podcastMaterial":"RichTitle-module_podcastMaterial__AulVF","half":"RichTitle-module_half__yBMby","featured":"RichTitle-module_featured__ULNQn","isInMediaBlock":"RichTitle-module_isInMediaBlock__2h6rl","isInPodcastPlayer":"RichTitle-module_isInPodcastPlayer__kvEPH","mobile":"RichTitle-module_mobile__W5L9E","desktop":"RichTitle-module_desktop__k0PkC"};
1397
-
1398
- const RichTitle = ({
1399
- block: {
1400
- only_on: onlyOn,
1401
- data: {
1402
- featured,
1403
- first,
1404
- second,
1405
- as: TagName = 'h1'
1406
- }
1407
- },
1408
- styleContext
1409
- }) => {
1410
- let classNames = [[styles$j.root, true], [styles$j[onlyOn], true], [styles$j.featured, !!featured]];
1411
- if (styleContext) {
1412
- classNames = makeStyleContext(classNames, styleContext, styles$j);
1413
- }
1414
- return /*#__PURE__*/React.createElement(TagName, {
1415
- "data-testid": "rich-title",
1416
- className: makeClassName(classNames)
1417
- }, first, second && /*#__PURE__*/React.createElement("span", null, " ", second));
1418
- };
1419
-
1420
- var styles$i = {"p":"SimpleBlock-module_p__7aRnT","h2":"SimpleBlock-module_h2__aWlMn","h3":"SimpleBlock-module_h3__uPh0-","h4":"SimpleBlock-module_h4__MxGXA","lead":"SimpleBlock-module_lead__NzEPT","lead_hr":"SimpleBlock-module_lead_hr__XN0rm","context_p":"SimpleBlock-module_context_p__Mdu1R","blockquote":"SimpleBlock-module_blockquote__nX-Ab","game":"SimpleBlock-module_game__uVeJJ","slide":"SimpleBlock-module_slide__MaaUF","dark":"SimpleBlock-module_dark__qtLhq","divider":"SimpleBlock-module_divider__-VXBu","isInIntro":"SimpleBlock-module_isInIntro__UOePf","center":"SimpleBlock-module_center__D1CsV","isInImportantLead":"SimpleBlock-module_isInImportantLead__qzKDo","podcastMaterial":"SimpleBlock-module_podcastMaterial__XEMjh","isInAnswer":"SimpleBlock-module_isInAnswer__Asx7d","mobile":"SimpleBlock-module_mobile__EVGYJ","desktop":"SimpleBlock-module_desktop__6ZH5e","isDark":"SimpleBlock-module_isDark__ehYKr"};
1421
-
1422
- const SimpleBlock = ({
1423
- block: {
1424
- data,
1425
- type,
1426
- only_on: onlyOn
1427
- },
1428
- styleContext
1429
- }) => {
1430
- let TagName;
1431
- let classNames = [[styles$i[type], !!type && !!styles$i[type]], [styles$i[onlyOn], true]];
1432
- if (styleContext) {
1433
- classNames = makeStyleContext(classNames, styleContext, styles$i);
1434
- }
1435
- switch (type) {
1436
- case 'context_p':
1437
- case 'lead':
1438
- case 'note_caption':
1439
- case 'note_credit':
1440
- {
1441
- TagName = 'p';
1442
- break;
1443
- }
1444
- case 'divider':
1445
- return /*#__PURE__*/React.createElement("hr", {
1446
- className: makeClassName(classNames)
1447
- });
1448
- case 'lead_hr':
1449
- {
1450
- TagName = 'div';
1451
- break;
1452
- }
1453
- default:
1454
- TagName = type;
1455
- }
1456
- return /*#__PURE__*/React.createElement(TagName, {
1457
- className: makeClassName(classNames),
1458
- dangerouslySetInnerHTML: {
1459
- __html: data
1460
- }
1461
- });
1462
- };
1463
-
1464
- var styles$h = {"root":"ListBlock-module_root__dqomP","ol":"ListBlock-module_ol__1l6nP","ul":"ListBlock-module_ul__bgHlv","center":"ListBlock-module_center__bEBN-","isInImportantLead":"ListBlock-module_isInImportantLead__ewcD1","dark":"ListBlock-module_dark__NzpYz","mobile":"ListBlock-module_mobile__qEBsn","desktop":"ListBlock-module_desktop__HN0IU"};
1465
-
1466
- const ListBlock = ({
1467
- block: {
1468
- type,
1469
- data,
1470
- only_on: onlyOn
1471
- },
1472
- styleContext
1473
- }) => {
1474
- const TagName = type;
1475
- let classNames = [[styles$h.root, true], [styles$h[onlyOn], true], [styles$h[type], !!type && !!styles$h[type]]];
1476
- if (styleContext) {
1477
- classNames = makeStyleContext(classNames, styleContext, styles$h);
1478
- }
1479
- return /*#__PURE__*/React.createElement(TagName, {
1480
- className: makeClassName(classNames),
1481
- "data-testid": "list-block"
1482
- }, data.map((item, index) => /*#__PURE__*/React.createElement("li", {
1483
- key: index,
1484
- dangerouslySetInnerHTML: {
1485
- __html: item
1486
- }
1487
- })));
1488
- };
1489
-
1490
- var styles$g = {"root":"RelatedBlock-module_root__cr1c-","header":"RelatedBlock-module_header__bfUJD","items":"RelatedBlock-module_items__rzzam","rich":"RelatedBlock-module_rich__1cWdn","first":"RelatedBlock-module_first__ZkcP5","simple":"RelatedBlock-module_simple__m22bj","center":"RelatedBlock-module_center__WVpIJ","isInSlideMaterial":"RelatedBlock-module_isInSlideMaterial__VumDw","mobile":"RelatedBlock-module_mobile__AScBA","desktop":"RelatedBlock-module_desktop__uMXUY"};
1491
-
1492
- const RelatedBlock = ({
1493
- block: {
1494
- data: {
1495
- title,
1496
- related
1497
- },
1498
- only_on: onlyOn
1499
- },
1500
- styleContext
1501
- }) => {
1502
- let classNames = [[styles$g.root, true], [styles$g[onlyOn], true]];
1503
- if (styleContext) {
1504
- classNames = makeStyleContext(classNames, styleContext, styles$g);
1505
- }
1506
- return /*#__PURE__*/React.createElement("div", {
1507
- "data-testid": "related-block",
1508
- className: makeClassName(classNames)
1509
- }, /*#__PURE__*/React.createElement("h3", {
1510
- className: styles$g.header
1511
- }, title), /*#__PURE__*/React.createElement("ul", {
1512
- className: styles$g.items
1513
- }, related.map((item, index) => /*#__PURE__*/React.createElement("li", {
1514
- key: item.id || index,
1515
- className: styles$g[item.layout]
1516
- }, /*#__PURE__*/React.createElement(reactRouterDom.Link, {
1517
- to: item.full_url || `/${item.url}`
1518
- }, /*#__PURE__*/React.createElement("span", {
1519
- className: styles$g.first
1520
- }, item.title), item.second_title && ' ', item.second_title && /*#__PURE__*/React.createElement("span", null, item.second_title))))));
1521
- };
1522
-
1523
- var styles$f = {"root":"SourceBlock-module_root__9dnI4","text":"SourceBlock-module_text__M5-uy","origin":"SourceBlock-module_origin__fyvxH","center":"SourceBlock-module_center__UOMwy","mobile":"SourceBlock-module_mobile__QVEyg","desktop":"SourceBlock-module_desktop__xdXWm","isDark":"SourceBlock-module_isDark__etwk1"};
1524
-
1525
- const SourceBlock = ({
1526
- block: {
1527
- only_on: onlyOn,
1528
- data: {
1529
- quote,
1530
- origin,
1531
- url
1532
- }
1533
- },
1534
- styleContext
1535
- }) => {
1536
- let classNames = [[styles$f.root, true], [styles$f[onlyOn], true]];
1537
- if (styleContext) {
1538
- classNames = makeStyleContext(classNames, styleContext, styles$f);
1539
- }
1540
- return /*#__PURE__*/React.createElement("blockquote", {
1541
- "data-testid": "source-block",
1542
- cite: url,
1543
- className: makeClassName(classNames)
1544
- }, /*#__PURE__*/React.createElement("a", {
1545
- className: styles$f.text,
1546
- href: url,
1547
- target: "_blank",
1548
- rel: "noopener noreferrer"
1549
- }, quote.map((item, index) => /*#__PURE__*/React.createElement("p", {
1550
- key: index,
1551
- dangerouslySetInnerHTML: {
1552
- __html: item.data
1553
- }
1554
- })), /*#__PURE__*/React.createElement("footer", null, /*#__PURE__*/React.createElement("cite", {
1555
- className: styles$f.origin
1556
- }, origin))));
1557
- };
1558
-
1559
- var styles$e = {"root":"SensitiveBlock-module_root__1Nl9-","container":"SensitiveBlock-module_container__GE2tW","overlay":"SensitiveBlock-module_overlay__tEsK8","content":"SensitiveBlock-module_content__RYbdd","button":"SensitiveBlock-module_button__LGEEM","default":"SensitiveBlock-module_default__pkWhC","full":"SensitiveBlock-module_full__hlH41","media":"SensitiveBlock-module_media__nuL1S","super_full":"SensitiveBlock-module_super_full__C7UyP","visible":"SensitiveBlock-module_visible__bXhYO","isInCard":"SensitiveBlock-module_isInCard__uANYL","isInSlide":"SensitiveBlock-module_isInSlide__ZAVUU"};
1560
-
1561
- const SensitiveBlock = ({
1562
- block,
1563
- block: {
1564
- cc,
1565
- caption,
1566
- credit,
1567
- blurred_image: blurredImage
1568
- },
1569
- block: {
1570
- item: {
1571
- data: {
1572
- display
1573
- }
1574
- }
1575
- },
1576
- styleContext
1577
- }) => {
1578
- const [visible, isVisible] = React.useState(false);
1579
- const handleClick = () => {
1580
- isVisible(true);
1581
- };
1582
- let classNames = [[styles$e.root, true], [styles$e.visible, visible], [styles$e[display], display && styles$e[display]]];
1583
- let context = ['isInSensitiveBlock'];
1584
- if (styleContext) {
1585
- classNames = makeStyleContext(classNames, styleContext, styles$e);
1586
- context = [...styleContext, 'isInSensitiveBlock'];
1587
- }
1588
- return /*#__PURE__*/React.createElement("div", {
1589
- "data-testid": "sensitive-block",
1590
- className: makeClassName(classNames)
1591
- }, /*#__PURE__*/React.createElement("div", {
1592
- className: styles$e.container
1593
- }, /*#__PURE__*/React.createElement("div", {
1594
- className: styles$e.overlay,
1595
- style: {
1596
- backgroundImage: `url(${blurredImage})`
1597
- }
1598
- }, /*#__PURE__*/React.createElement("div", {
1599
- className: styles$e.content
1600
- }, /*#__PURE__*/React.createElement("p", {
1601
- dangerouslySetInnerHTML: {
1602
- __html: block.title
1603
- }
1604
- }), /*#__PURE__*/React.createElement("div", {
1605
- className: styles$e.button
1606
- }, /*#__PURE__*/React.createElement(Button, {
1607
- onClick: () => handleClick(),
1608
- theme: "light"
1609
- }, block.button.text)))), /*#__PURE__*/React.createElement("div", {
1610
- className: styles$e.media
1611
- }, /*#__PURE__*/React.createElement(EmbedBlockContainer, {
1612
- block: block.item,
1613
- styleContext: context
1614
- }))), cc && /*#__PURE__*/React.createElement("figcaption", {
1615
- className: styles$e.figcaption
1616
- }, /*#__PURE__*/React.createElement(MediaCaption, {
1617
- credit: credit,
1618
- caption: caption,
1619
- styleContext: styleContext
1620
- })));
1621
- };
1622
-
1623
- var styles$d = {"root":"GroupedBlock-module_root__MQQin","hasFigcaption":"GroupedBlock-module_hasFigcaption__Y05ed","item":"GroupedBlock-module_item__-InqF","items":"GroupedBlock-module_items__8X4js","figcaption":"GroupedBlock-module_figcaption__OE5-u","default":"GroupedBlock-module_default__Tha8f","full":"GroupedBlock-module_full__SNwyE","super_full":"GroupedBlock-module_super_full__HTA9D","mobile":"GroupedBlock-module_mobile__xqMw5","desktop":"GroupedBlock-module_desktop__Oobdp"};
1624
-
1625
- const GroupedBlock = ({
1626
- block,
1627
- block: {
1628
- only_on: onlyOn
1629
- },
1630
- styleContext
1631
- }) => {
1632
- const maxHeight = Math.min(...block.data.map(item => item.data && item.data.height || item.item && item.item.data.height));
1633
- const normalizedBoxesWidth = block.data.map(item => {
1634
- const width = item.data && item.data.width || item.item && item.item.data.heigh;
1635
- const height = item.data && item.data.height || item.item && item.item.data.heigh;
1636
- return width / (height / maxHeight);
1637
- });
1638
- const sumWidth = normalizedBoxesWidth.reduce((sum, x) => sum + x);
1639
- let classNames = [[styles$d.root, true], [styles$d[onlyOn], true], [styles$d.hasFigcaption, block.cc === 'default'], [styles$d[block.display], !!block.display && styles$d[block.display]]];
1640
- if (styleContext) {
1641
- classNames = makeStyleContext(classNames, styleContext, styles$d);
1642
- }
1643
- return /*#__PURE__*/React.createElement("div", {
1644
- "data-testid": "grouped-block",
1645
- className: makeClassName(classNames)
1646
- }, /*#__PURE__*/React.createElement("div", {
1647
- className: styles$d.items
1648
- }, block.data.map((item, index) => {
1649
- const percentWidth = normalizedBoxesWidth[index] / sumWidth * 100;
1650
- return /*#__PURE__*/React.createElement("div", {
1651
- className: styles$d.item,
1652
- key: item.id,
1653
- style: {
1654
- width: `${percentWidth}%`
1655
- }
1656
- }, item.type === 'sensitive' ? /*#__PURE__*/React.createElement(SensitiveBlock, {
1657
- block: item,
1658
- styleContext: ['isInGroupedBlock']
1659
- }) : /*#__PURE__*/React.createElement(EmbedBlockContainer, {
1660
- block: item,
1661
- styleContext: ['isInGroupedBlock']
1662
- }));
1663
- })), block.cc && /*#__PURE__*/React.createElement("figcaption", {
1664
- className: styles$d.figcaption
1665
- }, /*#__PURE__*/React.createElement(MediaCaption, {
1666
- credit: block.credit,
1667
- caption: block.caption,
1668
- styleContext: styleContext
1669
- })));
1670
- };
1671
-
1672
- var styles$c = {"root":"MetaItem-module_root__sRbrZ","hasBullets":"MetaItem-module_hasBullets__b1eW9","hasSource":"MetaItem-module_hasSource__35olm","listened":"MetaItem-module_listened__XZWFQ","read":"MetaItem-module_read__O3cUz","datetime":"MetaItem-module_datetime__--O8c"};
1673
-
1674
- const MetaItem = ({
1675
- hasSource,
1676
- type,
1677
- children,
1678
- bullets
1679
- }) => {
1680
- const classNames = [[styles$c.root, true], [styles$c[type], !!type && !!styles$c[type]], [styles$c.hasSource, !!hasSource], [styles$c.hasBullets, !!bullets]];
1681
- return /*#__PURE__*/React.createElement("div", {
1682
- "data-testid": "meta-item",
1683
- className: makeClassName(classNames)
1684
- }, children);
1685
- };
1686
-
1687
- var styles$b = {"root":"MetaItemLive-module_root__XfQiW","gold":"MetaItemLive-module_gold__f1UOy","frame":"MetaItemLive-module_frame__FHByQ","liveMiddle":"MetaItemLive-module_liveMiddle__SX4Gs","liveFirstWave":"MetaItemLive-module_liveFirstWave__QqstP","liveSecondWave":"MetaItemLive-module_liveSecondWave__hlbpt"};
1688
-
1689
- const MetaItemLive = ({
1690
- theme = 'gold'
1691
- }) => {
1692
- const classNames = [[styles$b.root, true], [styles$b[theme], !!theme && styles$b[theme]]];
1693
- return /*#__PURE__*/React.createElement("div", {
1694
- "data-testid": "meta-item-live",
1695
- "data-meta": "live",
1696
- className: makeClassName(classNames)
1697
- }, /*#__PURE__*/React.createElement("div", {
1698
- className: styles$b.frame
1699
- }));
1700
- };
1701
-
1702
- const pluralize = (number, one, two, five) => {
1703
- let n = Math.abs(number);
1704
- n %= 100;
1705
- if (n >= 5 && n <= 20) {
1706
- return five;
1707
- }
1708
- n %= 10;
1709
- if (n === 1) {
1710
- return one;
1711
- }
1712
- if (n >= 2 && n <= 4) {
1713
- return two;
1714
- }
1715
- return five;
1716
- };
1717
-
1718
- var styles$a = {"root":"DocumentItemsCount-module_root__u4M3y"};
1719
-
1720
- const DocumentItemsCount = ({
1721
- type,
1722
- lang = 'ru',
1723
- items,
1724
- children
1725
- }) => {
1726
- const i18n = {
1727
- ru: {
1728
- card: {
1729
- one: 'карточка',
1730
- two: 'карточки',
1731
- five: 'карточек'
1732
- },
1733
- podcast: {
1734
- one: 'эпизод',
1735
- two: 'эпизода',
1736
- five: 'эпизодов'
1737
- }
1738
- },
1739
- en: {
1740
- card: {
1741
- one: 'card',
1742
- two: 'cards',
1743
- five: 'cards'
1744
- },
1745
- podcast: {
1746
- one: 'episode',
1747
- two: 'episodes',
1748
- five: 'episodes'
1749
- }
1750
- }
1751
- };
1752
- const itemsCount = `${items} ${pluralize(items, i18n[lang][type].one, i18n[lang][type].two, i18n[lang][type].five)}`;
1753
- return /*#__PURE__*/React.createElement(React.Fragment, null, children, /*#__PURE__*/React.createElement("span", {
1754
- className: styles$a.root
1755
- }, itemsCount));
1756
- };
1757
-
1758
- const MetaContainer = ({
1759
- lang,
1760
- block,
1761
- isRead,
1762
- isListened,
1763
- bookmarkAction,
1764
- isInBookmarks,
1765
- block: {
1766
- data: {
1767
- components,
1768
- theme
1769
- }
1770
- },
1771
- styleContext
1772
- }) => {
1773
- const themeColor = styleContext && styleContext.indexOf('dark') !== -1 ? 'light' : 'unset';
1774
- const isPodcast = styleContext && styleContext.indexOf('podcast') !== -1;
1775
- const isSlides = styleContext && styleContext.indexOf('slide') !== -1;
1776
- let context = [];
1777
- if (styleContext && Array.isArray(styleContext)) {
1778
- context = styleContext.filter(item => {
1779
- return item !== 'dark';
1780
- });
1781
- }
1782
- const hasSource = !!components.find(item => item.type === 'source_name');
1783
- return /*#__PURE__*/React.createElement(Meta, {
1784
- styleContext: context,
1785
- theme: theme || themeColor,
1786
- onlyOn: block.only_on,
1787
- hasSource: hasSource
1788
- }, components.map(component => {
1789
- switch (component.type) {
1790
- case 'source_name':
1791
- {
1792
- return /*#__PURE__*/React.createElement(MetaItem, {
1793
- hasSource: hasSource,
1794
- bullets: true,
1795
- key: component.id
1796
- }, /*#__PURE__*/React.createElement(React.Fragment, null, lang === 'ru' ? 'Источник: ' : 'Source: ', component.url && /*#__PURE__*/React.createElement("a", {
1797
- href: component.url,
1798
- rel: "noopener noreferrer",
1799
- target: "_blank"
1800
- }, component.text), !component.url && component.text));
1801
- }
1802
- case 'duration':
1803
- {
1804
- return /*#__PURE__*/React.createElement(MetaItem, {
1805
- hasSource: hasSource,
1806
- bullets: true,
1807
- key: component.id
1808
- }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(SvgSymbol, {
1809
- icon: "podcast",
1810
- size: "small"
1811
- }), component.text));
1812
- }
1813
- case 'datetime':
1814
- {
1815
- const format = component.format && toCamel(component.format) || 'date';
1816
- return /*#__PURE__*/React.createElement(MetaItem, {
1817
- hasSource: hasSource,
1818
- bullets: true,
1819
- key: component.id,
1820
- type: "datetime"
1821
- }, /*#__PURE__*/React.createElement(Timestamp, {
1822
- publishedAt: component.datetime,
1823
- type: format || 'date',
1824
- locale: lang
1825
- }));
1826
- }
1827
- case 'items_count':
1828
- {
1829
- return /*#__PURE__*/React.createElement(MetaItem, {
1830
- hasSource: hasSource,
1831
- bullets: true,
1832
- key: component.id
1833
- }, /*#__PURE__*/React.createElement(DocumentItemsCount, {
1834
- items: component.count,
1835
- type: isPodcast ? 'podcast' : 'card',
1836
- lang: lang
1837
- }, /*#__PURE__*/React.createElement(SvgSymbol, {
1838
- icon: "card",
1839
- size: "unset"
1840
- })));
1841
- }
1842
- case 'broadcast_active':
1843
- {
1844
- return /*#__PURE__*/React.createElement(MetaItem, {
1845
- hasSource: hasSource,
1846
- bullets: true,
1847
- key: component.id
1848
- }, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MetaItemLive, null), " \u041F\u0440\u044F\u043C\u043E\u0439 \u044D\u0444\u0438\u0440"));
1849
- }
1850
- case 'broadcast':
1851
- {
1852
- return /*#__PURE__*/React.createElement(MetaItem, {
1853
- hasSource: hasSource,
1854
- bullets: true,
1855
- key: component.id
1856
- }, /*#__PURE__*/React.createElement(React.Fragment, null, component.with_icon && /*#__PURE__*/React.createElement(MetaItemLive, null), component.label));
1857
- }
1858
- case 'string':
1859
- {
1860
- return /*#__PURE__*/React.createElement(MetaItem, {
1861
- bullets: true,
1862
- key: component.id
1863
- }, component.text);
1864
- }
1865
- default:
1866
- {
1867
- return null;
1868
- }
1869
- }
1870
- }), (isRead || isListened) && /*#__PURE__*/React.createElement(MetaItem, {
1871
- hasSource: hasSource,
1872
- bullets: true,
1873
- type: isListened ? 'listened' : 'read'
1874
- }, /*#__PURE__*/React.createElement(SvgSymbol, {
1875
- icon: isListened ? 'listened' : 'read',
1876
- size: "unset"
1877
- })), isSlides && lang === 'ru' && /*#__PURE__*/React.createElement("div", {
1878
- className: styles$q.bookmark
1879
- }, /*#__PURE__*/React.createElement(BookmarkButton, {
1880
- isInBookmarks: isInBookmarks,
1881
- onClick: () => bookmarkAction('bookmark', 'top')
1882
- })));
1883
- };
1884
-
1885
- var styles$9 = {"root":"DonatesTeaser-module_root__XQCVy","main":"DonatesTeaser-module_main__eN9kd","title":"DonatesTeaser-module_title__9umo1","text":"DonatesTeaser-module_text__s6tyf","cta":"DonatesTeaser-module_cta__-50aB","center":"DonatesTeaser-module_center__gxLvW","isInCard":"DonatesTeaser-module_isInCard__vaUhd","isInSlide":"DonatesTeaser-module_isInSlide__Dh4NH","ru":"DonatesTeaser-module_ru__y-PlJ","en":"DonatesTeaser-module_en__0Iisr"};
1886
-
1887
- const DonatesTeaser = ({
1888
- styleContext,
1889
- lang = 'ru'
1890
- }) => {
1891
- let classNames = [[styles$9.root, true], [styles$9[lang], styles$9[lang]]];
1892
- if (styleContext) {
1893
- classNames = makeStyleContext(classNames, styleContext, styles$9);
1894
- }
1895
- const data = {
1896
- ru: {
1897
- title: '«Медуза». Работаем 24/7. И&nbsp;только&nbsp;в&nbsp;интересах читателей',
1898
- subtitle: 'Нам срочно нужна ваша поддержка',
1899
- button: 'Хочу помочь',
1900
- href: 'https://support.meduza.io/'
1901
- },
1902
- en: {
1903
- title: 'Meduza, working 24/7, always&nbsp;for our readers',
1904
- subtitle: 'We&nbsp;need&nbsp;your&nbsp;help like never&nbsp;before',
1905
- button: 'Okay!',
1906
- href: 'https://support.meduza.io/en'
1907
- }
1908
- };
1909
- return /*#__PURE__*/React.createElement("div", {
1910
- "data-testid": "donates-teaser",
1911
- className: makeClassName(classNames)
1912
- }, /*#__PURE__*/React.createElement("div", {
1913
- className: styles$9.main
1914
- }, /*#__PURE__*/React.createElement("h3", {
1915
- className: styles$9.title
1916
- }, /*#__PURE__*/React.createElement("span", {
1917
- dangerouslySetInnerHTML: {
1918
- __html: data[lang].title
1919
- }
1920
- }), ` `, /*#__PURE__*/React.createElement("span", {
1921
- className: styles$9.text,
1922
- dangerouslySetInnerHTML: {
1923
- __html: data[lang].subtitle
1924
- }
1925
- }))), /*#__PURE__*/React.createElement("div", {
1926
- className: styles$9.cta
1927
- }, /*#__PURE__*/React.createElement("a", {
1928
- href: data[lang].href,
1929
- target: "_blank",
1930
- rel: "noreferrer"
1931
- }, /*#__PURE__*/React.createElement("span", null, data[lang].button))));
1932
- };
1933
-
1934
- var styles$8 = {"root":"AnnouncementInText-module_root__C4-Oo","body":"AnnouncementInText-module_body__lZy-L","title":"AnnouncementInText-module_title__cb6i1","footer":"AnnouncementInText-module_footer__jRk9p","button":"AnnouncementInText-module_button__JuT-E","link":"AnnouncementInText-module_link__C0YxL","center":"AnnouncementInText-module_center__1DJjd","isInCard":"AnnouncementInText-module_isInCard__jIqpa","isInSlide":"AnnouncementInText-module_isInSlide__BWO-A","ru":"AnnouncementInText-module_ru__QHQad","en":"AnnouncementInText-module_en__r0PvM"};
1935
-
1936
- const AnnouncementInText = ({
1937
- styleContext,
1938
- lang = 'ru'
1939
- }) => {
1940
- let classNames = [[styles$8.root, true], [styles$8[lang], styles$8[lang]]];
1941
- if (styleContext) {
1942
- classNames = makeStyleContext(classNames, styleContext, styles$8);
1943
- }
1944
- const data = {
1945
- ru: {
1946
- title: '&laquo;Медуза&raquo; заблокирована в&nbsp;России. Мы&nbsp;были к&nbsp;этому готовы&nbsp;&mdash; и&nbsp;продолжаем работать. Несмотря&nbsp;ни&nbsp;на&nbsp;что',
1947
- text: '<p>Нам нужна ваша помощь как никогда. Прямо сейчас. Дальше всем нам будет еще труднее. Мы&nbsp;независимое издание и&nbsp;работаем только в&nbsp;интересах читателей.</p>',
1948
- button: 'Хочу помочь',
1949
- href: 'https://mdza.io/yiNxPZ7Bs-k'
1950
- },
1951
- en: {
1952
- title: 'Meduza has been blocked in Russia. We&nbsp;were ready for this and our work continues, no matter what, but we need your support like never before. ',
1953
- text: '<p>We need it now. Tomorrow could be too late. We are an independent publication, and we work only in the interests of our readers. Many&nbsp;of&nbsp;our&nbsp;readers in Russia can no longer contribute, so we turn to you, our audience around the world.</p>',
1954
- button: 'I want to help',
1955
- href: 'https://support.meduza.io/en'
1956
- }
1957
- };
1958
- const localeData = data[lang];
1959
- return /*#__PURE__*/React.createElement("div", {
1960
- "data-testid": "announcement-in-text",
1961
- className: makeClassName(classNames)
1962
- }, /*#__PURE__*/React.createElement("div", {
1963
- className: styles$8.body
1964
- }, /*#__PURE__*/React.createElement("h3", {
1965
- className: styles$8.title,
1966
- dangerouslySetInnerHTML: {
1967
- __html: localeData.title
1968
- }
1969
- }), /*#__PURE__*/React.createElement("div", {
1970
- dangerouslySetInnerHTML: {
1971
- __html: localeData.text
1972
- }
1973
- })), /*#__PURE__*/React.createElement("div", {
1974
- className: styles$8.footer
1975
- }, /*#__PURE__*/React.createElement("a", {
1976
- className: styles$8.link,
1977
- href: localeData.href,
1978
- target: "_blank",
1979
- rel: "noreferrer"
1980
- }, /*#__PURE__*/React.createElement("span", null, localeData.button)), /*#__PURE__*/React.createElement("span", {
1981
- className: styles$8.button
1982
- }, /*#__PURE__*/React.createElement("span", null, localeData.button))));
1983
- };
1984
-
1985
- var styles$7 = {"root":"RelatedBook-module_root__QsOmA","container":"RelatedBook-module_container__vdDiZ","imageWrap":"RelatedBook-module_imageWrap__WmwnE","image":"RelatedBook-module_image__U1e5t","picture":"RelatedBook-module_picture__NXg-K","tag":"RelatedBook-module_tag__mSbbz","contentWrap":"RelatedBook-module_contentWrap__HIGRi","content":"RelatedBook-module_content__23Pfr","title":"RelatedBook-module_title__VRbr-","footer":"RelatedBook-module_footer__Z05t-","center":"RelatedBook-module_center__Fa6cj","isLight":"RelatedBook-module_isLight__W-0TO","isDark":"RelatedBook-module_isDark__0mrtK"};
1986
-
1987
- const RelatedBook = ({
1988
- block,
1989
- styleContext
1990
- }) => {
1991
- const theme = block.data.theme.text_color === '0,0,0' ? 'isDark' : 'isLight';
1992
- let classNames = [[styles$7.root, true], [styles$7[theme], theme], [styles$7[block.data.onlyOn], !!block.data.onlyOn && !!styles$7[block.data.onlyOn]]];
1993
- if (styleContext) {
1994
- classNames = makeStyleContext(classNames, styleContext, styles$7);
1995
- }
1996
- const cssProps = {
1997
- '--bgColor': `rgb(${block.data.theme.background_color || '0, 0, 0'})`
1998
- };
1999
- return /*#__PURE__*/React.createElement(reactRouterDom.Link, {
2000
- to: `/${block.data.url}`,
2001
- className: makeClassName(classNames),
2002
- style: cssProps
2003
- }, /*#__PURE__*/React.createElement("div", {
2004
- className: styles$7.container
2005
- }, /*#__PURE__*/React.createElement("div", {
2006
- className: styles$7.imageWrap
2007
- }, /*#__PURE__*/React.createElement("div", {
2008
- className: styles$7.image
2009
- }, /*#__PURE__*/React.createElement("picture", {
2010
- className: styles$7.picture
2011
- }, /*#__PURE__*/React.createElement(Image, {
2012
- optimized: block.data.cover.urls,
2013
- ratio: 0,
2014
- display: "narrow",
2015
- styleContext: ['isStatic'],
2016
- lazy: true
2017
- })))), /*#__PURE__*/React.createElement("div", {
2018
- className: styles$7.contentWrap
2019
- }, /*#__PURE__*/React.createElement("div", {
2020
- className: styles$7.content
2021
- }, block.data.blocks.map(item => /*#__PURE__*/React.createElement(RenderBlocks, {
2022
- key: item.id,
2023
- block: item,
2024
- styleContext: ['isInMediaBlock', 'isInBookRelated', 'isCustom']
2025
- }))))));
2026
- };
2027
-
2028
- const RenderBlocks = ({
2029
- block,
2030
- styleContext,
2031
- lang,
2032
- isRead,
2033
- isListened,
2034
- bookmarkAction,
2035
- isInBookmarks
2036
- }) => {
2037
- switch (block.type) {
2038
- case 'tag':
2039
- {
2040
- return /*#__PURE__*/React.createElement(Tag, {
2041
- size: "large",
2042
- onlyOn: block.only_on,
2043
- theme: block.data.theme,
2044
- styleContext: styleContext
2045
- }, block.data.text);
2046
- }
2047
- case 'simple_title':
2048
- {
2049
- return /*#__PURE__*/React.createElement(SimpleTitle, {
2050
- block: block,
2051
- styleContext: styleContext
2052
- });
2053
- }
2054
- case 'rich_title':
2055
- {
2056
- return /*#__PURE__*/React.createElement(RichTitle, {
2057
- block: block,
2058
- styleContext: styleContext
2059
- });
2060
- }
2061
- case 'meta':
2062
- {
2063
- return /*#__PURE__*/React.createElement(MetaContainer, {
2064
- block: block,
2065
- lang: block.data.lang,
2066
- styleContext: styleContext,
2067
- isRead: isRead,
2068
- isListened: isListened,
2069
- isInBookmarks: isInBookmarks,
2070
- bookmarkAction: bookmarkAction
2071
- });
2072
- }
2073
- case 'h1':
2074
- case 'h2':
2075
- case 'h3':
2076
- case 'h4':
2077
- case 'blockquote':
2078
- case 'p':
2079
- case 'context_p':
2080
- case 'divider':
2081
- case 'lead':
2082
- case 'lead_hr':
2083
- {
2084
- return /*#__PURE__*/React.createElement(SimpleBlock, {
2085
- block: block,
2086
- styleContext: styleContext
2087
- });
2088
- }
2089
- case 'quote':
2090
- return /*#__PURE__*/React.createElement(QuoteBlock, {
2091
- block: block,
2092
- styleContext: styleContext
2093
- });
2094
- case 'ol':
2095
- case 'ul':
2096
- {
2097
- return /*#__PURE__*/React.createElement(ListBlock, {
2098
- block: block,
2099
- styleContext: styleContext
2100
- });
2101
- }
2102
- case 'chapter-subtitle':
2103
- {
2104
- return /*#__PURE__*/React.createElement(ChapterBlock, {
2105
- block: block,
2106
- styleContext: styleContext
2107
- });
2108
- }
2109
- case 'card_title':
2110
- {
2111
- return /*#__PURE__*/React.createElement(CardTitle, {
2112
- block: block,
2113
- styleContext: styleContext
2114
- });
2115
- }
2116
- case 'related':
2117
- {
2118
- return /*#__PURE__*/React.createElement(RelatedBlock, {
2119
- block: block,
2120
- styleContext: styleContext
2121
- });
2122
- }
2123
- case 'related_book':
2124
- {
2125
- return /*#__PURE__*/React.createElement(RelatedBook, {
2126
- block: block,
2127
- styleContext: styleContext
2128
- });
2129
- }
2130
- case 'source':
2131
- return /*#__PURE__*/React.createElement(SourceBlock, {
2132
- block: block,
2133
- styleContext: styleContext
2134
- });
2135
- case 'table':
2136
- return /*#__PURE__*/React.createElement(Table, {
2137
- block: block,
2138
- styleContext: styleContext
2139
- });
2140
- case 'sensitive':
2141
- return /*#__PURE__*/React.createElement(SensitiveBlock, {
2142
- block: block,
2143
- styleContext: styleContext
2144
- });
2145
- case 'embed':
2146
- case 'embed_code':
2147
- case 'game_embed':
2148
- case 'image':
2149
- case 'dots_on_image':
2150
- case 'gif':
2151
- return /*#__PURE__*/React.createElement(EmbedBlockContainer, {
2152
- block: block,
2153
- styleContext: styleContext,
2154
- lang: lang
2155
- });
2156
- case 'grouped':
2157
- return /*#__PURE__*/React.createElement(GroupedBlock, {
2158
- block: block,
2159
- styleContext: styleContext
2160
- });
2161
- case 'donation':
2162
- return /*#__PURE__*/React.createElement(DonatesTeaser, {
2163
- styleContext: styleContext,
2164
- lang: lang
2165
- });
2166
- case 'material_note':
2167
- return /*#__PURE__*/React.createElement(MaterialNote, {
2168
- block: block,
2169
- styleContext: styleContext
2170
- });
2171
- case 'announcement_in_text':
2172
- return /*#__PURE__*/React.createElement(AnnouncementInText, {
2173
- styleContext: styleContext,
2174
- lang: lang
2175
- });
2176
- default:
2177
- {
2178
- return null;
2179
- }
2180
- }
2181
- };
2182
-
2183
- var styles$6 = {"root":"Cover-module_root__3pscq","body":"Cover-module_body__eJpUI","image":"Cover-module_image__frrrH","rich":"Cover-module_rich__YcxWa","dark":"Cover-module_dark__cRucL","light":"Cover-module_light__la-sk","control":"Cover-module_control__WP0G3","isInDynamicBlock":"Cover-module_isInDynamicBlock__qO-yt","mobile":"Cover-module_mobile__aotep","desktop":"Cover-module_desktop__dfbC-"};
2184
-
2185
- const Cover = ({
2186
- block: {
2187
- only_on: onlyOn,
2188
- data: {
2189
- blocks,
2190
- cover: {
2191
- credit,
2192
- caption,
2193
- urls,
2194
- mobile_ratio: mobileRatio,
2195
- gradients,
2196
- cc
2197
- }
2198
- }
2199
- },
2200
- styleContext
2201
- }) => {
2202
- const [isPopoverShown, setIsPopoverShown] = React.useState(false);
2203
- const style = {};
2204
- let classNames = [[styles$6.root, true], [styles$6[onlyOn], !!onlyOn && !!styles$6[onlyOn]]];
2205
- if (styleContext) {
2206
- classNames = makeStyleContext(classNames, styleContext, styles$6);
2207
- }
2208
- if (gradients) {
2209
- const theme = [gradients.text_rgb === '0,0,0' ? 'dark' : 'light'];
2210
- classNames = makeStyleContext(classNames, theme, styles$6);
2211
- style.backgroundImage = generateGradient(gradients.bg_rgb, 'mediaBlockBottom');
2212
- }
2213
- const renderCC = context => /*#__PURE__*/React.createElement(MediaCaption, {
2214
- credit: credit,
2215
- caption: caption,
2216
- styleContext: context || styleContext
2217
- });
2218
- return /*#__PURE__*/React.createElement("div", {
2219
- "data-testid": "cover",
2220
- className: makeClassName(classNames)
2221
- }, /*#__PURE__*/React.createElement("div", {
2222
- className: styles$6.image
2223
- }, /*#__PURE__*/React.createElement(Image, {
2224
- optimized: urls,
2225
- ratio: mobileRatio,
2226
- display: "narrow",
2227
- lazy: true
2228
- })), /*#__PURE__*/React.createElement("div", {
2229
- className: styles$6.body,
2230
- style: style
2231
- }, blocks.map(item => /*#__PURE__*/React.createElement(RenderBlocks, {
2232
- key: item.id,
2233
- block: item,
2234
- styleContext: styleContext
2235
- }))), cc === 'button' && /*#__PURE__*/React.createElement("button", {
2236
- className: styles$6.control,
2237
- type: "button",
2238
- "aria-label": "Open",
2239
- onClick: () => {
2240
- setIsPopoverShown(!isPopoverShown);
2241
- }
2242
- }), cc === 'button' && isPopoverShown && /*#__PURE__*/React.createElement(Popover, {
2243
- onClose: () => {
2244
- setIsPopoverShown(false);
2245
- }
2246
- }, renderCC('isInPopover')));
2247
- };
2248
-
2249
- var styles$5 = {"root":"HalfBlock-module_root__EXQbz","main":"HalfBlock-module_main__eIcRo","body":"HalfBlock-module_body__HPhGj","footer":"HalfBlock-module_footer__TFfCQ","image":"HalfBlock-module_image__XWLbK","mobile":"HalfBlock-module_mobile__uGGpm","desktop":"HalfBlock-module_desktop__p-hAq"};
2250
-
2251
- const HalfBlock = ({
2252
- block: {
2253
- only_on: onlyOn,
2254
- data,
2255
- data: {
2256
- cover: {
2257
- optimized,
2258
- ratio,
2259
- credit,
2260
- caption
2261
- }
2262
- }
2263
- },
2264
- styleContext
2265
- }) => {
2266
- let classNames = [[styles$5.root, true], [styles$5[onlyOn], true]];
2267
- if (styleContext) {
2268
- classNames = makeStyleContext(classNames, styleContext, styles$5);
2269
- }
2270
- return /*#__PURE__*/React.createElement("div", {
2271
- "data-testid": "half-block",
2272
- className: makeClassName(classNames)
2273
- }, /*#__PURE__*/React.createElement("div", {
2274
- className: styles$5.main
2275
- }, /*#__PURE__*/React.createElement("div", {
2276
- className: styles$5.image
2277
- }, /*#__PURE__*/React.createElement(Image, {
2278
- optimized: optimized,
2279
- ratio: ratio,
2280
- display: "super_full"
2281
- })), /*#__PURE__*/React.createElement("div", {
2282
- className: styles$5.body
2283
- }, data.blocks.map(item => /*#__PURE__*/React.createElement(RenderBlocks, {
2284
- key: item.id,
2285
- block: item,
2286
- styleContext: ['rich']
2287
- })))), /*#__PURE__*/React.createElement("div", {
2288
- className: styles$5.footer
2289
- }, /*#__PURE__*/React.createElement(MediaCaption, {
2290
- credit: credit,
2291
- caption: caption,
2292
- styleContext: styleContext
2293
- })));
2294
- };
2295
-
2296
- var styles$4 = {"root":"ImportantLead-module_root__-rnt6","slide":"ImportantLead-module_slide__zcovu","mobile":"ImportantLead-module_mobile__msInp","desktop":"ImportantLead-module_desktop__ELC2-"};
2297
-
2298
- const ImportantLead = ({
2299
- block: {
2300
- only_on: onlyOn,
2301
- data
2302
- },
2303
- styleContext
2304
- }) => {
2305
- let classNames = [[styles$4.root, true], [styles$4[onlyOn], !!onlyOn]];
2306
- if (styleContext) {
2307
- classNames = makeStyleContext(classNames, styleContext, styles$4);
2308
- }
2309
- return /*#__PURE__*/React.createElement("div", {
2310
- "data-testid": "important-lead",
2311
- className: makeClassName(classNames)
2312
- }, data.map(item => /*#__PURE__*/React.createElement(RenderBlocks, {
2313
- key: item.id,
2314
- block: item,
2315
- styleContext: "isInImportantLead"
2316
- })));
2317
- };
2318
-
2319
- var styles$3 = {"root":"Spoiler-module_root__fAbb9","header":"Spoiler-module_header__iEKsQ","body":"Spoiler-module_body__jjqIn","spoiled":"Spoiler-module_spoiled__ENI93","footer":"Spoiler-module_footer__g21Zn","spoilerSticky":"Spoiler-module_spoilerSticky__YTiyF","spoilerStickyBg":"Spoiler-module_spoilerStickyBg__tmDnG","center":"Spoiler-module_center__0XCWo","full":"Spoiler-module_full__FtKDT","default":"Spoiler-module_default__wvlKw","mobile":"Spoiler-module_mobile__PWCMW","desktop":"Spoiler-module_desktop__qTakd"};
2320
-
2321
- const Spoiler = ({
2322
- block: {
2323
- display,
2324
- button,
2325
- only_on: onlyOn,
2326
- btn_title: buttonTitle,
2327
- title,
2328
- blocks
2329
- },
2330
- styleContext
2331
- }) => {
2332
- const [spoiled, setSpoiled] = React.useState(false);
2333
- const ref = React.useRef(null);
2334
- const handleButtonClick = () => {
2335
- setSpoiled(!spoiled);
2336
- if (spoiled) {
2337
- postMessage('', 'closeSpoiler', 'click');
2338
- const rect = ref.current.getBoundingClientRect();
2339
- if (rect.top < 0) {
2340
- ref.current.scrollIntoView({
2341
- behavior: 'smooth'
2342
- });
2343
- }
2344
- } else {
2345
- postMessage('', 'openSpoiler', 'click');
2346
- }
2347
- };
2348
- let classNames = [[styles$3.root, true], [styles$3[onlyOn], !!onlyOn], [styles$3[display], !!display && styles$3[display]], [[styles$3.spoiled], !!spoiled]];
2349
- const context = ['center'];
2350
- if (styleContext) {
2351
- context.concat(styleContext);
2352
- classNames = makeStyleContext(classNames, styleContext, styles$3);
2353
- }
2354
- const buttonCollapse = button ? button.collapse : 'Свернуть';
2355
- const buttonExpande = button ? button.expand : buttonTitle;
2356
- return /*#__PURE__*/React.createElement("div", {
2357
- ref: ref,
2358
- className: makeClassName(classNames),
2359
- "data-testid": "spoiler"
2360
- }, /*#__PURE__*/React.createElement("div", {
2361
- className: styles$3.header
2362
- }, title && /*#__PURE__*/React.createElement("h3", null, title)), /*#__PURE__*/React.createElement("div", {
2363
- className: styles$3.body
2364
- }, blocks.map(item => /*#__PURE__*/React.createElement(RenderBlocks, {
2365
- key: item.id,
2366
- block: item,
2367
- styleContext: context
2368
- }))), /*#__PURE__*/React.createElement("div", {
2369
- className: styles$3.footer
2370
- }, /*#__PURE__*/React.createElement(Button, {
2371
- size: "default",
2372
- theme: "gray",
2373
- onClick: () => handleButtonClick(),
2374
- styleContext: "isInSpoiler"
2375
- }, spoiled ? buttonCollapse : buttonExpande, /*#__PURE__*/React.createElement(SvgSymbol, {
2376
- icon: "arrow"
2377
- }))));
2378
- };
2379
-
2380
- var styles$2 = {"root":"RelatedRichBlock-module_root__-SEe7","wrapper":"RelatedRichBlock-module_wrapper__YkEpr","overlay":"RelatedRichBlock-module_overlay__tWuyR","overlayHeader":"RelatedRichBlock-module_overlayHeader__V3ynX","body":"RelatedRichBlock-module_body__XhS0U","isRich":"RelatedRichBlock-module_isRich__Z2kQ8","hasGradient":"RelatedRichBlock-module_hasGradient__s5Krh","picture":"RelatedRichBlock-module_picture__OmRKx","isCard":"RelatedRichBlock-module_isCard__wkMw-","cover":"RelatedRichBlock-module_cover__3gnIx","tag":"RelatedRichBlock-module_tag__c18sv","center":"RelatedRichBlock-module_center__KANd-","dark":"RelatedRichBlock-module_dark__cnk4R","light":"RelatedRichBlock-module_light__aJLn7","mobile":"RelatedRichBlock-module_mobile__N-G4U","desktop":"RelatedRichBlock-module_desktop__EaPOr"};
2381
-
2382
- /* eslint-disable react/jsx-no-target-blank */
2383
- const RelatedRichBlock = ({
2384
- block: {
2385
- only_on: onlyOn,
2386
- data: {
2387
- blocks,
2388
- url,
2389
- cover: {
2390
- urls,
2391
- gradients,
2392
- tag,
2393
- layout,
2394
- ratio
2395
- }
2396
- }
2397
- },
2398
- styleContext
2399
- }) => {
2400
- const style = {};
2401
- const styleHeader = {};
2402
- const cardType = `is${toCapitalize(layout)}`;
2403
- const [ref, inView] = reactIntersectionObserver.useInView({
2404
- threshold: 0,
2405
- triggerOnce: true
2406
- });
2407
- React.useEffect(() => {
2408
- if (inView) {
2409
- if (onlyOn === 'mobile' && window.innerWidth <= 511 || onlyOn === 'desktop' && window.innerWidth >= 512 || !onlyOn) {
2410
- postMessage('richRelated', url, 'view');
2411
- }
2412
- }
2413
- }, [inView]);
2414
- const handleClick = () => {
2415
- postMessage('richRelated', url, 'click');
2416
- };
2417
- let classNames = [[styles$2.root, true], [styles$2[cardType], !!layout && !!styles$2[cardType]], [styles$2.hasGradient, !!gradients], [styles$2[onlyOn], !!onlyOn && !!styles$2[onlyOn]]];
2418
- let context = ['isInMediaBlock'];
2419
- if (styleContext) {
2420
- classNames = makeStyleContext(classNames, styleContext, styles$2);
2421
- context = [...styleContext, 'isInMediaBlock'];
2422
- }
2423
- if (gradients) {
2424
- styleHeader.backgroundImage = generateGradient(gradients.bg_rgb, 'mediaBlockTop');
2425
- const theme = [gradients.text_rgb === '0,0,0' ? 'dark' : 'light'];
2426
- classNames = makeStyleContext(classNames, theme, styles$2);
2427
- if (onlyOn === 'desktop') {
2428
- style.backgroundImage = generateGradient(gradients.bg_rgb, 'mediaBlockBottom');
2429
- }
2430
- }
2431
- return /*#__PURE__*/React.createElement(reactRouterDom.Link, {
2432
- "data-testid": "related-rich-block",
2433
- className: makeClassName(classNames),
2434
- to: `/${url}`,
2435
- onClick: () => handleClick(),
2436
- ref: ref
2437
- }, layout === 'rich' && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
2438
- className: styles$2.overlay,
2439
- style: style
2440
- }), /*#__PURE__*/React.createElement("div", {
2441
- className: styles$2.overlayHeader,
2442
- style: styleHeader
2443
- })), /*#__PURE__*/React.createElement("div", {
2444
- className: styles$2.tag
2445
- }, /*#__PURE__*/React.createElement(Tag, {
2446
- size: "small",
2447
- theme: "inherit",
2448
- styleContext: "richRelated"
2449
- }, tag)), /*#__PURE__*/React.createElement("div", {
2450
- className: styles$2.cover
2451
- }, /*#__PURE__*/React.createElement("div", {
2452
- className: styles$2.picture
2453
- }, /*#__PURE__*/React.createElement(Image, {
2454
- optimized: urls,
2455
- ratio: ratio,
2456
- display: "narrow"
2457
- }))), /*#__PURE__*/React.createElement("div", {
2458
- className: styles$2.body
2459
- }, blocks.map(item => /*#__PURE__*/React.createElement(RenderBlocks, {
2460
- key: item.id,
2461
- block: item,
2462
- styleContext: context
2463
- }))));
2464
- };
2465
-
2466
- const RawHtmlBlock = ({
2467
- block,
2468
- styleContext,
2469
- isRead,
2470
- isListened,
2471
- isInBookmarks,
2472
- bookmarkAction,
2473
- lightBox,
2474
- lang
2475
- }) => {
2476
- const context = {
2477
- lightBox: lightBox || null
2478
- };
2479
- switch (block.type) {
2480
- case 'important_lead':
2481
- {
2482
- return /*#__PURE__*/React.createElement(ImportantLead, {
2483
- block: block,
2484
- styleContext: styleContext
2485
- });
2486
- }
2487
- case 'spoiler':
2488
- {
2489
- return /*#__PURE__*/React.createElement(BlockProvider, {
2490
- value: context
2491
- }, /*#__PURE__*/React.createElement(Spoiler, {
2492
- block: block,
2493
- styleContext: styleContext
2494
- }));
2495
- }
2496
- case 'cover':
2497
- {
2498
- return /*#__PURE__*/React.createElement(Cover, {
2499
- block: block,
2500
- styleContext: styleContext
2501
- });
2502
- }
2503
- case 'half':
2504
- {
2505
- return /*#__PURE__*/React.createElement(HalfBlock, {
2506
- block: block,
2507
- styleContext: styleContext
2508
- });
2509
- }
2510
- case 'related_rich':
2511
- {
2512
- return /*#__PURE__*/React.createElement(RelatedRichBlock, {
2513
- block: block,
2514
- styleContext: styleContext
2515
- });
2516
- }
2517
- default:
2518
- {
2519
- return /*#__PURE__*/React.createElement(BlockProvider, {
2520
- value: context
2521
- }, /*#__PURE__*/React.createElement(RenderBlocks, {
2522
- block: block,
2523
- styleContext: styleContext,
2524
- isRead: isRead,
2525
- isListened: isListened,
2526
- isInBookmarks: isInBookmarks,
2527
- bookmarkAction: bookmarkAction,
2528
- lang: lang
2529
- }));
2530
- }
2531
- }
2532
- };
2533
-
2534
- var styles$1 = {"root":"ToolbarButton-module_root__upsEH","isDark":"ToolbarButton-module_isDark__gWpv-","dark":"ToolbarButton-module_dark__5XOEp","bookmark":"ToolbarButton-module_bookmark__7SWkm","isActive":"ToolbarButton-module_isActive__N4kkV","icon":"ToolbarButton-module_icon__Ldcgq","text":"ToolbarButton-module_text__4R2a0"};
2535
-
2536
- const ToolbarButton = ({
2537
- type,
2538
- theme,
2539
- isActive,
2540
- lang = 'ru',
2541
- text,
2542
- icon,
2543
- onClick
2544
- }) => {
2545
- const classNames = [[styles$1.root, true], [styles$1[type], !!styles$1[type]], [styles$1[theme], !!styles$1[theme] && !!theme], [styles$1.isActive, !!isActive]];
2546
- const label = SocialLabels[lang][type];
2547
- return /*#__PURE__*/React.createElement("button", {
2548
- "data-testid": "toolbar-button",
2549
- className: makeClassName(classNames),
2550
- type: "button",
2551
- onClick: event => onClick(event, type)
2552
- }, icon && /*#__PURE__*/React.createElement("div", {
2553
- className: styles$1.icon
2554
- }, /*#__PURE__*/React.createElement(SvgSymbol, {
2555
- size: "medium",
2556
- icon: icon,
2557
- styleContext: "isInToolbar"
2558
- })), /*#__PURE__*/React.createElement("span", {
2559
- className: styles$1.text
2560
- }, text || label));
2561
- };
2562
-
2563
- var styles = {"root":"Tooltip-module_root__xK21R","isCenterBottom":"Tooltip-module_isCenterBottom__-qv7D","isLeftBottom":"Tooltip-module_isLeftBottom__0-f5z","isCenterTop":"Tooltip-module_isCenterTop__xQ3Ql","isLeftTop":"Tooltip-module_isLeftTop__yjKrV","body":"Tooltip-module_body__5qgzu","footer":"Tooltip-module_footer__swU9S"};
2564
-
2565
- const capitalizeFirstLetter = string => string.charAt(0).toUpperCase() + string.slice(1);
2566
-
2567
- const Tooltip = ({
2568
- children,
2569
- position
2570
- }) => {
2571
- const [x, y] = position;
2572
- const positionClass = `is${capitalizeFirstLetter(x)}${capitalizeFirstLetter(y)}`;
2573
- return /*#__PURE__*/React.createElement("div", {
2574
- className: makeClassName([[styles.root, true], [styles[positionClass], true]])
2575
- }, /*#__PURE__*/React.createElement("div", {
2576
- className: styles.body
2577
- }, children));
2578
- };
2579
-
2580
- const TooltipFooter = ({
2581
- children
2582
- }) => {
2583
- return /*#__PURE__*/React.createElement("div", {
2584
- className: styles.footer
2585
- }, children);
2586
- };
2587
-
2588
- exports.AnnouncementInText = AnnouncementInText;
2589
- exports.BookmarkButton = BookmarkButton;
2590
- exports.Button = Button;
2591
- exports.ButtonLoader = ButtonLoader;
2592
- exports.CardTitle = CardTitle;
2593
- exports.ChapterBlock = ChapterBlock;
2594
- exports.Cover = Cover;
2595
- exports.DocumentItemsCount = DocumentItemsCount;
2596
- exports.DonatesTeaser = DonatesTeaser;
2597
- exports.DotsOnImage = DotsOnImage;
2598
- exports.Dropdown = Dropdown;
2599
- exports.EmbedBlockContainer = EmbedBlockContainer;
2600
- exports.Footnote = Footnote;
2601
- exports.GroupedBlock = GroupedBlock;
2602
- exports.HalfBlock = HalfBlock;
2603
- exports.Image = Image;
2604
- exports.ImportantLead = ImportantLead;
2605
- exports.Lazy = Lazy;
2606
- exports.ListBlock = ListBlock;
2607
- exports.MaterialNote = MaterialNote;
2608
- exports.MaterialTitle = MaterialTitle;
2609
- exports.MediaCaption = MediaCaption;
2610
- exports.Menu = Menu;
2611
- exports.Meta = Meta;
2612
- exports.MetaItem = MetaItem;
2613
- exports.MetaItemLive = MetaItemLive;
2614
- exports.Popover = Popover;
2615
- exports.Primary = Primary;
2616
- exports.QuoteBlock = QuoteBlock;
2617
- exports.RawHtmlBlock = RawHtmlBlock;
2618
- exports.RelatedBlock = RelatedBlock;
2619
- exports.RelatedBook = RelatedBook;
2620
- exports.RelatedRichBlock = RelatedRichBlock;
2621
- exports.RenderBlocks = RenderBlocks;
2622
- exports.RichTitle = RichTitle;
2623
- exports.Secondary = Secondary;
2624
- exports.SensitiveBlock = SensitiveBlock;
2625
- exports.SimpleBlock = SimpleBlock;
2626
- exports.SimpleTitle = SimpleTitle;
2627
- exports.SourceBlock = SourceBlock;
2628
- exports.Spoiler = Spoiler;
2629
- exports.SvgSymbol = SvgSymbol;
2630
- exports.Switcher = Switcher;
2631
- exports.Table = Table;
2632
- exports.Tag = Tag;
2633
- exports.Timestamp = Timestamp;
2634
- exports.Toolbar = Toolbar;
2635
- exports.ToolbarButton = ToolbarButton;
2636
- exports.ToolbarItem = ToolbarItem;
2637
- exports.Tooltip = Tooltip;
2638
- exports.TooltipFooter = TooltipFooter;
2639
- //# sourceMappingURL=ui-kit-2.cjs.development.js.map