@gravity-ui/page-constructor 1.4.2 → 1.6.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 (44) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/build/cjs/blocks/ContentLayout/ContentLayout.css +2 -2
  3. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.css +1 -1
  4. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +26 -12
  5. package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.css +1 -0
  6. package/build/cjs/constructor-items.d.ts +0 -11
  7. package/build/cjs/constructor-items.js +0 -5
  8. package/build/cjs/models/constructor-items/blocks.d.ts +4 -2
  9. package/build/cjs/models/constructor-items/common.d.ts +0 -2
  10. package/build/cjs/models/constructor-items/sub-blocks.d.ts +5 -5
  11. package/build/cjs/schema/index.js +1 -3
  12. package/build/cjs/schema/validators/common.d.ts +6 -0
  13. package/build/cjs/schema/validators/common.js +7 -1
  14. package/build/cjs/schema/validators/sub-blocks.d.ts +0 -4
  15. package/build/cjs/schema/validators/sub-blocks.js +0 -4
  16. package/build/cjs/sub-blocks/BackgroundCard/schema.js +5 -6
  17. package/build/cjs/sub-blocks/BasicCard/schema.js +5 -6
  18. package/build/cjs/text-transform/blocks.js +11 -13
  19. package/build/esm/blocks/ContentLayout/ContentLayout.css +2 -2
  20. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.css +1 -1
  21. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +28 -14
  22. package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.css +1 -0
  23. package/build/esm/constructor-items.d.ts +0 -11
  24. package/build/esm/constructor-items.js +0 -5
  25. package/build/esm/models/constructor-items/blocks.d.ts +4 -2
  26. package/build/esm/models/constructor-items/common.d.ts +0 -2
  27. package/build/esm/models/constructor-items/sub-blocks.d.ts +5 -5
  28. package/build/esm/schema/index.js +2 -4
  29. package/build/esm/schema/validators/common.d.ts +6 -0
  30. package/build/esm/schema/validators/common.js +6 -0
  31. package/build/esm/schema/validators/sub-blocks.d.ts +0 -4
  32. package/build/esm/schema/validators/sub-blocks.js +0 -4
  33. package/build/esm/sub-blocks/BackgroundCard/schema.js +1 -2
  34. package/build/esm/sub-blocks/BasicCard/schema.js +1 -2
  35. package/build/esm/text-transform/blocks.js +11 -13
  36. package/package.json +4 -1
  37. package/server/models/constructor-items/blocks.d.ts +4 -2
  38. package/server/models/constructor-items/common.d.ts +0 -2
  39. package/server/models/constructor-items/sub-blocks.d.ts +5 -5
  40. package/server/text-transform/blocks.js +11 -13
  41. package/build/cjs/components/CardBase/schema.d.ts +0 -70
  42. package/build/cjs/components/CardBase/schema.js +0 -53
  43. package/build/esm/components/CardBase/schema.d.ts +0 -70
  44. package/build/esm/components/CardBase/schema.js +0 -50
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.6.0](https://github.com/gravity-ui/page-constructor/pulls?q=is%3Apr+is%3Aclosed) (2022-11-09)
4
+
5
+ ### Features
6
+
7
+ * update storybook
8
+
9
+ ## [1.5.0](https://github.com/gravity-ui/page-constructor/issues/44) (2022-11-03)
10
+
11
+ ### Features
12
+
13
+ * remove card validator and types
14
+
3
15
  ## [1.4.2](https://github.com/gravity-ui/page-constructor/pull/46) (2022-11-07)
4
16
 
5
17
  ### Bug Fixes
@@ -19,8 +19,8 @@ unpredictable css rules order in build */
19
19
  line-height: var(--yc-text-body-2-line-height);
20
20
  }
21
21
  .pc-content-layout-block__files_size_l {
22
- font-size: var(--yc-text-body3-font-size);
23
- line-height: var(--yc-text-body3-line-height);
22
+ font-size: var(--yc-text-body-3-font-size);
23
+ line-height: var(--yc-text-body-3-line-height);
24
24
  }
25
25
  .pc-content-layout-block__files_centered {
26
26
  margin-left: auto;
@@ -74,7 +74,7 @@ unpredictable css rules order in build */
74
74
  height: 32px;
75
75
  background-size: cover;
76
76
  display: block;
77
- margin-bottom: 8px;
77
+ margin-bottom: 12px;
78
78
  }
79
79
  @media (max-width: 577px) {
80
80
  .pc-ExtendedFeaturesBlock__item {
@@ -2,26 +2,40 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ExtendedFeaturesBlock = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const react_1 = (0, tslib_1.__importDefault)(require("react"));
5
+ const react_1 = (0, tslib_1.__importStar)(require("react"));
6
6
  const utils_1 = require("../../utils");
7
7
  const grid_1 = require("../../grid");
8
8
  const components_1 = require("../../components/");
9
+ const sub_blocks_1 = require("../../sub-blocks");
10
+ const Image_1 = (0, tslib_1.__importDefault)(require("../../components/Image/Image"));
11
+ const ThemeValueContext_1 = require("../../context/theme/ThemeValueContext");
12
+ const utils_2 = require("../../components/Media/Image/utils");
9
13
  const b = (0, utils_1.block)('ExtendedFeaturesBlock');
10
14
  const DEFAULT_SIZES = {
11
15
  all: 12,
12
16
  sm: 6,
13
17
  md: 4,
14
18
  };
15
- const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => (react_1.default.createElement(components_1.AnimateBlock, { className: b(), animate: animated },
16
- react_1.default.createElement(components_1.BlockHeader, { title: title, description: description, className: b('header') }),
17
- react_1.default.createElement("div", { className: b('items') },
18
- react_1.default.createElement(grid_1.Row, null, items.map(({ title: itemTitle, text, link, label, icon }) => (react_1.default.createElement(grid_1.Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
19
- icon && react_1.default.createElement("img", { src: icon, className: b('icon') }),
20
- itemTitle && (react_1.default.createElement("h5", { className: b('item-title', { 'has-label': Boolean(label) }) },
21
- react_1.default.createElement(components_1.HTML, null, itemTitle),
22
- label && react_1.default.createElement("div", { className: b('item-label') }, label))),
23
- text && (react_1.default.createElement("div", { className: b('item-text') },
24
- react_1.default.createElement(components_1.HTML, null, text))),
25
- link && react_1.default.createElement(components_1.Link, Object.assign({ className: b('item-link') }, link)))))))));
19
+ const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => {
20
+ const { themeValue: theme } = (0, react_1.useContext)(ThemeValueContext_1.ThemeValueContext);
21
+ return (react_1.default.createElement(components_1.AnimateBlock, { className: b(), animate: animated },
22
+ react_1.default.createElement(components_1.BlockHeader, { title: title, description: description, className: b('header') }),
23
+ react_1.default.createElement("div", { className: b('items') },
24
+ react_1.default.createElement(grid_1.Row, null, items.map(({ title: itemTitle, text, link, links, label, icon }) => {
25
+ const itemLinks = links || [];
26
+ const iconThemed = icon && (0, utils_1.getThemedValue)(icon, theme);
27
+ const iconData = iconThemed && (0, utils_2.getMediaImage)(iconThemed);
28
+ if (link) {
29
+ itemLinks.push(link);
30
+ }
31
+ return (react_1.default.createElement(grid_1.Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
32
+ iconData && react_1.default.createElement(Image_1.default, Object.assign({}, iconData, { className: b('icon') })),
33
+ react_1.default.createElement("div", { className: b('container') },
34
+ itemTitle && (react_1.default.createElement("h5", { className: b('item-title') },
35
+ react_1.default.createElement(components_1.HTML, null, itemTitle),
36
+ label && (react_1.default.createElement("div", { className: b('item-label') }, label)))),
37
+ react_1.default.createElement(sub_blocks_1.Content, { text: text, links: itemLinks, size: "s", colSizes: { all: 12, md: 12 } }))));
38
+ })))));
39
+ };
26
40
  exports.ExtendedFeaturesBlock = ExtendedFeaturesBlock;
27
41
  exports.default = exports.ExtendedFeaturesBlock;
@@ -35,6 +35,7 @@ unpredictable css rules order in build */
35
35
  flex-direction: column;
36
36
  justify-content: center;
37
37
  border-radius: var(--pc-border-radius);
38
+ overflow: hidden;
38
39
  }
39
40
  .pc-PromoFeaturesBlock__card-info {
40
41
  padding: 32px 32px 0 32px;
@@ -38,15 +38,4 @@ export declare const subBlockMap: {
38
38
  "basic-card": (props: import("./models").BasicCardProps) => JSX.Element;
39
39
  content: (props: import("./models").ContentBlockProps & import("./models").ClassNameProps) => JSX.Element;
40
40
  quote: (props: import("./models").QuoteProps) => JSX.Element;
41
- /**
42
- * @deprecated Will be removed, use basic card instead
43
- */
44
- card: {
45
- (props: import("./components/CardBase/CardBase").CardBaseProps): JSX.Element;
46
- Header: import("react").FC<import("./models").WithChildren<import("./components/CardBase/CardBase").CardHeaderBaseProps>>;
47
- Content: import("react").FC<{
48
- children?: import("react").ReactNode;
49
- }>;
50
- Footer: import("react").FC<import("./models").WithChildren<import("./components/CardBase/CardBase").CardFooterBaseProps>>;
51
- };
52
41
  };
@@ -4,7 +4,6 @@ exports.subBlockMap = exports.blockMap = void 0;
4
4
  const models_1 = require("./models");
5
5
  const sub_blocks_1 = require("./sub-blocks");
6
6
  const blocks_1 = require("./blocks");
7
- const components_1 = require("./components");
8
7
  exports.blockMap = {
9
8
  [models_1.BlockType.SliderBlock]: blocks_1.SliderBlock,
10
9
  [models_1.BlockType.SimpleBlock]: blocks_1.SimpleBlock,
@@ -45,8 +44,4 @@ exports.subBlockMap = {
45
44
  [models_1.SubBlockType.BasicCard]: sub_blocks_1.BasicCard,
46
45
  [models_1.SubBlockType.Content]: sub_blocks_1.Content,
47
46
  [models_1.SubBlockType.Quote]: sub_blocks_1.Quote,
48
- /**
49
- * @deprecated Will be removed, use basic card instead
50
- */
51
- [models_1.SubBlockType.Card]: components_1.CardBase,
52
47
  };
@@ -118,8 +118,10 @@ export interface ExtendedFeaturesItem {
118
118
  title?: string;
119
119
  text?: string;
120
120
  label?: string;
121
- icon?: string;
121
+ icon?: ThemedImage;
122
+ /** @deprecated **/
122
123
  link?: LinkProps;
124
+ links?: LinkProps[];
123
125
  }
124
126
  export interface ExtendedFeaturesProps extends Animatable {
125
127
  items: ExtendedFeaturesItem[];
@@ -244,7 +246,7 @@ export interface CardLayoutBlockProps extends Childable, Animatable, LoadableChi
244
246
  }
245
247
  export interface IconsBlockProps {
246
248
  title?: string;
247
- size: 's' | 'm' | 'l';
249
+ size?: 's' | 'm' | 'l';
248
250
  items: {
249
251
  url: string;
250
252
  text: string;
@@ -260,8 +260,6 @@ export declare type CardBorder = 'shadow' | 'line' | 'none';
260
260
  export interface CardBaseProps {
261
261
  border?: CardBorder;
262
262
  }
263
- export interface CardProps extends CardBaseProps, CardData {
264
- }
265
263
  export interface CardHeader {
266
264
  title?: string;
267
265
  image?: ImageProps;
@@ -1,7 +1,7 @@
1
1
  import { ClassNameProps } from '../../models';
2
2
  import { ThemeSupporting } from '../../utils';
3
3
  import { HubspotEventData, HubspotEventHandlers } from '../../utils/hubspot';
4
- import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, CardProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
4
+ import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
5
5
  import { ContentBlockProps } from './blocks';
6
6
  import { PixelEvent } from '../common';
7
7
  export declare enum SubBlockType {
@@ -128,9 +128,6 @@ export interface CardWithImageProps extends ClassNameProps, Pick<ContentBlockPro
128
128
  export declare type DividerModel = {
129
129
  type: SubBlockType.Divider;
130
130
  } & DividerProps;
131
- export declare type CardModel = {
132
- type: SubBlockType.Card;
133
- } & CardProps;
134
131
  export declare type QuoteModel = {
135
132
  type: SubBlockType.Quote;
136
133
  } & QuoteProps;
@@ -161,5 +158,8 @@ export declare type HubspotFormModel = {
161
158
  export declare type BannerCardModel = {
162
159
  type: SubBlockType.BannerCard;
163
160
  } & BannerCardProps;
164
- export declare type SubBlockModels = DividerModel | CardModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel;
161
+ export declare type BasicCardModel = {
162
+ type: SubBlockType.BasicCard;
163
+ } & BasicCardProps;
164
+ export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel;
165
165
  export declare type SubBlock = SubBlockModels;
@@ -24,7 +24,6 @@ function generateDefaultSchema(config) {
24
24
  type: 'string',
25
25
  enum: [
26
26
  'divider',
27
- 'card',
28
27
  'quote',
29
28
  'event',
30
29
  'post',
@@ -63,7 +62,6 @@ function generateDefaultSchema(config) {
63
62
  type: {
64
63
  type: 'string',
65
64
  enum: [
66
- 'card',
67
65
  'partner',
68
66
  'post',
69
67
  'media-card',
@@ -80,7 +78,7 @@ function generateDefaultSchema(config) {
80
78
  },
81
79
  },
82
80
  select: { $data: '0/type' },
83
- selectCases: 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.CardBlock), 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)),
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)),
84
82
  }),
85
83
  },
86
84
  type: 'object',
@@ -846,3 +846,9 @@ export declare const MediaProps: {
846
846
  })[];
847
847
  };
848
848
  };
849
+ export declare const CardBase: {
850
+ border: {
851
+ type: string;
852
+ enum: string[];
853
+ };
854
+ };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MediaProps = exports.ButtonBlock = exports.TitleProps = exports.BlockBaseProps = exports.AnchorProps = exports.withTheme = exports.MenuProps = exports.ButtonProps = exports.authorItem = exports.FileLinkProps = exports.LinkProps = exports.BackgroundProps = exports.DataLensProps = exports.DataLensObjectProps = exports.JustifyProps = exports.ThemeProps = exports.VideoProps = exports.PlayIconProps = exports.LoopProps = exports.ChildrenCardsProps = exports.ChildrenProps = exports.AnimatableProps = exports.sliderSizesObject = exports.containerSizesObject = exports.BaseProps = exports.contentThemes = exports.sizeNumber = exports.dividerEnum = exports.fileLinkTypes = exports.videoControlsTypes = exports.playIconThemes = exports.playIconTypes = exports.videoTypes = exports.contentTextWidth = exports.contentSizes = exports.sliderSizesArray = exports.containerSizesArray = exports.textSize = exports.mediaDirection = void 0;
3
+ exports.CardBase = exports.MediaProps = exports.ButtonBlock = exports.TitleProps = exports.BlockBaseProps = exports.AnchorProps = exports.withTheme = exports.MenuProps = exports.ButtonProps = exports.authorItem = exports.FileLinkProps = exports.LinkProps = exports.BackgroundProps = exports.DataLensProps = exports.DataLensObjectProps = exports.JustifyProps = exports.ThemeProps = exports.VideoProps = exports.PlayIconProps = exports.LoopProps = exports.ChildrenCardsProps = exports.ChildrenProps = exports.AnimatableProps = exports.sliderSizesObject = exports.containerSizesObject = exports.BaseProps = exports.contentThemes = exports.sizeNumber = exports.dividerEnum = exports.fileLinkTypes = exports.videoControlsTypes = exports.playIconThemes = exports.playIconTypes = exports.videoTypes = exports.contentTextWidth = exports.contentSizes = exports.sliderSizesArray = exports.containerSizesArray = exports.textSize = exports.mediaDirection = void 0;
4
4
  const pixel_1 = require("./pixel");
5
5
  const models_1 = require("../../models");
6
6
  const schema_1 = require("../../components/Image/schema");
@@ -431,3 +431,9 @@ exports.MediaProps = {
431
431
  },
432
432
  dataLens: exports.DataLensProps,
433
433
  };
434
+ exports.CardBase = {
435
+ border: {
436
+ type: 'string',
437
+ enum: ['border', 'shadow', 'none'],
438
+ },
439
+ };
@@ -9,7 +9,3 @@ export * from '../../sub-blocks/CardWithImage/schema';
9
9
  export * from '../../sub-blocks/Quote/schema';
10
10
  export * from '../../sub-blocks/Divider/schema';
11
11
  export * from '../../sub-blocks/BasicCard/schema';
12
- /**
13
- * @deprecated Will be removed
14
- */
15
- export * from '../../components/CardBase/schema';
@@ -12,7 +12,3 @@ const tslib_1 = require("tslib");
12
12
  (0, tslib_1.__exportStar)(require("../../sub-blocks/Quote/schema"), exports);
13
13
  (0, tslib_1.__exportStar)(require("../../sub-blocks/Divider/schema"), exports);
14
14
  (0, tslib_1.__exportStar)(require("../../sub-blocks/BasicCard/schema"), exports);
15
- /**
16
- * @deprecated Will be removed
17
- */
18
- (0, tslib_1.__exportStar)(require("../../components/CardBase/schema"), exports);
@@ -3,18 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BackgroundCard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const common_1 = require("../../schema/validators/common");
6
- const schema_1 = require("../../components/CardBase/schema");
7
- const schema_2 = require("../Content/schema");
8
- const schema_3 = require("../../components/Image/schema");
6
+ const schema_1 = require("../Content/schema");
7
+ const schema_2 = require("../../components/Image/schema");
9
8
  const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
10
- const BackgroundCardContentProps = lodash_1.default.omit(schema_2.ContentBase, ['size']);
9
+ const BackgroundCardContentProps = lodash_1.default.omit(schema_1.ContentBase, ['size']);
11
10
  exports.BackgroundCard = {
12
11
  'background-card': {
13
12
  additionalProperties: false,
14
13
  required: ['title', 'text'],
15
- properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), schema_1.CardBase), BackgroundCardContentProps), { url: {
14
+ properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.CardBase), BackgroundCardContentProps), { url: {
16
15
  type: 'string',
17
- }, background: (0, common_1.withTheme)(schema_3.ImageObjectProps), backgroundColor: {
16
+ }, background: (0, common_1.withTheme)(schema_2.ImageObjectProps), backgroundColor: {
18
17
  type: 'string',
19
18
  }, paddingBottom: {
20
19
  type: 'string',
@@ -4,16 +4,15 @@ exports.BasicCard = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const lodash_1 = (0, tslib_1.__importDefault)(require("lodash"));
6
6
  const common_1 = require("../../schema/validators/common");
7
- const schema_1 = require("../../components/CardBase/schema");
8
- const schema_2 = require("../Content/schema");
9
- const schema_3 = require("../../components/Image/schema");
10
- const BasicCardContentProps = lodash_1.default.omit(schema_2.ContentBase, ['size', 'theme']);
7
+ const schema_1 = require("../Content/schema");
8
+ const schema_2 = require("../../components/Image/schema");
9
+ const BasicCardContentProps = lodash_1.default.omit(schema_1.ContentBase, ['size', 'theme']);
11
10
  exports.BasicCard = {
12
11
  'basic-card': {
13
12
  additionalProperties: false,
14
13
  required: ['url'],
15
- properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), schema_1.CardBase), BasicCardContentProps), { url: {
14
+ properties: Object.assign(Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.CardBase), BasicCardContentProps), { url: {
16
15
  type: 'string',
17
- }, icon: schema_3.ImageProps }),
16
+ }, icon: schema_2.ImageProps }),
18
17
  },
19
18
  };
@@ -47,14 +47,6 @@ function parseSlider(transformer, block) {
47
47
  block.description = transformer(description);
48
48
  }
49
49
  }
50
- function parseCard(transformer, card) {
51
- const { header, text } = card;
52
- card.text = text && transformer(text);
53
- if (header && header.title) {
54
- card.header = card.header || {};
55
- card.header.title = transformer(header.title);
56
- }
57
- }
58
50
  const parseTitle = (transformer, title) => typeof title === 'object' && 'text' in title
59
51
  ? Object.assign(Object.assign({}, title), { text: transformer(title.text) }) : title && transformer(title);
60
52
  function parsePriceDetailedBlock(transformer, block) {
@@ -150,10 +142,6 @@ const config = {
150
142
  fields: ['text'],
151
143
  transformer: typografTransformer,
152
144
  },
153
- [models_1.SubBlockType.Card]: {
154
- transformer: yfmTransformer,
155
- parser: parseCard,
156
- },
157
145
  [models_1.BlockType.ExtendedFeaturesBlock]: [
158
146
  {
159
147
  fields: ['title'],
@@ -164,10 +152,20 @@ const config = {
164
152
  fields: ['description'],
165
153
  transformer: yfmTransformer,
166
154
  },
155
+ // {
156
+ // fields: ['items'],
157
+ // transformer: typografTransformer,
158
+ // parser: parseFeatures,
159
+ // },
167
160
  {
168
161
  fields: ['items'],
169
162
  transformer: typografTransformer,
170
- parser: parseFeatures,
163
+ parser: (0, exports.createItemsParser)(['title']),
164
+ },
165
+ {
166
+ fields: ['items'],
167
+ transformer: yfmTransformer,
168
+ parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
171
169
  },
172
170
  ],
173
171
  [models_1.BlockType.PromoFeaturesBlock]: {
@@ -19,8 +19,8 @@ unpredictable css rules order in build */
19
19
  line-height: var(--yc-text-body-2-line-height);
20
20
  }
21
21
  .pc-content-layout-block__files_size_l {
22
- font-size: var(--yc-text-body3-font-size);
23
- line-height: var(--yc-text-body3-line-height);
22
+ font-size: var(--yc-text-body-3-font-size);
23
+ line-height: var(--yc-text-body-3-line-height);
24
24
  }
25
25
  .pc-content-layout-block__files_centered {
26
26
  margin-left: auto;
@@ -74,7 +74,7 @@ unpredictable css rules order in build */
74
74
  height: 32px;
75
75
  background-size: cover;
76
76
  display: block;
77
- margin-bottom: 8px;
77
+ margin-bottom: 12px;
78
78
  }
79
79
  @media (max-width: 577px) {
80
80
  .pc-ExtendedFeaturesBlock__item {
@@ -1,7 +1,11 @@
1
- import React from 'react';
2
- import { block } from '../../utils';
1
+ import React, { useContext } from 'react';
2
+ import { block, getThemedValue } from '../../utils';
3
3
  import { Row, Col } from '../../grid';
4
- import { Link, HTML, AnimateBlock, BlockHeader } from '../../components/';
4
+ import { AnimateBlock, BlockHeader, HTML } from '../../components/';
5
+ import { Content } from '../../sub-blocks';
6
+ import Image from '../../components/Image/Image';
7
+ import { ThemeValueContext } from '../../context/theme/ThemeValueContext';
8
+ import { getMediaImage } from '../../components/Media/Image/utils';
5
9
  import './ExtendedFeatures.css';
6
10
  const b = block('ExtendedFeaturesBlock');
7
11
  const DEFAULT_SIZES = {
@@ -9,15 +13,25 @@ const DEFAULT_SIZES = {
9
13
  sm: 6,
10
14
  md: 4,
11
15
  };
12
- export const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => (React.createElement(AnimateBlock, { className: b(), animate: animated },
13
- React.createElement(BlockHeader, { title: title, description: description, className: b('header') }),
14
- React.createElement("div", { className: b('items') },
15
- React.createElement(Row, null, items.map(({ title: itemTitle, text, link, label, icon }) => (React.createElement(Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
16
- icon && React.createElement("img", { src: icon, className: b('icon') }),
17
- itemTitle && (React.createElement("h5", { className: b('item-title', { 'has-label': Boolean(label) }) },
18
- React.createElement(HTML, null, itemTitle),
19
- label && React.createElement("div", { className: b('item-label') }, label))),
20
- text && (React.createElement("div", { className: b('item-text') },
21
- React.createElement(HTML, null, text))),
22
- link && React.createElement(Link, Object.assign({ className: b('item-link') }, link)))))))));
16
+ export const ExtendedFeaturesBlock = ({ title, description, items, colSizes = DEFAULT_SIZES, animated, }) => {
17
+ const { themeValue: theme } = useContext(ThemeValueContext);
18
+ return (React.createElement(AnimateBlock, { className: b(), animate: animated },
19
+ React.createElement(BlockHeader, { title: title, description: description, className: b('header') }),
20
+ React.createElement("div", { className: b('items') },
21
+ React.createElement(Row, null, items.map(({ title: itemTitle, text, link, links, label, icon }) => {
22
+ const itemLinks = links || [];
23
+ const iconThemed = icon && getThemedValue(icon, theme);
24
+ const iconData = iconThemed && getMediaImage(iconThemed);
25
+ if (link) {
26
+ itemLinks.push(link);
27
+ }
28
+ return (React.createElement(Col, { className: b('item'), key: text || itemTitle, sizes: colSizes },
29
+ iconData && React.createElement(Image, Object.assign({}, iconData, { className: b('icon') })),
30
+ React.createElement("div", { className: b('container') },
31
+ itemTitle && (React.createElement("h5", { className: b('item-title') },
32
+ React.createElement(HTML, null, itemTitle),
33
+ label && (React.createElement("div", { className: b('item-label') }, label)))),
34
+ React.createElement(Content, { text: text, links: itemLinks, size: "s", colSizes: { all: 12, md: 12 } }))));
35
+ })))));
36
+ };
23
37
  export default ExtendedFeaturesBlock;
@@ -35,6 +35,7 @@ unpredictable css rules order in build */
35
35
  flex-direction: column;
36
36
  justify-content: center;
37
37
  border-radius: var(--pc-border-radius);
38
+ overflow: hidden;
38
39
  }
39
40
  .pc-PromoFeaturesBlock__card-info {
40
41
  padding: 32px 32px 0 32px;
@@ -38,15 +38,4 @@ export declare const subBlockMap: {
38
38
  "basic-card": (props: import("./models").BasicCardProps) => JSX.Element;
39
39
  content: (props: import("./models").ContentBlockProps & import("./models").ClassNameProps) => JSX.Element;
40
40
  quote: (props: import("./models").QuoteProps) => JSX.Element;
41
- /**
42
- * @deprecated Will be removed, use basic card instead
43
- */
44
- card: {
45
- (props: import("./components/CardBase/CardBase").CardBaseProps): JSX.Element;
46
- Header: import("react").FC<import("./models").WithChildren<import("./components/CardBase/CardBase").CardHeaderBaseProps>>;
47
- Content: import("react").FC<{
48
- children?: import("react").ReactNode;
49
- }>;
50
- Footer: import("react").FC<import("./models").WithChildren<import("./components/CardBase/CardBase").CardFooterBaseProps>>;
51
- };
52
41
  };
@@ -1,7 +1,6 @@
1
1
  import { BlockType, SubBlockType } from './models';
2
2
  import { Partner, PriceDetailed, MediaCard, NewsCard, TutorialCard, CardWithImage, BackgroundCard, Content, Quote, Divider, BannerCard, BasicCard, } from './sub-blocks';
3
3
  import { BannerBlock, CompaniesBlock, SimpleBlock, MediaBlock, PreviewBlock, InfoBlock, SecurityBlock, SliderBlock, ExtendedFeaturesBlock, PromoFeaturesBlock, QuestionsBlock, TableBlock, TabsBlock, LinkTableBlock, HeaderBlock, IconsBlock, HeaderSliderBlock, CardLayoutBlock, ContentLayoutBlock, } from './blocks';
4
- import { CardBase } from './components';
5
4
  export const blockMap = {
6
5
  [BlockType.SliderBlock]: SliderBlock,
7
6
  [BlockType.SimpleBlock]: SimpleBlock,
@@ -42,8 +41,4 @@ export const subBlockMap = {
42
41
  [SubBlockType.BasicCard]: BasicCard,
43
42
  [SubBlockType.Content]: Content,
44
43
  [SubBlockType.Quote]: Quote,
45
- /**
46
- * @deprecated Will be removed, use basic card instead
47
- */
48
- [SubBlockType.Card]: CardBase,
49
44
  };
@@ -118,8 +118,10 @@ export interface ExtendedFeaturesItem {
118
118
  title?: string;
119
119
  text?: string;
120
120
  label?: string;
121
- icon?: string;
121
+ icon?: ThemedImage;
122
+ /** @deprecated **/
122
123
  link?: LinkProps;
124
+ links?: LinkProps[];
123
125
  }
124
126
  export interface ExtendedFeaturesProps extends Animatable {
125
127
  items: ExtendedFeaturesItem[];
@@ -244,7 +246,7 @@ export interface CardLayoutBlockProps extends Childable, Animatable, LoadableChi
244
246
  }
245
247
  export interface IconsBlockProps {
246
248
  title?: string;
247
- size: 's' | 'm' | 'l';
249
+ size?: 's' | 'm' | 'l';
248
250
  items: {
249
251
  url: string;
250
252
  text: string;
@@ -260,8 +260,6 @@ export declare type CardBorder = 'shadow' | 'line' | 'none';
260
260
  export interface CardBaseProps {
261
261
  border?: CardBorder;
262
262
  }
263
- export interface CardProps extends CardBaseProps, CardData {
264
- }
265
263
  export interface CardHeader {
266
264
  title?: string;
267
265
  image?: ImageProps;
@@ -1,7 +1,7 @@
1
1
  import { ClassNameProps } from '../../models';
2
2
  import { ThemeSupporting } from '../../utils';
3
3
  import { HubspotEventData, HubspotEventHandlers } from '../../utils/hubspot';
4
- import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, CardProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
4
+ import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
5
5
  import { ContentBlockProps } from './blocks';
6
6
  import { PixelEvent } from '../common';
7
7
  export declare enum SubBlockType {
@@ -128,9 +128,6 @@ export interface CardWithImageProps extends ClassNameProps, Pick<ContentBlockPro
128
128
  export declare type DividerModel = {
129
129
  type: SubBlockType.Divider;
130
130
  } & DividerProps;
131
- export declare type CardModel = {
132
- type: SubBlockType.Card;
133
- } & CardProps;
134
131
  export declare type QuoteModel = {
135
132
  type: SubBlockType.Quote;
136
133
  } & QuoteProps;
@@ -161,5 +158,8 @@ export declare type HubspotFormModel = {
161
158
  export declare type BannerCardModel = {
162
159
  type: SubBlockType.BannerCard;
163
160
  } & BannerCardProps;
164
- export declare type SubBlockModels = DividerModel | CardModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel;
161
+ export declare type BasicCardModel = {
162
+ type: SubBlockType.BasicCard;
163
+ } & BasicCardProps;
164
+ export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel;
165
165
  export declare type SubBlock = SubBlockModels;
@@ -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, } from './validators/blocks';
3
- import { CardBlock, PartnerBlock, MediaCardBlock, TutorialCard, BackgroundCard, NewsCard, CardWithImage, PriceDetailedBlock, Quote, Divider, } from './validators/sub-blocks';
3
+ import { PartnerBlock, MediaCardBlock, TutorialCard, BackgroundCard, NewsCard, CardWithImage, PriceDetailedBlock, Quote, Divider, } 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) => {
@@ -19,7 +19,6 @@ export function generateDefaultSchema(config) {
19
19
  type: 'string',
20
20
  enum: [
21
21
  'divider',
22
- 'card',
23
22
  'quote',
24
23
  'event',
25
24
  'post',
@@ -58,7 +57,6 @@ export function generateDefaultSchema(config) {
58
57
  type: {
59
58
  type: 'string',
60
59
  enum: [
61
- 'card',
62
60
  'partner',
63
61
  'post',
64
62
  'media-card',
@@ -75,7 +73,7 @@ export function generateDefaultSchema(config) {
75
73
  },
76
74
  },
77
75
  select: { $data: '0/type' },
78
- selectCases: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, CardBlock), PartnerBlock), MediaCardBlock), BannerCard), PriceDetailedBlock), TutorialCard), BackgroundCard), NewsCard), CardWithImage), Quote), getBlocksCases(cards)),
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)),
79
77
  }),
80
78
  },
81
79
  type: 'object',
@@ -846,3 +846,9 @@ export declare const MediaProps: {
846
846
  })[];
847
847
  };
848
848
  };
849
+ export declare const CardBase: {
850
+ border: {
851
+ type: string;
852
+ enum: string[];
853
+ };
854
+ };
@@ -427,3 +427,9 @@ export const MediaProps = {
427
427
  },
428
428
  dataLens: DataLensProps,
429
429
  };
430
+ export const CardBase = {
431
+ border: {
432
+ type: 'string',
433
+ enum: ['border', 'shadow', 'none'],
434
+ },
435
+ };
@@ -9,7 +9,3 @@ export * from '../../sub-blocks/CardWithImage/schema';
9
9
  export * from '../../sub-blocks/Quote/schema';
10
10
  export * from '../../sub-blocks/Divider/schema';
11
11
  export * from '../../sub-blocks/BasicCard/schema';
12
- /**
13
- * @deprecated Will be removed
14
- */
15
- export * from '../../components/CardBase/schema';
@@ -9,7 +9,3 @@ export * from '../../sub-blocks/CardWithImage/schema';
9
9
  export * from '../../sub-blocks/Quote/schema';
10
10
  export * from '../../sub-blocks/Divider/schema';
11
11
  export * from '../../sub-blocks/BasicCard/schema';
12
- /**
13
- * @deprecated Will be removed
14
- */
15
- export * from '../../components/CardBase/schema';
@@ -1,5 +1,4 @@
1
- import { BaseProps, withTheme } from '../../schema/validators/common';
2
- import { CardBase } from '../../components/CardBase/schema';
1
+ import { BaseProps, CardBase, withTheme } from '../../schema/validators/common';
3
2
  import { ContentBase } from '../Content/schema';
4
3
  import { ImageObjectProps } from '../../components/Image/schema';
5
4
  import _ from 'lodash';
@@ -1,6 +1,5 @@
1
1
  import _ from 'lodash';
2
- import { BaseProps } from '../../schema/validators/common';
3
- import { CardBase } from '../../components/CardBase/schema';
2
+ import { BaseProps, CardBase } from '../../schema/validators/common';
4
3
  import { ContentBase } from '../Content/schema';
5
4
  import { ImageProps } from '../../components/Image/schema';
6
5
  const BasicCardContentProps = _.omit(ContentBase, ['size', 'theme']);
@@ -43,14 +43,6 @@ function parseSlider(transformer, block) {
43
43
  block.description = transformer(description);
44
44
  }
45
45
  }
46
- function parseCard(transformer, card) {
47
- const { header, text } = card;
48
- card.text = text && transformer(text);
49
- if (header && header.title) {
50
- card.header = card.header || {};
51
- card.header.title = transformer(header.title);
52
- }
53
- }
54
46
  const parseTitle = (transformer, title) => typeof title === 'object' && 'text' in title
55
47
  ? Object.assign(Object.assign({}, title), { text: transformer(title.text) }) : title && transformer(title);
56
48
  function parsePriceDetailedBlock(transformer, block) {
@@ -144,10 +136,6 @@ const config = {
144
136
  fields: ['text'],
145
137
  transformer: typografTransformer,
146
138
  },
147
- [SubBlockType.Card]: {
148
- transformer: yfmTransformer,
149
- parser: parseCard,
150
- },
151
139
  [BlockType.ExtendedFeaturesBlock]: [
152
140
  {
153
141
  fields: ['title'],
@@ -158,10 +146,20 @@ const config = {
158
146
  fields: ['description'],
159
147
  transformer: yfmTransformer,
160
148
  },
149
+ // {
150
+ // fields: ['items'],
151
+ // transformer: typografTransformer,
152
+ // parser: parseFeatures,
153
+ // },
161
154
  {
162
155
  fields: ['items'],
163
156
  transformer: typografTransformer,
164
- parser: parseFeatures,
157
+ parser: createItemsParser(['title']),
158
+ },
159
+ {
160
+ fields: ['items'],
161
+ transformer: yfmTransformer,
162
+ parser: createItemsParser(['text', 'additionalInfo']),
165
163
  },
166
164
  ],
167
165
  [BlockType.PromoFeaturesBlock]: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "1.4.2",
3
+ "version": "1.6.0-alpha.0",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -121,5 +121,8 @@
121
121
  "*.{json,yaml,yml,md}": [
122
122
  "prettier --write"
123
123
  ]
124
+ },
125
+ "publishConfig": {
126
+ "tag": "alpha"
124
127
  }
125
128
  }
@@ -118,8 +118,10 @@ export interface ExtendedFeaturesItem {
118
118
  title?: string;
119
119
  text?: string;
120
120
  label?: string;
121
- icon?: string;
121
+ icon?: ThemedImage;
122
+ /** @deprecated **/
122
123
  link?: LinkProps;
124
+ links?: LinkProps[];
123
125
  }
124
126
  export interface ExtendedFeaturesProps extends Animatable {
125
127
  items: ExtendedFeaturesItem[];
@@ -244,7 +246,7 @@ export interface CardLayoutBlockProps extends Childable, Animatable, LoadableChi
244
246
  }
245
247
  export interface IconsBlockProps {
246
248
  title?: string;
247
- size: 's' | 'm' | 'l';
249
+ size?: 's' | 'm' | 'l';
248
250
  items: {
249
251
  url: string;
250
252
  text: string;
@@ -260,8 +260,6 @@ export declare type CardBorder = 'shadow' | 'line' | 'none';
260
260
  export interface CardBaseProps {
261
261
  border?: CardBorder;
262
262
  }
263
- export interface CardProps extends CardBaseProps, CardData {
264
- }
265
263
  export interface CardHeader {
266
264
  title?: string;
267
265
  image?: ImageProps;
@@ -1,7 +1,7 @@
1
1
  import { ClassNameProps } from '../../models';
2
2
  import { ThemeSupporting } from '../../utils';
3
3
  import { HubspotEventData, HubspotEventHandlers } from '../../utils/hubspot';
4
- import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, CardProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
4
+ import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
5
5
  import { ContentBlockProps } from './blocks';
6
6
  import { PixelEvent } from '../common';
7
7
  export declare enum SubBlockType {
@@ -128,9 +128,6 @@ export interface CardWithImageProps extends ClassNameProps, Pick<ContentBlockPro
128
128
  export declare type DividerModel = {
129
129
  type: SubBlockType.Divider;
130
130
  } & DividerProps;
131
- export declare type CardModel = {
132
- type: SubBlockType.Card;
133
- } & CardProps;
134
131
  export declare type QuoteModel = {
135
132
  type: SubBlockType.Quote;
136
133
  } & QuoteProps;
@@ -161,5 +158,8 @@ export declare type HubspotFormModel = {
161
158
  export declare type BannerCardModel = {
162
159
  type: SubBlockType.BannerCard;
163
160
  } & BannerCardProps;
164
- export declare type SubBlockModels = DividerModel | CardModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel;
161
+ export declare type BasicCardModel = {
162
+ type: SubBlockType.BasicCard;
163
+ } & BasicCardProps;
164
+ export declare type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel;
165
165
  export declare type SubBlock = SubBlockModels;
@@ -60,14 +60,6 @@ function parseSlider(transformer, block) {
60
60
  block.description = transformer(description);
61
61
  }
62
62
  }
63
- function parseCard(transformer, card) {
64
- const { header, text } = card;
65
- card.text = text && transformer(text);
66
- if (header && header.title) {
67
- card.header = card.header || {};
68
- card.header.title = transformer(header.title);
69
- }
70
- }
71
63
  const parseTitle = (transformer, title) => typeof title === 'object' && 'text' in title
72
64
  ? Object.assign(Object.assign({}, title), { text: transformer(title.text) }) : title && transformer(title);
73
65
  function parsePriceDetailedBlock(transformer, block) {
@@ -163,10 +155,6 @@ const config = {
163
155
  fields: ['text'],
164
156
  transformer: typografTransformer,
165
157
  },
166
- [models_1.SubBlockType.Card]: {
167
- transformer: yfmTransformer,
168
- parser: parseCard,
169
- },
170
158
  [models_1.BlockType.ExtendedFeaturesBlock]: [
171
159
  {
172
160
  fields: ['title'],
@@ -177,10 +165,20 @@ const config = {
177
165
  fields: ['description'],
178
166
  transformer: yfmTransformer,
179
167
  },
168
+ // {
169
+ // fields: ['items'],
170
+ // transformer: typografTransformer,
171
+ // parser: parseFeatures,
172
+ // },
180
173
  {
181
174
  fields: ['items'],
182
175
  transformer: typografTransformer,
183
- parser: parseFeatures,
176
+ parser: (0, exports.createItemsParser)(['title']),
177
+ },
178
+ {
179
+ fields: ['items'],
180
+ transformer: yfmTransformer,
181
+ parser: (0, exports.createItemsParser)(['text', 'additionalInfo']),
184
182
  },
185
183
  ],
186
184
  [models_1.BlockType.PromoFeaturesBlock]: {
@@ -1,70 +0,0 @@
1
- export declare const CardBase: {
2
- border: {
3
- type: string;
4
- enum: string[];
5
- };
6
- };
7
- export declare const CardBlock: {
8
- card: {
9
- additionalProperties: boolean;
10
- required: never[];
11
- properties: {
12
- header: {
13
- additionalProperties: boolean;
14
- required: never[];
15
- properties: {
16
- text: {
17
- type: string;
18
- };
19
- image: {
20
- type: string;
21
- };
22
- title: {
23
- type: string;
24
- };
25
- };
26
- };
27
- service: {
28
- additionalProperties: boolean;
29
- required: string[];
30
- properties: {
31
- slug: {
32
- type: string;
33
- };
34
- name: {
35
- type: string;
36
- };
37
- };
38
- };
39
- text: {
40
- type: string;
41
- };
42
- title: {
43
- type: string;
44
- };
45
- footer: {
46
- type: string;
47
- };
48
- url: {
49
- type: string;
50
- };
51
- links: {
52
- type: string;
53
- items: {
54
- type: string;
55
- properties: {
56
- when: {
57
- type: string;
58
- };
59
- };
60
- };
61
- };
62
- border: {
63
- type: string;
64
- enum: string[];
65
- };
66
- type: {};
67
- when: {};
68
- };
69
- };
70
- };
@@ -1,53 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CardBlock = exports.CardBase = void 0;
4
- const utils_1 = require("../../schema/validators/utils");
5
- const common_1 = require("../../schema/validators/common");
6
- exports.CardBase = {
7
- border: {
8
- type: 'string',
9
- enum: ['border', 'shadow', 'none'],
10
- },
11
- };
12
- const CardHeader = {
13
- additionalProperties: false,
14
- required: [],
15
- properties: {
16
- text: {
17
- type: 'string',
18
- },
19
- image: {
20
- type: 'string',
21
- },
22
- title: {
23
- type: 'string',
24
- },
25
- },
26
- };
27
- const CardService = {
28
- additionalProperties: false,
29
- required: ['slug', 'name'],
30
- properties: {
31
- slug: {
32
- type: 'string',
33
- },
34
- name: {
35
- type: 'string',
36
- },
37
- },
38
- };
39
- exports.CardBlock = {
40
- card: {
41
- additionalProperties: false,
42
- required: [],
43
- properties: Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), exports.CardBase), { header: CardHeader, service: CardService, text: {
44
- type: 'string',
45
- }, title: {
46
- type: 'string',
47
- }, footer: {
48
- type: 'string',
49
- }, url: {
50
- type: 'string',
51
- }, links: (0, utils_1.filteredArray)(common_1.LinkProps) }),
52
- },
53
- };
@@ -1,70 +0,0 @@
1
- export declare const CardBase: {
2
- border: {
3
- type: string;
4
- enum: string[];
5
- };
6
- };
7
- export declare const CardBlock: {
8
- card: {
9
- additionalProperties: boolean;
10
- required: never[];
11
- properties: {
12
- header: {
13
- additionalProperties: boolean;
14
- required: never[];
15
- properties: {
16
- text: {
17
- type: string;
18
- };
19
- image: {
20
- type: string;
21
- };
22
- title: {
23
- type: string;
24
- };
25
- };
26
- };
27
- service: {
28
- additionalProperties: boolean;
29
- required: string[];
30
- properties: {
31
- slug: {
32
- type: string;
33
- };
34
- name: {
35
- type: string;
36
- };
37
- };
38
- };
39
- text: {
40
- type: string;
41
- };
42
- title: {
43
- type: string;
44
- };
45
- footer: {
46
- type: string;
47
- };
48
- url: {
49
- type: string;
50
- };
51
- links: {
52
- type: string;
53
- items: {
54
- type: string;
55
- properties: {
56
- when: {
57
- type: string;
58
- };
59
- };
60
- };
61
- };
62
- border: {
63
- type: string;
64
- enum: string[];
65
- };
66
- type: {};
67
- when: {};
68
- };
69
- };
70
- };
@@ -1,50 +0,0 @@
1
- import { filteredArray } from '../../schema/validators/utils';
2
- import { BaseProps, LinkProps } from '../../schema/validators/common';
3
- export const CardBase = {
4
- border: {
5
- type: 'string',
6
- enum: ['border', 'shadow', 'none'],
7
- },
8
- };
9
- const CardHeader = {
10
- additionalProperties: false,
11
- required: [],
12
- properties: {
13
- text: {
14
- type: 'string',
15
- },
16
- image: {
17
- type: 'string',
18
- },
19
- title: {
20
- type: 'string',
21
- },
22
- },
23
- };
24
- const CardService = {
25
- additionalProperties: false,
26
- required: ['slug', 'name'],
27
- properties: {
28
- slug: {
29
- type: 'string',
30
- },
31
- name: {
32
- type: 'string',
33
- },
34
- },
35
- };
36
- export const CardBlock = {
37
- card: {
38
- additionalProperties: false,
39
- required: [],
40
- properties: Object.assign(Object.assign(Object.assign({}, BaseProps), CardBase), { header: CardHeader, service: CardService, text: {
41
- type: 'string',
42
- }, title: {
43
- type: 'string',
44
- }, footer: {
45
- type: 'string',
46
- }, url: {
47
- type: 'string',
48
- }, links: filteredArray(LinkProps) }),
49
- },
50
- };