@gravity-ui/page-constructor 1.10.1 → 1.10.2
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 +7 -0
- package/build/cjs/schema/index.js +48 -44
- package/build/esm/schema/index.js +49 -45
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.10.2](https://github.com/gravity-ui/page-constructor/compare/v1.10.1...v1.10.2) (2022-12-13)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* shema validation ([#80](https://github.com/gravity-ui/page-constructor/issues/80)) ([c0d2f92](https://github.com/gravity-ui/page-constructor/commit/c0d2f92c1dabab86f9cb9264714821aa391e4c4c))
|
|
9
|
+
|
|
3
10
|
## [1.10.1](https://github.com/gravity-ui/page-constructor/compare/v1.10.0...v1.10.1) (2022-12-13)
|
|
4
11
|
|
|
5
12
|
|
|
@@ -13,6 +13,50 @@ const getBlocksCases = (blocks) => {
|
|
|
13
13
|
exports.getBlocksCases = getBlocksCases;
|
|
14
14
|
function generateDefaultSchema(config) {
|
|
15
15
|
const { cards = {}, blocks = {}, extensions = {} } = config !== null && config !== void 0 ? config : {};
|
|
16
|
+
const blockValidators = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.Divider), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.SliderBlock), blocks_1.QuestionsBlock), blocks_1.HeaderBlock), blocks_1.BannerBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.InfoBlock), blocks_1.SecurityBlock), blocks_1.TableBlock), blocks_1.TabsBlock), blocks_1.SimpleBlock), blocks_1.LinkTableBlock), blocks_1.PreviewBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), blocks_1.ShareBlock);
|
|
17
|
+
const cardValidators = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, sub_blocks_1.PartnerBlock), sub_blocks_1.MediaCardBlock), blocks_1.BannerCard), sub_blocks_1.PriceDetailedBlock), sub_blocks_1.TutorialCard), sub_blocks_1.BackgroundCard), sub_blocks_1.NewsCard), sub_blocks_1.CardWithImage), sub_blocks_1.Quote), sub_blocks_1.BasicCard);
|
|
18
|
+
const constructorBlockSchemaNames = [
|
|
19
|
+
'divider',
|
|
20
|
+
'quote',
|
|
21
|
+
'event',
|
|
22
|
+
'post',
|
|
23
|
+
'extended-features-block',
|
|
24
|
+
'promo-features-block',
|
|
25
|
+
'slider-block',
|
|
26
|
+
'questions-block',
|
|
27
|
+
'header-block',
|
|
28
|
+
'banner-block',
|
|
29
|
+
'companies-block',
|
|
30
|
+
'media-block',
|
|
31
|
+
'info-block',
|
|
32
|
+
'security-block',
|
|
33
|
+
'table-block',
|
|
34
|
+
'tabs-block',
|
|
35
|
+
'simple-block',
|
|
36
|
+
'link-table-block',
|
|
37
|
+
'preview-block',
|
|
38
|
+
'price-detailed',
|
|
39
|
+
'header-slider-block',
|
|
40
|
+
'cards-with-image-block',
|
|
41
|
+
'icons-block',
|
|
42
|
+
'card-layout-block',
|
|
43
|
+
'content-layout-block',
|
|
44
|
+
'share-block',
|
|
45
|
+
];
|
|
46
|
+
const constructorCardSchemaNames = [
|
|
47
|
+
'partner',
|
|
48
|
+
'media-card',
|
|
49
|
+
'banner-card',
|
|
50
|
+
'price-detailed',
|
|
51
|
+
'tutoral-card',
|
|
52
|
+
'background-card',
|
|
53
|
+
'news-card',
|
|
54
|
+
'card-with-image',
|
|
55
|
+
'quote',
|
|
56
|
+
'basic-card',
|
|
57
|
+
];
|
|
58
|
+
const configBlockSchemaNames = Object.keys(blocks).filter((item) => !constructorBlockSchemaNames.includes(item));
|
|
59
|
+
const configCardSchemaNames = Object.keys(cards).filter((item) => !constructorCardSchemaNames.includes(item));
|
|
16
60
|
return {
|
|
17
61
|
$id: 'self',
|
|
18
62
|
definitions: {
|
|
@@ -22,38 +66,11 @@ function generateDefaultSchema(config) {
|
|
|
22
66
|
properties: {
|
|
23
67
|
type: {
|
|
24
68
|
type: 'string',
|
|
25
|
-
enum: [
|
|
26
|
-
'divider',
|
|
27
|
-
'quote',
|
|
28
|
-
'event',
|
|
29
|
-
'post',
|
|
30
|
-
'extended-features-block',
|
|
31
|
-
'promo-features-block',
|
|
32
|
-
'slider-block',
|
|
33
|
-
'questions-block',
|
|
34
|
-
'header-block',
|
|
35
|
-
'banner-block',
|
|
36
|
-
'companies-block',
|
|
37
|
-
'media-block',
|
|
38
|
-
'info-block',
|
|
39
|
-
'security-block',
|
|
40
|
-
'table-block',
|
|
41
|
-
'tabs-block',
|
|
42
|
-
'simple-block',
|
|
43
|
-
'link-table-block',
|
|
44
|
-
'preview-block',
|
|
45
|
-
'price-detailed',
|
|
46
|
-
'header-slider-block',
|
|
47
|
-
'cards-with-image-block',
|
|
48
|
-
'icons-block',
|
|
49
|
-
'card-layout-block',
|
|
50
|
-
'content-layout-block',
|
|
51
|
-
...Object.keys(blocks),
|
|
52
|
-
],
|
|
69
|
+
enum: [...constructorBlockSchemaNames, ...configBlockSchemaNames],
|
|
53
70
|
},
|
|
54
71
|
},
|
|
55
72
|
select: { $data: '0/type' },
|
|
56
|
-
selectCases: Object.assign(Object.assign(
|
|
73
|
+
selectCases: Object.assign(Object.assign({}, blockValidators), (0, exports.getBlocksCases)(blocks)),
|
|
57
74
|
}),
|
|
58
75
|
cards: (0, utils_1.filteredItem)({
|
|
59
76
|
type: 'object',
|
|
@@ -61,24 +78,11 @@ function generateDefaultSchema(config) {
|
|
|
61
78
|
properties: {
|
|
62
79
|
type: {
|
|
63
80
|
type: 'string',
|
|
64
|
-
enum: [
|
|
65
|
-
'partner',
|
|
66
|
-
'post',
|
|
67
|
-
'media-card',
|
|
68
|
-
'banner-card',
|
|
69
|
-
'price-detailed',
|
|
70
|
-
'tutoral-card',
|
|
71
|
-
'background-card',
|
|
72
|
-
'news-card',
|
|
73
|
-
'card-with-image',
|
|
74
|
-
'quote',
|
|
75
|
-
'basic-card',
|
|
76
|
-
...Object.keys(cards),
|
|
77
|
-
],
|
|
81
|
+
enum: [...constructorCardSchemaNames, ...configCardSchemaNames],
|
|
78
82
|
},
|
|
79
83
|
},
|
|
80
84
|
select: { $data: '0/type' },
|
|
81
|
-
selectCases: Object.assign(Object.assign(
|
|
85
|
+
selectCases: Object.assign(Object.assign({}, cardValidators), (0, exports.getBlocksCases)(cards)),
|
|
82
86
|
}),
|
|
83
87
|
},
|
|
84
88
|
type: 'object',
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { validators } from './validators';
|
|
2
2
|
import { TabsBlock, BannerCard, SliderBlock, ExtendedFeaturesBlock, HeaderBlock, BannerBlock, CompaniesBlock, MediaBlock, InfoBlock, QuestionsBlock, SecurityBlock, TableBlock, SimpleBlock, LinkTableBlock, PromoFeaturesBlock, PreviewBlock, ContentLayoutBlock, HeaderSliderBlock, IconsBlock, CardLayoutBlock, ShareBlock, } from './validators/blocks';
|
|
3
|
-
import { PartnerBlock, MediaCardBlock, TutorialCard, BackgroundCard, NewsCard, CardWithImage, PriceDetailedBlock, Quote, Divider, } from './validators/sub-blocks';
|
|
3
|
+
import { PartnerBlock, MediaCardBlock, TutorialCard, BackgroundCard, NewsCard, CardWithImage, PriceDetailedBlock, Quote, Divider, BasicCard, } from './validators/sub-blocks';
|
|
4
4
|
import { AnimatableProps, BackgroundProps, MenuProps, withTheme } from './validators/common';
|
|
5
5
|
import { filteredItem } from './validators/utils';
|
|
6
6
|
export const getBlocksCases = (blocks) => {
|
|
@@ -8,6 +8,50 @@ export const getBlocksCases = (blocks) => {
|
|
|
8
8
|
};
|
|
9
9
|
export function generateDefaultSchema(config) {
|
|
10
10
|
const { cards = {}, blocks = {}, extensions = {} } = config !== null && config !== void 0 ? config : {};
|
|
11
|
+
const blockValidators = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, Divider), ExtendedFeaturesBlock), PromoFeaturesBlock), SliderBlock), QuestionsBlock), HeaderBlock), BannerBlock), CompaniesBlock), MediaBlock), InfoBlock), SecurityBlock), TableBlock), TabsBlock), SimpleBlock), LinkTableBlock), PreviewBlock), HeaderSliderBlock), IconsBlock), CardLayoutBlock), ContentLayoutBlock), ShareBlock);
|
|
12
|
+
const cardValidators = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, PartnerBlock), MediaCardBlock), BannerCard), PriceDetailedBlock), TutorialCard), BackgroundCard), NewsCard), CardWithImage), Quote), BasicCard);
|
|
13
|
+
const constructorBlockSchemaNames = [
|
|
14
|
+
'divider',
|
|
15
|
+
'quote',
|
|
16
|
+
'event',
|
|
17
|
+
'post',
|
|
18
|
+
'extended-features-block',
|
|
19
|
+
'promo-features-block',
|
|
20
|
+
'slider-block',
|
|
21
|
+
'questions-block',
|
|
22
|
+
'header-block',
|
|
23
|
+
'banner-block',
|
|
24
|
+
'companies-block',
|
|
25
|
+
'media-block',
|
|
26
|
+
'info-block',
|
|
27
|
+
'security-block',
|
|
28
|
+
'table-block',
|
|
29
|
+
'tabs-block',
|
|
30
|
+
'simple-block',
|
|
31
|
+
'link-table-block',
|
|
32
|
+
'preview-block',
|
|
33
|
+
'price-detailed',
|
|
34
|
+
'header-slider-block',
|
|
35
|
+
'cards-with-image-block',
|
|
36
|
+
'icons-block',
|
|
37
|
+
'card-layout-block',
|
|
38
|
+
'content-layout-block',
|
|
39
|
+
'share-block',
|
|
40
|
+
];
|
|
41
|
+
const constructorCardSchemaNames = [
|
|
42
|
+
'partner',
|
|
43
|
+
'media-card',
|
|
44
|
+
'banner-card',
|
|
45
|
+
'price-detailed',
|
|
46
|
+
'tutoral-card',
|
|
47
|
+
'background-card',
|
|
48
|
+
'news-card',
|
|
49
|
+
'card-with-image',
|
|
50
|
+
'quote',
|
|
51
|
+
'basic-card',
|
|
52
|
+
];
|
|
53
|
+
const configBlockSchemaNames = Object.keys(blocks).filter((item) => !constructorBlockSchemaNames.includes(item));
|
|
54
|
+
const configCardSchemaNames = Object.keys(cards).filter((item) => !constructorCardSchemaNames.includes(item));
|
|
11
55
|
return {
|
|
12
56
|
$id: 'self',
|
|
13
57
|
definitions: {
|
|
@@ -17,38 +61,11 @@ export function generateDefaultSchema(config) {
|
|
|
17
61
|
properties: {
|
|
18
62
|
type: {
|
|
19
63
|
type: 'string',
|
|
20
|
-
enum: [
|
|
21
|
-
'divider',
|
|
22
|
-
'quote',
|
|
23
|
-
'event',
|
|
24
|
-
'post',
|
|
25
|
-
'extended-features-block',
|
|
26
|
-
'promo-features-block',
|
|
27
|
-
'slider-block',
|
|
28
|
-
'questions-block',
|
|
29
|
-
'header-block',
|
|
30
|
-
'banner-block',
|
|
31
|
-
'companies-block',
|
|
32
|
-
'media-block',
|
|
33
|
-
'info-block',
|
|
34
|
-
'security-block',
|
|
35
|
-
'table-block',
|
|
36
|
-
'tabs-block',
|
|
37
|
-
'simple-block',
|
|
38
|
-
'link-table-block',
|
|
39
|
-
'preview-block',
|
|
40
|
-
'price-detailed',
|
|
41
|
-
'header-slider-block',
|
|
42
|
-
'cards-with-image-block',
|
|
43
|
-
'icons-block',
|
|
44
|
-
'card-layout-block',
|
|
45
|
-
'content-layout-block',
|
|
46
|
-
...Object.keys(blocks),
|
|
47
|
-
],
|
|
64
|
+
enum: [...constructorBlockSchemaNames, ...configBlockSchemaNames],
|
|
48
65
|
},
|
|
49
66
|
},
|
|
50
67
|
select: { $data: '0/type' },
|
|
51
|
-
selectCases: Object.assign(Object.assign(
|
|
68
|
+
selectCases: Object.assign(Object.assign({}, blockValidators), getBlocksCases(blocks)),
|
|
52
69
|
}),
|
|
53
70
|
cards: filteredItem({
|
|
54
71
|
type: 'object',
|
|
@@ -56,24 +73,11 @@ export function generateDefaultSchema(config) {
|
|
|
56
73
|
properties: {
|
|
57
74
|
type: {
|
|
58
75
|
type: 'string',
|
|
59
|
-
enum: [
|
|
60
|
-
'partner',
|
|
61
|
-
'post',
|
|
62
|
-
'media-card',
|
|
63
|
-
'banner-card',
|
|
64
|
-
'price-detailed',
|
|
65
|
-
'tutoral-card',
|
|
66
|
-
'background-card',
|
|
67
|
-
'news-card',
|
|
68
|
-
'card-with-image',
|
|
69
|
-
'quote',
|
|
70
|
-
'basic-card',
|
|
71
|
-
...Object.keys(cards),
|
|
72
|
-
],
|
|
76
|
+
enum: [...constructorCardSchemaNames, ...configCardSchemaNames],
|
|
73
77
|
},
|
|
74
78
|
},
|
|
75
79
|
select: { $data: '0/type' },
|
|
76
|
-
selectCases: Object.assign(Object.assign(
|
|
80
|
+
selectCases: Object.assign(Object.assign({}, cardValidators), getBlocksCases(cards)),
|
|
77
81
|
}),
|
|
78
82
|
},
|
|
79
83
|
type: 'object',
|