@gravity-ui/page-constructor 4.10.0 → 4.11.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 (48) hide show
  1. package/build/cjs/blocks/ContentLayout/schema.d.ts +38 -0
  2. package/build/cjs/components/Image/schema.d.ts +19 -0
  3. package/build/cjs/components/Image/schema.js +12 -1
  4. package/build/cjs/constructor-items.d.ts +2 -2
  5. package/build/cjs/models/constructor-items/common.d.ts +1 -1
  6. package/build/cjs/models/constructor-items/sub-blocks.d.ts +4 -4
  7. package/build/cjs/schema/constants.d.ts +181 -78
  8. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +2 -2
  9. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +100 -0
  10. package/build/cjs/sub-blocks/BackgroundCard/schema.js +10 -0
  11. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  12. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +3 -3
  13. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +81 -0
  14. package/build/cjs/sub-blocks/LayoutItem/schema.js +10 -0
  15. package/build/cjs/sub-blocks/MediaCard/MediaCard.d.ts +1 -1
  16. package/build/cjs/sub-blocks/MediaCard/MediaCard.js +2 -2
  17. package/build/cjs/sub-blocks/MediaCard/schema.d.ts +81 -78
  18. package/build/cjs/sub-blocks/MediaCard/schema.js +11 -1
  19. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.d.ts +2 -2
  20. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +2 -2
  21. package/build/cjs/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +7 -4
  22. package/build/cjs/sub-blocks/PriceDetailed/schema.js +11 -1
  23. package/build/esm/blocks/ContentLayout/schema.d.ts +38 -0
  24. package/build/esm/components/Image/schema.d.ts +19 -0
  25. package/build/esm/components/Image/schema.js +12 -1
  26. package/build/esm/constructor-items.d.ts +2 -2
  27. package/build/esm/models/constructor-items/common.d.ts +1 -1
  28. package/build/esm/models/constructor-items/sub-blocks.d.ts +4 -4
  29. package/build/esm/schema/constants.d.ts +181 -78
  30. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +2 -2
  31. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +100 -0
  32. package/build/esm/sub-blocks/BackgroundCard/schema.js +10 -0
  33. package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
  34. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +3 -3
  35. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +81 -0
  36. package/build/esm/sub-blocks/LayoutItem/schema.js +10 -0
  37. package/build/esm/sub-blocks/MediaCard/MediaCard.d.ts +1 -1
  38. package/build/esm/sub-blocks/MediaCard/MediaCard.js +2 -2
  39. package/build/esm/sub-blocks/MediaCard/schema.d.ts +81 -78
  40. package/build/esm/sub-blocks/MediaCard/schema.js +11 -1
  41. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.d.ts +2 -2
  42. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +2 -2
  43. package/build/esm/sub-blocks/PriceDetailed/SeparatePriceDetailed/SeparatePriceDetailed.js +8 -4
  44. package/build/esm/sub-blocks/PriceDetailed/schema.js +11 -1
  45. package/package.json +1 -1
  46. package/server/models/constructor-items/common.d.ts +1 -1
  47. package/server/models/constructor-items/sub-blocks.d.ts +4 -4
  48. package/widget/index.js +1 -1
@@ -205,6 +205,25 @@ export declare const cardSchemas: {
205
205
  type: string;
206
206
  pattern: string;
207
207
  };
208
+ style: {
209
+ type: string;
210
+ additionalProperties: boolean;
211
+ required: never[];
212
+ properties: {
213
+ backgroundColor: {
214
+ type: string;
215
+ };
216
+ height: {
217
+ type: string[];
218
+ };
219
+ width: {
220
+ type: string[];
221
+ };
222
+ color: {
223
+ type: string;
224
+ };
225
+ };
226
+ };
208
227
  alt: {
209
228
  type: string;
210
229
  contentType: string;
@@ -230,6 +249,87 @@ export declare const cardSchemas: {
230
249
  type: string;
231
250
  enum: string[];
232
251
  };
252
+ analyticsEvents: {
253
+ oneOf: ({
254
+ optionName: string;
255
+ type: string;
256
+ additionalProperties: {
257
+ type: string;
258
+ };
259
+ required: string[];
260
+ properties: {
261
+ name: {
262
+ type: string;
263
+ };
264
+ type: {
265
+ type: string;
266
+ };
267
+ counters: {
268
+ type: string;
269
+ additionalProperties: boolean;
270
+ required: never[];
271
+ properties: {
272
+ include: {
273
+ type: string;
274
+ items: {
275
+ type: string;
276
+ };
277
+ };
278
+ exclude: {
279
+ type: string;
280
+ items: {
281
+ type: string;
282
+ };
283
+ };
284
+ };
285
+ };
286
+ context: {
287
+ type: string;
288
+ };
289
+ };
290
+ items?: undefined;
291
+ } | {
292
+ type: string;
293
+ items: {
294
+ type: string;
295
+ additionalProperties: {
296
+ type: string;
297
+ };
298
+ required: string[];
299
+ properties: {
300
+ name: {
301
+ type: string;
302
+ };
303
+ type: {
304
+ type: string;
305
+ };
306
+ counters: {
307
+ type: string;
308
+ additionalProperties: boolean;
309
+ required: never[];
310
+ properties: {
311
+ include: {
312
+ type: string;
313
+ items: {
314
+ type: string;
315
+ };
316
+ };
317
+ exclude: {
318
+ type: string;
319
+ items: {
320
+ type: string;
321
+ };
322
+ };
323
+ };
324
+ };
325
+ context: {
326
+ type: string;
327
+ };
328
+ };
329
+ };
330
+ optionName: string;
331
+ })[];
332
+ };
233
333
  title: {
234
334
  oneOf: ({
235
335
  type: string;
@@ -708,6 +808,87 @@ export declare const cardSchemas: {
708
808
  additionalProperties: boolean;
709
809
  required: never[];
710
810
  properties: {
811
+ analyticsEvents: {
812
+ oneOf: ({
813
+ optionName: string;
814
+ type: string;
815
+ additionalProperties: {
816
+ type: string;
817
+ };
818
+ required: string[];
819
+ properties: {
820
+ name: {
821
+ type: string;
822
+ };
823
+ type: {
824
+ type: string;
825
+ };
826
+ counters: {
827
+ type: string;
828
+ additionalProperties: boolean;
829
+ required: never[];
830
+ properties: {
831
+ include: {
832
+ type: string;
833
+ items: {
834
+ type: string;
835
+ };
836
+ };
837
+ exclude: {
838
+ type: string;
839
+ items: {
840
+ type: string;
841
+ };
842
+ };
843
+ };
844
+ };
845
+ context: {
846
+ type: string;
847
+ };
848
+ };
849
+ items?: undefined;
850
+ } | {
851
+ type: string;
852
+ items: {
853
+ type: string;
854
+ additionalProperties: {
855
+ type: string;
856
+ };
857
+ required: string[];
858
+ properties: {
859
+ name: {
860
+ type: string;
861
+ };
862
+ type: {
863
+ type: string;
864
+ };
865
+ counters: {
866
+ type: string;
867
+ additionalProperties: boolean;
868
+ required: never[];
869
+ properties: {
870
+ include: {
871
+ type: string;
872
+ items: {
873
+ type: string;
874
+ };
875
+ };
876
+ exclude: {
877
+ type: string;
878
+ items: {
879
+ type: string;
880
+ };
881
+ };
882
+ };
883
+ };
884
+ context: {
885
+ type: string;
886
+ };
887
+ };
888
+ };
889
+ optionName: string;
890
+ })[];
891
+ };
711
892
  animated: {
712
893
  type: string;
713
894
  };
@@ -852,84 +1033,6 @@ export declare const cardSchemas: {
852
1033
  fullscreen: {
853
1034
  type: string;
854
1035
  };
855
- analyticsEvents: {
856
- anyOf: ({
857
- type: string;
858
- additionalProperties: {
859
- type: string;
860
- };
861
- required: string[];
862
- properties: {
863
- name: {
864
- type: string;
865
- };
866
- type: {
867
- type: string;
868
- };
869
- counters: {
870
- type: string;
871
- additionalProperties: boolean;
872
- required: never[];
873
- properties: {
874
- include: {
875
- type: string;
876
- items: {
877
- type: string;
878
- };
879
- };
880
- exclude: {
881
- type: string;
882
- items: {
883
- type: string;
884
- };
885
- };
886
- };
887
- };
888
- context: {
889
- type: string;
890
- };
891
- };
892
- } | {
893
- type: string;
894
- items: {
895
- type: string;
896
- additionalProperties: {
897
- type: string;
898
- };
899
- required: string[];
900
- properties: {
901
- name: {
902
- type: string;
903
- };
904
- type: {
905
- type: string;
906
- };
907
- counters: {
908
- type: string;
909
- additionalProperties: boolean;
910
- required: never[];
911
- properties: {
912
- include: {
913
- type: string;
914
- items: {
915
- type: string;
916
- };
917
- };
918
- exclude: {
919
- type: string;
920
- items: {
921
- type: string;
922
- };
923
- };
924
- };
925
- };
926
- context: {
927
- type: string;
928
- };
929
- };
930
- };
931
- })[];
932
- };
933
1036
  border: {
934
1037
  type: string;
935
1038
  enum: string[];
@@ -6,11 +6,11 @@ import Content from '../Content/Content';
6
6
  import './BackgroundCard.css';
7
7
  const b = block('background-card');
8
8
  const BackgroundCard = (props) => {
9
- const { url, title, text, border, background, paddingBottom, backgroundColor, additionalInfo, theme: cardTheme = 'default', links, buttons, } = props;
9
+ const { url, title, text, border, background, paddingBottom, backgroundColor, additionalInfo, theme: cardTheme = 'default', links, buttons, analyticsEvents, } = props;
10
10
  const theme = useTheme();
11
11
  const hasBackgroundColor = backgroundColor || cardTheme !== 'default';
12
12
  const borderType = hasBackgroundColor ? 'none' : border;
13
- return (React.createElement(CardBase, { className: b({ padding: paddingBottom, theme: cardTheme }), url: url, border: borderType },
13
+ return (React.createElement(CardBase, { className: b({ padding: paddingBottom, theme: cardTheme }), url: url, border: borderType, analyticsEvents: analyticsEvents },
14
14
  React.createElement(CardBase.Content, null,
15
15
  React.createElement(BackgroundImage, Object.assign({ className: b('image') }, getThemedValue(background, theme), { style: { backgroundColor } })),
16
16
  React.createElement(Content, { title: title, text: text, additionalInfo: additionalInfo, size: "s", theme: cardTheme, links: links, buttons: buttons, colSizes: { all: 12, md: 12 } }))));
@@ -16,6 +16,25 @@ export declare const BackgroundCard: {
16
16
  type: string;
17
17
  pattern: string;
18
18
  };
19
+ style: {
20
+ type: string;
21
+ additionalProperties: boolean;
22
+ required: never[];
23
+ properties: {
24
+ backgroundColor: {
25
+ type: string;
26
+ };
27
+ height: {
28
+ type: string[];
29
+ };
30
+ width: {
31
+ type: string[];
32
+ };
33
+ color: {
34
+ type: string;
35
+ };
36
+ };
37
+ };
19
38
  alt: {
20
39
  type: string;
21
40
  contentType: string;
@@ -41,6 +60,87 @@ export declare const BackgroundCard: {
41
60
  type: string;
42
61
  enum: string[];
43
62
  };
63
+ analyticsEvents: {
64
+ oneOf: ({
65
+ optionName: string;
66
+ type: string;
67
+ additionalProperties: {
68
+ type: string;
69
+ };
70
+ required: string[];
71
+ properties: {
72
+ name: {
73
+ type: string;
74
+ };
75
+ type: {
76
+ type: string;
77
+ };
78
+ counters: {
79
+ type: string;
80
+ additionalProperties: boolean;
81
+ required: never[];
82
+ properties: {
83
+ include: {
84
+ type: string;
85
+ items: {
86
+ type: string;
87
+ };
88
+ };
89
+ exclude: {
90
+ type: string;
91
+ items: {
92
+ type: string;
93
+ };
94
+ };
95
+ };
96
+ };
97
+ context: {
98
+ type: string;
99
+ };
100
+ };
101
+ items?: undefined;
102
+ } | {
103
+ type: string;
104
+ items: {
105
+ type: string;
106
+ additionalProperties: {
107
+ type: string;
108
+ };
109
+ required: string[];
110
+ properties: {
111
+ name: {
112
+ type: string;
113
+ };
114
+ type: {
115
+ type: string;
116
+ };
117
+ counters: {
118
+ type: string;
119
+ additionalProperties: boolean;
120
+ required: never[];
121
+ properties: {
122
+ include: {
123
+ type: string;
124
+ items: {
125
+ type: string;
126
+ };
127
+ };
128
+ exclude: {
129
+ type: string;
130
+ items: {
131
+ type: string;
132
+ };
133
+ };
134
+ };
135
+ };
136
+ context: {
137
+ type: string;
138
+ };
139
+ };
140
+ };
141
+ optionName: string;
142
+ })[];
143
+ };
44
144
  title: {
45
145
  oneOf: ({
46
146
  type: string;
@@ -1,6 +1,7 @@
1
1
  import _ from 'lodash';
2
2
  import { ImageObjectProps } from '../../components/Image/schema';
3
3
  import { BaseProps, CardBase, withTheme } from '../../schema/validators/common';
4
+ import { AnalyticsEventSchema } from '../../schema/validators/event';
4
5
  import { ContentBase } from '../Content/schema';
5
6
  const BackgroundCardContentProps = _.omit(ContentBase, ['size']);
6
7
  export const BackgroundCard = {
@@ -14,6 +15,15 @@ export const BackgroundCard = {
14
15
  }, paddingBottom: {
15
16
  type: 'string',
16
17
  enum: ['s', 'm', 'l', 'xl'],
18
+ }, analyticsEvents: {
19
+ oneOf: [
20
+ Object.assign(Object.assign({}, AnalyticsEventSchema), { optionName: 'single' }),
21
+ {
22
+ type: 'array',
23
+ items: AnalyticsEventSchema,
24
+ optionName: 'list',
25
+ },
26
+ ],
17
27
  } }),
18
28
  },
19
29
  };
@@ -1,4 +1,4 @@
1
1
  import { LayoutItemProps } from '../../models';
2
2
  import './LayoutItem.css';
3
- declare const LayoutItem: ({ content: { links, ...content }, metaInfo, media, border, fullscreen, className, }: LayoutItemProps) => JSX.Element;
3
+ declare const LayoutItem: ({ content: { links, ...content }, metaInfo, media, border, fullscreen, className, analyticsEvents, }: LayoutItemProps) => JSX.Element;
4
4
  export default LayoutItem;
@@ -7,12 +7,12 @@ import { getLayoutItemLinks, hasFullscreen, showFullscreenIcon } from './utils';
7
7
  import './LayoutItem.css';
8
8
  const b = block('layout-item');
9
9
  const LayoutItem = (_a) => {
10
- var _b = _a.content, { links } = _b, content = __rest(_b, ["links"]), { metaInfo, media, border, fullscreen, className } = _a;
10
+ var _b = _a.content, { links } = _b, content = __rest(_b, ["links"]), { metaInfo, media, border, fullscreen, className, analyticsEvents } = _a;
11
11
  return (React.createElement("div", { className: b(null, className) },
12
12
  fullscreen && hasFullscreen(media) ? (React.createElement(FullscreenMedia, { showFullscreenIcon: showFullscreenIcon(media) }, (_a = {}) => {
13
13
  var { className: mediaClassName, fullscreen: _fullscreen } = _a, fullscreenMediaProps = __rest(_a, ["className", "fullscreen"]);
14
- return (React.createElement(Media, Object.assign({}, media, fullscreenMediaProps, { className: b('media', { border }, mediaClassName) })));
15
- })) : (React.createElement(Media, Object.assign({}, media, { className: b('media', { border }) }))),
14
+ return (React.createElement(Media, Object.assign({}, media, fullscreenMediaProps, { className: b('media', { border }, mediaClassName), analyticsEvents: analyticsEvents })));
15
+ })) : (React.createElement(Media, Object.assign({}, media, { className: b('media', { border }), analyticsEvents: analyticsEvents }))),
16
16
  metaInfo && React.createElement(MetaInfo, { items: metaInfo, className: b('meta-info') }),
17
17
  React.createElement("div", { className: b('content') },
18
18
  React.createElement(Content, Object.assign({}, content, { links: getLayoutItemLinks(links), size: "s", colSizes: { all: 12, md: 12 } })))));
@@ -318,6 +318,87 @@ export declare const LayoutItem: {
318
318
  fullscreen: {
319
319
  type: string;
320
320
  };
321
+ analyticsEvents: {
322
+ oneOf: ({
323
+ optionName: string;
324
+ type: string;
325
+ additionalProperties: {
326
+ type: string;
327
+ };
328
+ required: string[];
329
+ properties: {
330
+ name: {
331
+ type: string;
332
+ };
333
+ type: {
334
+ type: string;
335
+ };
336
+ counters: {
337
+ type: string;
338
+ additionalProperties: boolean;
339
+ required: never[];
340
+ properties: {
341
+ include: {
342
+ type: string;
343
+ items: {
344
+ type: string;
345
+ };
346
+ };
347
+ exclude: {
348
+ type: string;
349
+ items: {
350
+ type: string;
351
+ };
352
+ };
353
+ };
354
+ };
355
+ context: {
356
+ type: string;
357
+ };
358
+ };
359
+ items?: undefined;
360
+ } | {
361
+ type: string;
362
+ items: {
363
+ type: string;
364
+ additionalProperties: {
365
+ type: string;
366
+ };
367
+ required: string[];
368
+ properties: {
369
+ name: {
370
+ type: string;
371
+ };
372
+ type: {
373
+ type: string;
374
+ };
375
+ counters: {
376
+ type: string;
377
+ additionalProperties: boolean;
378
+ required: never[];
379
+ properties: {
380
+ include: {
381
+ type: string;
382
+ items: {
383
+ type: string;
384
+ };
385
+ };
386
+ exclude: {
387
+ type: string;
388
+ items: {
389
+ type: string;
390
+ };
391
+ };
392
+ };
393
+ };
394
+ context: {
395
+ type: string;
396
+ };
397
+ };
398
+ };
399
+ optionName: string;
400
+ })[];
401
+ };
321
402
  type: {};
322
403
  when: {
323
404
  type: string;
@@ -1,6 +1,7 @@
1
1
  import { omit } from 'lodash';
2
2
  import metaInfo from '../../components/MetaInfo/schema';
3
3
  import { BaseProps, MediaProps } from '../../schema/validators/common';
4
+ import { AnalyticsEventSchema } from '../../schema/validators/event';
4
5
  import { ContentBase } from '../../sub-blocks/Content/schema';
5
6
  export const LayoutItem = {
6
7
  type: 'object',
@@ -10,5 +11,14 @@ export const LayoutItem = {
10
11
  type: 'boolean',
11
12
  }, fullscreen: {
12
13
  type: 'boolean',
14
+ }, analyticsEvents: {
15
+ oneOf: [
16
+ Object.assign(Object.assign({}, AnalyticsEventSchema), { optionName: 'single' }),
17
+ {
18
+ type: 'array',
19
+ items: AnalyticsEventSchema,
20
+ optionName: 'list',
21
+ },
22
+ ],
13
23
  } }),
14
24
  };
@@ -1,4 +1,4 @@
1
1
  import { MediaCardProps } from '../../models';
2
2
  import './MediaCard.css';
3
- declare const MediaCard: ({ border, ...mediaProps }: MediaCardProps) => JSX.Element;
3
+ declare const MediaCard: ({ border, analyticsEvents, ...mediaProps }: MediaCardProps) => JSX.Element;
4
4
  export default MediaCard;
@@ -5,8 +5,8 @@ import { block } from '../../utils';
5
5
  import './MediaCard.css';
6
6
  const b = block('MediaCard');
7
7
  const MediaCard = (_a) => {
8
- var { border } = _a, mediaProps = __rest(_a, ["border"]);
9
- return (React.createElement(CardBase, { className: b(), bodyClassName: b('body'), border: border },
8
+ var { border, analyticsEvents } = _a, mediaProps = __rest(_a, ["border", "analyticsEvents"]);
9
+ return (React.createElement(CardBase, { className: b(), bodyClassName: b('body'), border: border, analyticsEvents: analyticsEvents },
10
10
  React.createElement(CardBase.Content, null,
11
11
  React.createElement(Media, Object.assign({}, mediaProps)))));
12
12
  };