@gravity-ui/page-constructor 1.15.0-alpha.8 → 1.15.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 (273) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/README.md +5 -75
  3. package/build/cjs/blocks/Banner/Banner.js +2 -3
  4. package/build/cjs/blocks/Banner/schema.d.ts +0 -243
  5. package/build/cjs/blocks/Banner/schema.js +1 -3
  6. package/build/cjs/blocks/CardLayout/schema.d.ts +0 -6
  7. package/build/cjs/blocks/ContentLayout/ContentLayout.js +2 -3
  8. package/build/cjs/blocks/ContentLayout/schema.d.ts +0 -3
  9. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.d.ts +1 -1
  10. package/build/cjs/blocks/ExtendedFeatures/ExtendedFeatures.js +2 -3
  11. package/build/cjs/blocks/ExtendedFeatures/schema.d.ts +0 -3
  12. package/build/cjs/blocks/Header/Header.js +5 -6
  13. package/build/cjs/blocks/Header/schema.d.ts +0 -3
  14. package/build/cjs/blocks/HeaderSlider/schema.d.ts +0 -3
  15. package/build/cjs/blocks/Icons/schema.d.ts +0 -6
  16. package/build/cjs/blocks/Info/Info.js +3 -4
  17. package/build/cjs/blocks/Info/schema.d.ts +0 -3
  18. package/build/cjs/blocks/Info/schema.js +0 -2
  19. package/build/cjs/blocks/LinkTable/schema.d.ts +0 -3
  20. package/build/cjs/blocks/Media/Media.js +2 -3
  21. package/build/cjs/blocks/Media/MediaContent.js +2 -3
  22. package/build/cjs/blocks/Media/schema.d.ts +0 -81
  23. package/build/cjs/blocks/Preview/MediaContent/MediaContent.d.ts +1 -2
  24. package/build/cjs/blocks/Preview/MediaContent/MediaContent.js +2 -3
  25. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -1
  26. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.js +2 -3
  27. package/build/cjs/blocks/Preview/Preview.js +2 -3
  28. package/build/cjs/blocks/Preview/schema.d.ts +0 -3
  29. package/build/cjs/blocks/Preview/schema.js +1 -3
  30. package/build/cjs/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +2 -3
  31. package/build/cjs/blocks/PromoFeaturesBlock/schema.d.ts +0 -3
  32. package/build/cjs/blocks/Questions/Questions.js +2 -3
  33. package/build/cjs/blocks/Questions/schema.d.ts +0 -3
  34. package/build/cjs/blocks/Security/Security.js +2 -3
  35. package/build/cjs/blocks/Security/schema.d.ts +0 -3
  36. package/build/cjs/blocks/Security/schema.js +1 -3
  37. package/build/cjs/blocks/Share/Share.d.ts +1 -1
  38. package/build/cjs/blocks/Share/Share.js +2 -11
  39. package/build/cjs/blocks/Simple/schema.d.ts +0 -3
  40. package/build/cjs/blocks/Slider/schema.d.ts +0 -3
  41. package/build/cjs/blocks/Table/schema.d.ts +0 -3
  42. package/build/cjs/blocks/Tabs/Tabs.d.ts +1 -1
  43. package/build/cjs/blocks/Tabs/Tabs.js +4 -5
  44. package/build/cjs/blocks/Tabs/schema.d.ts +0 -3
  45. package/build/cjs/components/BackLink/BackLink.d.ts +0 -1
  46. package/build/cjs/components/BackLink/BackLink.js +2 -11
  47. package/build/cjs/components/BackgroundMedia/BackgroundMedia.js +1 -2
  48. package/build/cjs/components/Button/Button.d.ts +0 -1
  49. package/build/cjs/components/Button/Button.js +2 -11
  50. package/build/cjs/components/ButtonTabs/ButtonTabs.d.ts +0 -1
  51. package/build/cjs/components/ButtonTabs/ButtonTabs.js +2 -11
  52. package/build/cjs/components/CardBase/CardBase.d.ts +0 -3
  53. package/build/cjs/components/CardBase/CardBase.js +1 -10
  54. package/build/cjs/components/FullscreenImage/FullscreenImage.js +8 -6
  55. package/build/cjs/components/FullscreenMedia/FullScreenMedia.css +70 -0
  56. package/build/cjs/components/FullscreenMedia/FullScreenMedia.d.ts +9 -0
  57. package/build/cjs/components/FullscreenMedia/FullScreenMedia.js +40 -0
  58. package/build/cjs/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -10
  59. package/build/cjs/components/Link/Link.js +2 -11
  60. package/build/cjs/components/Media/Media.js +5 -7
  61. package/build/cjs/components/Media/Video/Video.js +3 -6
  62. package/build/cjs/components/MetaInfo/MetaInfo.css +13 -0
  63. package/build/cjs/components/MetaInfo/MetaInfo.d.ts +6 -0
  64. package/build/cjs/components/MetaInfo/MetaInfo.js +8 -0
  65. package/build/cjs/components/MetaInfo/schema.d.ts +8 -0
  66. package/build/cjs/components/MetaInfo/schema.js +10 -0
  67. package/build/cjs/components/ReactPlayer/ReactPlayer.js +3 -16
  68. package/build/cjs/components/VideoBlock/VideoBlock.d.ts +1 -0
  69. package/build/cjs/components/VideoBlock/VideoBlock.js +6 -10
  70. package/build/cjs/components/YandexForm/YandexForm.d.ts +0 -3
  71. package/build/cjs/components/YandexForm/YandexForm.js +2 -19
  72. package/build/cjs/components/index.d.ts +2 -0
  73. package/build/cjs/components/index.js +5 -1
  74. package/build/cjs/constants.d.ts +0 -1
  75. package/build/cjs/constants.js +1 -2
  76. package/build/cjs/constructor-items.d.ts +9 -5
  77. package/build/cjs/constructor-items.js +4 -0
  78. package/build/cjs/containers/PageConstructor/PageConstructor.css +1 -0
  79. package/build/cjs/containers/PageConstructor/Provider.d.ts +0 -2
  80. package/build/cjs/containers/PageConstructor/Provider.js +1 -3
  81. package/build/cjs/context/metrikaContext/metrikaContext.d.ts +0 -6
  82. package/build/cjs/hooks/index.d.ts +0 -1
  83. package/build/cjs/hooks/index.js +0 -1
  84. package/build/cjs/hooks/useMetrika.d.ts +0 -6
  85. package/build/cjs/hooks/useMetrika.js +0 -8
  86. package/build/cjs/models/common.d.ts +0 -29
  87. package/build/cjs/models/common.js +0 -3
  88. package/build/cjs/models/constructor-items/blocks.d.ts +0 -11
  89. package/build/cjs/models/constructor-items/common.d.ts +2 -27
  90. package/build/cjs/models/constructor-items/sub-blocks.d.ts +16 -6
  91. package/build/cjs/models/constructor-items/sub-blocks.js +4 -0
  92. package/build/cjs/navigation/components/NavigationItem/NavigationItem.js +2 -3
  93. package/build/cjs/schema/index.js +1 -0
  94. package/build/cjs/schema/validators/common.d.ts +0 -171
  95. package/build/cjs/schema/validators/common.js +0 -12
  96. package/build/cjs/schema/validators/sub-blocks.d.ts +1 -0
  97. package/build/cjs/schema/validators/sub-blocks.js +1 -0
  98. package/build/cjs/sub-blocks/BackgroundCard/BackgroundCard.js +2 -3
  99. package/build/cjs/sub-blocks/BackgroundCard/schema.d.ts +0 -3
  100. package/build/cjs/sub-blocks/BackgroundCard/schema.js +0 -2
  101. package/build/cjs/sub-blocks/BannerCard/BannerCard.js +2 -3
  102. package/build/cjs/sub-blocks/BasicCard/BasicCard.js +2 -3
  103. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.d.ts +1 -1
  104. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.js +2 -3
  105. package/build/cjs/sub-blocks/Content/Content.js +3 -4
  106. package/build/cjs/sub-blocks/HubspotForm/HubspotForm.css +2 -2
  107. package/build/cjs/sub-blocks/HubspotForm/index.js +3 -19
  108. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.css +16 -0
  109. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +3 -0
  110. package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +21 -0
  111. package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +218 -0
  112. package/build/cjs/sub-blocks/LayoutItem/schema.js +18 -0
  113. package/build/cjs/sub-blocks/LayoutItem/utils.d.ts +15 -0
  114. package/build/cjs/sub-blocks/LayoutItem/utils.js +12 -0
  115. package/build/cjs/sub-blocks/MediaCard/MediaCard.d.ts +1 -1
  116. package/build/cjs/sub-blocks/MediaCard/MediaCard.js +2 -3
  117. package/build/cjs/sub-blocks/Quote/Quote.js +2 -10
  118. package/build/cjs/sub-blocks/Quote/schema.d.ts +0 -3
  119. package/build/cjs/sub-blocks/Quote/schema.js +1 -3
  120. package/build/cjs/sub-blocks/index.d.ts +1 -0
  121. package/build/cjs/sub-blocks/index.js +3 -1
  122. package/build/cjs/text-transform/blocks.js +17 -0
  123. package/build/cjs/utils/hubspot.d.ts +2 -1
  124. package/build/cjs/utils/hubspot.js +5 -1
  125. package/build/esm/blocks/Banner/Banner.js +2 -3
  126. package/build/esm/blocks/Banner/schema.d.ts +0 -243
  127. package/build/esm/blocks/Banner/schema.js +1 -3
  128. package/build/esm/blocks/CardLayout/schema.d.ts +0 -6
  129. package/build/esm/blocks/ContentLayout/ContentLayout.js +2 -3
  130. package/build/esm/blocks/ContentLayout/schema.d.ts +0 -3
  131. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.d.ts +1 -1
  132. package/build/esm/blocks/ExtendedFeatures/ExtendedFeatures.js +2 -3
  133. package/build/esm/blocks/ExtendedFeatures/schema.d.ts +0 -3
  134. package/build/esm/blocks/Header/Header.js +5 -6
  135. package/build/esm/blocks/Header/schema.d.ts +0 -3
  136. package/build/esm/blocks/HeaderSlider/schema.d.ts +0 -3
  137. package/build/esm/blocks/Icons/schema.d.ts +0 -6
  138. package/build/esm/blocks/Info/Info.js +3 -4
  139. package/build/esm/blocks/Info/schema.d.ts +0 -3
  140. package/build/esm/blocks/Info/schema.js +0 -2
  141. package/build/esm/blocks/LinkTable/schema.d.ts +0 -3
  142. package/build/esm/blocks/Media/Media.js +2 -3
  143. package/build/esm/blocks/Media/MediaContent.js +2 -3
  144. package/build/esm/blocks/Media/schema.d.ts +0 -81
  145. package/build/esm/blocks/Preview/MediaContent/MediaContent.d.ts +1 -2
  146. package/build/esm/blocks/Preview/MediaContent/MediaContent.js +2 -3
  147. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -1
  148. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.js +2 -3
  149. package/build/esm/blocks/Preview/Preview.js +2 -3
  150. package/build/esm/blocks/Preview/schema.d.ts +0 -3
  151. package/build/esm/blocks/Preview/schema.js +1 -3
  152. package/build/esm/blocks/PromoFeaturesBlock/PromoFeaturesBlock.js +2 -3
  153. package/build/esm/blocks/PromoFeaturesBlock/schema.d.ts +0 -3
  154. package/build/esm/blocks/Questions/Questions.js +2 -3
  155. package/build/esm/blocks/Questions/schema.d.ts +0 -3
  156. package/build/esm/blocks/Security/Security.js +2 -3
  157. package/build/esm/blocks/Security/schema.d.ts +0 -3
  158. package/build/esm/blocks/Security/schema.js +1 -3
  159. package/build/esm/blocks/Share/Share.d.ts +1 -1
  160. package/build/esm/blocks/Share/Share.js +3 -12
  161. package/build/esm/blocks/Simple/schema.d.ts +0 -3
  162. package/build/esm/blocks/Slider/schema.d.ts +0 -3
  163. package/build/esm/blocks/Table/schema.d.ts +0 -3
  164. package/build/esm/blocks/Tabs/Tabs.d.ts +1 -1
  165. package/build/esm/blocks/Tabs/Tabs.js +4 -5
  166. package/build/esm/blocks/Tabs/schema.d.ts +0 -3
  167. package/build/esm/components/BackLink/BackLink.d.ts +0 -1
  168. package/build/esm/components/BackLink/BackLink.js +2 -11
  169. package/build/esm/components/BackgroundMedia/BackgroundMedia.js +1 -2
  170. package/build/esm/components/Button/Button.d.ts +0 -1
  171. package/build/esm/components/Button/Button.js +2 -11
  172. package/build/esm/components/ButtonTabs/ButtonTabs.d.ts +0 -1
  173. package/build/esm/components/ButtonTabs/ButtonTabs.js +2 -11
  174. package/build/esm/components/CardBase/CardBase.d.ts +0 -3
  175. package/build/esm/components/CardBase/CardBase.js +1 -10
  176. package/build/esm/components/FullscreenImage/FullscreenImage.js +9 -7
  177. package/build/esm/components/FullscreenMedia/FullScreenMedia.css +70 -0
  178. package/build/esm/components/FullscreenMedia/FullScreenMedia.d.ts +10 -0
  179. package/build/esm/components/FullscreenMedia/FullScreenMedia.js +38 -0
  180. package/build/esm/components/HeaderBreadcrumbs/HeaderBreadcrumbs.js +1 -10
  181. package/build/esm/components/Link/Link.js +2 -11
  182. package/build/esm/components/Media/Media.js +5 -7
  183. package/build/esm/components/Media/Video/Video.js +3 -6
  184. package/build/esm/components/MetaInfo/MetaInfo.css +13 -0
  185. package/build/esm/components/MetaInfo/MetaInfo.d.ts +7 -0
  186. package/build/esm/components/MetaInfo/MetaInfo.js +6 -0
  187. package/build/esm/components/MetaInfo/schema.d.ts +8 -0
  188. package/build/esm/components/MetaInfo/schema.js +8 -0
  189. package/build/esm/components/ReactPlayer/ReactPlayer.js +3 -16
  190. package/build/esm/components/VideoBlock/VideoBlock.d.ts +1 -0
  191. package/build/esm/components/VideoBlock/VideoBlock.js +6 -10
  192. package/build/esm/components/YandexForm/YandexForm.d.ts +0 -3
  193. package/build/esm/components/YandexForm/YandexForm.js +2 -19
  194. package/build/esm/components/index.d.ts +2 -0
  195. package/build/esm/components/index.js +2 -0
  196. package/build/esm/constants.d.ts +0 -1
  197. package/build/esm/constants.js +0 -1
  198. package/build/esm/constructor-items.d.ts +9 -5
  199. package/build/esm/constructor-items.js +5 -1
  200. package/build/esm/containers/PageConstructor/PageConstructor.css +1 -0
  201. package/build/esm/containers/PageConstructor/Provider.d.ts +0 -2
  202. package/build/esm/containers/PageConstructor/Provider.js +1 -3
  203. package/build/esm/context/metrikaContext/metrikaContext.d.ts +0 -6
  204. package/build/esm/hooks/index.d.ts +0 -1
  205. package/build/esm/hooks/index.js +0 -1
  206. package/build/esm/hooks/useMetrika.d.ts +0 -6
  207. package/build/esm/hooks/useMetrika.js +0 -8
  208. package/build/esm/models/common.d.ts +0 -29
  209. package/build/esm/models/common.js +0 -3
  210. package/build/esm/models/constructor-items/blocks.d.ts +0 -11
  211. package/build/esm/models/constructor-items/common.d.ts +2 -27
  212. package/build/esm/models/constructor-items/sub-blocks.d.ts +16 -6
  213. package/build/esm/models/constructor-items/sub-blocks.js +4 -0
  214. package/build/esm/navigation/components/NavigationItem/NavigationItem.js +2 -3
  215. package/build/esm/schema/index.js +1 -0
  216. package/build/esm/schema/validators/common.d.ts +0 -171
  217. package/build/esm/schema/validators/common.js +0 -12
  218. package/build/esm/schema/validators/sub-blocks.d.ts +1 -0
  219. package/build/esm/schema/validators/sub-blocks.js +1 -0
  220. package/build/esm/sub-blocks/BackgroundCard/BackgroundCard.js +2 -3
  221. package/build/esm/sub-blocks/BackgroundCard/schema.d.ts +0 -3
  222. package/build/esm/sub-blocks/BackgroundCard/schema.js +0 -2
  223. package/build/esm/sub-blocks/BannerCard/BannerCard.js +2 -3
  224. package/build/esm/sub-blocks/BasicCard/BasicCard.js +2 -3
  225. package/build/esm/sub-blocks/CardWithImage/CardWithImage.d.ts +1 -1
  226. package/build/esm/sub-blocks/CardWithImage/CardWithImage.js +2 -3
  227. package/build/esm/sub-blocks/Content/Content.js +3 -4
  228. package/build/esm/sub-blocks/HubspotForm/HubspotForm.css +2 -2
  229. package/build/esm/sub-blocks/HubspotForm/index.js +4 -20
  230. package/build/esm/sub-blocks/LayoutItem/LayoutItem.css +16 -0
  231. package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +4 -0
  232. package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +20 -0
  233. package/build/esm/sub-blocks/LayoutItem/schema.d.ts +218 -0
  234. package/build/esm/sub-blocks/LayoutItem/schema.js +14 -0
  235. package/build/esm/sub-blocks/LayoutItem/utils.d.ts +15 -0
  236. package/build/esm/sub-blocks/LayoutItem/utils.js +6 -0
  237. package/build/esm/sub-blocks/MediaCard/MediaCard.d.ts +1 -1
  238. package/build/esm/sub-blocks/MediaCard/MediaCard.js +2 -3
  239. package/build/esm/sub-blocks/Quote/Quote.js +4 -12
  240. package/build/esm/sub-blocks/Quote/schema.d.ts +0 -3
  241. package/build/esm/sub-blocks/Quote/schema.js +1 -3
  242. package/build/esm/sub-blocks/index.d.ts +1 -0
  243. package/build/esm/sub-blocks/index.js +1 -0
  244. package/build/esm/text-transform/blocks.js +17 -0
  245. package/build/esm/utils/hubspot.d.ts +2 -1
  246. package/build/esm/utils/hubspot.js +5 -1
  247. package/package.json +4 -5
  248. package/server/models/common.d.ts +0 -29
  249. package/server/models/common.js +0 -3
  250. package/server/models/constructor-items/blocks.d.ts +0 -11
  251. package/server/models/constructor-items/common.d.ts +2 -27
  252. package/server/models/constructor-items/sub-blocks.d.ts +16 -6
  253. package/server/models/constructor-items/sub-blocks.js +4 -0
  254. package/server/text-transform/blocks.js +17 -0
  255. package/server/utils/hubspot.d.ts +2 -1
  256. package/server/utils/hubspot.js +5 -1
  257. package/styles/root.scss +1 -0
  258. package/build/cjs/context/analyticsContext/analyticsContext.d.ts +0 -6
  259. package/build/cjs/context/analyticsContext/analyticsContext.js +0 -6
  260. package/build/cjs/context/analyticsContext/index.d.ts +0 -1
  261. package/build/cjs/context/analyticsContext/index.js +0 -4
  262. package/build/cjs/hooks/useAnalytics.d.ts +0 -2
  263. package/build/cjs/hooks/useAnalytics.js +0 -23
  264. package/build/cjs/schema/validators/event.d.ts +0 -37
  265. package/build/cjs/schema/validators/event.js +0 -38
  266. package/build/esm/context/analyticsContext/analyticsContext.d.ts +0 -6
  267. package/build/esm/context/analyticsContext/analyticsContext.js +0 -2
  268. package/build/esm/context/analyticsContext/index.d.ts +0 -1
  269. package/build/esm/context/analyticsContext/index.js +0 -1
  270. package/build/esm/hooks/useAnalytics.d.ts +0 -2
  271. package/build/esm/hooks/useAnalytics.js +0 -19
  272. package/build/esm/schema/validators/event.d.ts +0 -37
  273. package/build/esm/schema/validators/event.js +0 -35
@@ -0,0 +1,218 @@
1
+ export declare const LayoutItem: {
2
+ type: string;
3
+ additionalProperties: boolean;
4
+ required: string[];
5
+ properties: {
6
+ media: {
7
+ color: {
8
+ type: string;
9
+ };
10
+ image: {
11
+ anyOf: ({
12
+ oneOf: ({
13
+ type: string;
14
+ properties: {
15
+ when: {
16
+ type: string;
17
+ };
18
+ };
19
+ } | {
20
+ type: string;
21
+ pattern: string;
22
+ })[];
23
+ } | {
24
+ type: string;
25
+ items: {
26
+ oneOf: ({
27
+ type: string;
28
+ properties: {
29
+ when: {
30
+ type: string;
31
+ };
32
+ };
33
+ } | {
34
+ type: string;
35
+ pattern: string;
36
+ })[];
37
+ };
38
+ })[];
39
+ };
40
+ video: {
41
+ type: string;
42
+ additionalProperties: boolean;
43
+ required: string[];
44
+ properties: {
45
+ src: {
46
+ type: string;
47
+ items: {
48
+ type: string;
49
+ };
50
+ };
51
+ loop: {
52
+ anyOf: ({
53
+ type: string;
54
+ additionalProperties: boolean;
55
+ required: string[];
56
+ properties: {
57
+ start: {
58
+ type: string;
59
+ };
60
+ end: {
61
+ type: string;
62
+ };
63
+ };
64
+ } | {
65
+ type: string;
66
+ })[];
67
+ };
68
+ type: {
69
+ type: string;
70
+ enum: string[];
71
+ };
72
+ muted: {
73
+ type: string;
74
+ };
75
+ playing: {
76
+ type: string;
77
+ };
78
+ elapsedTime: {
79
+ type: string;
80
+ };
81
+ playIcon: {
82
+ type: string;
83
+ additionalProperties: boolean;
84
+ properties: {
85
+ type: {
86
+ type: string;
87
+ enum: string[];
88
+ };
89
+ theme: {
90
+ type: string;
91
+ enum: string[];
92
+ };
93
+ text: {
94
+ type: string;
95
+ contentType: string;
96
+ };
97
+ };
98
+ };
99
+ controls: {
100
+ type: string;
101
+ enum: string[];
102
+ };
103
+ };
104
+ };
105
+ youtube: {
106
+ type: string;
107
+ };
108
+ parallax: {
109
+ type: string;
110
+ };
111
+ height: {
112
+ type: string;
113
+ };
114
+ previewImg: {
115
+ type: string;
116
+ };
117
+ dataLens: {
118
+ oneOf: ({
119
+ type: string;
120
+ additionalProperties: boolean;
121
+ required: string[];
122
+ properties: {
123
+ id: {
124
+ type: string;
125
+ };
126
+ theme: {
127
+ type: string;
128
+ enum: string[];
129
+ };
130
+ };
131
+ } | {
132
+ type: string;
133
+ })[];
134
+ };
135
+ };
136
+ content: Partial<{
137
+ title: {
138
+ oneOf: ({
139
+ type: string;
140
+ additionalProperties: boolean;
141
+ required: string[];
142
+ properties: {
143
+ text: {
144
+ type: string;
145
+ contentType: string;
146
+ };
147
+ textSize: {
148
+ type: string;
149
+ enum: string[];
150
+ };
151
+ url: {
152
+ type: string;
153
+ };
154
+ resetMargin: {
155
+ type: string;
156
+ };
157
+ };
158
+ } | {
159
+ type: string;
160
+ contentType: string;
161
+ })[];
162
+ };
163
+ text: {
164
+ type: string;
165
+ contentType: string;
166
+ };
167
+ additionalInfo: {
168
+ type: string;
169
+ contentType: string;
170
+ };
171
+ size: {
172
+ type: string;
173
+ enum: string[];
174
+ };
175
+ links: {
176
+ type: string;
177
+ items: {
178
+ type: string;
179
+ properties: {
180
+ when: {
181
+ type: string;
182
+ };
183
+ };
184
+ };
185
+ };
186
+ buttons: {
187
+ type: string;
188
+ items: {
189
+ type: string;
190
+ properties: {
191
+ when: {
192
+ type: string;
193
+ };
194
+ };
195
+ };
196
+ };
197
+ theme: {
198
+ type: string;
199
+ enum: string[];
200
+ };
201
+ }>;
202
+ metaInfo: {
203
+ type: string;
204
+ items: {
205
+ type: string;
206
+ contentType: string;
207
+ };
208
+ };
209
+ border: {
210
+ type: string;
211
+ };
212
+ fullScreen: {
213
+ type: string;
214
+ };
215
+ type: {};
216
+ when: {};
217
+ };
218
+ };
@@ -0,0 +1,14 @@
1
+ import { omit } from 'lodash';
2
+ import { BaseProps, MediaProps } from '../../schema/validators/common';
3
+ import { ContentBase } from '../../sub-blocks/Content/schema';
4
+ import metaInfo from '../../components/MetaInfo/schema';
5
+ export const LayoutItem = {
6
+ type: 'object',
7
+ additionalProperties: false,
8
+ required: ['content', 'media'],
9
+ properties: Object.assign(Object.assign({}, BaseProps), { media: MediaProps, content: omit(ContentBase, ['colSize', 'size', 'centered']), metaInfo: metaInfo, border: {
10
+ type: 'boolean',
11
+ }, fullScreen: {
12
+ type: 'boolean',
13
+ } }),
14
+ };
@@ -0,0 +1,15 @@
1
+ import { LayoutItemProps, LinkTheme, MediaProps } from '../../models';
2
+ export declare const getLayoutItemLinks: (links: LayoutItemProps['content']['links']) => {
3
+ url: string;
4
+ text?: string | undefined;
5
+ textSize?: import("../../models").TextSize | undefined;
6
+ theme: LinkTheme;
7
+ colorTheme?: import("../../models").TextTheme | undefined;
8
+ arrow?: boolean | undefined;
9
+ target?: string | undefined;
10
+ metrikaGoals?: import("../../models").MetrikaGoal | undefined;
11
+ pixelEvents?: import("../../models").ButtonPixel | undefined;
12
+ className?: string | undefined;
13
+ }[] | undefined;
14
+ export declare const hasFullScreen: ({ dataLens, image }: MediaProps) => boolean;
15
+ export declare const showFullScreenIcon: ({ youtube }: MediaProps) => boolean;
@@ -0,0 +1,6 @@
1
+ export const getLayoutItemLinks = (links) => links === null || links === void 0 ? void 0 : links.map((link) => (Object.assign({ theme: 'normal' }, link)));
2
+ export const hasFullScreen = ({ dataLens, image }) => {
3
+ // datalens and slider media card don't support fullScreen mode
4
+ return !(dataLens || Array.isArray(image));
5
+ };
6
+ export const showFullScreenIcon = ({ youtube }) => !youtube;
@@ -1,4 +1,4 @@
1
1
  import { MediaCardProps } from '../../models';
2
2
  import './MediaCard.css';
3
- declare const MediaCard: ({ border, blockName, ...mediaProps }: MediaCardProps) => JSX.Element;
3
+ declare const MediaCard: ({ border, ...mediaProps }: MediaCardProps) => JSX.Element;
4
4
  export default MediaCard;
@@ -1,14 +1,13 @@
1
1
  import { __rest } from "tslib";
2
2
  import React from 'react';
3
- import { SubBlockType } from '../../models';
4
3
  import { block } from '../../utils';
5
4
  import { Media, CardBase } from '../../components';
6
5
  import './MediaCard.css';
7
6
  const b = block('MediaCard');
8
7
  const MediaCard = (_a) => {
9
- var { border, blockName = SubBlockType.MediaCard } = _a, mediaProps = __rest(_a, ["border", "blockName"]);
8
+ var { border } = _a, mediaProps = __rest(_a, ["border"]);
10
9
  return (React.createElement(CardBase, { className: b(), bodyClassName: b('body'), border: border },
11
10
  React.createElement(CardBase.Content, null,
12
- React.createElement(Media, Object.assign({}, mediaProps, { blockName: blockName })))));
11
+ React.createElement(Media, Object.assign({}, mediaProps)))));
13
12
  };
14
13
  export default MediaCard;
@@ -1,28 +1,20 @@
1
- import React, { useCallback, useContext } from 'react';
1
+ import React, { useContext } from 'react';
2
2
  import { Button } from '@gravity-ui/uikit';
3
3
  import { block, getThemedValue } from '../../utils';
4
- import { AuthorType, SubBlockType } from '../../models';
4
+ import { AuthorType } from '../../models';
5
5
  import { Author, Image, HTML } from '../../components';
6
6
  import { ThemeValueContext } from '../../context/theme/ThemeValueContext';
7
7
  import { getMediaImage } from '../../components/Media/Image/utils';
8
- import { useAnalytics } from '../../hooks';
9
- import { DEFAULT_EVENT_TYPE } from '../../constants';
10
8
  import './Quote.css';
11
9
  const b = block('quote');
12
10
  const Quote = (props) => {
13
- const { theme: textTheme = 'light', color, image, border = 'shadow', text, logo, author, url, buttonText, blockName = SubBlockType.Quote, } = props;
11
+ const { theme: textTheme = 'light', color, image, border = 'shadow', text, logo, author, url, buttonText, } = props;
14
12
  const { themeValue: theme } = useContext(ThemeValueContext);
15
13
  const imageThemed = getThemedValue(image, theme);
16
14
  const imageData = getMediaImage(imageThemed);
17
- const handleAnalytics = useAnalytics({
18
- name: 'quote-button-click',
19
- type: DEFAULT_EVENT_TYPE,
20
- blockName: blockName,
21
- });
22
- const handleButtonClick = useCallback(() => handleAnalytics === null || handleAnalytics === void 0 ? void 0 : handleAnalytics(), [handleAnalytics]);
23
15
  const renderFooter = Boolean(author || url) && (React.createElement("div", { className: b('author-wrapper') },
24
16
  author && (React.createElement(Author, { className: b('author', { theme: textTheme }), author: author, type: AuthorType.Line })),
25
- url && buttonText && (React.createElement(Button, { view: "outlined", size: "xl", href: url, className: b('link-button', { theme: textTheme }), onClick: handleButtonClick }, buttonText))));
17
+ url && buttonText && (React.createElement(Button, { view: "outlined", size: "xl", href: url, className: b('link-button', { theme: textTheme }) }, buttonText))));
26
18
  return (React.createElement("div", { className: b({ theme: textTheme, border }), style: color ? { backgroundColor: color } : {} },
27
19
  React.createElement("div", { key: text, className: b('content-wrapper') },
28
20
  React.createElement("div", null,
@@ -64,9 +64,6 @@ export declare const Quote: {
64
64
  };
65
65
  };
66
66
  };
67
- blockName: {
68
- type: string;
69
- };
70
67
  type: {};
71
68
  when: {};
72
69
  };
@@ -15,8 +15,6 @@ export const Quote = {
15
15
  }, url: {
16
16
  type: 'string',
17
17
  pattern: urlPattern,
18
- }, theme: ThemeProps, author: authorItem, blockName: {
19
- type: 'string',
20
- } }),
18
+ }, theme: ThemeProps, author: authorItem }),
21
19
  },
22
20
  };
@@ -7,6 +7,7 @@ export { default as MediaCard } from './MediaCard/MediaCard';
7
7
  export { default as BannerCard } from './BannerCard/BannerCard';
8
8
  export { default as TutorialCard } from './TutorialCard/TutorialCard';
9
9
  export { default as CardWithImage } from './CardWithImage/CardWithImage';
10
+ export { default as LayoutItem } from './LayoutItem/LayoutItem';
10
11
  export { default as BackgroundCard } from './BackgroundCard/BackgroundCard';
11
12
  export { default as BasicCard } from './BasicCard/BasicCard';
12
13
  export { default as Content } from './Content/Content';
@@ -7,6 +7,7 @@ export { default as MediaCard } from './MediaCard/MediaCard';
7
7
  export { default as BannerCard } from './BannerCard/BannerCard';
8
8
  export { default as TutorialCard } from './TutorialCard/TutorialCard';
9
9
  export { default as CardWithImage } from './CardWithImage/CardWithImage';
10
+ export { default as LayoutItem } from './LayoutItem/LayoutItem';
10
11
  export { default as BackgroundCard } from './BackgroundCard/BackgroundCard';
11
12
  export { default as BasicCard } from './BasicCard/BasicCard';
12
13
  export { default as Content } from './Content/Content';
@@ -138,6 +138,23 @@ const config = {
138
138
  transformer: typografTransformer,
139
139
  },
140
140
  ],
141
+ [SubBlockType.LayoutItem]: [
142
+ {
143
+ fields: ['content'],
144
+ parser: parseContentLayout,
145
+ transformer: yfmTransformer,
146
+ },
147
+ {
148
+ fields: ['content'],
149
+ parser: parseContentLayoutTitle,
150
+ transformer: typografTransformer,
151
+ },
152
+ {
153
+ fields: ['metaInfo'],
154
+ parser: createItemsParser([]),
155
+ transformer: typografTransformer,
156
+ },
157
+ ],
141
158
  [SubBlockType.Quote]: {
142
159
  fields: ['text'],
143
160
  transformer: typografTransformer,
@@ -1,4 +1,4 @@
1
- export type HubspotEventName = 'onBeforeFormInit' | 'onFormReady' | 'onFormSubmit' | 'onFormSubmitted' | `_${string}`;
1
+ export type HubspotEventName = 'onBeforeFormInit' | 'onFormReady' | 'onFormSubmit' | 'onFormSubmitted' | 'onFormError' | `_${string}`;
2
2
  export interface HubspotEventData {
3
3
  type: HubspotEventName | string;
4
4
  eventName: HubspotEventName;
@@ -11,6 +11,7 @@ export interface HubspotEventHandlers {
11
11
  onBeforeSubmit?: (arg: HubspotEventData) => void;
12
12
  onSubmit?: (arg: HubspotEventData) => void;
13
13
  onLoad?: (arg: HubspotEventData) => void;
14
+ onSubmitError?: (arg: HubspotEventData) => void;
14
15
  }
15
16
  export declare function loopBackHabspotEvents(formId: string): ({ data, source, origin }: MessageEvent) => void;
16
17
  export declare function handleHubspotEvents(handlers: HubspotEventHandlers, formId: string): ({ data }: MessageEvent) => void;
@@ -20,7 +20,7 @@ export function loopBackHabspotEvents(formId) {
20
20
  }
21
21
  export function handleHubspotEvents(handlers, formId) {
22
22
  return ({ data }) => {
23
- var _a, _b, _c, _d;
23
+ var _a, _b, _c, _d, _e;
24
24
  if (!isHubspotEventData(data)) {
25
25
  return;
26
26
  }
@@ -44,6 +44,10 @@ export function handleHubspotEvents(handlers, formId) {
44
44
  (_d = handlers.onSubmit) === null || _d === void 0 ? void 0 : _d.call(handlers, data);
45
45
  break;
46
46
  }
47
+ case 'onFormError': {
48
+ (_e = handlers.onSubmitError) === null || _e === void 0 ? void 0 : _e.call(handlers, data);
49
+ break;
50
+ }
47
51
  default:
48
52
  break;
49
53
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "1.15.0-alpha.8",
3
+ "version": "1.15.0",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -56,7 +56,8 @@
56
56
  "react-waypoint": "^10.1.0",
57
57
  "sanitize-html": "^2.6.1",
58
58
  "snakecase-keys": "^5.1.0",
59
- "typograf": "^6.14.0"
59
+ "typograf": "^6.14.0",
60
+ "uuid": "^9.0.0"
60
61
  },
61
62
  "peerDependencies": {
62
63
  "react": "^16.0.0 || ^17.0.0",
@@ -87,6 +88,7 @@
87
88
  "@types/react-slick": "^0.23.7",
88
89
  "@types/react-transition-group": "^4.4.4",
89
90
  "@types/sanitize-html": "^2.6.0",
91
+ "@types/uuid": "^9.0.0",
90
92
  "eslint": "^7.32.0",
91
93
  "eslint-plugin-local": "./eslint-plugin-local",
92
94
  "eslint-plugin-testing-library": "^5.9.1",
@@ -132,8 +134,5 @@
132
134
  "*.{json,yaml,yml,md}": [
133
135
  "prettier --write"
134
136
  ]
135
- },
136
- "publishConfig": {
137
- "tag": "alpha"
138
137
  }
139
138
  }
@@ -7,21 +7,12 @@ export declare enum Theme {
7
7
  Light = "light",
8
8
  Dark = "dark"
9
9
  }
10
- /**
11
- * @deprecated Pixel will be deleted
12
- */
13
10
  type PixelCommand = 'track' | 'trackCustom';
14
- /**
15
- * @deprecated Pixel will be deleted
16
- */
17
11
  export interface PixelEvent {
18
12
  command: PixelCommand;
19
13
  event: PixelEventType | string;
20
14
  data?: Object;
21
15
  }
22
- /**
23
- * @deprecated Pixel will be deleted from package
24
- */
25
16
  export declare enum PixelEventType {
26
17
  AddPaymentInfo = "AddPaymentInfo",
27
18
  AddToCart = "AddToCart",
@@ -45,17 +36,11 @@ export declare enum PixelEventType {
45
36
  export type Modifiers = {
46
37
  [name: string]: string | boolean | undefined;
47
38
  };
48
- /**
49
- * @deprecated Pixel will be deleted
50
- */
51
39
  export interface Pixel<TEvent = string> {
52
40
  trackStandard: (event: TEvent, data?: Object) => void;
53
41
  trackCustom: (event: string, data?: Object) => void;
54
42
  track: (trackEvents: string | string[] | PixelEvent[] | PixelEvent) => void;
55
43
  }
56
- /**
57
- * @deprecated Metrika will be deleted
58
- */
59
44
  export interface Metrika {
60
45
  reachGoal: (counterName: string, ...args: any) => void;
61
46
  reachGoals: (goals: MetrikaGoal, counterName?: string) => void;
@@ -64,18 +49,4 @@ export interface ClassNameProps {
64
49
  className?: string;
65
50
  }
66
51
  export type Timeout = ReturnType<typeof setTimeout> | undefined;
67
- export type AnalyticsParameter = {
68
- key: string;
69
- value: string | number | boolean;
70
- };
71
- export type AnalyticsCounters = {
72
- include?: string[];
73
- exclude?: string[];
74
- };
75
- export type AnalyticsEvent<T = {}> = T & {
76
- name: string;
77
- type?: string;
78
- counters?: AnalyticsCounters;
79
- blockName?: string;
80
- };
81
52
  export {};
@@ -6,9 +6,6 @@ var Theme;
6
6
  Theme["Light"] = "light";
7
7
  Theme["Dark"] = "dark";
8
8
  })(Theme = exports.Theme || (exports.Theme = {}));
9
- /**
10
- * @deprecated Pixel will be deleted from package
11
- */
12
9
  var PixelEventType;
13
10
  (function (PixelEventType) {
14
11
  PixelEventType["AddPaymentInfo"] = "AddPaymentInfo";
@@ -109,7 +109,6 @@ export interface HeaderBlockProps {
109
109
  verticalOffset?: 's' | 'm' | 'l' | 'xl';
110
110
  breadcrumbs?: HeaderBreadCrumbsProps;
111
111
  status?: JSX.Element;
112
- blockName?: string;
113
112
  }
114
113
  export type CalculatorProps = Animatable;
115
114
  export interface SimpleBlockProps extends Animatable, Childable {
@@ -128,7 +127,6 @@ export interface ExtendedFeaturesProps extends Animatable {
128
127
  title?: TitleProps | string;
129
128
  description?: string;
130
129
  colSizes?: GridColumnSizesType;
131
- blockName?: string;
132
130
  }
133
131
  export interface PromoFeaturesItem {
134
132
  title: string;
@@ -141,7 +139,6 @@ export interface PromoFeaturesProps extends Animatable {
141
139
  title?: TitleProps | string;
142
140
  description?: string;
143
141
  theme?: 'grey' | 'default';
144
- blockName?: string;
145
142
  }
146
143
  export interface QuestionItem {
147
144
  title: string;
@@ -166,7 +163,6 @@ export interface MediaContentProps {
166
163
  links?: LinkProps[];
167
164
  buttons?: ButtonProps[];
168
165
  size?: ContentSize;
169
- blockName?: string;
170
166
  }
171
167
  export interface MediaBlockProps extends Animatable, MediaContentProps {
172
168
  media: ThemeSupporting<MediaProps>;
@@ -184,7 +180,6 @@ export interface PreviewBlockProps extends Animatable {
184
180
  ratioMediaContent?: PreviewRatioMediaContent;
185
181
  stopVideo?: boolean;
186
182
  showImmediately?: boolean;
187
- blockName?: string;
188
183
  }
189
184
  export interface InfoBlockProps {
190
185
  theme?: TextTheme;
@@ -199,7 +194,6 @@ export interface InfoBlockProps {
199
194
  links?: Pick<LinkProps, 'text' | 'url'>[];
200
195
  leftContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;
201
196
  rightContent?: Omit<ContentBlockProps, 'colSizes' | 'theme' | 'size'>;
202
- blockName?: string;
203
197
  }
204
198
  export interface SecurityBlockPoint {
205
199
  img: string;
@@ -215,7 +209,6 @@ export interface SecurityBlockProps extends Animatable {
215
209
  title: string;
216
210
  points?: SecurityBlockPoint[];
217
211
  media: MediaProps;
218
- blockName?: string;
219
212
  }
220
213
  export interface TableProps {
221
214
  content: string[][];
@@ -242,7 +235,6 @@ export interface TabsBlockProps extends BlockHeaderProps, Animatable {
242
235
  centered?: boolean;
243
236
  direction?: MediaDirection;
244
237
  items: TabsBlockItem[];
245
- blockName?: string;
246
238
  }
247
239
  export interface LinkTableBlockProps extends BlockHeaderProps {
248
240
  items: LinkProps[][];
@@ -272,7 +264,6 @@ export interface ContentLayoutBlockProps {
272
264
  };
273
265
  textContent: ContentBlockProps;
274
266
  fileContent?: FileLinkProps[];
275
- blockName?: string;
276
267
  }
277
268
  export interface ContentBlockProps {
278
269
  title?: TitleBaseProps | string;
@@ -284,7 +275,6 @@ export interface ContentBlockProps {
284
275
  colSizes?: GridColumnSizesType;
285
276
  centered?: boolean;
286
277
  theme?: ContentTheme;
287
- blockName?: string;
288
278
  }
289
279
  export declare enum PCShareSocialNetwork {
290
280
  Vk = "vk",
@@ -296,7 +286,6 @@ export declare enum PCShareSocialNetwork {
296
286
  export interface ShareBlockProps {
297
287
  items: PCShareSocialNetwork[];
298
288
  title?: string;
299
- blockName?: string;
300
289
  }
301
290
  export type HeaderBlockModel = {
302
291
  type: BlockType.HeaderBlock;