@gravity-ui/page-constructor 1.11.1 → 1.12.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 (127) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/build/cjs/blocks/Banner/schema.d.ts +12 -0
  3. package/build/cjs/blocks/Banner/schema.js +2 -0
  4. package/build/cjs/blocks/CardLayout/schema.d.ts +28 -22
  5. package/build/cjs/blocks/CardLayout/schema.js +1 -5
  6. package/build/cjs/blocks/Companies/schema.d.ts +2 -0
  7. package/build/cjs/blocks/Companies/schema.js +2 -0
  8. package/build/cjs/blocks/ContentLayout/schema.d.ts +6 -0
  9. package/build/cjs/blocks/ExtendedFeatures/schema.d.ts +22 -16
  10. package/build/cjs/blocks/ExtendedFeatures/schema.js +3 -5
  11. package/build/cjs/blocks/Header/schema.d.ts +16 -0
  12. package/build/cjs/blocks/Header/schema.js +5 -0
  13. package/build/cjs/blocks/HeaderSlider/schema.d.ts +9 -23
  14. package/build/cjs/blocks/Icons/schema.d.ts +6 -0
  15. package/build/cjs/blocks/Icons/schema.js +2 -0
  16. package/build/cjs/blocks/Info/schema.d.ts +10 -0
  17. package/build/cjs/blocks/Info/schema.js +2 -0
  18. package/build/cjs/blocks/LinkTable/schema.d.ts +30 -20
  19. package/build/cjs/blocks/LinkTable/schema.js +1 -1
  20. package/build/cjs/blocks/Media/schema.d.ts +62 -53
  21. package/build/cjs/blocks/Media/schema.js +6 -10
  22. package/build/cjs/blocks/Preview/schema.d.ts +2 -0
  23. package/build/cjs/blocks/Preview/schema.js +4 -0
  24. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +20 -14
  25. package/build/cjs/blocks/PromoFeaturesBlock/schema.js +3 -5
  26. package/build/cjs/blocks/Questions/schema.d.ts +5 -0
  27. package/build/cjs/blocks/Questions/schema.js +2 -0
  28. package/build/cjs/blocks/Security/schema.d.ts +2 -0
  29. package/build/cjs/blocks/Security/schema.js +2 -0
  30. package/build/cjs/blocks/Simple/schema.d.ts +3 -0
  31. package/build/cjs/blocks/Simple/schema.js +1 -0
  32. package/build/cjs/blocks/Slider/schema.d.ts +31 -45
  33. package/build/cjs/blocks/Slider/schema.js +2 -5
  34. package/build/cjs/blocks/Table/schema.d.ts +4 -0
  35. package/build/cjs/blocks/Table/schema.js +3 -0
  36. package/build/cjs/blocks/Tabs/schema.d.ts +37 -23
  37. package/build/cjs/blocks/Tabs/schema.js +2 -3
  38. package/build/cjs/components/Author/schema.d.ts +3 -0
  39. package/build/cjs/components/BlockHeader/BlockHeader.css +8 -19
  40. package/build/cjs/components/BlockHeader/BlockHeader.js +4 -3
  41. package/build/cjs/components/Image/schema.d.ts +2 -0
  42. package/build/cjs/components/Image/schema.js +14 -23
  43. package/build/cjs/schema/index.d.ts +2 -0
  44. package/build/cjs/schema/validators/common.d.ts +48 -0
  45. package/build/cjs/schema/validators/common.js +21 -1
  46. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +5 -0
  47. package/build/cjs/sub-blocks/BasicCard/schema.d.ts +4 -0
  48. package/build/cjs/sub-blocks/CardWithImage/schema.d.ts +54 -46
  49. package/build/cjs/sub-blocks/CardWithImage/schema.js +7 -6
  50. package/build/cjs/sub-blocks/Content/schema.d.ts +8 -0
  51. package/build/cjs/sub-blocks/Content/schema.js +3 -1
  52. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +1 -0
  53. package/build/cjs/sub-blocks/NewsCard/schema.d.ts +1 -0
  54. package/build/cjs/sub-blocks/NewsCard/schema.js +1 -0
  55. package/build/cjs/sub-blocks/Partner/schema.d.ts +1 -0
  56. package/build/cjs/sub-blocks/Partner/schema.js +1 -0
  57. package/build/cjs/sub-blocks/PriceDetailed/schema.d.ts +1 -0
  58. package/build/cjs/sub-blocks/PriceDetailed/schema.js +8 -0
  59. package/build/cjs/sub-blocks/Quote/schema.d.ts +4 -0
  60. package/build/cjs/sub-blocks/Quote/schema.js +1 -0
  61. package/build/cjs/sub-blocks/TutorialCard/schema.d.ts +2 -0
  62. package/build/cjs/sub-blocks/TutorialCard/schema.js +2 -0
  63. package/build/cjs/text-transform/blocks.js +49 -32
  64. package/build/esm/blocks/Banner/schema.d.ts +12 -0
  65. package/build/esm/blocks/Banner/schema.js +2 -0
  66. package/build/esm/blocks/CardLayout/schema.d.ts +28 -22
  67. package/build/esm/blocks/CardLayout/schema.js +2 -6
  68. package/build/esm/blocks/Companies/schema.d.ts +2 -0
  69. package/build/esm/blocks/Companies/schema.js +2 -0
  70. package/build/esm/blocks/ContentLayout/schema.d.ts +6 -0
  71. package/build/esm/blocks/ExtendedFeatures/schema.d.ts +22 -16
  72. package/build/esm/blocks/ExtendedFeatures/schema.js +4 -6
  73. package/build/esm/blocks/Header/schema.d.ts +16 -0
  74. package/build/esm/blocks/Header/schema.js +5 -0
  75. package/build/esm/blocks/HeaderSlider/schema.d.ts +9 -23
  76. package/build/esm/blocks/Icons/schema.d.ts +6 -0
  77. package/build/esm/blocks/Icons/schema.js +2 -0
  78. package/build/esm/blocks/Info/schema.d.ts +10 -0
  79. package/build/esm/blocks/Info/schema.js +2 -0
  80. package/build/esm/blocks/LinkTable/schema.d.ts +30 -20
  81. package/build/esm/blocks/LinkTable/schema.js +2 -2
  82. package/build/esm/blocks/Media/schema.d.ts +62 -53
  83. package/build/esm/blocks/Media/schema.js +7 -11
  84. package/build/esm/blocks/Preview/schema.d.ts +2 -0
  85. package/build/esm/blocks/Preview/schema.js +4 -0
  86. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +20 -14
  87. package/build/esm/blocks/PromoFeaturesBlock/schema.js +4 -6
  88. package/build/esm/blocks/Questions/schema.d.ts +5 -0
  89. package/build/esm/blocks/Questions/schema.js +2 -0
  90. package/build/esm/blocks/Security/schema.d.ts +2 -0
  91. package/build/esm/blocks/Security/schema.js +2 -0
  92. package/build/esm/blocks/Simple/schema.d.ts +3 -0
  93. package/build/esm/blocks/Simple/schema.js +1 -0
  94. package/build/esm/blocks/Slider/schema.d.ts +31 -45
  95. package/build/esm/blocks/Slider/schema.js +3 -6
  96. package/build/esm/blocks/Table/schema.d.ts +4 -0
  97. package/build/esm/blocks/Table/schema.js +3 -0
  98. package/build/esm/blocks/Tabs/schema.d.ts +37 -23
  99. package/build/esm/blocks/Tabs/schema.js +3 -4
  100. package/build/esm/components/Author/schema.d.ts +3 -0
  101. package/build/esm/components/BlockHeader/BlockHeader.css +8 -19
  102. package/build/esm/components/BlockHeader/BlockHeader.js +5 -4
  103. package/build/esm/components/Image/schema.d.ts +2 -0
  104. package/build/esm/components/Image/schema.js +14 -23
  105. package/build/esm/schema/index.d.ts +2 -0
  106. package/build/esm/schema/validators/common.d.ts +48 -0
  107. package/build/esm/schema/validators/common.js +20 -0
  108. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +5 -0
  109. package/build/esm/sub-blocks/BasicCard/schema.d.ts +4 -0
  110. package/build/esm/sub-blocks/CardWithImage/schema.d.ts +54 -46
  111. package/build/esm/sub-blocks/CardWithImage/schema.js +8 -7
  112. package/build/esm/sub-blocks/Content/schema.d.ts +8 -0
  113. package/build/esm/sub-blocks/Content/schema.js +3 -1
  114. package/build/esm/sub-blocks/MediaCard/schema.d.ts +1 -0
  115. package/build/esm/sub-blocks/NewsCard/schema.d.ts +1 -0
  116. package/build/esm/sub-blocks/NewsCard/schema.js +1 -0
  117. package/build/esm/sub-blocks/Partner/schema.d.ts +1 -0
  118. package/build/esm/sub-blocks/Partner/schema.js +1 -0
  119. package/build/esm/sub-blocks/PriceDetailed/schema.d.ts +1 -0
  120. package/build/esm/sub-blocks/PriceDetailed/schema.js +8 -0
  121. package/build/esm/sub-blocks/Quote/schema.d.ts +4 -0
  122. package/build/esm/sub-blocks/Quote/schema.js +1 -0
  123. package/build/esm/sub-blocks/TutorialCard/schema.d.ts +2 -0
  124. package/build/esm/sub-blocks/TutorialCard/schema.js +2 -0
  125. package/build/esm/text-transform/blocks.js +49 -32
  126. package/package.json +1 -4
  127. package/server/text-transform/blocks.js +49 -32
@@ -5,6 +5,7 @@ export declare const Quote: {
5
5
  properties: {
6
6
  text: {
7
7
  type: string;
8
+ contentType: string;
8
9
  };
9
10
  image: {
10
11
  oneOf: ({
@@ -47,9 +48,11 @@ export declare const Quote: {
47
48
  properties: {
48
49
  firstName: {
49
50
  type: string;
51
+ contentType: string;
50
52
  };
51
53
  secondName: {
52
54
  type: string;
55
+ contentType: string;
53
56
  };
54
57
  avatar: {
55
58
  type: string;
@@ -57,6 +60,7 @@ export declare const Quote: {
57
60
  };
58
61
  description: {
59
62
  type: string;
63
+ contentType: string;
60
64
  };
61
65
  };
62
66
  };
@@ -6,6 +6,7 @@ export const Quote = {
6
6
  required: ['text', 'image', 'logo'],
7
7
  properties: Object.assign(Object.assign({}, BaseProps), { text: {
8
8
  type: 'string',
9
+ contentType: 'text',
9
10
  }, image: withTheme(ImageProps), logo: {
10
11
  type: 'string',
11
12
  pattern: urlPattern,
@@ -8,9 +8,11 @@ export declare const TutorialCard: {
8
8
  };
9
9
  title: {
10
10
  type: string;
11
+ contentType: string;
11
12
  };
12
13
  text: {
13
14
  type: string;
15
+ contentType: string;
14
16
  };
15
17
  icon: {
16
18
  oneOf: ({
@@ -8,8 +8,10 @@ export const TutorialCard = {
8
8
  type: 'string',
9
9
  }, title: {
10
10
  type: 'string',
11
+ contentType: 'text',
11
12
  }, text: {
12
13
  type: 'string',
14
+ contentType: 'text',
13
15
  }, icon: ImageProps }),
14
16
  },
15
17
  };
@@ -35,13 +35,6 @@ function parsePromoFeatures(transformer, items) {
35
35
  return (Object.assign({ text: transformer(text) }, rest));
36
36
  });
37
37
  }
38
- function parseSlider(transformer, block) {
39
- const { title, description } = block;
40
- block.title = Object.assign(Object.assign({}, title), { text: transformer(title ? title.text : '') });
41
- if (description) {
42
- block.description = transformer(description);
43
- }
44
- }
45
38
  const parseTitle = (transformer, title) => typeof title === 'object' && 'text' in title
46
39
  ? Object.assign(Object.assign({}, title), { text: transformer(title.text) }) : title && transformer(title);
47
40
  const parseItemsTitle = (transformer, items) => items.map((_a) => {
@@ -95,6 +88,17 @@ export function yfmTransformer(lang, content) {
95
88
  export function typografTransformer(lang, content) {
96
89
  return typografToHTML(content, lang);
97
90
  }
91
+ const blockHeaderTransfomer = [
92
+ {
93
+ fields: ['title'],
94
+ transformer: typografTransformer,
95
+ parser: parseTitle,
96
+ },
97
+ {
98
+ fields: ['description'],
99
+ transformer: yfmTransformer,
100
+ },
101
+ ];
98
102
  const config = {
99
103
  [SubBlockType.Partner]: {
100
104
  fields: ['text'],
@@ -139,35 +143,35 @@ const config = {
139
143
  transformer: typografTransformer,
140
144
  },
141
145
  [BlockType.ExtendedFeaturesBlock]: [
146
+ ...blockHeaderTransfomer,
142
147
  {
143
- fields: ['title'],
148
+ fields: ['items'],
144
149
  transformer: typografTransformer,
145
- parser: parseTitle,
150
+ parser: createItemsParser(['title']),
146
151
  },
147
152
  {
148
- fields: ['description'],
153
+ fields: ['items'],
149
154
  transformer: yfmTransformer,
155
+ parser: createItemsParser(['text', 'additionalInfo']),
150
156
  },
157
+ ],
158
+ [BlockType.PromoFeaturesBlock]: [
151
159
  {
152
- fields: ['items'],
160
+ fields: ['title'],
153
161
  transformer: typografTransformer,
154
- parser: createItemsParser(['title']),
162
+ parser: parseTitle,
163
+ },
164
+ {
165
+ fields: ['description'],
166
+ transformer: yfmTransformer,
155
167
  },
156
168
  {
157
169
  fields: ['items'],
158
170
  transformer: yfmTransformer,
159
- parser: createItemsParser(['text', 'additionalInfo']),
171
+ parser: parsePromoFeatures,
160
172
  },
161
173
  ],
162
- [BlockType.PromoFeaturesBlock]: {
163
- fields: ['items'],
164
- transformer: yfmTransformer,
165
- parser: parsePromoFeatures,
166
- },
167
- [BlockType.SliderBlock]: {
168
- transformer: typografTransformer,
169
- parser: parseSlider,
170
- },
174
+ [BlockType.SliderBlock]: blockHeaderTransfomer,
171
175
  [BlockType.QuestionsBlock]: [
172
176
  {
173
177
  fields: ['title'],
@@ -204,21 +208,14 @@ const config = {
204
208
  },
205
209
  ],
206
210
  [BlockType.MediaBlock]: [
211
+ ...blockHeaderTransfomer,
207
212
  {
208
- fields: ['title'],
209
- transformer: typografTransformer,
210
- },
211
- {
212
- fields: ['description', 'title', 'additionalInfo'],
213
+ fields: ['title', 'additionalInfo'],
213
214
  transformer: yfmTransformer,
214
215
  },
215
216
  ],
216
217
  [BlockType.TabsBlock]: [
217
- {
218
- fields: ['title'],
219
- transformer: typografTransformer,
220
- parser: parseTitle,
221
- },
218
+ ...blockHeaderTransfomer,
222
219
  {
223
220
  fields: ['items'],
224
221
  transformer: yfmTransformer,
@@ -250,6 +247,11 @@ const config = {
250
247
  },
251
248
  ],
252
249
  [BlockType.SimpleBlock]: [
250
+ {
251
+ fields: ['title'],
252
+ transformer: typografTransformer,
253
+ parser: parseTitle,
254
+ },
253
255
  {
254
256
  fields: ['description'],
255
257
  transformer: yfmTransformer,
@@ -295,7 +297,13 @@ const config = {
295
297
  fields: ['description'],
296
298
  transformer: yfmTransformer,
297
299
  },
300
+ {
301
+ fields: ['title'],
302
+ transformer: typografTransformer,
303
+ parser: parseTitle,
304
+ },
298
305
  ],
306
+ [BlockType.PromoFeaturesBlock]: blockHeaderTransfomer,
299
307
  [BlockType.InfoBlock]: [
300
308
  {
301
309
  fields: ['rightContent', 'leftContent'],
@@ -314,6 +322,15 @@ const config = {
314
322
  transformer: typografTransformer,
315
323
  },
316
324
  ],
325
+ [BlockType.CardLayoutBlock]: blockHeaderTransfomer,
326
+ [BlockType.IconsBlock]: [
327
+ {
328
+ fields: ['title'],
329
+ transformer: typografTransformer,
330
+ parser: parseTitle,
331
+ },
332
+ ],
333
+ [BlockType.LinkTableBlock]: blockHeaderTransfomer,
317
334
  };
318
335
  function addRandomOrder(block) {
319
336
  if (block) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "1.11.1",
3
+ "version": "1.12.1",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -133,8 +133,5 @@
133
133
  "*.{json,yaml,yml,md}": [
134
134
  "prettier --write"
135
135
  ]
136
- },
137
- "publishConfig": {
138
- "tag": "alpha"
139
136
  }
140
137
  }
@@ -52,13 +52,6 @@ function parsePromoFeatures(transformer, items) {
52
52
  return (Object.assign({ text: transformer(text) }, rest));
53
53
  });
54
54
  }
55
- function parseSlider(transformer, block) {
56
- const { title, description } = block;
57
- block.title = Object.assign(Object.assign({}, title), { text: transformer(title ? title.text : '') });
58
- if (description) {
59
- block.description = transformer(description);
60
- }
61
- }
62
55
  const parseTitle = (transformer, title) => typeof title === 'object' && 'text' in title
63
56
  ? Object.assign(Object.assign({}, title), { text: transformer(title.text) }) : title && transformer(title);
64
57
  const parseItemsTitle = (transformer, items) => items.map((_a) => {
@@ -114,6 +107,17 @@ function typografTransformer(lang, content) {
114
107
  return (0, utils_1.typografToHTML)(content, lang);
115
108
  }
116
109
  exports.typografTransformer = typografTransformer;
110
+ const blockHeaderTransfomer = [
111
+ {
112
+ fields: ['title'],
113
+ transformer: typografTransformer,
114
+ parser: parseTitle,
115
+ },
116
+ {
117
+ fields: ['description'],
118
+ transformer: yfmTransformer,
119
+ },
120
+ ];
117
121
  const config = {
118
122
  [models_1.SubBlockType.Partner]: {
119
123
  fields: ['text'],
@@ -158,35 +162,35 @@ const config = {
158
162
  transformer: typografTransformer,
159
163
  },
160
164
  [models_1.BlockType.ExtendedFeaturesBlock]: [
165
+ ...blockHeaderTransfomer,
161
166
  {
162
- fields: ['title'],
167
+ fields: ['items'],
163
168
  transformer: typografTransformer,
164
- parser: parseTitle,
169
+ parser: (0, exports.createItemsParser)(['title']),
165
170
  },
166
171
  {
167
- fields: ['description'],
172
+ fields: ['items'],
168
173
  transformer: yfmTransformer,
174
+ parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
169
175
  },
176
+ ],
177
+ [models_1.BlockType.PromoFeaturesBlock]: [
170
178
  {
171
- fields: ['items'],
179
+ fields: ['title'],
172
180
  transformer: typografTransformer,
173
- parser: (0, exports.createItemsParser)(['title']),
181
+ parser: parseTitle,
182
+ },
183
+ {
184
+ fields: ['description'],
185
+ transformer: yfmTransformer,
174
186
  },
175
187
  {
176
188
  fields: ['items'],
177
189
  transformer: yfmTransformer,
178
- parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
190
+ parser: parsePromoFeatures,
179
191
  },
180
192
  ],
181
- [models_1.BlockType.PromoFeaturesBlock]: {
182
- fields: ['items'],
183
- transformer: yfmTransformer,
184
- parser: parsePromoFeatures,
185
- },
186
- [models_1.BlockType.SliderBlock]: {
187
- transformer: typografTransformer,
188
- parser: parseSlider,
189
- },
193
+ [models_1.BlockType.SliderBlock]: blockHeaderTransfomer,
190
194
  [models_1.BlockType.QuestionsBlock]: [
191
195
  {
192
196
  fields: ['title'],
@@ -223,21 +227,14 @@ const config = {
223
227
  },
224
228
  ],
225
229
  [models_1.BlockType.MediaBlock]: [
230
+ ...blockHeaderTransfomer,
226
231
  {
227
- fields: ['title'],
228
- transformer: typografTransformer,
229
- },
230
- {
231
- fields: ['description', 'title', 'additionalInfo'],
232
+ fields: ['title', 'additionalInfo'],
232
233
  transformer: yfmTransformer,
233
234
  },
234
235
  ],
235
236
  [models_1.BlockType.TabsBlock]: [
236
- {
237
- fields: ['title'],
238
- transformer: typografTransformer,
239
- parser: parseTitle,
240
- },
237
+ ...blockHeaderTransfomer,
241
238
  {
242
239
  fields: ['items'],
243
240
  transformer: yfmTransformer,
@@ -269,6 +266,11 @@ const config = {
269
266
  },
270
267
  ],
271
268
  [models_1.BlockType.SimpleBlock]: [
269
+ {
270
+ fields: ['title'],
271
+ transformer: typografTransformer,
272
+ parser: parseTitle,
273
+ },
272
274
  {
273
275
  fields: ['description'],
274
276
  transformer: yfmTransformer,
@@ -314,7 +316,13 @@ const config = {
314
316
  fields: ['description'],
315
317
  transformer: yfmTransformer,
316
318
  },
319
+ {
320
+ fields: ['title'],
321
+ transformer: typografTransformer,
322
+ parser: parseTitle,
323
+ },
317
324
  ],
325
+ [models_1.BlockType.PromoFeaturesBlock]: blockHeaderTransfomer,
318
326
  [models_1.BlockType.InfoBlock]: [
319
327
  {
320
328
  fields: ['rightContent', 'leftContent'],
@@ -333,6 +341,15 @@ const config = {
333
341
  transformer: typografTransformer,
334
342
  },
335
343
  ],
344
+ [models_1.BlockType.CardLayoutBlock]: blockHeaderTransfomer,
345
+ [models_1.BlockType.IconsBlock]: [
346
+ {
347
+ fields: ['title'],
348
+ transformer: typografTransformer,
349
+ parser: parseTitle,
350
+ },
351
+ ],
352
+ [models_1.BlockType.LinkTableBlock]: blockHeaderTransfomer,
336
353
  };
337
354
  function addRandomOrder(block) {
338
355
  if (block) {