@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 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(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({}, blocks_1.TabsBlock), blocks_1.SliderBlock), blocks_1.ExtendedFeaturesBlock), blocks_1.PromoFeaturesBlock), blocks_1.HeaderBlock), blocks_1.BannerBlock), blocks_1.CompaniesBlock), blocks_1.MediaBlock), blocks_1.InfoBlock), blocks_1.QuestionsBlock), blocks_1.SecurityBlock), blocks_1.TableBlock), blocks_1.SimpleBlock), blocks_1.LinkTableBlock), blocks_1.PreviewBlock), blocks_1.HeaderSliderBlock), blocks_1.IconsBlock), blocks_1.CardLayoutBlock), blocks_1.ContentLayoutBlock), sub_blocks_1.Divider), blocks_1.ShareBlock), (0, exports.getBlocksCases)(blocks)),
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(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), (0, exports.getBlocksCases)(cards)),
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(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({}, TabsBlock), SliderBlock), ExtendedFeaturesBlock), PromoFeaturesBlock), HeaderBlock), BannerBlock), CompaniesBlock), MediaBlock), InfoBlock), QuestionsBlock), SecurityBlock), TableBlock), SimpleBlock), LinkTableBlock), PreviewBlock), HeaderSliderBlock), IconsBlock), CardLayoutBlock), ContentLayoutBlock), Divider), ShareBlock), getBlocksCases(blocks)),
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(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), getBlocksCases(cards)),
80
+ selectCases: Object.assign(Object.assign({}, cardValidators), getBlocksCases(cards)),
77
81
  }),
78
82
  },
79
83
  type: 'object',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "1.10.1",
3
+ "version": "1.10.2",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {