@gravity-ui/page-constructor 1.12.0 → 1.12.1-alpha.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.
- package/CHANGELOG.md +9 -1
- package/build/cjs/blocks/CardLayout/schema.d.ts +22 -24
- package/build/cjs/blocks/CardLayout/schema.js +1 -6
- package/build/cjs/blocks/ExtendedFeatures/schema.d.ts +16 -17
- package/build/cjs/blocks/ExtendedFeatures/schema.js +1 -6
- package/build/cjs/blocks/HeaderSlider/schema.d.ts +0 -25
- package/build/cjs/blocks/LinkTable/schema.d.ts +29 -21
- package/build/cjs/blocks/LinkTable/schema.js +1 -1
- package/build/cjs/blocks/Media/schema.js +1 -1
- package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +14 -15
- package/build/cjs/blocks/PromoFeaturesBlock/schema.js +1 -6
- package/build/cjs/blocks/Slider/Slider.d.ts +1 -6
- package/build/cjs/blocks/Slider/schema.d.ts +28 -49
- package/build/cjs/blocks/Slider/schema.js +1 -6
- package/build/cjs/blocks/Tabs/schema.d.ts +29 -25
- package/build/cjs/blocks/Tabs/schema.js +1 -4
- package/build/cjs/components/Author/Author.js +2 -2
- package/build/cjs/components/Author/__tests__/Author.test.d.ts +1 -0
- package/build/cjs/components/Author/__tests__/Author.test.js +49 -0
- package/build/cjs/components/BlockHeader/BlockHeader.css +8 -19
- package/build/cjs/components/BlockHeader/BlockHeader.js +4 -3
- package/build/cjs/grid/Grid/Grid.css +16 -16
- package/build/cjs/models/constructor-items/common.d.ts +1 -0
- package/build/cjs/navigation/components/Header/Header.css +5 -3
- package/build/cjs/navigation/components/Logo/Logo.css +5 -6
- package/build/cjs/navigation/components/NavigationItem/NavigationItem.css +1 -0
- package/build/cjs/schema/validators/common.d.ts +31 -0
- package/build/cjs/schema/validators/common.js +10 -1
- package/build/cjs/sub-blocks/CardWithImage/schema.js +1 -1
- package/build/cjs/text-transform/blocks.js +44 -54
- package/build/esm/blocks/CardLayout/schema.d.ts +22 -24
- package/build/esm/blocks/CardLayout/schema.js +2 -7
- package/build/esm/blocks/ExtendedFeatures/schema.d.ts +16 -17
- package/build/esm/blocks/ExtendedFeatures/schema.js +2 -7
- package/build/esm/blocks/HeaderSlider/schema.d.ts +0 -25
- package/build/esm/blocks/LinkTable/schema.d.ts +29 -21
- package/build/esm/blocks/LinkTable/schema.js +2 -2
- package/build/esm/blocks/Media/schema.js +1 -1
- package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +14 -15
- package/build/esm/blocks/PromoFeaturesBlock/schema.js +2 -7
- package/build/esm/blocks/Slider/Slider.d.ts +1 -6
- package/build/esm/blocks/Slider/schema.d.ts +28 -49
- package/build/esm/blocks/Slider/schema.js +2 -7
- package/build/esm/blocks/Tabs/schema.d.ts +29 -25
- package/build/esm/blocks/Tabs/schema.js +2 -5
- package/build/esm/components/Author/Author.js +2 -2
- package/build/esm/components/Author/__tests__/Author.test.d.ts +1 -0
- package/build/esm/components/Author/__tests__/Author.test.js +46 -0
- package/build/esm/components/BlockHeader/BlockHeader.css +8 -19
- package/build/esm/components/BlockHeader/BlockHeader.js +5 -4
- package/build/esm/grid/Grid/Grid.css +16 -16
- package/build/esm/models/constructor-items/common.d.ts +1 -0
- package/build/esm/navigation/components/Header/Header.css +5 -3
- package/build/esm/navigation/components/Logo/Logo.css +5 -6
- package/build/esm/navigation/components/NavigationItem/NavigationItem.css +1 -0
- package/build/esm/schema/validators/common.d.ts +31 -0
- package/build/esm/schema/validators/common.js +9 -0
- package/build/esm/sub-blocks/CardWithImage/schema.js +1 -1
- package/build/esm/text-transform/blocks.js +44 -54
- package/package.json +2 -3
- package/server/models/constructor-items/common.d.ts +1 -0
- package/server/text-transform/blocks.js +44 -54
|
@@ -869,3 +869,34 @@ export declare const CardBase: {
|
|
|
869
869
|
enum: string[];
|
|
870
870
|
};
|
|
871
871
|
};
|
|
872
|
+
export declare const BlockHeaderProps: {
|
|
873
|
+
title: {
|
|
874
|
+
oneOf: ({
|
|
875
|
+
type: string;
|
|
876
|
+
additionalProperties: boolean;
|
|
877
|
+
required: string[];
|
|
878
|
+
properties: {
|
|
879
|
+
text: {
|
|
880
|
+
type: string;
|
|
881
|
+
contentType: string;
|
|
882
|
+
};
|
|
883
|
+
textSize: {
|
|
884
|
+
type: string;
|
|
885
|
+
enum: string[];
|
|
886
|
+
};
|
|
887
|
+
url: {
|
|
888
|
+
type: string;
|
|
889
|
+
};
|
|
890
|
+
resetMargin: {
|
|
891
|
+
type: string;
|
|
892
|
+
};
|
|
893
|
+
};
|
|
894
|
+
} | {
|
|
895
|
+
type: string;
|
|
896
|
+
})[];
|
|
897
|
+
};
|
|
898
|
+
description: {
|
|
899
|
+
type: string;
|
|
900
|
+
contentType: string;
|
|
901
|
+
};
|
|
902
|
+
};
|
|
@@ -444,3 +444,12 @@ export const CardBase = {
|
|
|
444
444
|
enum: ['border', 'shadow', 'none'],
|
|
445
445
|
},
|
|
446
446
|
};
|
|
447
|
+
export const BlockHeaderProps = {
|
|
448
|
+
title: {
|
|
449
|
+
oneOf: [{ type: 'string' }, TitleProps],
|
|
450
|
+
},
|
|
451
|
+
description: {
|
|
452
|
+
type: 'string',
|
|
453
|
+
contentType: 'yfm',
|
|
454
|
+
},
|
|
455
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { omit } from 'lodash';
|
|
2
2
|
import { BaseProps, textSize } from '../../schema/validators/common';
|
|
3
3
|
import { filteredArray } from '../../schema/validators/utils';
|
|
4
|
-
import { ContentBase } from '
|
|
4
|
+
import { ContentBase } from '../../sub-blocks/Content/schema';
|
|
5
5
|
const CardWithImageContentProps = omit(ContentBase, ['links', 'size', 'text', 'theme']);
|
|
6
6
|
const CardWithImageLinks = {
|
|
7
7
|
type: 'object',
|
|
@@ -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: ['
|
|
148
|
+
fields: ['items'],
|
|
144
149
|
transformer: typografTransformer,
|
|
145
|
-
parser:
|
|
150
|
+
parser: createItemsParser(['title']),
|
|
146
151
|
},
|
|
147
152
|
{
|
|
148
|
-
fields: ['
|
|
153
|
+
fields: ['items'],
|
|
149
154
|
transformer: yfmTransformer,
|
|
155
|
+
parser: createItemsParser(['text', 'additionalInfo']),
|
|
150
156
|
},
|
|
157
|
+
],
|
|
158
|
+
[BlockType.PromoFeaturesBlock]: [
|
|
151
159
|
{
|
|
152
|
-
fields: ['
|
|
160
|
+
fields: ['title'],
|
|
153
161
|
transformer: typografTransformer,
|
|
154
|
-
parser:
|
|
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:
|
|
171
|
+
parser: parsePromoFeatures,
|
|
160
172
|
},
|
|
161
173
|
],
|
|
162
|
-
[BlockType.
|
|
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,
|
|
@@ -301,28 +303,7 @@ const config = {
|
|
|
301
303
|
parser: parseTitle,
|
|
302
304
|
},
|
|
303
305
|
],
|
|
304
|
-
[BlockType.
|
|
305
|
-
{
|
|
306
|
-
fields: ['description'],
|
|
307
|
-
transformer: yfmTransformer,
|
|
308
|
-
},
|
|
309
|
-
{
|
|
310
|
-
fields: ['title'],
|
|
311
|
-
transformer: typografTransformer,
|
|
312
|
-
parser: parseTitle,
|
|
313
|
-
},
|
|
314
|
-
],
|
|
315
|
-
[BlockType.PromoFeaturesBlock]: [
|
|
316
|
-
{
|
|
317
|
-
fields: ['description'],
|
|
318
|
-
transformer: typografTransformer,
|
|
319
|
-
},
|
|
320
|
-
{
|
|
321
|
-
fields: ['title'],
|
|
322
|
-
transformer: typografTransformer,
|
|
323
|
-
parser: parseTitle,
|
|
324
|
-
},
|
|
325
|
-
],
|
|
306
|
+
[BlockType.PromoFeaturesBlock]: blockHeaderTransfomer,
|
|
326
307
|
[BlockType.InfoBlock]: [
|
|
327
308
|
{
|
|
328
309
|
fields: ['rightContent', 'leftContent'],
|
|
@@ -341,6 +322,15 @@ const config = {
|
|
|
341
322
|
transformer: typografTransformer,
|
|
342
323
|
},
|
|
343
324
|
],
|
|
325
|
+
[BlockType.CardLayoutBlock]: blockHeaderTransfomer,
|
|
326
|
+
[BlockType.IconsBlock]: [
|
|
327
|
+
{
|
|
328
|
+
fields: ['title'],
|
|
329
|
+
transformer: typografTransformer,
|
|
330
|
+
parser: parseTitle,
|
|
331
|
+
},
|
|
332
|
+
],
|
|
333
|
+
[BlockType.LinkTableBlock]: blockHeaderTransfomer,
|
|
344
334
|
};
|
|
345
335
|
function addRandomOrder(block) {
|
|
346
336
|
if (block) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gravity-ui/page-constructor",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.1-alpha.1",
|
|
4
4
|
"description": "Gravity UI Page Constructor",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@commitlint/cli": "^17.1.2",
|
|
68
68
|
"@commitlint/config-conventional": "^17.1.0",
|
|
69
|
-
"@doc-tools/transform": "
|
|
69
|
+
"@doc-tools/transform": "2.12.0",
|
|
70
70
|
"@gravity-ui/eslint-config": "^1.0.2",
|
|
71
71
|
"@gravity-ui/prettier-config": "^1.0.1",
|
|
72
72
|
"@gravity-ui/stylelint-config": "^1.0.0",
|
|
@@ -103,7 +103,6 @@
|
|
|
103
103
|
"lint-staged": "^11.2.6",
|
|
104
104
|
"markdown-loader": "^6.0.0",
|
|
105
105
|
"move-file-cli": "^3.0.0",
|
|
106
|
-
"mq-polyfill": "^1.1.8",
|
|
107
106
|
"npm-run-all": "^4.1.5",
|
|
108
107
|
"postcss": "^8.4.16",
|
|
109
108
|
"postcss-scss": "^4.0.4",
|
|
@@ -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: ['
|
|
167
|
+
fields: ['items'],
|
|
163
168
|
transformer: typografTransformer,
|
|
164
|
-
parser:
|
|
169
|
+
parser: (0, exports.createItemsParser)(['title']),
|
|
165
170
|
},
|
|
166
171
|
{
|
|
167
|
-
fields: ['
|
|
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: ['
|
|
179
|
+
fields: ['title'],
|
|
172
180
|
transformer: typografTransformer,
|
|
173
|
-
parser:
|
|
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:
|
|
190
|
+
parser: parsePromoFeatures,
|
|
179
191
|
},
|
|
180
192
|
],
|
|
181
|
-
[models_1.BlockType.
|
|
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,
|
|
@@ -320,28 +322,7 @@ const config = {
|
|
|
320
322
|
parser: parseTitle,
|
|
321
323
|
},
|
|
322
324
|
],
|
|
323
|
-
[models_1.BlockType.
|
|
324
|
-
{
|
|
325
|
-
fields: ['description'],
|
|
326
|
-
transformer: yfmTransformer,
|
|
327
|
-
},
|
|
328
|
-
{
|
|
329
|
-
fields: ['title'],
|
|
330
|
-
transformer: typografTransformer,
|
|
331
|
-
parser: parseTitle,
|
|
332
|
-
},
|
|
333
|
-
],
|
|
334
|
-
[models_1.BlockType.PromoFeaturesBlock]: [
|
|
335
|
-
{
|
|
336
|
-
fields: ['description'],
|
|
337
|
-
transformer: typografTransformer,
|
|
338
|
-
},
|
|
339
|
-
{
|
|
340
|
-
fields: ['title'],
|
|
341
|
-
transformer: typografTransformer,
|
|
342
|
-
parser: parseTitle,
|
|
343
|
-
},
|
|
344
|
-
],
|
|
325
|
+
[models_1.BlockType.PromoFeaturesBlock]: blockHeaderTransfomer,
|
|
345
326
|
[models_1.BlockType.InfoBlock]: [
|
|
346
327
|
{
|
|
347
328
|
fields: ['rightContent', 'leftContent'],
|
|
@@ -360,6 +341,15 @@ const config = {
|
|
|
360
341
|
transformer: typografTransformer,
|
|
361
342
|
},
|
|
362
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,
|
|
363
353
|
};
|
|
364
354
|
function addRandomOrder(block) {
|
|
365
355
|
if (block) {
|