@gravity-ui/page-constructor 2.18.0 → 3.0.0-alpha.0

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 (242) hide show
  1. package/CHANGELOG.md +0 -19
  2. package/build/cjs/blocks/index.d.ts +0 -4
  3. package/build/cjs/blocks/index.js +1 -9
  4. package/build/cjs/blocks/validators.d.ts +0 -4
  5. package/build/cjs/blocks/validators.js +0 -4
  6. package/build/cjs/components/Anchor/Anchor.d.ts +2 -2
  7. package/build/cjs/components/Anchor/Anchor.js +1 -1
  8. package/build/cjs/components/Anchor/__tests__/Anchor.test.d.ts +1 -0
  9. package/build/cjs/components/Anchor/__tests__/Anchor.test.js +21 -0
  10. package/build/cjs/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts +1 -0
  11. package/build/cjs/components/AnimateBlock/__tests__/AnimateBlock.test.js +36 -0
  12. package/build/cjs/components/Author/__tests__/Author.test.d.ts +1 -0
  13. package/build/cjs/components/Author/__tests__/Author.test.js +49 -0
  14. package/build/cjs/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
  15. package/build/cjs/components/BackLink/__tests__/BackLink.test.js +63 -0
  16. package/build/cjs/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
  17. package/build/cjs/components/BlockBase/__tests__/BlockBase.test.js +44 -0
  18. package/build/cjs/components/Button/__tests__/Button.test.d.ts +1 -0
  19. package/build/cjs/components/Button/__tests__/Button.test.js +91 -0
  20. package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
  21. package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.js +58 -0
  22. package/build/cjs/components/index.d.ts +0 -1
  23. package/build/cjs/components/index.js +1 -3
  24. package/build/cjs/constructor-items.d.ts +0 -16
  25. package/build/cjs/constructor-items.js +0 -16
  26. package/build/cjs/grid/Col/Col.d.ts +1 -1
  27. package/build/cjs/hooks/index.d.ts +1 -1
  28. package/build/cjs/hooks/index.js +3 -3
  29. package/build/cjs/internal-typings/global.d.ts +16 -18
  30. package/build/cjs/models/constructor-items/blocks.d.ts +2 -50
  31. package/build/cjs/models/constructor-items/blocks.js +0 -4
  32. package/build/cjs/models/constructor-items/common.d.ts +0 -14
  33. package/build/cjs/models/constructor-items/common.js +1 -6
  34. package/build/cjs/models/constructor-items/sub-blocks.d.ts +5 -46
  35. package/build/cjs/models/constructor-items/sub-blocks.js +2 -11
  36. package/build/cjs/schema/index.js +2 -8
  37. package/build/cjs/schema/validators/blocks.d.ts +0 -4
  38. package/build/cjs/schema/validators/blocks.js +0 -4
  39. package/build/cjs/schema/validators/sub-blocks.d.ts +0 -3
  40. package/build/cjs/schema/validators/sub-blocks.js +0 -3
  41. package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
  42. package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.js +2 -5
  43. package/build/cjs/sub-blocks/HubspotForm/index.d.ts +1 -1
  44. package/build/cjs/sub-blocks/HubspotForm/index.js +5 -6
  45. package/build/cjs/sub-blocks/index.d.ts +0 -3
  46. package/build/cjs/sub-blocks/index.js +1 -7
  47. package/build/cjs/text-transform/{blocks.d.ts → common.d.ts} +1 -4
  48. package/build/cjs/text-transform/common.js +31 -0
  49. package/build/cjs/text-transform/config.d.ts +28 -0
  50. package/build/cjs/text-transform/config.js +291 -0
  51. package/build/cjs/text-transform/index.d.ts +3 -1
  52. package/build/cjs/text-transform/index.js +3 -1
  53. package/build/cjs/text-transform/transformers.d.ts +16 -0
  54. package/build/cjs/text-transform/transformers.js +61 -0
  55. package/build/cjs/utils/index.d.ts +0 -1
  56. package/build/cjs/utils/index.js +0 -1
  57. package/build/esm/blocks/index.d.ts +0 -4
  58. package/build/esm/blocks/index.js +0 -4
  59. package/build/esm/blocks/validators.d.ts +0 -4
  60. package/build/esm/blocks/validators.js +0 -4
  61. package/build/esm/components/Anchor/Anchor.d.ts +2 -2
  62. package/build/esm/components/Anchor/Anchor.js +1 -1
  63. package/build/esm/components/Anchor/__tests__/Anchor.test.d.ts +1 -0
  64. package/build/esm/components/Anchor/__tests__/Anchor.test.js +18 -0
  65. package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts +1 -0
  66. package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.js +33 -0
  67. package/build/esm/components/Author/__tests__/Author.test.d.ts +1 -0
  68. package/build/esm/components/Author/__tests__/Author.test.js +46 -0
  69. package/build/esm/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
  70. package/build/esm/components/BackLink/__tests__/BackLink.test.js +60 -0
  71. package/build/esm/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
  72. package/build/esm/components/BlockBase/__tests__/BlockBase.test.js +41 -0
  73. package/build/esm/components/Button/__tests__/Button.test.d.ts +1 -0
  74. package/build/esm/components/Button/__tests__/Button.test.js +88 -0
  75. package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
  76. package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.js +55 -0
  77. package/build/esm/components/index.d.ts +0 -1
  78. package/build/esm/components/index.js +0 -1
  79. package/build/esm/constructor-items.d.ts +0 -16
  80. package/build/esm/constructor-items.js +2 -18
  81. package/build/esm/grid/Col/Col.d.ts +1 -1
  82. package/build/esm/hooks/index.d.ts +1 -1
  83. package/build/esm/hooks/index.js +1 -1
  84. package/build/esm/internal-typings/global.d.ts +16 -18
  85. package/build/esm/models/constructor-items/blocks.d.ts +2 -50
  86. package/build/esm/models/constructor-items/blocks.js +0 -4
  87. package/build/esm/models/constructor-items/common.d.ts +0 -14
  88. package/build/esm/models/constructor-items/common.js +0 -5
  89. package/build/esm/models/constructor-items/sub-blocks.d.ts +5 -46
  90. package/build/esm/models/constructor-items/sub-blocks.js +2 -11
  91. package/build/esm/schema/index.js +4 -10
  92. package/build/esm/schema/validators/blocks.d.ts +0 -4
  93. package/build/esm/schema/validators/blocks.js +0 -4
  94. package/build/esm/schema/validators/sub-blocks.d.ts +0 -3
  95. package/build/esm/schema/validators/sub-blocks.js +0 -3
  96. package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
  97. package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.js +3 -6
  98. package/build/esm/sub-blocks/HubspotForm/index.d.ts +1 -1
  99. package/build/esm/sub-blocks/HubspotForm/index.js +6 -7
  100. package/build/esm/sub-blocks/index.d.ts +0 -3
  101. package/build/esm/sub-blocks/index.js +0 -3
  102. package/build/esm/text-transform/{blocks.d.ts → common.d.ts} +1 -4
  103. package/build/esm/text-transform/common.js +25 -0
  104. package/build/esm/text-transform/config.d.ts +28 -0
  105. package/build/esm/text-transform/{blocks.js → config.js} +15 -123
  106. package/build/esm/text-transform/index.d.ts +3 -1
  107. package/build/esm/text-transform/index.js +3 -1
  108. package/build/esm/text-transform/transformers.d.ts +16 -0
  109. package/build/esm/text-transform/transformers.js +56 -0
  110. package/build/esm/utils/index.d.ts +0 -1
  111. package/build/esm/utils/index.js +0 -1
  112. package/package.json +4 -1
  113. package/server/models/constructor-items/blocks.d.ts +2 -50
  114. package/server/models/constructor-items/blocks.js +0 -4
  115. package/server/models/constructor-items/common.d.ts +0 -14
  116. package/server/models/constructor-items/common.js +1 -6
  117. package/server/models/constructor-items/sub-blocks.d.ts +5 -46
  118. package/server/models/constructor-items/sub-blocks.js +2 -11
  119. package/server/text-transform/{blocks.d.ts → common.d.ts} +1 -4
  120. package/server/text-transform/common.js +31 -0
  121. package/server/text-transform/config.d.ts +28 -0
  122. package/server/text-transform/config.js +301 -0
  123. package/server/text-transform/index.d.ts +3 -1
  124. package/server/text-transform/index.js +3 -1
  125. package/server/text-transform/transformers.d.ts +16 -0
  126. package/server/text-transform/transformers.js +63 -0
  127. package/server/utils/index.d.ts +0 -1
  128. package/server/utils/index.js +0 -1
  129. package/build/cjs/blocks/LinkTable/LinkTable.css +0 -3
  130. package/build/cjs/blocks/LinkTable/LinkTable.d.ts +0 -3
  131. package/build/cjs/blocks/LinkTable/LinkTable.js +0 -22
  132. package/build/cjs/blocks/LinkTable/schema.d.ts +0 -77
  133. package/build/cjs/blocks/LinkTable/schema.js +0 -15
  134. package/build/cjs/blocks/Preview/MediaContent/MediaContent.css +0 -50
  135. package/build/cjs/blocks/Preview/MediaContent/MediaContent.d.ts +0 -13
  136. package/build/cjs/blocks/Preview/MediaContent/MediaContent.js +0 -49
  137. package/build/cjs/blocks/Preview/MediaContent/PreviewContent.css +0 -106
  138. package/build/cjs/blocks/Preview/MediaContent/PreviewContent.d.ts +0 -11
  139. package/build/cjs/blocks/Preview/MediaContent/PreviewContent.js +0 -17
  140. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.css +0 -54
  141. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -9
  142. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.js +0 -13
  143. package/build/cjs/blocks/Preview/Preview.css +0 -50
  144. package/build/cjs/blocks/Preview/Preview.d.ts +0 -3
  145. package/build/cjs/blocks/Preview/Preview.js +0 -130
  146. package/build/cjs/blocks/Preview/schema.d.ts +0 -40
  147. package/build/cjs/blocks/Preview/schema.js +0 -53
  148. package/build/cjs/blocks/Security/Security.css +0 -142
  149. package/build/cjs/blocks/Security/Security.d.ts +0 -3
  150. package/build/cjs/blocks/Security/Security.js +0 -29
  151. package/build/cjs/blocks/Security/schema.d.ts +0 -170
  152. package/build/cjs/blocks/Security/schema.js +0 -32
  153. package/build/cjs/blocks/Simple/Simple.css +0 -22
  154. package/build/cjs/blocks/Simple/Simple.d.ts +0 -3
  155. package/build/cjs/blocks/Simple/Simple.js +0 -22
  156. package/build/cjs/blocks/Simple/schema.d.ts +0 -68
  157. package/build/cjs/blocks/Simple/schema.js +0 -14
  158. package/build/cjs/components/HeightCalculator/HeightCalculator.css +0 -9
  159. package/build/cjs/components/HeightCalculator/HeightCalculator.d.ts +0 -10
  160. package/build/cjs/components/HeightCalculator/HeightCalculator.js +0 -44
  161. package/build/cjs/context/breakpointContext/breakpointContext.d.ts +0 -2
  162. package/build/cjs/context/breakpointContext/breakpointContext.js +0 -7
  163. package/build/cjs/context/breakpointContext/index.d.ts +0 -1
  164. package/build/cjs/context/breakpointContext/index.js +0 -4
  165. package/build/cjs/hooks/useIntersection.d.ts +0 -1
  166. package/build/cjs/hooks/useIntersection.js +0 -21
  167. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.css +0 -19
  168. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.d.ts +0 -3
  169. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.js +0 -16
  170. package/build/cjs/sub-blocks/CardWithImage/schema.d.ts +0 -154
  171. package/build/cjs/sub-blocks/CardWithImage/schema.js +0 -46
  172. package/build/cjs/sub-blocks/Partner/Partner.css +0 -8
  173. package/build/cjs/sub-blocks/Partner/Partner.d.ts +0 -3
  174. package/build/cjs/sub-blocks/Partner/Partner.js +0 -15
  175. package/build/cjs/sub-blocks/Partner/schema.d.ts +0 -30
  176. package/build/cjs/sub-blocks/Partner/schema.js +0 -17
  177. package/build/cjs/sub-blocks/TutorialCard/TutorialCard.css +0 -20
  178. package/build/cjs/sub-blocks/TutorialCard/TutorialCard.d.ts +0 -3
  179. package/build/cjs/sub-blocks/TutorialCard/TutorialCard.js +0 -23
  180. package/build/cjs/sub-blocks/TutorialCard/schema.d.ts +0 -34
  181. package/build/cjs/sub-blocks/TutorialCard/schema.js +0 -20
  182. package/build/cjs/text-transform/blocks.js +0 -404
  183. package/build/cjs/utils/scroll.d.ts +0 -15
  184. package/build/cjs/utils/scroll.js +0 -35
  185. package/build/esm/blocks/LinkTable/LinkTable.css +0 -3
  186. package/build/esm/blocks/LinkTable/LinkTable.d.ts +0 -4
  187. package/build/esm/blocks/LinkTable/LinkTable.js +0 -21
  188. package/build/esm/blocks/LinkTable/schema.d.ts +0 -77
  189. package/build/esm/blocks/LinkTable/schema.js +0 -12
  190. package/build/esm/blocks/Preview/MediaContent/MediaContent.css +0 -50
  191. package/build/esm/blocks/Preview/MediaContent/MediaContent.d.ts +0 -14
  192. package/build/esm/blocks/Preview/MediaContent/MediaContent.js +0 -47
  193. package/build/esm/blocks/Preview/MediaContent/PreviewContent.css +0 -106
  194. package/build/esm/blocks/Preview/MediaContent/PreviewContent.d.ts +0 -12
  195. package/build/esm/blocks/Preview/MediaContent/PreviewContent.js +0 -15
  196. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.css +0 -54
  197. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -10
  198. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.js +0 -11
  199. package/build/esm/blocks/Preview/Preview.css +0 -50
  200. package/build/esm/blocks/Preview/Preview.d.ts +0 -4
  201. package/build/esm/blocks/Preview/Preview.js +0 -126
  202. package/build/esm/blocks/Preview/schema.d.ts +0 -40
  203. package/build/esm/blocks/Preview/schema.js +0 -50
  204. package/build/esm/blocks/Security/Security.css +0 -142
  205. package/build/esm/blocks/Security/Security.d.ts +0 -4
  206. package/build/esm/blocks/Security/Security.js +0 -25
  207. package/build/esm/blocks/Security/schema.d.ts +0 -170
  208. package/build/esm/blocks/Security/schema.js +0 -28
  209. package/build/esm/blocks/Simple/Simple.css +0 -22
  210. package/build/esm/blocks/Simple/Simple.d.ts +0 -4
  211. package/build/esm/blocks/Simple/Simple.js +0 -18
  212. package/build/esm/blocks/Simple/schema.d.ts +0 -68
  213. package/build/esm/blocks/Simple/schema.js +0 -11
  214. package/build/esm/components/HeightCalculator/HeightCalculator.css +0 -9
  215. package/build/esm/components/HeightCalculator/HeightCalculator.d.ts +0 -11
  216. package/build/esm/components/HeightCalculator/HeightCalculator.js +0 -42
  217. package/build/esm/context/breakpointContext/breakpointContext.d.ts +0 -2
  218. package/build/esm/context/breakpointContext/breakpointContext.js +0 -3
  219. package/build/esm/context/breakpointContext/index.d.ts +0 -1
  220. package/build/esm/context/breakpointContext/index.js +0 -1
  221. package/build/esm/hooks/useIntersection.d.ts +0 -1
  222. package/build/esm/hooks/useIntersection.js +0 -17
  223. package/build/esm/sub-blocks/CardWithImage/CardWithImage.css +0 -19
  224. package/build/esm/sub-blocks/CardWithImage/CardWithImage.d.ts +0 -4
  225. package/build/esm/sub-blocks/CardWithImage/CardWithImage.js +0 -14
  226. package/build/esm/sub-blocks/CardWithImage/schema.d.ts +0 -154
  227. package/build/esm/sub-blocks/CardWithImage/schema.js +0 -43
  228. package/build/esm/sub-blocks/Partner/Partner.css +0 -8
  229. package/build/esm/sub-blocks/Partner/Partner.d.ts +0 -4
  230. package/build/esm/sub-blocks/Partner/Partner.js +0 -13
  231. package/build/esm/sub-blocks/Partner/schema.d.ts +0 -30
  232. package/build/esm/sub-blocks/Partner/schema.js +0 -14
  233. package/build/esm/sub-blocks/TutorialCard/TutorialCard.css +0 -20
  234. package/build/esm/sub-blocks/TutorialCard/TutorialCard.d.ts +0 -4
  235. package/build/esm/sub-blocks/TutorialCard/TutorialCard.js +0 -21
  236. package/build/esm/sub-blocks/TutorialCard/schema.d.ts +0 -34
  237. package/build/esm/sub-blocks/TutorialCard/schema.js +0 -17
  238. package/build/esm/utils/scroll.d.ts +0 -15
  239. package/build/esm/utils/scroll.js +0 -31
  240. package/server/text-transform/blocks.js +0 -417
  241. package/server/utils/scroll.d.ts +0 -15
  242. package/server/utils/scroll.js +0 -35
@@ -1,404 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.transformFootnotes = exports.transformBlocks = exports.typografTransformer = exports.yfmTransformer = exports.createItemsParser = void 0;
4
- const tslib_1 = require("tslib");
5
- /* eslint-disable no-param-reassign */
6
- /* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */
7
- const lodash_1 = tslib_1.__importDefault(require("lodash"));
8
- const models_1 = require("../models");
9
- const utils_1 = require("./utils");
10
- const createItemsParser = (fields) => (transformer, items) => items.map((item) => {
11
- if (!item) {
12
- return item;
13
- }
14
- else if (typeof item === 'string') {
15
- return transformer(item);
16
- }
17
- else {
18
- return Object.assign(Object.assign({}, item), fields.reduce((acc, fieldName) => {
19
- const result = Object.assign({}, acc);
20
- if (item[fieldName]) {
21
- result[fieldName] = transformer(item[fieldName]);
22
- }
23
- return result;
24
- }, {}));
25
- }
26
- });
27
- exports.createItemsParser = createItemsParser;
28
- function parseTableBlock(transformer, content) {
29
- const legend = content === null || content === void 0 ? void 0 : content.legend;
30
- return Object.assign(Object.assign({}, (content || {})), { legend: legend && legend.map((string) => transformer(string)) });
31
- }
32
- function parseFeatures(transformer, items) {
33
- return items.map((_a) => {
34
- var { title, text } = _a, rest = tslib_1.__rest(_a, ["title", "text"]);
35
- return (Object.assign({ title: title && transformer(title), text: text && transformer(text) }, rest));
36
- });
37
- }
38
- function parsePromoFeatures(transformer, items) {
39
- return items.map((_a) => {
40
- var { text } = _a, rest = tslib_1.__rest(_a, ["text"]);
41
- return (Object.assign({ text: transformer(text) }, rest));
42
- });
43
- }
44
- const parseTitle = (transformer, title) => typeof title === 'object' && 'text' in title
45
- ? Object.assign(Object.assign({}, title), { text: transformer(title.text) }) : title && transformer(title);
46
- const parseItemsTitle = (transformer, items) => items.map((_a) => {
47
- var { title } = _a, rest = tslib_1.__rest(_a, ["title"]);
48
- return (Object.assign({ title: title && parseTitle(transformer, title) }, rest));
49
- });
50
- function parsePriceDetailedBlock(transformer, block) {
51
- const { priceType } = block;
52
- block.items = block.items.map((item) => {
53
- const { description, items: details = [] } = item;
54
- if (priceType === 'marked-list') {
55
- item.items = details.map((detail) => {
56
- detail.text = detail.text && transformer(detail.text);
57
- return detail;
58
- });
59
- }
60
- else {
61
- item.items = details.map((detail) => {
62
- detail.description = detail.description && transformer(detail.description);
63
- return detail;
64
- });
65
- }
66
- item.description = transformer(description);
67
- return item;
68
- });
69
- return block;
70
- }
71
- const parseContentLayout = (transformer, content) => {
72
- if (content) {
73
- const { text, additionalInfo } = content;
74
- if (text) {
75
- content.text = transformer(text);
76
- }
77
- if (additionalInfo) {
78
- content.additionalInfo = transformer(additionalInfo);
79
- }
80
- }
81
- return content;
82
- };
83
- function parseContentLayoutTitle(transformer, content) {
84
- if (content === null || content === void 0 ? void 0 : content.title) {
85
- const { title } = content;
86
- content.title = title && parseTitle(transformer, title);
87
- }
88
- return content;
89
- }
90
- function yfmTransformer(lang, content) {
91
- const { html } = (0, utils_1.fullTransform)(content, { lang });
92
- return html;
93
- }
94
- exports.yfmTransformer = yfmTransformer;
95
- function typografTransformer(lang, content) {
96
- return (0, utils_1.typografToHTML)(content, lang);
97
- }
98
- exports.typografTransformer = typografTransformer;
99
- const blockHeaderTransfomer = [
100
- {
101
- fields: ['title'],
102
- transformer: typografTransformer,
103
- parser: parseTitle,
104
- },
105
- {
106
- fields: ['description'],
107
- transformer: yfmTransformer,
108
- },
109
- ];
110
- const config = {
111
- [models_1.SubBlockType.Partner]: {
112
- fields: ['text'],
113
- transformer: typografTransformer,
114
- },
115
- [models_1.SubBlockType.BasicCard]: [
116
- {
117
- fields: ['title'],
118
- transformer: typografTransformer,
119
- },
120
- {
121
- fields: ['text', 'additionalInfo'],
122
- transformer: yfmTransformer,
123
- },
124
- ],
125
- [models_1.SubBlockType.TutorialCard]: {
126
- fields: ['text', 'title'],
127
- transformer: typografTransformer,
128
- },
129
- [models_1.SubBlockType.BackgroundCard]: [
130
- {
131
- fields: ['text', 'additionalInfo'],
132
- transformer: yfmTransformer,
133
- },
134
- {
135
- fields: ['title'],
136
- transformer: typografTransformer,
137
- },
138
- ],
139
- [models_1.SubBlockType.CardWithImage]: [
140
- {
141
- fields: ['description', 'additionalInfo'],
142
- transformer: yfmTransformer,
143
- },
144
- {
145
- fields: ['title'],
146
- transformer: typografTransformer,
147
- },
148
- ],
149
- [models_1.SubBlockType.LayoutItem]: [
150
- {
151
- fields: ['content'],
152
- parser: parseContentLayout,
153
- transformer: yfmTransformer,
154
- },
155
- {
156
- fields: ['content'],
157
- parser: parseContentLayoutTitle,
158
- transformer: typografTransformer,
159
- },
160
- {
161
- fields: ['metaInfo'],
162
- parser: (0, exports.createItemsParser)([]),
163
- transformer: typografTransformer,
164
- },
165
- ],
166
- [models_1.SubBlockType.Quote]: {
167
- fields: ['text'],
168
- transformer: typografTransformer,
169
- },
170
- [models_1.BlockType.ExtendedFeaturesBlock]: [
171
- ...blockHeaderTransfomer,
172
- {
173
- fields: ['items'],
174
- transformer: typografTransformer,
175
- parser: (0, exports.createItemsParser)(['title']),
176
- },
177
- {
178
- fields: ['items'],
179
- transformer: yfmTransformer,
180
- parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
181
- },
182
- ],
183
- [models_1.BlockType.PromoFeaturesBlock]: [
184
- ...blockHeaderTransfomer,
185
- {
186
- fields: ['items'],
187
- transformer: yfmTransformer,
188
- parser: parsePromoFeatures,
189
- },
190
- ],
191
- [models_1.BlockType.SliderBlock]: blockHeaderTransfomer,
192
- [models_1.BlockType.QuestionsBlock]: [
193
- {
194
- fields: ['title'],
195
- transformer: typografTransformer,
196
- },
197
- {
198
- fields: ['text', 'additionalInfo'],
199
- transformer: yfmTransformer,
200
- },
201
- {
202
- fields: ['items'],
203
- transformer: yfmTransformer,
204
- parser: parseFeatures,
205
- },
206
- ],
207
- [models_1.BlockType.BannerBlock]: [
208
- {
209
- fields: ['title'],
210
- transformer: typografTransformer,
211
- },
212
- {
213
- fields: ['subtitle'],
214
- transformer: yfmTransformer,
215
- },
216
- ],
217
- [models_1.SubBlockType.BannerCard]: [
218
- {
219
- fields: ['title'],
220
- transformer: typografTransformer,
221
- },
222
- {
223
- fields: ['subtitle'],
224
- transformer: yfmTransformer,
225
- },
226
- ],
227
- [models_1.BlockType.MediaBlock]: [
228
- ...blockHeaderTransfomer,
229
- {
230
- fields: ['title', 'additionalInfo'],
231
- transformer: yfmTransformer,
232
- },
233
- ],
234
- [models_1.BlockType.MapBlock]: [
235
- ...blockHeaderTransfomer,
236
- {
237
- fields: ['title', 'additionalInfo'],
238
- transformer: yfmTransformer,
239
- },
240
- ],
241
- [models_1.BlockType.TabsBlock]: [
242
- ...blockHeaderTransfomer,
243
- {
244
- fields: ['items'],
245
- transformer: yfmTransformer,
246
- parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
247
- },
248
- {
249
- fields: ['items'],
250
- transformer: typografTransformer,
251
- parser: parseItemsTitle,
252
- },
253
- ],
254
- [models_1.BlockType.TableBlock]: [
255
- {
256
- fields: ['table'],
257
- transformer: yfmTransformer,
258
- parser: parseTableBlock,
259
- },
260
- ],
261
- [models_1.BlockType.HeaderSliderBlock]: [
262
- {
263
- fields: ['items'],
264
- transformer: typografTransformer,
265
- parser: (0, exports.createItemsParser)(['title', 'overtitle']),
266
- },
267
- {
268
- fields: ['items'],
269
- transformer: yfmTransformer,
270
- parser: (0, exports.createItemsParser)(['description']),
271
- },
272
- ],
273
- [models_1.BlockType.SimpleBlock]: [
274
- {
275
- fields: ['title'],
276
- transformer: typografTransformer,
277
- parser: parseTitle,
278
- },
279
- {
280
- fields: ['description'],
281
- transformer: yfmTransformer,
282
- },
283
- ],
284
- [models_1.SubBlockType.PriceDetailed]: [
285
- {
286
- transformer: yfmTransformer,
287
- parser: parsePriceDetailedBlock,
288
- },
289
- ],
290
- [models_1.BlockType.HeaderBlock]: [
291
- {
292
- fields: ['description'],
293
- transformer: yfmTransformer,
294
- },
295
- ],
296
- [models_1.BlockType.ContentLayoutBlock]: [
297
- {
298
- fields: ['textContent'],
299
- transformer: yfmTransformer,
300
- parser: parseContentLayout,
301
- },
302
- {
303
- fields: ['textContent'],
304
- transformer: typografTransformer,
305
- parser: parseContentLayoutTitle,
306
- },
307
- ],
308
- [models_1.SubBlockType.Content]: [
309
- {
310
- fields: ['text', 'additionalInfo'],
311
- transformer: yfmTransformer,
312
- },
313
- {
314
- fields: ['title'],
315
- transformer: typografTransformer,
316
- parser: parseTitle,
317
- },
318
- ],
319
- [models_1.BlockType.PreviewBlock]: [
320
- {
321
- fields: ['description'],
322
- transformer: yfmTransformer,
323
- },
324
- {
325
- fields: ['title'],
326
- transformer: typografTransformer,
327
- parser: parseTitle,
328
- },
329
- ],
330
- [models_1.BlockType.InfoBlock]: [
331
- {
332
- fields: ['rightContent', 'leftContent'],
333
- transformer: yfmTransformer,
334
- parser: parseContentLayout,
335
- },
336
- {
337
- fields: ['rightContent', 'leftContent'],
338
- transformer: typografTransformer,
339
- parser: parseContentLayoutTitle,
340
- },
341
- ],
342
- [models_1.BlockType.ShareBlock]: [
343
- {
344
- fields: ['title'],
345
- transformer: typografTransformer,
346
- },
347
- ],
348
- [models_1.BlockType.CardLayoutBlock]: blockHeaderTransfomer,
349
- [models_1.BlockType.IconsBlock]: [
350
- {
351
- fields: ['title'],
352
- transformer: typografTransformer,
353
- parser: parseTitle,
354
- },
355
- ],
356
- [models_1.BlockType.LinkTableBlock]: blockHeaderTransfomer,
357
- };
358
- function addRandomOrder(block) {
359
- if (block) {
360
- if ('randomOrder' in block && block.randomOrder && 'children' in block && block.children) {
361
- block.children = lodash_1.default.shuffle(block.children);
362
- }
363
- }
364
- }
365
- function transformBlock(lang, blocksConfig, block) {
366
- const blockConfig = blocksConfig[block.type];
367
- addRandomOrder(block);
368
- if (blockConfig) {
369
- const configs = Array.isArray(blockConfig) ? blockConfig : [blockConfig];
370
- configs.forEach((transformConfig) => {
371
- const { fields, transformer: transformerRaw, parser } = transformConfig;
372
- const transformer = transformerRaw.bind(null, lang);
373
- if (fields) {
374
- fields.forEach((field) => {
375
- if (block[field]) {
376
- if (parser) {
377
- block[field] = parser(transformer, block[field]);
378
- }
379
- else if (typeof block[field] === 'string') {
380
- block[field] = transformer(block[field]);
381
- }
382
- }
383
- });
384
- }
385
- else if (parser) {
386
- parser(transformer, block);
387
- }
388
- });
389
- }
390
- if ('children' in block && block.children) {
391
- transformBlocks(block.children, lang, blocksConfig);
392
- }
393
- }
394
- function transformBlocks(blocks, lang, customConfig = {}) {
395
- const fullConfig = Object.assign(Object.assign({}, config), customConfig);
396
- blocks.forEach(transformBlock.bind(null, lang, fullConfig));
397
- }
398
- exports.transformBlocks = transformBlocks;
399
- function transformFootnotes(footnotes, lang) {
400
- return footnotes
401
- .map((footnote) => (0, utils_1.fullTransform)(footnote, { path: __dirname, lang, allowHTML: true }).html)
402
- .filter(Boolean);
403
- }
404
- exports.transformFootnotes = transformFootnotes;
@@ -1,15 +0,0 @@
1
- export declare enum ScrollDirection {
2
- HORIZONTAL = "scrollLeft",
3
- VERTICAL = "scrollTop"
4
- }
5
- export interface ScrollReverseParams {
6
- distance?: number;
7
- }
8
- export interface ScrollOptions {
9
- distance: number;
10
- timeSeconds: number;
11
- speed: number;
12
- direction?: ScrollDirection;
13
- reverseParams?: ScrollReverseParams;
14
- }
15
- export declare function doSmoothScroll(element: HTMLDivElement, startPosition: number, scrollOptions: ScrollOptions): void;
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.doSmoothScroll = exports.ScrollDirection = void 0;
4
- var ScrollDirection;
5
- (function (ScrollDirection) {
6
- ScrollDirection["HORIZONTAL"] = "scrollLeft";
7
- ScrollDirection["VERTICAL"] = "scrollTop";
8
- })(ScrollDirection = exports.ScrollDirection || (exports.ScrollDirection = {}));
9
- function doSmoothScroll(element, startPosition, scrollOptions) {
10
- const { distance, timeSeconds, speed, direction = ScrollDirection.HORIZONTAL, reverseParams, } = scrollOptions;
11
- let scrollShift = 0;
12
- let currentTimeChanges = 0;
13
- const changeScrollFunction = getChangeScrollFunction(direction, Boolean(reverseParams));
14
- const scrollDistance = (reverseParams === null || reverseParams === void 0 ? void 0 : reverseParams.distance) || distance;
15
- const timeChanges = getTimeChanges(scrollDistance, timeSeconds, speed);
16
- while (scrollShift < scrollDistance) {
17
- window.setTimeout(changeScrollFunction, currentTimeChanges, element, scrollShift, startPosition);
18
- currentTimeChanges += timeChanges;
19
- scrollShift++;
20
- }
21
- }
22
- exports.doSmoothScroll = doSmoothScroll;
23
- function getChangeScrollFunction(direction, isReverse) {
24
- return (element, scrollPosition, startPosition) => {
25
- // eslint-disable-next-line no-param-reassign, no-not-accumulator-reassign/no-not-accumulator-reassign
26
- element[direction] = isReverse
27
- ? startPosition - scrollPosition
28
- : startPosition + scrollPosition;
29
- };
30
- }
31
- function getTimeChanges(distance, timeSeconds, acceleration) {
32
- const physicalSpeed = distance / timeSeconds;
33
- const programSpeedMilliseconds = (1 / physicalSpeed) * 1000;
34
- return programSpeedMilliseconds / acceleration;
35
- }
@@ -1,3 +0,0 @@
1
- .pc-LinkTable__links {
2
- padding-top: 16px;
3
- }
@@ -1,4 +0,0 @@
1
- import { LinkTableBlockProps } from '../../models';
2
- import './LinkTable.css';
3
- declare const LinkTable: ({ items, title, description, linkTheme }: LinkTableBlockProps) => JSX.Element;
4
- export default LinkTable;
@@ -1,21 +0,0 @@
1
- import { __rest } from "tslib";
2
- import React from 'react';
3
- import BlockHeader from '../../components/BlockHeader/BlockHeader';
4
- import Link from '../../components/Link/Link';
5
- import { Col, GridColumnSize, Row } from '../../grid';
6
- import { block } from '../../utils';
7
- import './LinkTable.css';
8
- const b = block('LinkTable');
9
- const LinkTable = ({ items, title, description, linkTheme = 'normal' }) => {
10
- return (React.createElement("div", { className: b() },
11
- React.createElement(BlockHeader, { title: title, description: description, className: b('block-title') }),
12
- React.createElement(Row, { className: b('links') }, items.map((column, index) => (React.createElement(Col, { key: (column.length && column[0].url) || index, sizes: {
13
- [GridColumnSize.Lg]: 4,
14
- [GridColumnSize.Md]: 6,
15
- [GridColumnSize.All]: 12,
16
- } }, column.map((_a) => {
17
- var { theme = linkTheme } = _a, link = __rest(_a, ["theme"]);
18
- return (React.createElement(Link, Object.assign({ key: link.url }, link, { theme: theme })));
19
- })))))));
20
- };
21
- export default LinkTable;
@@ -1,77 +0,0 @@
1
- export declare const LinkTableBlock: {
2
- 'link-table-block': {
3
- additionalProperties: boolean;
4
- required: string[];
5
- properties: {
6
- items: {
7
- type: string;
8
- items: {
9
- type: string;
10
- items: {
11
- type: string;
12
- properties: {
13
- when: {
14
- type: string;
15
- };
16
- };
17
- };
18
- };
19
- };
20
- title: {
21
- oneOf: ({
22
- type: string;
23
- additionalProperties: boolean;
24
- required: string[];
25
- properties: {
26
- text: {
27
- type: string;
28
- contentType: string;
29
- };
30
- textSize: {
31
- type: string;
32
- enum: string[];
33
- };
34
- url: {
35
- type: string;
36
- };
37
- resetMargin: {
38
- type: string;
39
- };
40
- };
41
- } | {
42
- type: string;
43
- })[];
44
- };
45
- description: {
46
- type: string;
47
- contentType: string;
48
- };
49
- anchor: {
50
- type: string;
51
- additionalProperties: boolean;
52
- required: string[];
53
- properties: {
54
- text: {
55
- type: string;
56
- contentType: string;
57
- };
58
- url: {
59
- type: string;
60
- };
61
- };
62
- };
63
- visible: {
64
- type: string;
65
- enum: string[];
66
- };
67
- resetPaddings: {
68
- type: string;
69
- };
70
- context: {
71
- type: string;
72
- };
73
- type: {};
74
- when: {};
75
- };
76
- };
77
- };
@@ -1,12 +0,0 @@
1
- import { BlockBaseProps, BlockHeaderProps, LinkProps } from '../../schema/validators/common';
2
- import { filteredArray } from '../../schema/validators/utils';
3
- export const LinkTableBlock = {
4
- 'link-table-block': {
5
- additionalProperties: false,
6
- required: ['items'],
7
- properties: Object.assign(Object.assign(Object.assign({}, BlockBaseProps), BlockHeaderProps), { items: {
8
- type: 'array',
9
- items: filteredArray(LinkProps),
10
- } }),
11
- },
12
- };
@@ -1,50 +0,0 @@
1
- /* use this for style redefinitions to awoid problems with
2
- unpredictable css rules order in build */
3
- .pc-preview-media-content-block__header {
4
- margin-bottom: 24px;
5
- }
6
- .pc-preview-media-content-block__menu {
7
- padding: 0;
8
- }
9
- .pc-preview-media-content-block__title {
10
- font-size: var(--yc-text-display-1-font-size);
11
- line-height: var(--yc-text-display-1-line-height);
12
- font-weight: 500;
13
- position: relative;
14
- }
15
- .pc-preview-media-content-block__description {
16
- font-size: var(--yc-text-body-2-font-size);
17
- line-height: var(--yc-text-body-2-line-height);
18
- margin-top: 12px;
19
- position: relative;
20
- }
21
- .pc-preview-media-content-block__content, .pc-preview-media-content-block__media {
22
- padding: 0;
23
- }
24
- @media (max-width: 769px) {
25
- .pc-preview-media-content-block__menu.col {
26
- overflow-y: auto;
27
- margin-bottom: 16px;
28
- padding: 0;
29
- }
30
- .pc-preview-media-content-block__content-wrapper {
31
- width: fit-content;
32
- display: flex;
33
- }
34
- .pc-preview-media-content-block__content-wrapper div.preview-content-block__content-wrapper:first-child div.preview-content-block__content_active {
35
- margin-left: 0;
36
- }
37
- .pc-preview-media-content-block__content-wrapper div.preview-content-block__content-wrapper:last-child div.preview-content-block__content_active {
38
- margin-right: 0;
39
- }
40
- }
41
- @media (min-width: 577px) and (max-width: 769px) {
42
- .pc-preview-media-content-block__header, .pc-preview-media-content-block__content-wrapper {
43
- padding: 0 32px;
44
- }
45
- }
46
- @media (max-width: 577px) {
47
- .pc-preview-media-content-block__header, .pc-preview-media-content-block__content-wrapper {
48
- padding: 0 20px;
49
- }
50
- }
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import { PreviewItemProps, PreviewRatioMediaContent, Refable } from '../../../models';
3
- import './MediaContent.css';
4
- interface MediaContentProps extends Refable<HTMLDivElement> {
5
- items: PreviewItemProps[];
6
- title: string;
7
- description?: string;
8
- ratioMediaContent?: PreviewRatioMediaContent;
9
- switching: boolean;
10
- isActiveBlock: (id: number, isMediaBlock?: boolean) => boolean;
11
- showMediaContent: (id: number) => void;
12
- }
13
- declare const MediaContent: React.ForwardRefExoticComponent<Pick<MediaContentProps, "title" | "description" | "items" | "ratioMediaContent" | "switching" | "isActiveBlock" | "showMediaContent"> & React.RefAttributes<HTMLDivElement>>;
14
- export default MediaContent;
@@ -1,47 +0,0 @@
1
- import React, { Fragment, forwardRef, useContext, useEffect, useState } from 'react';
2
- import { HTML, YFMWrapper } from '../../../components/';
3
- import { ThemeValueContext } from '../../../context/theme/ThemeValueContext';
4
- import { Col, GridColumnSize } from '../../../grid';
5
- import { block, getThemedValue } from '../../../utils';
6
- import PreviewContent from './PreviewContent';
7
- import PreviewMedia from './PreviewMedia';
8
- import './MediaContent.css';
9
- const b = block('preview-media-content-block');
10
- const MediaContent = forwardRef((props, ref) => {
11
- const { items, title, description = '', switching, ratioMediaContent = '1-1', isActiveBlock, showMediaContent, } = props;
12
- const { themeValue: theme } = useContext(ThemeValueContext);
13
- const [mediaSizes, setMediaSizes] = useState({ [GridColumnSize.All]: 12 });
14
- const [contentSizes, setContentSizes] = useState({ [GridColumnSize.All]: 12 });
15
- useEffect(() => {
16
- const [mediaSize, contentSize] = ratioMediaContent.split('-');
17
- const blockSize = 12 / (Number(mediaSize) + Number(contentSize));
18
- const updatedMediaSizes = Object.assign(Object.assign({}, mediaSizes), { [GridColumnSize.Md]: blockSize * Number(mediaSize) });
19
- setMediaSizes(updatedMediaSizes);
20
- const updatedContentSizes = Object.assign(Object.assign({}, contentSizes), { [GridColumnSize.Md]: blockSize * Number(contentSize) });
21
- setContentSizes(updatedContentSizes);
22
- // eslint-disable-next-line react-hooks/exhaustive-deps
23
- }, [ratioMediaContent]);
24
- const contentComponents = [];
25
- const mediaComponents = [];
26
- items.forEach((item, id) => {
27
- const { content, media } = item;
28
- const isActive = isActiveBlock(id);
29
- const contentMods = { active: isActive };
30
- const mediaMods = { active: isActiveBlock(id, true) };
31
- const onClick = () => showMediaContent(id);
32
- contentComponents.push(React.createElement(PreviewContent, Object.assign({ key: id, id: id }, content, { switching: switching, onClick: onClick, mods: contentMods })));
33
- mediaComponents.push(React.createElement(PreviewMedia, { key: id, id: id, media: media && getThemedValue(media, theme), play: isActive, mods: mediaMods }));
34
- });
35
- return (React.createElement(Fragment, null,
36
- React.createElement(Col, { sizes: contentSizes, className: b('content') },
37
- React.createElement("div", { className: b('header') },
38
- React.createElement("h2", { className: b('title') },
39
- React.createElement(HTML, null, title)),
40
- description && (React.createElement("div", { className: b('description') },
41
- React.createElement(YFMWrapper, { content: description, modifiers: { constructor: true } })))),
42
- React.createElement(Col, { ref: ref, className: b('menu') },
43
- React.createElement("div", { className: b('content-wrapper') }, contentComponents))),
44
- React.createElement(Col, { sizes: mediaSizes, className: b('media') }, mediaComponents)));
45
- });
46
- MediaContent.displayName = 'MediaContent';
47
- export default MediaContent;