@gravity-ui/page-constructor 2.17.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.
- package/CHANGELOG.md +0 -7
- package/build/cjs/blocks/index.d.ts +0 -4
- package/build/cjs/blocks/index.js +1 -9
- package/build/cjs/blocks/validators.d.ts +0 -4
- package/build/cjs/blocks/validators.js +0 -4
- package/build/cjs/components/index.d.ts +0 -1
- package/build/cjs/components/index.js +1 -3
- package/build/cjs/constructor-items.d.ts +0 -16
- package/build/cjs/constructor-items.js +0 -16
- package/build/cjs/hooks/index.d.ts +1 -1
- package/build/cjs/hooks/index.js +3 -3
- package/build/cjs/models/constructor-items/blocks.d.ts +2 -50
- package/build/cjs/models/constructor-items/blocks.js +0 -4
- package/build/cjs/models/constructor-items/common.d.ts +0 -14
- package/build/cjs/models/constructor-items/common.js +1 -6
- package/build/cjs/models/constructor-items/sub-blocks.d.ts +5 -46
- package/build/cjs/models/constructor-items/sub-blocks.js +2 -11
- package/build/cjs/schema/index.js +2 -8
- package/build/cjs/schema/validators/blocks.d.ts +0 -4
- package/build/cjs/schema/validators/blocks.js +0 -4
- package/build/cjs/schema/validators/sub-blocks.d.ts +0 -3
- package/build/cjs/schema/validators/sub-blocks.js +0 -3
- package/build/cjs/sub-blocks/index.d.ts +0 -3
- package/build/cjs/sub-blocks/index.js +1 -7
- package/build/cjs/text-transform/{blocks.d.ts → common.d.ts} +1 -4
- package/build/cjs/text-transform/common.js +31 -0
- package/build/cjs/text-transform/config.d.ts +28 -0
- package/build/cjs/text-transform/config.js +291 -0
- package/build/cjs/text-transform/index.d.ts +3 -1
- package/build/cjs/text-transform/index.js +3 -1
- package/build/cjs/text-transform/transformers.d.ts +16 -0
- package/build/cjs/text-transform/transformers.js +61 -0
- package/build/cjs/utils/index.d.ts +0 -1
- package/build/cjs/utils/index.js +0 -1
- package/build/esm/blocks/index.d.ts +0 -4
- package/build/esm/blocks/index.js +0 -4
- package/build/esm/blocks/validators.d.ts +0 -4
- package/build/esm/blocks/validators.js +0 -4
- package/build/esm/components/index.d.ts +0 -1
- package/build/esm/components/index.js +0 -1
- package/build/esm/constructor-items.d.ts +0 -16
- package/build/esm/constructor-items.js +2 -18
- package/build/esm/hooks/index.d.ts +1 -1
- package/build/esm/hooks/index.js +1 -1
- package/build/esm/models/constructor-items/blocks.d.ts +2 -50
- package/build/esm/models/constructor-items/blocks.js +0 -4
- package/build/esm/models/constructor-items/common.d.ts +0 -14
- package/build/esm/models/constructor-items/common.js +0 -5
- package/build/esm/models/constructor-items/sub-blocks.d.ts +5 -46
- package/build/esm/models/constructor-items/sub-blocks.js +2 -11
- package/build/esm/schema/index.js +4 -10
- package/build/esm/schema/validators/blocks.d.ts +0 -4
- package/build/esm/schema/validators/blocks.js +0 -4
- package/build/esm/schema/validators/sub-blocks.d.ts +0 -3
- package/build/esm/schema/validators/sub-blocks.js +0 -3
- package/build/esm/sub-blocks/index.d.ts +0 -3
- package/build/esm/sub-blocks/index.js +0 -3
- package/build/esm/text-transform/{blocks.d.ts → common.d.ts} +1 -4
- package/build/esm/text-transform/common.js +25 -0
- package/build/esm/text-transform/config.d.ts +28 -0
- package/build/esm/text-transform/{blocks.js → config.js} +15 -123
- package/build/esm/text-transform/index.d.ts +3 -1
- package/build/esm/text-transform/index.js +3 -1
- package/build/esm/text-transform/transformers.d.ts +16 -0
- package/build/esm/text-transform/transformers.js +56 -0
- package/build/esm/utils/index.d.ts +0 -1
- package/build/esm/utils/index.js +0 -1
- package/package.json +4 -1
- package/server/models/constructor-items/blocks.d.ts +2 -50
- package/server/models/constructor-items/blocks.js +0 -4
- package/server/models/constructor-items/common.d.ts +0 -14
- package/server/models/constructor-items/common.js +1 -6
- package/server/models/constructor-items/sub-blocks.d.ts +5 -46
- package/server/models/constructor-items/sub-blocks.js +2 -11
- package/server/text-transform/{blocks.d.ts → common.d.ts} +1 -4
- package/server/text-transform/common.js +31 -0
- package/server/text-transform/config.d.ts +28 -0
- package/server/text-transform/config.js +301 -0
- package/server/text-transform/index.d.ts +3 -1
- package/server/text-transform/index.js +3 -1
- package/server/text-transform/transformers.d.ts +16 -0
- package/server/text-transform/transformers.js +63 -0
- package/server/utils/index.d.ts +0 -1
- package/server/utils/index.js +0 -1
- package/build/cjs/blocks/LinkTable/LinkTable.css +0 -3
- package/build/cjs/blocks/LinkTable/LinkTable.d.ts +0 -3
- package/build/cjs/blocks/LinkTable/LinkTable.js +0 -22
- package/build/cjs/blocks/LinkTable/schema.d.ts +0 -77
- package/build/cjs/blocks/LinkTable/schema.js +0 -15
- package/build/cjs/blocks/Preview/MediaContent/MediaContent.css +0 -50
- package/build/cjs/blocks/Preview/MediaContent/MediaContent.d.ts +0 -13
- package/build/cjs/blocks/Preview/MediaContent/MediaContent.js +0 -49
- package/build/cjs/blocks/Preview/MediaContent/PreviewContent.css +0 -106
- package/build/cjs/blocks/Preview/MediaContent/PreviewContent.d.ts +0 -11
- package/build/cjs/blocks/Preview/MediaContent/PreviewContent.js +0 -17
- package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.css +0 -54
- package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -9
- package/build/cjs/blocks/Preview/MediaContent/PreviewMedia.js +0 -13
- package/build/cjs/blocks/Preview/Preview.css +0 -50
- package/build/cjs/blocks/Preview/Preview.d.ts +0 -3
- package/build/cjs/blocks/Preview/Preview.js +0 -130
- package/build/cjs/blocks/Preview/schema.d.ts +0 -40
- package/build/cjs/blocks/Preview/schema.js +0 -53
- package/build/cjs/blocks/Security/Security.css +0 -142
- package/build/cjs/blocks/Security/Security.d.ts +0 -3
- package/build/cjs/blocks/Security/Security.js +0 -29
- package/build/cjs/blocks/Security/schema.d.ts +0 -170
- package/build/cjs/blocks/Security/schema.js +0 -32
- package/build/cjs/blocks/Simple/Simple.css +0 -22
- package/build/cjs/blocks/Simple/Simple.d.ts +0 -3
- package/build/cjs/blocks/Simple/Simple.js +0 -22
- package/build/cjs/blocks/Simple/schema.d.ts +0 -68
- package/build/cjs/blocks/Simple/schema.js +0 -14
- package/build/cjs/components/HeightCalculator/HeightCalculator.css +0 -9
- package/build/cjs/components/HeightCalculator/HeightCalculator.d.ts +0 -10
- package/build/cjs/components/HeightCalculator/HeightCalculator.js +0 -44
- package/build/cjs/context/breakpointContext/breakpointContext.d.ts +0 -2
- package/build/cjs/context/breakpointContext/breakpointContext.js +0 -7
- package/build/cjs/context/breakpointContext/index.d.ts +0 -1
- package/build/cjs/context/breakpointContext/index.js +0 -4
- package/build/cjs/hooks/useIntersection.d.ts +0 -1
- package/build/cjs/hooks/useIntersection.js +0 -21
- package/build/cjs/sub-blocks/CardWithImage/CardWithImage.css +0 -19
- package/build/cjs/sub-blocks/CardWithImage/CardWithImage.d.ts +0 -3
- package/build/cjs/sub-blocks/CardWithImage/CardWithImage.js +0 -16
- package/build/cjs/sub-blocks/CardWithImage/schema.d.ts +0 -154
- package/build/cjs/sub-blocks/CardWithImage/schema.js +0 -46
- package/build/cjs/sub-blocks/Partner/Partner.css +0 -8
- package/build/cjs/sub-blocks/Partner/Partner.d.ts +0 -3
- package/build/cjs/sub-blocks/Partner/Partner.js +0 -15
- package/build/cjs/sub-blocks/Partner/schema.d.ts +0 -30
- package/build/cjs/sub-blocks/Partner/schema.js +0 -17
- package/build/cjs/sub-blocks/TutorialCard/TutorialCard.css +0 -20
- package/build/cjs/sub-blocks/TutorialCard/TutorialCard.d.ts +0 -3
- package/build/cjs/sub-blocks/TutorialCard/TutorialCard.js +0 -23
- package/build/cjs/sub-blocks/TutorialCard/schema.d.ts +0 -34
- package/build/cjs/sub-blocks/TutorialCard/schema.js +0 -20
- package/build/cjs/text-transform/blocks.js +0 -404
- package/build/cjs/utils/scroll.d.ts +0 -15
- package/build/cjs/utils/scroll.js +0 -35
- package/build/esm/blocks/LinkTable/LinkTable.css +0 -3
- package/build/esm/blocks/LinkTable/LinkTable.d.ts +0 -4
- package/build/esm/blocks/LinkTable/LinkTable.js +0 -21
- package/build/esm/blocks/LinkTable/schema.d.ts +0 -77
- package/build/esm/blocks/LinkTable/schema.js +0 -12
- package/build/esm/blocks/Preview/MediaContent/MediaContent.css +0 -50
- package/build/esm/blocks/Preview/MediaContent/MediaContent.d.ts +0 -14
- package/build/esm/blocks/Preview/MediaContent/MediaContent.js +0 -47
- package/build/esm/blocks/Preview/MediaContent/PreviewContent.css +0 -106
- package/build/esm/blocks/Preview/MediaContent/PreviewContent.d.ts +0 -12
- package/build/esm/blocks/Preview/MediaContent/PreviewContent.js +0 -15
- package/build/esm/blocks/Preview/MediaContent/PreviewMedia.css +0 -54
- package/build/esm/blocks/Preview/MediaContent/PreviewMedia.d.ts +0 -10
- package/build/esm/blocks/Preview/MediaContent/PreviewMedia.js +0 -11
- package/build/esm/blocks/Preview/Preview.css +0 -50
- package/build/esm/blocks/Preview/Preview.d.ts +0 -4
- package/build/esm/blocks/Preview/Preview.js +0 -126
- package/build/esm/blocks/Preview/schema.d.ts +0 -40
- package/build/esm/blocks/Preview/schema.js +0 -50
- package/build/esm/blocks/Security/Security.css +0 -142
- package/build/esm/blocks/Security/Security.d.ts +0 -4
- package/build/esm/blocks/Security/Security.js +0 -25
- package/build/esm/blocks/Security/schema.d.ts +0 -170
- package/build/esm/blocks/Security/schema.js +0 -28
- package/build/esm/blocks/Simple/Simple.css +0 -22
- package/build/esm/blocks/Simple/Simple.d.ts +0 -4
- package/build/esm/blocks/Simple/Simple.js +0 -18
- package/build/esm/blocks/Simple/schema.d.ts +0 -68
- package/build/esm/blocks/Simple/schema.js +0 -11
- package/build/esm/components/HeightCalculator/HeightCalculator.css +0 -9
- package/build/esm/components/HeightCalculator/HeightCalculator.d.ts +0 -11
- package/build/esm/components/HeightCalculator/HeightCalculator.js +0 -42
- package/build/esm/context/breakpointContext/breakpointContext.d.ts +0 -2
- package/build/esm/context/breakpointContext/breakpointContext.js +0 -3
- package/build/esm/context/breakpointContext/index.d.ts +0 -1
- package/build/esm/context/breakpointContext/index.js +0 -1
- package/build/esm/hooks/useIntersection.d.ts +0 -1
- package/build/esm/hooks/useIntersection.js +0 -17
- package/build/esm/sub-blocks/CardWithImage/CardWithImage.css +0 -19
- package/build/esm/sub-blocks/CardWithImage/CardWithImage.d.ts +0 -4
- package/build/esm/sub-blocks/CardWithImage/CardWithImage.js +0 -14
- package/build/esm/sub-blocks/CardWithImage/schema.d.ts +0 -154
- package/build/esm/sub-blocks/CardWithImage/schema.js +0 -43
- package/build/esm/sub-blocks/Partner/Partner.css +0 -8
- package/build/esm/sub-blocks/Partner/Partner.d.ts +0 -4
- package/build/esm/sub-blocks/Partner/Partner.js +0 -13
- package/build/esm/sub-blocks/Partner/schema.d.ts +0 -30
- package/build/esm/sub-blocks/Partner/schema.js +0 -14
- package/build/esm/sub-blocks/TutorialCard/TutorialCard.css +0 -20
- package/build/esm/sub-blocks/TutorialCard/TutorialCard.d.ts +0 -4
- package/build/esm/sub-blocks/TutorialCard/TutorialCard.js +0 -21
- package/build/esm/sub-blocks/TutorialCard/schema.d.ts +0 -34
- package/build/esm/sub-blocks/TutorialCard/schema.js +0 -17
- package/build/esm/utils/scroll.d.ts +0 -15
- package/build/esm/utils/scroll.js +0 -31
- package/server/text-transform/blocks.js +0 -417
- package/server/utils/scroll.d.ts +0 -15
- 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,
|
|
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
|
|
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
|
|
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.
|
|
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 |
|
|
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
|
|
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
|
|
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
|
+
};
|
|
@@ -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("./
|
|
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;
|
package/server/utils/index.d.ts
CHANGED
package/server/utils/index.js
CHANGED
|
@@ -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,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;
|