@gravity-ui/page-constructor 2.18.0 → 3.0.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 (242) hide show
  1. package/CHANGELOG.md +0 -19
  2. package/build/cjs/blocks/index.d.ts +0 -4
  3. package/build/cjs/blocks/index.js +1 -9
  4. package/build/cjs/blocks/validators.d.ts +0 -4
  5. package/build/cjs/blocks/validators.js +0 -4
  6. package/build/cjs/components/Anchor/Anchor.d.ts +2 -2
  7. package/build/cjs/components/Anchor/Anchor.js +1 -1
  8. package/build/cjs/components/Anchor/__tests__/Anchor.test.d.ts +1 -0
  9. package/build/cjs/components/Anchor/__tests__/Anchor.test.js +21 -0
  10. package/build/cjs/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts +1 -0
  11. package/build/cjs/components/AnimateBlock/__tests__/AnimateBlock.test.js +36 -0
  12. package/build/cjs/components/Author/__tests__/Author.test.d.ts +1 -0
  13. package/build/cjs/components/Author/__tests__/Author.test.js +49 -0
  14. package/build/cjs/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
  15. package/build/cjs/components/BackLink/__tests__/BackLink.test.js +63 -0
  16. package/build/cjs/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
  17. package/build/cjs/components/BlockBase/__tests__/BlockBase.test.js +44 -0
  18. package/build/cjs/components/Button/__tests__/Button.test.d.ts +1 -0
  19. package/build/cjs/components/Button/__tests__/Button.test.js +91 -0
  20. package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
  21. package/build/cjs/components/ButtonTabs/__tests__/ButtonTabs.test.js +58 -0
  22. package/build/cjs/components/index.d.ts +0 -1
  23. package/build/cjs/components/index.js +1 -3
  24. package/build/cjs/constructor-items.d.ts +0 -16
  25. package/build/cjs/constructor-items.js +0 -16
  26. package/build/cjs/grid/Col/Col.d.ts +1 -1
  27. package/build/cjs/hooks/index.d.ts +1 -1
  28. package/build/cjs/hooks/index.js +3 -3
  29. package/build/cjs/internal-typings/global.d.ts +16 -18
  30. package/build/cjs/models/constructor-items/blocks.d.ts +2 -50
  31. package/build/cjs/models/constructor-items/blocks.js +0 -4
  32. package/build/cjs/models/constructor-items/common.d.ts +0 -14
  33. package/build/cjs/models/constructor-items/common.js +1 -6
  34. package/build/cjs/models/constructor-items/sub-blocks.d.ts +5 -46
  35. package/build/cjs/models/constructor-items/sub-blocks.js +2 -11
  36. package/build/cjs/schema/index.js +2 -8
  37. package/build/cjs/schema/validators/blocks.d.ts +0 -4
  38. package/build/cjs/schema/validators/blocks.js +0 -4
  39. package/build/cjs/schema/validators/sub-blocks.d.ts +0 -3
  40. package/build/cjs/schema/validators/sub-blocks.js +0 -3
  41. package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
  42. package/build/cjs/sub-blocks/HubspotForm/HubspotFormContainer.js +2 -5
  43. package/build/cjs/sub-blocks/HubspotForm/index.d.ts +1 -1
  44. package/build/cjs/sub-blocks/HubspotForm/index.js +5 -6
  45. package/build/cjs/sub-blocks/index.d.ts +0 -3
  46. package/build/cjs/sub-blocks/index.js +1 -7
  47. package/build/cjs/text-transform/{blocks.d.ts → common.d.ts} +1 -4
  48. package/build/cjs/text-transform/common.js +31 -0
  49. package/build/cjs/text-transform/config.d.ts +28 -0
  50. package/build/cjs/text-transform/config.js +291 -0
  51. package/build/cjs/text-transform/index.d.ts +3 -1
  52. package/build/cjs/text-transform/index.js +3 -1
  53. package/build/cjs/text-transform/transformers.d.ts +16 -0
  54. package/build/cjs/text-transform/transformers.js +61 -0
  55. package/build/cjs/utils/index.d.ts +0 -1
  56. package/build/cjs/utils/index.js +0 -1
  57. package/build/esm/blocks/index.d.ts +0 -4
  58. package/build/esm/blocks/index.js +0 -4
  59. package/build/esm/blocks/validators.d.ts +0 -4
  60. package/build/esm/blocks/validators.js +0 -4
  61. package/build/esm/components/Anchor/Anchor.d.ts +2 -2
  62. package/build/esm/components/Anchor/Anchor.js +1 -1
  63. package/build/esm/components/Anchor/__tests__/Anchor.test.d.ts +1 -0
  64. package/build/esm/components/Anchor/__tests__/Anchor.test.js +18 -0
  65. package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.d.ts +1 -0
  66. package/build/esm/components/AnimateBlock/__tests__/AnimateBlock.test.js +33 -0
  67. package/build/esm/components/Author/__tests__/Author.test.d.ts +1 -0
  68. package/build/esm/components/Author/__tests__/Author.test.js +46 -0
  69. package/build/esm/components/BackLink/__tests__/BackLink.test.d.ts +1 -0
  70. package/build/esm/components/BackLink/__tests__/BackLink.test.js +60 -0
  71. package/build/esm/components/BlockBase/__tests__/BlockBase.test.d.ts +1 -0
  72. package/build/esm/components/BlockBase/__tests__/BlockBase.test.js +41 -0
  73. package/build/esm/components/Button/__tests__/Button.test.d.ts +1 -0
  74. package/build/esm/components/Button/__tests__/Button.test.js +88 -0
  75. package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.d.ts +1 -0
  76. package/build/esm/components/ButtonTabs/__tests__/ButtonTabs.test.js +55 -0
  77. package/build/esm/components/index.d.ts +0 -1
  78. package/build/esm/components/index.js +0 -1
  79. package/build/esm/constructor-items.d.ts +0 -16
  80. package/build/esm/constructor-items.js +2 -18
  81. package/build/esm/grid/Col/Col.d.ts +1 -1
  82. package/build/esm/hooks/index.d.ts +1 -1
  83. package/build/esm/hooks/index.js +1 -1
  84. package/build/esm/internal-typings/global.d.ts +16 -18
  85. package/build/esm/models/constructor-items/blocks.d.ts +2 -50
  86. package/build/esm/models/constructor-items/blocks.js +0 -4
  87. package/build/esm/models/constructor-items/common.d.ts +0 -14
  88. package/build/esm/models/constructor-items/common.js +0 -5
  89. package/build/esm/models/constructor-items/sub-blocks.d.ts +5 -46
  90. package/build/esm/models/constructor-items/sub-blocks.js +2 -11
  91. package/build/esm/schema/index.js +4 -10
  92. package/build/esm/schema/validators/blocks.d.ts +0 -4
  93. package/build/esm/schema/validators/blocks.js +0 -4
  94. package/build/esm/schema/validators/sub-blocks.d.ts +0 -3
  95. package/build/esm/schema/validators/sub-blocks.js +0 -3
  96. package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.d.ts +1 -2
  97. package/build/esm/sub-blocks/HubspotForm/HubspotFormContainer.js +3 -6
  98. package/build/esm/sub-blocks/HubspotForm/index.d.ts +1 -1
  99. package/build/esm/sub-blocks/HubspotForm/index.js +6 -7
  100. package/build/esm/sub-blocks/index.d.ts +0 -3
  101. package/build/esm/sub-blocks/index.js +0 -3
  102. package/build/esm/text-transform/{blocks.d.ts → common.d.ts} +1 -4
  103. package/build/esm/text-transform/common.js +25 -0
  104. package/build/esm/text-transform/config.d.ts +28 -0
  105. package/build/esm/text-transform/{blocks.js → config.js} +15 -123
  106. package/build/esm/text-transform/index.d.ts +3 -1
  107. package/build/esm/text-transform/index.js +3 -1
  108. package/build/esm/text-transform/transformers.d.ts +16 -0
  109. package/build/esm/text-transform/transformers.js +56 -0
  110. package/build/esm/utils/index.d.ts +0 -1
  111. package/build/esm/utils/index.js +0 -1
  112. package/package.json +4 -1
  113. package/server/models/constructor-items/blocks.d.ts +2 -50
  114. package/server/models/constructor-items/blocks.js +0 -4
  115. package/server/models/constructor-items/common.d.ts +0 -14
  116. package/server/models/constructor-items/common.js +1 -6
  117. package/server/models/constructor-items/sub-blocks.d.ts +5 -46
  118. package/server/models/constructor-items/sub-blocks.js +2 -11
  119. package/server/text-transform/{blocks.d.ts → common.d.ts} +1 -4
  120. package/server/text-transform/common.js +31 -0
  121. package/server/text-transform/config.d.ts +28 -0
  122. package/server/text-transform/config.js +301 -0
  123. package/server/text-transform/index.d.ts +3 -1
  124. package/server/text-transform/index.js +3 -1
  125. package/server/text-transform/transformers.d.ts +16 -0
  126. package/server/text-transform/transformers.js +63 -0
  127. package/server/utils/index.d.ts +0 -1
  128. package/server/utils/index.js +0 -1
  129. package/build/cjs/blocks/LinkTable/LinkTable.css +0 -3
  130. package/build/cjs/blocks/LinkTable/LinkTable.d.ts +0 -3
  131. package/build/cjs/blocks/LinkTable/LinkTable.js +0 -22
  132. package/build/cjs/blocks/LinkTable/schema.d.ts +0 -77
  133. package/build/cjs/blocks/LinkTable/schema.js +0 -15
  134. package/build/cjs/blocks/Preview/MediaContent/MediaContent.css +0 -50
  135. package/build/cjs/blocks/Preview/MediaContent/MediaContent.d.ts +0 -13
  136. package/build/cjs/blocks/Preview/MediaContent/MediaContent.js +0 -49
  137. package/build/cjs/blocks/Preview/MediaContent/PreviewContent.css +0 -106
  138. package/build/cjs/blocks/Preview/MediaContent/PreviewContent.d.ts +0 -11
  139. package/build/cjs/blocks/Preview/MediaContent/PreviewContent.js +0 -17
  140. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.css +0 -54
  141. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -9
  142. package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.js +0 -13
  143. package/build/cjs/blocks/Preview/Preview.css +0 -50
  144. package/build/cjs/blocks/Preview/Preview.d.ts +0 -3
  145. package/build/cjs/blocks/Preview/Preview.js +0 -130
  146. package/build/cjs/blocks/Preview/schema.d.ts +0 -40
  147. package/build/cjs/blocks/Preview/schema.js +0 -53
  148. package/build/cjs/blocks/Security/Security.css +0 -142
  149. package/build/cjs/blocks/Security/Security.d.ts +0 -3
  150. package/build/cjs/blocks/Security/Security.js +0 -29
  151. package/build/cjs/blocks/Security/schema.d.ts +0 -170
  152. package/build/cjs/blocks/Security/schema.js +0 -32
  153. package/build/cjs/blocks/Simple/Simple.css +0 -22
  154. package/build/cjs/blocks/Simple/Simple.d.ts +0 -3
  155. package/build/cjs/blocks/Simple/Simple.js +0 -22
  156. package/build/cjs/blocks/Simple/schema.d.ts +0 -68
  157. package/build/cjs/blocks/Simple/schema.js +0 -14
  158. package/build/cjs/components/HeightCalculator/HeightCalculator.css +0 -9
  159. package/build/cjs/components/HeightCalculator/HeightCalculator.d.ts +0 -10
  160. package/build/cjs/components/HeightCalculator/HeightCalculator.js +0 -44
  161. package/build/cjs/context/breakpointContext/breakpointContext.d.ts +0 -2
  162. package/build/cjs/context/breakpointContext/breakpointContext.js +0 -7
  163. package/build/cjs/context/breakpointContext/index.d.ts +0 -1
  164. package/build/cjs/context/breakpointContext/index.js +0 -4
  165. package/build/cjs/hooks/useIntersection.d.ts +0 -1
  166. package/build/cjs/hooks/useIntersection.js +0 -21
  167. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.css +0 -19
  168. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.d.ts +0 -3
  169. package/build/cjs/sub-blocks/CardWithImage/CardWithImage.js +0 -16
  170. package/build/cjs/sub-blocks/CardWithImage/schema.d.ts +0 -154
  171. package/build/cjs/sub-blocks/CardWithImage/schema.js +0 -46
  172. package/build/cjs/sub-blocks/Partner/Partner.css +0 -8
  173. package/build/cjs/sub-blocks/Partner/Partner.d.ts +0 -3
  174. package/build/cjs/sub-blocks/Partner/Partner.js +0 -15
  175. package/build/cjs/sub-blocks/Partner/schema.d.ts +0 -30
  176. package/build/cjs/sub-blocks/Partner/schema.js +0 -17
  177. package/build/cjs/sub-blocks/TutorialCard/TutorialCard.css +0 -20
  178. package/build/cjs/sub-blocks/TutorialCard/TutorialCard.d.ts +0 -3
  179. package/build/cjs/sub-blocks/TutorialCard/TutorialCard.js +0 -23
  180. package/build/cjs/sub-blocks/TutorialCard/schema.d.ts +0 -34
  181. package/build/cjs/sub-blocks/TutorialCard/schema.js +0 -20
  182. package/build/cjs/text-transform/blocks.js +0 -404
  183. package/build/cjs/utils/scroll.d.ts +0 -15
  184. package/build/cjs/utils/scroll.js +0 -35
  185. package/build/esm/blocks/LinkTable/LinkTable.css +0 -3
  186. package/build/esm/blocks/LinkTable/LinkTable.d.ts +0 -4
  187. package/build/esm/blocks/LinkTable/LinkTable.js +0 -21
  188. package/build/esm/blocks/LinkTable/schema.d.ts +0 -77
  189. package/build/esm/blocks/LinkTable/schema.js +0 -12
  190. package/build/esm/blocks/Preview/MediaContent/MediaContent.css +0 -50
  191. package/build/esm/blocks/Preview/MediaContent/MediaContent.d.ts +0 -14
  192. package/build/esm/blocks/Preview/MediaContent/MediaContent.js +0 -47
  193. package/build/esm/blocks/Preview/MediaContent/PreviewContent.css +0 -106
  194. package/build/esm/blocks/Preview/MediaContent/PreviewContent.d.ts +0 -12
  195. package/build/esm/blocks/Preview/MediaContent/PreviewContent.js +0 -15
  196. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.css +0 -54
  197. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -10
  198. package/build/esm/blocks/Preview/MediaContent/PreviewMedia.js +0 -11
  199. package/build/esm/blocks/Preview/Preview.css +0 -50
  200. package/build/esm/blocks/Preview/Preview.d.ts +0 -4
  201. package/build/esm/blocks/Preview/Preview.js +0 -126
  202. package/build/esm/blocks/Preview/schema.d.ts +0 -40
  203. package/build/esm/blocks/Preview/schema.js +0 -50
  204. package/build/esm/blocks/Security/Security.css +0 -142
  205. package/build/esm/blocks/Security/Security.d.ts +0 -4
  206. package/build/esm/blocks/Security/Security.js +0 -25
  207. package/build/esm/blocks/Security/schema.d.ts +0 -170
  208. package/build/esm/blocks/Security/schema.js +0 -28
  209. package/build/esm/blocks/Simple/Simple.css +0 -22
  210. package/build/esm/blocks/Simple/Simple.d.ts +0 -4
  211. package/build/esm/blocks/Simple/Simple.js +0 -18
  212. package/build/esm/blocks/Simple/schema.d.ts +0 -68
  213. package/build/esm/blocks/Simple/schema.js +0 -11
  214. package/build/esm/components/HeightCalculator/HeightCalculator.css +0 -9
  215. package/build/esm/components/HeightCalculator/HeightCalculator.d.ts +0 -11
  216. package/build/esm/components/HeightCalculator/HeightCalculator.js +0 -42
  217. package/build/esm/context/breakpointContext/breakpointContext.d.ts +0 -2
  218. package/build/esm/context/breakpointContext/breakpointContext.js +0 -3
  219. package/build/esm/context/breakpointContext/index.d.ts +0 -1
  220. package/build/esm/context/breakpointContext/index.js +0 -1
  221. package/build/esm/hooks/useIntersection.d.ts +0 -1
  222. package/build/esm/hooks/useIntersection.js +0 -17
  223. package/build/esm/sub-blocks/CardWithImage/CardWithImage.css +0 -19
  224. package/build/esm/sub-blocks/CardWithImage/CardWithImage.d.ts +0 -4
  225. package/build/esm/sub-blocks/CardWithImage/CardWithImage.js +0 -14
  226. package/build/esm/sub-blocks/CardWithImage/schema.d.ts +0 -154
  227. package/build/esm/sub-blocks/CardWithImage/schema.js +0 -43
  228. package/build/esm/sub-blocks/Partner/Partner.css +0 -8
  229. package/build/esm/sub-blocks/Partner/Partner.d.ts +0 -4
  230. package/build/esm/sub-blocks/Partner/Partner.js +0 -13
  231. package/build/esm/sub-blocks/Partner/schema.d.ts +0 -30
  232. package/build/esm/sub-blocks/Partner/schema.js +0 -14
  233. package/build/esm/sub-blocks/TutorialCard/TutorialCard.css +0 -20
  234. package/build/esm/sub-blocks/TutorialCard/TutorialCard.d.ts +0 -4
  235. package/build/esm/sub-blocks/TutorialCard/TutorialCard.js +0 -21
  236. package/build/esm/sub-blocks/TutorialCard/schema.d.ts +0 -34
  237. package/build/esm/sub-blocks/TutorialCard/schema.js +0 -17
  238. package/build/esm/utils/scroll.d.ts +0 -15
  239. package/build/esm/utils/scroll.js +0 -31
  240. package/server/text-transform/blocks.js +0 -417
  241. package/server/utils/scroll.d.ts +0 -15
  242. package/server/utils/scroll.js +0 -35
@@ -3,33 +3,24 @@ import { ThemeSupporting } from '../../utils';
3
3
  import { HubspotEventData, HubspotEventHandlers } from '../../utils/hubspot';
4
4
  import { AnalyticsEventsBase, PixelEvent } from '../common';
5
5
  import { ContentBlockProps } from './blocks';
6
- import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, LinkProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
6
+ import { AuthorItem, ButtonPixel, ButtonProps, CardBaseProps, ContentTheme, DividerSize, ImageObjectProps, ImageProps, MediaProps, PriceDetailedProps, TextTheme, Themable, ThemedImage } from './common';
7
7
  export declare enum SubBlockType {
8
8
  Divider = "divider",
9
9
  Quote = "quote",
10
10
  NewsCard = "news-card",
11
11
  /**
12
- * @deprecated Will be moved to params use BasicCard instead
12
+ * @deprecated Will be removed
13
13
  */
14
- Partner = "partner",
15
14
  PriceDetailed = "price-detailed",
16
15
  MediaCard = "media-card",
17
16
  BannerCard = "banner-card",
18
- /**
19
- * @deprecated Will be moved to params use BasicCard instead
20
- */
21
- TutorialCard = "tutoral-card",
22
- /**
23
- * @deprecated Use LayoutItem
24
- */
25
- CardWithImage = "card-with-image",
26
17
  LayoutItem = "layout-item",
27
18
  BackgroundCard = "background-card",
28
19
  BasicCard = "basic-card",
29
20
  Content = "content",
30
21
  HubspotForm = "hubspot-form",
31
22
  /**
32
- * @deprecated Will be moved to params use BasicCard instead
23
+ * @deprecated Will be removed, use BasicCard instead
33
24
  */
34
25
  Card = "card"
35
26
  }
@@ -67,11 +58,6 @@ export interface HubspotFormProps extends HubspotEventHandlers, AnalyticsEventsB
67
58
  hubspotEvents?: string[];
68
59
  createDOMElement?: boolean;
69
60
  }
70
- export interface PartnerProps extends CardBaseProps {
71
- text: string;
72
- logo: ImageProps;
73
- url: string;
74
- }
75
61
  export interface QuoteProps extends Themable, CardBaseProps {
76
62
  text: string;
77
63
  image: ThemedImage;
@@ -91,12 +77,6 @@ export interface NewsCardData {
91
77
  isoDate?: string;
92
78
  }
93
79
  export type NewsCardProps = Pick<NewsCardData, 'title' | 'url' | 'date' | 'isoDate'> & CardBaseProps;
94
- export interface TutorialCardProps extends CardBaseProps {
95
- url: string;
96
- title: string;
97
- text: string;
98
- icon?: ImageProps;
99
- }
100
80
  export interface BackgroundCardProps extends CardBaseProps, Omit<ContentBlockProps, 'colSizes' | 'centered'> {
101
81
  url?: string;
102
82
  background?: ThemeSupporting<ImageObjectProps>;
@@ -119,18 +99,6 @@ export interface BannerCardProps {
119
99
  }
120
100
  export interface MediaCardProps extends MediaProps, CardBaseProps {
121
101
  }
122
- export interface CardWithImageLinkProps extends Omit<LinkProps, 'text' | 'url'> {
123
- title: string;
124
- link: string;
125
- }
126
- export interface CardWithImageProps extends ClassNameProps, Pick<ContentBlockProps, 'title' | 'additionalInfo' | 'buttons' | 'theme'> {
127
- image: string;
128
- description?: string;
129
- disableCompress?: boolean;
130
- border?: boolean;
131
- fullScreen?: boolean;
132
- links?: CardWithImageLinkProps[];
133
- }
134
102
  export interface LayoutItemProps extends ClassNameProps {
135
103
  content: Omit<ContentBlockProps, 'colSizes' | 'centered' | 'size'>;
136
104
  media: MediaProps;
@@ -147,21 +115,12 @@ export type QuoteModel = {
147
115
  export type NewsCardModel = {
148
116
  type: SubBlockType.NewsCard;
149
117
  } & NewsCardProps;
150
- export type CardWithImageModel = {
151
- type: SubBlockType.CardWithImage;
152
- } & CardWithImageProps;
153
118
  export type LayoutItemModel = {
154
- type: SubBlockType.CardWithImage;
119
+ type: SubBlockType.LayoutItem;
155
120
  } & LayoutItemProps;
156
- export type TutorialCardModel = {
157
- type: SubBlockType.TutorialCard;
158
- } & TutorialCardProps;
159
121
  export type BackgroundCardModel = {
160
122
  type: SubBlockType.BackgroundCard;
161
123
  } & BackgroundCardProps;
162
- export type PartnerModel = {
163
- type: SubBlockType.Partner;
164
- } & PartnerProps;
165
124
  export type PriceDetailedModel = {
166
125
  type: SubBlockType.PriceDetailed;
167
126
  } & PriceDetailedProps;
@@ -177,5 +136,5 @@ export type BannerCardModel = {
177
136
  export type BasicCardModel = {
178
137
  type: SubBlockType.BasicCard;
179
138
  } & BasicCardProps;
180
- export type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PartnerModel | PriceDetailedModel | MediaCardModel | TutorialCardModel | CardWithImageModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel;
139
+ export type SubBlockModels = DividerModel | QuoteModel | NewsCardModel | PriceDetailedModel | MediaCardModel | BackgroundCardModel | HubspotFormModel | BannerCardModel | BasicCardModel | LayoutItemModel;
181
140
  export type SubBlock = SubBlockModels;
@@ -7,27 +7,18 @@ var SubBlockType;
7
7
  SubBlockType["Quote"] = "quote";
8
8
  SubBlockType["NewsCard"] = "news-card";
9
9
  /**
10
- * @deprecated Will be moved to params use BasicCard instead
10
+ * @deprecated Will be removed
11
11
  */
12
- SubBlockType["Partner"] = "partner";
13
12
  SubBlockType["PriceDetailed"] = "price-detailed";
14
13
  SubBlockType["MediaCard"] = "media-card";
15
14
  SubBlockType["BannerCard"] = "banner-card";
16
- /**
17
- * @deprecated Will be moved to params use BasicCard instead
18
- */
19
- SubBlockType["TutorialCard"] = "tutoral-card";
20
- /**
21
- * @deprecated Use LayoutItem
22
- */
23
- SubBlockType["CardWithImage"] = "card-with-image";
24
15
  SubBlockType["LayoutItem"] = "layout-item";
25
16
  SubBlockType["BackgroundCard"] = "background-card";
26
17
  SubBlockType["BasicCard"] = "basic-card";
27
18
  SubBlockType["Content"] = "content";
28
19
  SubBlockType["HubspotForm"] = "hubspot-form";
29
20
  /**
30
- * @deprecated Will be moved to params use BasicCard instead
21
+ * @deprecated Will be removed, use BasicCard instead
31
22
  */
32
23
  SubBlockType["Card"] = "card";
33
24
  })(SubBlockType = exports.SubBlockType || (exports.SubBlockType = {}));
@@ -1,16 +1,13 @@
1
- import { ConstructorBlock } from '../models/constructor';
2
1
  import { Lang } from '../utils/configure';
3
2
  export type ComplexItem = {
4
3
  [key: string]: string;
5
4
  };
6
5
  export type Item = string | null | ComplexItem;
7
- export type TransformerRaw = (lang: Lang, content: string) => string;
8
6
  export type Transformer = (text: string) => string;
7
+ export type TransformerRaw = (lang: Lang, content: string) => string;
9
8
  export type Parser<T = any> = (transformer: Transformer, block: T) => T;
10
9
  export declare const createItemsParser: (fields: string[]) => (transformer: Transformer, items: Item[]) => (string | {
11
10
  [x: string]: string;
12
11
  } | null)[];
13
12
  export declare function yfmTransformer(lang: Lang, content: string): string;
14
13
  export declare function typografTransformer(lang: Lang, content: string): string;
15
- export declare function transformBlocks(blocks: ConstructorBlock[], lang: Lang, customConfig?: {}): void;
16
- export declare function transformFootnotes(footnotes: string[], lang: Lang): string[];
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.typografTransformer = exports.yfmTransformer = exports.createItemsParser = void 0;
4
+ const utils_1 = require("./utils");
5
+ const createItemsParser = (fields) => (transformer, items) => items.map((item) => {
6
+ if (!item) {
7
+ return item;
8
+ }
9
+ else if (typeof item === 'string') {
10
+ return transformer(item);
11
+ }
12
+ else {
13
+ return Object.assign(Object.assign({}, item), fields.reduce((acc, fieldName) => {
14
+ if (item[fieldName]) {
15
+ // eslint-disable-next-line no-param-reassign
16
+ acc[fieldName] = transformer(item[fieldName]);
17
+ }
18
+ return acc;
19
+ }, {}));
20
+ }
21
+ });
22
+ exports.createItemsParser = createItemsParser;
23
+ function yfmTransformer(lang, content) {
24
+ const { html } = (0, utils_1.fullTransform)(content, { lang });
25
+ return html;
26
+ }
27
+ exports.yfmTransformer = yfmTransformer;
28
+ function typografTransformer(lang, content) {
29
+ return (0, utils_1.typografToHTML)(content, lang);
30
+ }
31
+ exports.typografTransformer = typografTransformer;
@@ -0,0 +1,28 @@
1
+ import { TitleProps } from '../models';
2
+ import { Parser, Transformer, TransformerRaw, typografTransformer, yfmTransformer } from './common';
3
+ export declare const blockHeaderTransformer: ({
4
+ fields: string[];
5
+ transformer: typeof typografTransformer;
6
+ parser: (transformer: Transformer, title: TitleProps | string) => string | {
7
+ text: string;
8
+ navTitle?: string | undefined;
9
+ anchor?: string | undefined;
10
+ justify?: import("../models").Justify | undefined;
11
+ textSize?: import("../models").TextSize | undefined;
12
+ url?: string | undefined;
13
+ custom?: import("react").ReactNode;
14
+ onClick?: (() => void) | undefined;
15
+ };
16
+ } | {
17
+ fields: string[];
18
+ transformer: typeof yfmTransformer;
19
+ parser?: undefined;
20
+ })[];
21
+ interface BlockConfig {
22
+ transformer: TransformerRaw;
23
+ fields?: string[];
24
+ parser?: Parser;
25
+ }
26
+ export type BlocksConfig = Record<string, BlockConfig | BlockConfig[]>;
27
+ export declare const config: BlocksConfig;
28
+ export {};
@@ -0,0 +1,301 @@
1
+ "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.config = exports.blockHeaderTransformer = void 0;
15
+ const models_1 = require("../models");
16
+ const common_1 = require("./common");
17
+ function parseTableBlock(transformer, content) {
18
+ const legend = content === null || content === void 0 ? void 0 : content.legend;
19
+ return Object.assign(Object.assign({}, (content || {})), { legend: legend && legend.map((string) => transformer(string)) });
20
+ }
21
+ function parseFeatures(transformer, items) {
22
+ return items.map((_a) => {
23
+ var { title, text } = _a, rest = __rest(_a, ["title", "text"]);
24
+ return (Object.assign({ title: title && transformer(title), text: text && transformer(text) }, rest));
25
+ });
26
+ }
27
+ function parsePromoFeatures(transformer, items) {
28
+ return items.map((_a) => {
29
+ var { text } = _a, rest = __rest(_a, ["text"]);
30
+ return (Object.assign({ text: transformer(text) }, rest));
31
+ });
32
+ }
33
+ const parseTitle = (transformer, title) => typeof title === 'object' && 'text' in title
34
+ ? Object.assign(Object.assign({}, title), { text: transformer(title.text) }) : title && transformer(title);
35
+ const parseItemsTitle = (transformer, items) => items.map((_a) => {
36
+ var { title } = _a, rest = __rest(_a, ["title"]);
37
+ return (Object.assign({ title: title && parseTitle(transformer, title) }, rest));
38
+ });
39
+ function parsePriceDetailedBlock(transformer, block) {
40
+ const { priceType } = block;
41
+ /* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */
42
+ block.items = block.items.map((item) => {
43
+ const { description, items: details = [] } = item;
44
+ if (priceType === 'marked-list') {
45
+ item.items = details.map((detail) => {
46
+ detail.text = detail.text && transformer(detail.text);
47
+ return detail;
48
+ });
49
+ }
50
+ else {
51
+ item.items = details.map((detail) => {
52
+ detail.description = detail.description && transformer(detail.description);
53
+ return detail;
54
+ });
55
+ }
56
+ item.description = transformer(description);
57
+ return item;
58
+ });
59
+ /* eslint-enable no-not-accumulator-reassign/no-not-accumulator-reassign */
60
+ return block;
61
+ }
62
+ const parseContentLayout = (transformer, content) => {
63
+ if (content) {
64
+ const { text, additionalInfo } = content;
65
+ /* eslint-disable no-not-accumulator-reassign/no-not-accumulator-reassign */
66
+ if (text) {
67
+ content.text = transformer(text);
68
+ }
69
+ if (additionalInfo) {
70
+ content.additionalInfo = transformer(additionalInfo);
71
+ }
72
+ /* eslint-enable no-not-accumulator-reassign/no-not-accumulator-reassign */
73
+ }
74
+ return content;
75
+ };
76
+ function parseContentLayoutTitle(transformer, content) {
77
+ if (content === null || content === void 0 ? void 0 : content.title) {
78
+ const { title } = content;
79
+ // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign
80
+ content.title = title && parseTitle(transformer, title);
81
+ }
82
+ return content;
83
+ }
84
+ exports.blockHeaderTransformer = [
85
+ {
86
+ fields: ['title'],
87
+ transformer: common_1.typografTransformer,
88
+ parser: parseTitle,
89
+ },
90
+ {
91
+ fields: ['description'],
92
+ transformer: common_1.yfmTransformer,
93
+ },
94
+ ];
95
+ exports.config = {
96
+ [models_1.SubBlockType.BasicCard]: [
97
+ {
98
+ fields: ['title'],
99
+ transformer: common_1.typografTransformer,
100
+ },
101
+ {
102
+ fields: ['text', 'additionalInfo'],
103
+ transformer: common_1.yfmTransformer,
104
+ },
105
+ ],
106
+ [models_1.SubBlockType.BackgroundCard]: [
107
+ {
108
+ fields: ['text', 'additionalInfo'],
109
+ transformer: common_1.yfmTransformer,
110
+ },
111
+ {
112
+ fields: ['title'],
113
+ transformer: common_1.typografTransformer,
114
+ },
115
+ ],
116
+ [models_1.SubBlockType.LayoutItem]: [
117
+ {
118
+ fields: ['content'],
119
+ parser: parseContentLayout,
120
+ transformer: common_1.yfmTransformer,
121
+ },
122
+ {
123
+ fields: ['content'],
124
+ parser: parseContentLayoutTitle,
125
+ transformer: common_1.typografTransformer,
126
+ },
127
+ {
128
+ fields: ['metaInfo'],
129
+ parser: (0, common_1.createItemsParser)([]),
130
+ transformer: common_1.typografTransformer,
131
+ },
132
+ ],
133
+ [models_1.SubBlockType.Quote]: {
134
+ fields: ['text'],
135
+ transformer: common_1.typografTransformer,
136
+ },
137
+ [models_1.BlockType.ExtendedFeaturesBlock]: [
138
+ ...exports.blockHeaderTransformer,
139
+ {
140
+ fields: ['items'],
141
+ transformer: common_1.typografTransformer,
142
+ parser: (0, common_1.createItemsParser)(['title']),
143
+ },
144
+ {
145
+ fields: ['items'],
146
+ transformer: common_1.yfmTransformer,
147
+ parser: (0, common_1.createItemsParser)(['text', 'additionalInfo']),
148
+ },
149
+ ],
150
+ [models_1.BlockType.PromoFeaturesBlock]: [
151
+ ...exports.blockHeaderTransformer,
152
+ {
153
+ fields: ['items'],
154
+ transformer: common_1.yfmTransformer,
155
+ parser: parsePromoFeatures,
156
+ },
157
+ ],
158
+ [models_1.BlockType.SliderBlock]: exports.blockHeaderTransformer,
159
+ [models_1.BlockType.QuestionsBlock]: [
160
+ {
161
+ fields: ['title'],
162
+ transformer: common_1.typografTransformer,
163
+ },
164
+ {
165
+ fields: ['text', 'additionalInfo'],
166
+ transformer: common_1.yfmTransformer,
167
+ },
168
+ {
169
+ fields: ['items'],
170
+ transformer: common_1.yfmTransformer,
171
+ parser: parseFeatures,
172
+ },
173
+ ],
174
+ [models_1.BlockType.BannerBlock]: [
175
+ {
176
+ fields: ['title'],
177
+ transformer: common_1.typografTransformer,
178
+ },
179
+ {
180
+ fields: ['subtitle'],
181
+ transformer: common_1.yfmTransformer,
182
+ },
183
+ ],
184
+ [models_1.SubBlockType.BannerCard]: [
185
+ {
186
+ fields: ['title'],
187
+ transformer: common_1.typografTransformer,
188
+ },
189
+ {
190
+ fields: ['subtitle'],
191
+ transformer: common_1.yfmTransformer,
192
+ },
193
+ ],
194
+ [models_1.BlockType.MediaBlock]: [
195
+ ...exports.blockHeaderTransformer,
196
+ {
197
+ fields: ['title', 'additionalInfo'],
198
+ transformer: common_1.yfmTransformer,
199
+ },
200
+ ],
201
+ [models_1.BlockType.MapBlock]: [
202
+ ...exports.blockHeaderTransformer,
203
+ {
204
+ fields: ['title', 'additionalInfo'],
205
+ transformer: common_1.yfmTransformer,
206
+ },
207
+ ],
208
+ [models_1.BlockType.TabsBlock]: [
209
+ ...exports.blockHeaderTransformer,
210
+ {
211
+ fields: ['items'],
212
+ transformer: common_1.yfmTransformer,
213
+ parser: (0, common_1.createItemsParser)(['text', 'additionalInfo']),
214
+ },
215
+ {
216
+ fields: ['items'],
217
+ transformer: common_1.typografTransformer,
218
+ parser: parseItemsTitle,
219
+ },
220
+ ],
221
+ [models_1.BlockType.TableBlock]: [
222
+ {
223
+ fields: ['table'],
224
+ transformer: common_1.yfmTransformer,
225
+ parser: parseTableBlock,
226
+ },
227
+ ],
228
+ [models_1.BlockType.HeaderSliderBlock]: [
229
+ {
230
+ fields: ['items'],
231
+ transformer: common_1.typografTransformer,
232
+ parser: (0, common_1.createItemsParser)(['title', 'overtitle']),
233
+ },
234
+ {
235
+ fields: ['items'],
236
+ transformer: common_1.yfmTransformer,
237
+ parser: (0, common_1.createItemsParser)(['description']),
238
+ },
239
+ ],
240
+ [models_1.SubBlockType.PriceDetailed]: [
241
+ {
242
+ transformer: common_1.yfmTransformer,
243
+ parser: parsePriceDetailedBlock,
244
+ },
245
+ ],
246
+ [models_1.BlockType.HeaderBlock]: [
247
+ {
248
+ fields: ['description'],
249
+ transformer: common_1.yfmTransformer,
250
+ },
251
+ ],
252
+ [models_1.BlockType.ContentLayoutBlock]: [
253
+ {
254
+ fields: ['textContent'],
255
+ transformer: common_1.yfmTransformer,
256
+ parser: parseContentLayout,
257
+ },
258
+ {
259
+ fields: ['textContent'],
260
+ transformer: common_1.typografTransformer,
261
+ parser: parseContentLayoutTitle,
262
+ },
263
+ ],
264
+ [models_1.SubBlockType.Content]: [
265
+ {
266
+ fields: ['text', 'additionalInfo'],
267
+ transformer: common_1.yfmTransformer,
268
+ },
269
+ {
270
+ fields: ['title'],
271
+ transformer: common_1.typografTransformer,
272
+ parser: parseTitle,
273
+ },
274
+ ],
275
+ [models_1.BlockType.InfoBlock]: [
276
+ {
277
+ fields: ['rightContent', 'leftContent'],
278
+ transformer: common_1.yfmTransformer,
279
+ parser: parseContentLayout,
280
+ },
281
+ {
282
+ fields: ['rightContent', 'leftContent'],
283
+ transformer: common_1.typografTransformer,
284
+ parser: parseContentLayoutTitle,
285
+ },
286
+ ],
287
+ [models_1.BlockType.ShareBlock]: [
288
+ {
289
+ fields: ['title'],
290
+ transformer: common_1.typografTransformer,
291
+ },
292
+ ],
293
+ [models_1.BlockType.CardLayoutBlock]: exports.blockHeaderTransformer,
294
+ [models_1.BlockType.IconsBlock]: [
295
+ {
296
+ fields: ['title'],
297
+ transformer: common_1.typografTransformer,
298
+ parser: parseTitle,
299
+ },
300
+ ],
301
+ };
@@ -1,2 +1,4 @@
1
1
  export * from './utils';
2
- export * from './blocks';
2
+ export * from './config';
3
+ export * from './common';
4
+ export * from './transformers';
@@ -15,4 +15,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./utils"), exports);
18
- __exportStar(require("./blocks"), exports);
18
+ __exportStar(require("./config"), exports);
19
+ __exportStar(require("./common"), exports);
20
+ __exportStar(require("./transformers"), exports);
@@ -0,0 +1,16 @@
1
+ import { ConstructorBlock } from '../models/constructor';
2
+ import { Lang } from '../utils/configure';
3
+ export type ContentTransformerProps = {
4
+ content: {
5
+ blocks?: ConstructorBlock[];
6
+ footnotes?: string[];
7
+ };
8
+ options: {
9
+ lang: Lang;
10
+ customConfig?: {};
11
+ };
12
+ };
13
+ export declare const contentTransformer: ({ content, options }: ContentTransformerProps) => {
14
+ blocks: ConstructorBlock[];
15
+ footnotes: string[];
16
+ };
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.contentTransformer = void 0;
7
+ const lodash_1 = __importDefault(require("lodash"));
8
+ const config_1 = require("./config");
9
+ const utils_1 = require("./utils");
10
+ function transformBlocks(blocks, lang, customConfig = {}) {
11
+ const fullConfig = Object.assign(Object.assign({}, config_1.config), customConfig);
12
+ const clonedBlocks = lodash_1.default.cloneDeep(blocks);
13
+ return clonedBlocks.map((block) => transformBlock(lang, fullConfig, block));
14
+ }
15
+ function transformBlock(lang, blocksConfig, block) {
16
+ const blockConfig = blocksConfig[block.type];
17
+ if (block) {
18
+ if ('randomOrder' in block && block.randomOrder && 'children' in block && block.children) {
19
+ // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign
20
+ block.children = lodash_1.default.shuffle(block.children);
21
+ }
22
+ }
23
+ if (blockConfig) {
24
+ const configs = Array.isArray(blockConfig) ? blockConfig : [blockConfig];
25
+ configs.forEach((transformConfig) => {
26
+ const { fields, transformer: transformerRaw, parser } = transformConfig;
27
+ const transformer = transformerRaw.bind(null, lang);
28
+ if (fields) {
29
+ fields.forEach((field) => {
30
+ if (block[field]) {
31
+ if (parser) {
32
+ // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign
33
+ block[field] = parser(transformer, block[field]);
34
+ }
35
+ else if (typeof block[field] === 'string') {
36
+ // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign
37
+ block[field] = transformer(block[field]);
38
+ }
39
+ }
40
+ });
41
+ }
42
+ else if (parser) {
43
+ parser(transformer, block);
44
+ }
45
+ });
46
+ }
47
+ if ('children' in block && block.children) {
48
+ // eslint-disable-next-line no-not-accumulator-reassign/no-not-accumulator-reassign, no-param-reassign
49
+ block.children = transformBlocks(block.children, lang, blocksConfig);
50
+ }
51
+ return block;
52
+ }
53
+ const contentTransformer = ({ content, options }) => {
54
+ const { lang, customConfig = {} } = options;
55
+ const { blocks = [], footnotes = [] } = content;
56
+ const transformedBlocks = transformBlocks(blocks, lang, customConfig);
57
+ const transformedFootnotes = (footnotes === null || footnotes === void 0 ? void 0 : footnotes.map((footnote) => (0, utils_1.fullTransform)(footnote, { path: __dirname, lang, allowHTML: true }).html).filter(Boolean)) || [];
58
+ return {
59
+ blocks: transformedBlocks,
60
+ footnotes: transformedFootnotes,
61
+ };
62
+ };
63
+ exports.contentTransformer = contentTransformer;
@@ -1,7 +1,6 @@
1
1
  export * from './common';
2
2
  export * from './analytics';
3
3
  export * from './blocks';
4
- export * from './scroll';
5
4
  export * from './url';
6
5
  export * from './cn';
7
6
  export * from './url';
@@ -18,7 +18,6 @@ exports.isHubspotEventData = exports.configure = exports.Lang = void 0;
18
18
  __exportStar(require("./common"), exports);
19
19
  __exportStar(require("./analytics"), exports);
20
20
  __exportStar(require("./blocks"), exports);
21
- __exportStar(require("./scroll"), exports);
22
21
  __exportStar(require("./url"), exports);
23
22
  __exportStar(require("./cn"), exports);
24
23
  __exportStar(require("./url"), exports);
@@ -1,3 +0,0 @@
1
- .pc-LinkTable__links {
2
- padding-top: 16px;
3
- }
@@ -1,3 +0,0 @@
1
- import { LinkTableBlockProps } from '../../models';
2
- declare const LinkTable: ({ items, title, description, linkTheme }: LinkTableBlockProps) => JSX.Element;
3
- export default LinkTable;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- const react_1 = tslib_1.__importDefault(require("react"));
5
- const BlockHeader_1 = tslib_1.__importDefault(require("../../components/BlockHeader/BlockHeader"));
6
- const Link_1 = tslib_1.__importDefault(require("../../components/Link/Link"));
7
- const grid_1 = require("../../grid");
8
- const utils_1 = require("../../utils");
9
- const b = (0, utils_1.block)('LinkTable');
10
- const LinkTable = ({ items, title, description, linkTheme = 'normal' }) => {
11
- return (react_1.default.createElement("div", { className: b() },
12
- react_1.default.createElement(BlockHeader_1.default, { title: title, description: description, className: b('block-title') }),
13
- react_1.default.createElement(grid_1.Row, { className: b('links') }, items.map((column, index) => (react_1.default.createElement(grid_1.Col, { key: (column.length && column[0].url) || index, sizes: {
14
- [grid_1.GridColumnSize.Lg]: 4,
15
- [grid_1.GridColumnSize.Md]: 6,
16
- [grid_1.GridColumnSize.All]: 12,
17
- } }, column.map((_a) => {
18
- var { theme = linkTheme } = _a, link = tslib_1.__rest(_a, ["theme"]);
19
- return (react_1.default.createElement(Link_1.default, Object.assign({ key: link.url }, link, { theme: theme })));
20
- })))))));
21
- };
22
- exports.default = LinkTable;