@doyourjob/gravity-ui-page-constructor 5.31.219 → 5.31.220
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/build/cjs/blocks/Benefits/Benefits.css +33 -40
- package/build/cjs/blocks/Benefits/Benefits.js +23 -29
- package/build/cjs/blocks/Benefits/schema.d.ts +8 -56
- package/build/cjs/blocks/Benefits/schema.js +11 -32
- package/build/cjs/models/constructor-items/blocks.d.ts +8 -10
- package/build/esm/blocks/Benefits/Benefits.css +33 -40
- package/build/esm/blocks/Benefits/Benefits.js +23 -29
- package/build/esm/blocks/Benefits/schema.d.ts +8 -56
- package/build/esm/blocks/Benefits/schema.js +11 -32
- package/build/esm/models/constructor-items/blocks.d.ts +8 -10
- package/package.json +1 -1
- package/schema/index.js +1 -1
- package/server/models/constructor-items/blocks.d.ts +8 -10
- package/widget/index.js +1 -1
- package/build/cjs/blocks/Benefits/BenefitsCard/BenefitsCard.css +0 -32
- package/build/cjs/blocks/Benefits/BenefitsCard/BenefitsCard.d.ts +0 -3
- package/build/cjs/blocks/Benefits/BenefitsCard/BenefitsCard.js +0 -17
- package/build/cjs/blocks/Benefits/BenefitsLabel/BenefitsLabel.css +0 -31
- package/build/cjs/blocks/Benefits/BenefitsLabel/BenefitsLabel.d.ts +0 -8
- package/build/cjs/blocks/Benefits/BenefitsLabel/BenefitsLabel.js +0 -16
- package/build/esm/blocks/Benefits/BenefitsCard/BenefitsCard.css +0 -32
- package/build/esm/blocks/Benefits/BenefitsCard/BenefitsCard.d.ts +0 -4
- package/build/esm/blocks/Benefits/BenefitsCard/BenefitsCard.js +0 -13
- package/build/esm/blocks/Benefits/BenefitsLabel/BenefitsLabel.css +0 -31
- package/build/esm/blocks/Benefits/BenefitsLabel/BenefitsLabel.d.ts +0 -9
- package/build/esm/blocks/Benefits/BenefitsLabel/BenefitsLabel.js +0 -12
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/* use this for style redefinitions to awoid problems with
|
|
2
2
|
unpredictable css rules order in build */
|
|
3
3
|
.pc-benefits-block {
|
|
4
|
-
--local-
|
|
5
|
-
--
|
|
4
|
+
--local-item-bg: #fcfcfc;
|
|
5
|
+
color: var(--g-color-text-primary);
|
|
6
6
|
}
|
|
7
7
|
.pc-benefits-block_theme_dark {
|
|
8
|
-
--
|
|
9
|
-
--local-bg-color: #001a2b;
|
|
8
|
+
color: var(--g-color-text-light-primary);
|
|
10
9
|
}
|
|
11
10
|
@media (min-width: 769px) {
|
|
12
11
|
.pc-benefits-block.pc-AnimateBlock .pc-benefits-block__root, .pc-AnimateBlock .pc-benefits-block .pc-benefits-block__root {
|
|
@@ -24,6 +23,9 @@ unpredictable css rules order in build */
|
|
|
24
23
|
.pc-benefits-block__root {
|
|
25
24
|
position: relative;
|
|
26
25
|
z-index: 0;
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
gap: 32px;
|
|
27
29
|
}
|
|
28
30
|
.pc-benefits-block__background {
|
|
29
31
|
position: absolute;
|
|
@@ -34,58 +36,49 @@ unpredictable css rules order in build */
|
|
|
34
36
|
z-index: -1;
|
|
35
37
|
border-radius: 24px;
|
|
36
38
|
}
|
|
37
|
-
.pc-benefits-
|
|
38
|
-
padding-top: 48px;
|
|
39
|
-
margin-bottom: 32px;
|
|
39
|
+
.pc-benefits-block__head {
|
|
40
40
|
display: flex;
|
|
41
41
|
flex-direction: column;
|
|
42
42
|
gap: 16px;
|
|
43
|
-
|
|
44
|
-
.pc-benefits-block__title {
|
|
45
|
-
color: var(--local-base-color);
|
|
46
|
-
font-size: 48px;
|
|
47
|
-
line-height: 52px;
|
|
48
|
-
font-weight: 600;
|
|
43
|
+
align-items: center;
|
|
49
44
|
text-align: center;
|
|
50
45
|
}
|
|
51
|
-
.pc-benefits-block__title
|
|
52
|
-
|
|
46
|
+
.pc-benefits-block__title {
|
|
47
|
+
font-size: var(--g-text-display-4-font-size, var(--pc-text-display-4-font-size));
|
|
48
|
+
line-height: var(--g-text-display-4-line-height, var(--pc-text-display-4-line-height));
|
|
49
|
+
margin: 0;
|
|
50
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
53
51
|
}
|
|
54
52
|
.pc-benefits-block__text {
|
|
55
|
-
color: var(--local-base-color);
|
|
56
53
|
font-size: 24px;
|
|
57
54
|
line-height: 28px;
|
|
58
|
-
text-align: center;
|
|
59
55
|
opacity: 0.6;
|
|
56
|
+
max-width: 600px;
|
|
60
57
|
}
|
|
61
|
-
.pc-benefits-
|
|
62
|
-
|
|
58
|
+
.pc-benefits-block__video {
|
|
59
|
+
width: 100%;
|
|
60
|
+
aspect-ratio: 16/9;
|
|
61
|
+
border-radius: 24px;
|
|
63
62
|
}
|
|
64
|
-
.pc-benefits-
|
|
63
|
+
.pc-benefits-block__items {
|
|
65
64
|
display: flex;
|
|
66
|
-
flex-
|
|
67
|
-
gap:
|
|
68
|
-
padding-bottom: 64px;
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
gap: 4px;
|
|
69
67
|
}
|
|
70
|
-
.pc-benefits-
|
|
68
|
+
.pc-benefits-block__item {
|
|
71
69
|
display: flex;
|
|
72
|
-
flex-wrap: wrap;
|
|
73
70
|
gap: 16px;
|
|
74
|
-
padding
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
.pc-benefits-block__images {
|
|
78
|
-
display: grid;
|
|
79
|
-
grid-template-columns: repeat(12, 1fr);
|
|
80
|
-
grid-auto-rows: 300px;
|
|
81
|
-
gap: 12px;
|
|
82
|
-
padding-top: 12px;
|
|
83
|
-
padding-bottom: 27px;
|
|
71
|
+
padding: 35px 32px 35px 24px;
|
|
72
|
+
border-radius: 24px;
|
|
73
|
+
background: var(--local-item-bg);
|
|
84
74
|
}
|
|
85
|
-
.pc-benefits-
|
|
75
|
+
.pc-benefits-block__item-image {
|
|
86
76
|
display: block;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
height: 24px;
|
|
78
|
+
width: 24px;
|
|
79
|
+
}
|
|
80
|
+
.pc-benefits-block__item-text {
|
|
81
|
+
font-size: 24px;
|
|
82
|
+
line-height: 28px;
|
|
83
|
+
opacity: 0.8;
|
|
91
84
|
}
|
|
@@ -4,40 +4,34 @@ exports.BenefitsBlock = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
6
|
const components_1 = require("../../components");
|
|
7
|
-
const utils_1 = require("../../utils");
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const b = (0,
|
|
7
|
+
const utils_1 = require("../../components/Media/Video/utils");
|
|
8
|
+
const grid_1 = require("../../grid");
|
|
9
|
+
const utils_2 = require("../../utils");
|
|
10
|
+
const b = (0, utils_2.block)('benefits-block');
|
|
11
|
+
const colSizesLeft = { all: 12, lg: 7, xl: 9 };
|
|
12
|
+
const colSizesRight = { all: 12, lg: 5, xl: 3 };
|
|
11
13
|
const BenefitsBlock = (props) => {
|
|
12
|
-
const { animated,
|
|
13
|
-
const
|
|
14
|
-
const data = items === null || items === void 0 ? void 0 : items[activeIndex];
|
|
15
|
-
const handleClick = (0, react_1.useCallback)((index) => setActiveIndex(index), []);
|
|
16
|
-
const styles = (0, react_1.useMemo)(() => accentColor
|
|
14
|
+
const { animated, title, text, video, items, itemBackground, theme } = props;
|
|
15
|
+
const styles = (0, react_1.useMemo)(() => itemBackground
|
|
17
16
|
? {
|
|
18
|
-
['--local-
|
|
17
|
+
['--local-item-bg']: itemBackground,
|
|
19
18
|
}
|
|
20
|
-
: {}, [
|
|
19
|
+
: {}, [itemBackground]);
|
|
21
20
|
return (react_1.default.createElement(components_1.AnimateBlock, { className: b({ theme }), animate: animated },
|
|
22
21
|
react_1.default.createElement("div", { className: b('root'), style: styles },
|
|
23
|
-
react_1.default.createElement("div", { className: b('
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
react_1.default.createElement("
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
data && (react_1.default.createElement("div", { className: b('images') }, data.images.map((image, index) => (react_1.default.createElement("div", { key: index, style: {
|
|
37
|
-
gridColumn: `span ${data.columns[index]}`,
|
|
38
|
-
gridRow: `span ${data.rows[index]}`,
|
|
39
|
-
} },
|
|
40
|
-
react_1.default.createElement(components_1.ImageBase, { className: b('image'), src: image })))))))));
|
|
22
|
+
title || text ? (react_1.default.createElement("div", { className: b('head') },
|
|
23
|
+
title && react_1.default.createElement("h2", { className: b('title') }, title),
|
|
24
|
+
text && react_1.default.createElement("div", { className: b('text') }, text))) : null,
|
|
25
|
+
react_1.default.createElement(grid_1.Row, null,
|
|
26
|
+
react_1.default.createElement(grid_1.Col, { sizes: colSizesLeft }, video && (react_1.default.createElement("video", { disablePictureInPicture: true, playsInline: true,
|
|
27
|
+
// @ts-ignore
|
|
28
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
29
|
+
pip: "false", autoPlay: true, loop: true, preload: "auto", muted: true, className: b('video') },
|
|
30
|
+
react_1.default.createElement("source", { src: video, type: (0, utils_1.parseVideoType)(video) })))),
|
|
31
|
+
react_1.default.createElement(grid_1.Col, { sizes: colSizesRight },
|
|
32
|
+
react_1.default.createElement("div", { className: b('items') }, items === null || items === void 0 ? void 0 : items.map((item, index) => (react_1.default.createElement("div", { key: index, className: b('item') },
|
|
33
|
+
react_1.default.createElement(components_1.Image, { className: b('item-image'), src: item.icon, alt: "icon" }),
|
|
34
|
+
react_1.default.createElement("div", { className: b('item-text') }, item.text))))))))));
|
|
41
35
|
};
|
|
42
36
|
exports.BenefitsBlock = BenefitsBlock;
|
|
43
37
|
exports.default = exports.BenefitsBlock;
|
|
@@ -3,84 +3,36 @@ export declare const BenefitsBlock: {
|
|
|
3
3
|
additionalProperties: boolean;
|
|
4
4
|
required: boolean;
|
|
5
5
|
properties: {
|
|
6
|
-
|
|
7
|
-
type: string;
|
|
8
|
-
};
|
|
9
|
-
postTitleOne: {
|
|
10
|
-
type: string;
|
|
11
|
-
};
|
|
12
|
-
textOne: {
|
|
13
|
-
type: string;
|
|
14
|
-
};
|
|
15
|
-
titleTwo: {
|
|
16
|
-
type: string;
|
|
17
|
-
};
|
|
18
|
-
postTitleTwo: {
|
|
6
|
+
theme: {
|
|
19
7
|
type: string;
|
|
8
|
+
enum: string[];
|
|
20
9
|
};
|
|
21
|
-
|
|
10
|
+
title: {
|
|
22
11
|
type: string;
|
|
23
12
|
};
|
|
24
|
-
|
|
13
|
+
text: {
|
|
25
14
|
type: string;
|
|
26
15
|
};
|
|
27
|
-
|
|
16
|
+
video: {
|
|
28
17
|
type: string;
|
|
29
|
-
items: {
|
|
30
|
-
additionalProperties: boolean;
|
|
31
|
-
required: string[];
|
|
32
|
-
properties: {
|
|
33
|
-
icon: {
|
|
34
|
-
type: string;
|
|
35
|
-
};
|
|
36
|
-
title: {
|
|
37
|
-
type: string;
|
|
38
|
-
};
|
|
39
|
-
text: {
|
|
40
|
-
type: string;
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
18
|
};
|
|
45
19
|
items: {
|
|
46
20
|
type: string;
|
|
47
21
|
items: {
|
|
48
22
|
type: string;
|
|
49
23
|
additionalProperties: boolean;
|
|
50
|
-
required:
|
|
24
|
+
required: boolean;
|
|
51
25
|
properties: {
|
|
52
|
-
|
|
26
|
+
icon: {
|
|
53
27
|
type: string;
|
|
54
28
|
};
|
|
55
29
|
text: {
|
|
56
30
|
type: string;
|
|
57
31
|
};
|
|
58
|
-
images: {
|
|
59
|
-
type: string;
|
|
60
|
-
items: {
|
|
61
|
-
type: string;
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
columns: {
|
|
65
|
-
type: string;
|
|
66
|
-
items: {
|
|
67
|
-
type: string;
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
rows: {
|
|
71
|
-
type: string;
|
|
72
|
-
items: {
|
|
73
|
-
type: string;
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
32
|
};
|
|
77
33
|
};
|
|
78
34
|
};
|
|
79
|
-
|
|
80
|
-
type: string;
|
|
81
|
-
enum: string[];
|
|
82
|
-
};
|
|
83
|
-
accentColor: {
|
|
35
|
+
itemBackground: {
|
|
84
36
|
type: string;
|
|
85
37
|
};
|
|
86
38
|
animated: {
|
|
@@ -6,46 +6,25 @@ exports.BenefitsBlock = {
|
|
|
6
6
|
'benefits-block': {
|
|
7
7
|
additionalProperties: false,
|
|
8
8
|
required: false,
|
|
9
|
-
properties: Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.AnimatableProps), {
|
|
10
|
-
type: '
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
icon: { type: 'string' },
|
|
16
|
-
title: { type: 'string' },
|
|
17
|
-
text: { type: 'string' },
|
|
18
|
-
},
|
|
19
|
-
},
|
|
9
|
+
properties: Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.AnimatableProps), { theme: common_1.ThemeProps, title: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
}, text: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
}, video: {
|
|
14
|
+
type: 'string',
|
|
20
15
|
}, items: {
|
|
21
16
|
type: 'array',
|
|
22
17
|
items: {
|
|
23
18
|
type: 'object',
|
|
24
19
|
additionalProperties: false,
|
|
25
|
-
required:
|
|
20
|
+
required: false,
|
|
26
21
|
properties: {
|
|
27
|
-
|
|
22
|
+
icon: { type: 'string' },
|
|
28
23
|
text: { type: 'string' },
|
|
29
|
-
images: {
|
|
30
|
-
type: 'array',
|
|
31
|
-
items: {
|
|
32
|
-
type: 'string',
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
columns: {
|
|
36
|
-
type: 'array',
|
|
37
|
-
items: {
|
|
38
|
-
type: 'number',
|
|
39
|
-
},
|
|
40
|
-
},
|
|
41
|
-
rows: {
|
|
42
|
-
type: 'array',
|
|
43
|
-
items: {
|
|
44
|
-
type: 'number',
|
|
45
|
-
},
|
|
46
|
-
},
|
|
47
24
|
},
|
|
48
25
|
},
|
|
49
|
-
},
|
|
26
|
+
}, itemBackground: {
|
|
27
|
+
type: 'string',
|
|
28
|
+
} }),
|
|
50
29
|
},
|
|
51
30
|
};
|
|
@@ -342,16 +342,14 @@ export interface BenefitsBlockItemData {
|
|
|
342
342
|
export interface BenefitsBlockItem extends BenefitsBlockItemLabel, BenefitsBlockItemData {
|
|
343
343
|
}
|
|
344
344
|
export interface BenefitsBlockProps extends Themable, Animatable {
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
items?: BenefitsBlockItem[];
|
|
354
|
-
accentColor?: string;
|
|
345
|
+
title?: string;
|
|
346
|
+
text?: string;
|
|
347
|
+
video?: string;
|
|
348
|
+
items?: {
|
|
349
|
+
icon?: string;
|
|
350
|
+
text?: string;
|
|
351
|
+
}[];
|
|
352
|
+
itemBackground?: string;
|
|
355
353
|
}
|
|
356
354
|
export interface ScrollerBlockProps extends Childable, Animatable {
|
|
357
355
|
title?: string;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/* use this for style redefinitions to awoid problems with
|
|
2
2
|
unpredictable css rules order in build */
|
|
3
3
|
.pc-benefits-block {
|
|
4
|
-
--local-
|
|
5
|
-
--
|
|
4
|
+
--local-item-bg: #fcfcfc;
|
|
5
|
+
color: var(--g-color-text-primary);
|
|
6
6
|
}
|
|
7
7
|
.pc-benefits-block_theme_dark {
|
|
8
|
-
--
|
|
9
|
-
--local-bg-color: #001a2b;
|
|
8
|
+
color: var(--g-color-text-light-primary);
|
|
10
9
|
}
|
|
11
10
|
@media (min-width: 769px) {
|
|
12
11
|
.pc-benefits-block.pc-AnimateBlock .pc-benefits-block__root, .pc-AnimateBlock .pc-benefits-block .pc-benefits-block__root {
|
|
@@ -24,6 +23,9 @@ unpredictable css rules order in build */
|
|
|
24
23
|
.pc-benefits-block__root {
|
|
25
24
|
position: relative;
|
|
26
25
|
z-index: 0;
|
|
26
|
+
display: flex;
|
|
27
|
+
flex-direction: column;
|
|
28
|
+
gap: 32px;
|
|
27
29
|
}
|
|
28
30
|
.pc-benefits-block__background {
|
|
29
31
|
position: absolute;
|
|
@@ -34,58 +36,49 @@ unpredictable css rules order in build */
|
|
|
34
36
|
z-index: -1;
|
|
35
37
|
border-radius: 24px;
|
|
36
38
|
}
|
|
37
|
-
.pc-benefits-
|
|
38
|
-
padding-top: 48px;
|
|
39
|
-
margin-bottom: 32px;
|
|
39
|
+
.pc-benefits-block__head {
|
|
40
40
|
display: flex;
|
|
41
41
|
flex-direction: column;
|
|
42
42
|
gap: 16px;
|
|
43
|
-
|
|
44
|
-
.pc-benefits-block__title {
|
|
45
|
-
color: var(--local-base-color);
|
|
46
|
-
font-size: 48px;
|
|
47
|
-
line-height: 52px;
|
|
48
|
-
font-weight: 600;
|
|
43
|
+
align-items: center;
|
|
49
44
|
text-align: center;
|
|
50
45
|
}
|
|
51
|
-
.pc-benefits-block__title
|
|
52
|
-
|
|
46
|
+
.pc-benefits-block__title {
|
|
47
|
+
font-size: var(--g-text-display-4-font-size, var(--pc-text-display-4-font-size));
|
|
48
|
+
line-height: var(--g-text-display-4-line-height, var(--pc-text-display-4-line-height));
|
|
49
|
+
margin: 0;
|
|
50
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
53
51
|
}
|
|
54
52
|
.pc-benefits-block__text {
|
|
55
|
-
color: var(--local-base-color);
|
|
56
53
|
font-size: 24px;
|
|
57
54
|
line-height: 28px;
|
|
58
|
-
text-align: center;
|
|
59
55
|
opacity: 0.6;
|
|
56
|
+
max-width: 600px;
|
|
60
57
|
}
|
|
61
|
-
.pc-benefits-
|
|
62
|
-
|
|
58
|
+
.pc-benefits-block__video {
|
|
59
|
+
width: 100%;
|
|
60
|
+
aspect-ratio: 16/9;
|
|
61
|
+
border-radius: 24px;
|
|
63
62
|
}
|
|
64
|
-
.pc-benefits-
|
|
63
|
+
.pc-benefits-block__items {
|
|
65
64
|
display: flex;
|
|
66
|
-
flex-
|
|
67
|
-
gap:
|
|
68
|
-
padding-bottom: 64px;
|
|
65
|
+
flex-direction: column;
|
|
66
|
+
gap: 4px;
|
|
69
67
|
}
|
|
70
|
-
.pc-benefits-
|
|
68
|
+
.pc-benefits-block__item {
|
|
71
69
|
display: flex;
|
|
72
|
-
flex-wrap: wrap;
|
|
73
70
|
gap: 16px;
|
|
74
|
-
padding
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
.pc-benefits-block__images {
|
|
78
|
-
display: grid;
|
|
79
|
-
grid-template-columns: repeat(12, 1fr);
|
|
80
|
-
grid-auto-rows: 300px;
|
|
81
|
-
gap: 12px;
|
|
82
|
-
padding-top: 12px;
|
|
83
|
-
padding-bottom: 27px;
|
|
71
|
+
padding: 35px 32px 35px 24px;
|
|
72
|
+
border-radius: 24px;
|
|
73
|
+
background: var(--local-item-bg);
|
|
84
74
|
}
|
|
85
|
-
.pc-benefits-
|
|
75
|
+
.pc-benefits-block__item-image {
|
|
86
76
|
display: block;
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
77
|
+
height: 24px;
|
|
78
|
+
width: 24px;
|
|
79
|
+
}
|
|
80
|
+
.pc-benefits-block__item-text {
|
|
81
|
+
font-size: 24px;
|
|
82
|
+
line-height: 28px;
|
|
83
|
+
opacity: 0.8;
|
|
91
84
|
}
|
|
@@ -1,39 +1,33 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
import { AnimateBlock,
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
|
+
import { AnimateBlock, Image } from '../../components';
|
|
3
|
+
import { parseVideoType } from '../../components/Media/Video/utils';
|
|
4
|
+
import { Col, Row } from '../../grid';
|
|
3
5
|
import { block } from '../../utils';
|
|
4
|
-
import BenefitsCard from './BenefitsCard/BenefitsCard';
|
|
5
|
-
import BenefitsLabel from './BenefitsLabel/BenefitsLabel';
|
|
6
6
|
import './Benefits.css';
|
|
7
7
|
const b = block('benefits-block');
|
|
8
|
+
const colSizesLeft = { all: 12, lg: 7, xl: 9 };
|
|
9
|
+
const colSizesRight = { all: 12, lg: 5, xl: 3 };
|
|
8
10
|
export const BenefitsBlock = (props) => {
|
|
9
|
-
const { animated,
|
|
10
|
-
const
|
|
11
|
-
const data = items === null || items === void 0 ? void 0 : items[activeIndex];
|
|
12
|
-
const handleClick = useCallback((index) => setActiveIndex(index), []);
|
|
13
|
-
const styles = useMemo(() => accentColor
|
|
11
|
+
const { animated, title, text, video, items, itemBackground, theme } = props;
|
|
12
|
+
const styles = useMemo(() => itemBackground
|
|
14
13
|
? {
|
|
15
|
-
['--local-
|
|
14
|
+
['--local-item-bg']: itemBackground,
|
|
16
15
|
}
|
|
17
|
-
: {}, [
|
|
16
|
+
: {}, [itemBackground]);
|
|
18
17
|
return (React.createElement(AnimateBlock, { className: b({ theme }), animate: animated },
|
|
19
18
|
React.createElement("div", { className: b('root'), style: styles },
|
|
20
|
-
React.createElement("div", { className: b('
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
React.createElement("
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
data && (React.createElement("div", { className: b('images') }, data.images.map((image, index) => (React.createElement("div", { key: index, style: {
|
|
34
|
-
gridColumn: `span ${data.columns[index]}`,
|
|
35
|
-
gridRow: `span ${data.rows[index]}`,
|
|
36
|
-
} },
|
|
37
|
-
React.createElement(ImageBase, { className: b('image'), src: image })))))))));
|
|
19
|
+
title || text ? (React.createElement("div", { className: b('head') },
|
|
20
|
+
title && React.createElement("h2", { className: b('title') }, title),
|
|
21
|
+
text && React.createElement("div", { className: b('text') }, text))) : null,
|
|
22
|
+
React.createElement(Row, null,
|
|
23
|
+
React.createElement(Col, { sizes: colSizesLeft }, video && (React.createElement("video", { disablePictureInPicture: true, playsInline: true,
|
|
24
|
+
// @ts-ignore
|
|
25
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
26
|
+
pip: "false", autoPlay: true, loop: true, preload: "auto", muted: true, className: b('video') },
|
|
27
|
+
React.createElement("source", { src: video, type: parseVideoType(video) })))),
|
|
28
|
+
React.createElement(Col, { sizes: colSizesRight },
|
|
29
|
+
React.createElement("div", { className: b('items') }, items === null || items === void 0 ? void 0 : items.map((item, index) => (React.createElement("div", { key: index, className: b('item') },
|
|
30
|
+
React.createElement(Image, { className: b('item-image'), src: item.icon, alt: "icon" }),
|
|
31
|
+
React.createElement("div", { className: b('item-text') }, item.text))))))))));
|
|
38
32
|
};
|
|
39
33
|
export default BenefitsBlock;
|
|
@@ -3,84 +3,36 @@ export declare const BenefitsBlock: {
|
|
|
3
3
|
additionalProperties: boolean;
|
|
4
4
|
required: boolean;
|
|
5
5
|
properties: {
|
|
6
|
-
|
|
7
|
-
type: string;
|
|
8
|
-
};
|
|
9
|
-
postTitleOne: {
|
|
10
|
-
type: string;
|
|
11
|
-
};
|
|
12
|
-
textOne: {
|
|
13
|
-
type: string;
|
|
14
|
-
};
|
|
15
|
-
titleTwo: {
|
|
16
|
-
type: string;
|
|
17
|
-
};
|
|
18
|
-
postTitleTwo: {
|
|
6
|
+
theme: {
|
|
19
7
|
type: string;
|
|
8
|
+
enum: string[];
|
|
20
9
|
};
|
|
21
|
-
|
|
10
|
+
title: {
|
|
22
11
|
type: string;
|
|
23
12
|
};
|
|
24
|
-
|
|
13
|
+
text: {
|
|
25
14
|
type: string;
|
|
26
15
|
};
|
|
27
|
-
|
|
16
|
+
video: {
|
|
28
17
|
type: string;
|
|
29
|
-
items: {
|
|
30
|
-
additionalProperties: boolean;
|
|
31
|
-
required: string[];
|
|
32
|
-
properties: {
|
|
33
|
-
icon: {
|
|
34
|
-
type: string;
|
|
35
|
-
};
|
|
36
|
-
title: {
|
|
37
|
-
type: string;
|
|
38
|
-
};
|
|
39
|
-
text: {
|
|
40
|
-
type: string;
|
|
41
|
-
};
|
|
42
|
-
};
|
|
43
|
-
};
|
|
44
18
|
};
|
|
45
19
|
items: {
|
|
46
20
|
type: string;
|
|
47
21
|
items: {
|
|
48
22
|
type: string;
|
|
49
23
|
additionalProperties: boolean;
|
|
50
|
-
required:
|
|
24
|
+
required: boolean;
|
|
51
25
|
properties: {
|
|
52
|
-
|
|
26
|
+
icon: {
|
|
53
27
|
type: string;
|
|
54
28
|
};
|
|
55
29
|
text: {
|
|
56
30
|
type: string;
|
|
57
31
|
};
|
|
58
|
-
images: {
|
|
59
|
-
type: string;
|
|
60
|
-
items: {
|
|
61
|
-
type: string;
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
columns: {
|
|
65
|
-
type: string;
|
|
66
|
-
items: {
|
|
67
|
-
type: string;
|
|
68
|
-
};
|
|
69
|
-
};
|
|
70
|
-
rows: {
|
|
71
|
-
type: string;
|
|
72
|
-
items: {
|
|
73
|
-
type: string;
|
|
74
|
-
};
|
|
75
|
-
};
|
|
76
32
|
};
|
|
77
33
|
};
|
|
78
34
|
};
|
|
79
|
-
|
|
80
|
-
type: string;
|
|
81
|
-
enum: string[];
|
|
82
|
-
};
|
|
83
|
-
accentColor: {
|
|
35
|
+
itemBackground: {
|
|
84
36
|
type: string;
|
|
85
37
|
};
|
|
86
38
|
animated: {
|