@doyourjob/gravity-ui-page-constructor 5.31.142-dev.1 → 5.31.142-dev.3
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 +76 -0
- package/build/cjs/blocks/Benefits/Benefits.d.ts +3 -0
- package/build/cjs/blocks/Benefits/Benefits.js +49 -0
- package/build/cjs/blocks/Benefits/BenefitsCard/BenefitsCard.css +31 -0
- package/build/cjs/blocks/Benefits/BenefitsCard/BenefitsCard.d.ts +3 -0
- package/build/cjs/blocks/Benefits/BenefitsCard/BenefitsCard.js +17 -0
- package/build/cjs/blocks/Benefits/BenefitsLabel/BenefitsLabel.css +30 -0
- package/build/cjs/blocks/Benefits/BenefitsLabel/BenefitsLabel.d.ts +6 -0
- package/build/cjs/blocks/Benefits/BenefitsLabel/BenefitsLabel.js +15 -0
- package/build/cjs/blocks/Benefits/schema.d.ts +95 -0
- package/build/cjs/blocks/Benefits/schema.js +51 -0
- package/build/cjs/blocks/Scroller/Scroller.css +40 -0
- package/build/cjs/blocks/Scroller/Scroller.d.ts +4 -0
- package/build/cjs/blocks/Scroller/Scroller.js +34 -0
- package/build/cjs/blocks/Scroller/schema.d.ts +33 -0
- package/build/cjs/blocks/Scroller/schema.js +22 -0
- package/build/cjs/blocks/index.d.ts +2 -0
- package/build/cjs/blocks/index.js +5 -1
- package/build/cjs/blocks/validators.d.ts +2 -0
- package/build/cjs/blocks/validators.js +2 -0
- package/build/cjs/components/CardBase/CardBase.css +2 -2
- package/build/cjs/constructor-items.d.ts +2 -0
- package/build/cjs/constructor-items.js +2 -0
- package/build/cjs/models/constructor-items/blocks.d.ts +44 -1
- package/build/cjs/models/constructor-items/blocks.js +2 -0
- package/build/cjs/schema/constants.d.ts +1 -1
- package/build/cjs/schema/constants.js +3 -1
- package/build/cjs/schema/validators/blocks.d.ts +2 -0
- package/build/cjs/schema/validators/blocks.js +2 -0
- package/build/cjs/sub-blocks/ImageCard/ImageCard.css +2 -2
- package/build/cjs/sub-blocks/Quote/Quote.css +1 -1
- package/build/cjs/text-transform/config.js +4 -0
- package/build/esm/blocks/Benefits/Benefits.css +76 -0
- package/build/esm/blocks/Benefits/Benefits.d.ts +4 -0
- package/build/esm/blocks/Benefits/Benefits.js +45 -0
- package/build/esm/blocks/Benefits/BenefitsCard/BenefitsCard.css +31 -0
- package/build/esm/blocks/Benefits/BenefitsCard/BenefitsCard.d.ts +4 -0
- package/build/esm/blocks/Benefits/BenefitsCard/BenefitsCard.js +13 -0
- package/build/esm/blocks/Benefits/BenefitsLabel/BenefitsLabel.css +30 -0
- package/build/esm/blocks/Benefits/BenefitsLabel/BenefitsLabel.d.ts +7 -0
- package/build/esm/blocks/Benefits/BenefitsLabel/BenefitsLabel.js +11 -0
- package/build/esm/blocks/Benefits/schema.d.ts +95 -0
- package/build/esm/blocks/Benefits/schema.js +48 -0
- package/build/esm/blocks/Scroller/Scroller.css +40 -0
- package/build/esm/blocks/Scroller/Scroller.d.ts +5 -0
- package/build/esm/blocks/Scroller/Scroller.js +30 -0
- package/build/esm/blocks/Scroller/schema.d.ts +33 -0
- package/build/esm/blocks/Scroller/schema.js +19 -0
- package/build/esm/blocks/index.d.ts +2 -0
- package/build/esm/blocks/index.js +2 -0
- package/build/esm/blocks/validators.d.ts +2 -0
- package/build/esm/blocks/validators.js +2 -0
- package/build/esm/components/CardBase/CardBase.css +2 -2
- package/build/esm/constructor-items.d.ts +2 -0
- package/build/esm/constructor-items.js +3 -1
- package/build/esm/models/constructor-items/blocks.d.ts +44 -1
- package/build/esm/models/constructor-items/blocks.js +2 -0
- package/build/esm/schema/constants.d.ts +1 -1
- package/build/esm/schema/constants.js +4 -2
- package/build/esm/schema/validators/blocks.d.ts +2 -0
- package/build/esm/schema/validators/blocks.js +2 -0
- package/build/esm/sub-blocks/ImageCard/ImageCard.css +2 -2
- package/build/esm/sub-blocks/Quote/Quote.css +1 -1
- package/build/esm/text-transform/config.js +4 -0
- package/package.json +1 -1
- package/schema/index.js +1 -1
- package/server/models/constructor-items/blocks.d.ts +44 -1
- package/server/models/constructor-items/blocks.js +2 -0
- package/server/text-transform/config.js +4 -0
- package/styles/mixins.scss +1 -1
- package/widget/index.js +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* use this for style redefinitions to awoid problems with
|
|
2
|
+
unpredictable css rules order in build */
|
|
3
|
+
.pc-benefits-block {
|
|
4
|
+
position: relative;
|
|
5
|
+
z-index: 0;
|
|
6
|
+
--local-base-color: #001a2b;
|
|
7
|
+
--local-bg-color: #ffffff;
|
|
8
|
+
}
|
|
9
|
+
.pc-benefits-block_theme_dark {
|
|
10
|
+
--local-base-color: #ffffff;
|
|
11
|
+
--local-bg-color: #001a2b;
|
|
12
|
+
}
|
|
13
|
+
.pc-benefits-block__background {
|
|
14
|
+
position: absolute;
|
|
15
|
+
top: 0;
|
|
16
|
+
left: -27px;
|
|
17
|
+
right: -27px;
|
|
18
|
+
bottom: 0;
|
|
19
|
+
z-index: -1;
|
|
20
|
+
border-radius: 40px;
|
|
21
|
+
}
|
|
22
|
+
.pc-benefits-block__header {
|
|
23
|
+
padding-top: 48px;
|
|
24
|
+
margin-bottom: 32px;
|
|
25
|
+
display: flex;
|
|
26
|
+
flex-direction: column;
|
|
27
|
+
gap: 16px;
|
|
28
|
+
}
|
|
29
|
+
.pc-benefits-block__title {
|
|
30
|
+
color: var(--local-base-color);
|
|
31
|
+
font-size: 48px;
|
|
32
|
+
line-height: 52px;
|
|
33
|
+
font-weight: 600;
|
|
34
|
+
text-align: center;
|
|
35
|
+
}
|
|
36
|
+
.pc-benefits-block__title > span {
|
|
37
|
+
color: var(--local-accent-color);
|
|
38
|
+
}
|
|
39
|
+
.pc-benefits-block__text {
|
|
40
|
+
color: var(--local-base-color);
|
|
41
|
+
font-size: 24px;
|
|
42
|
+
line-height: 28px;
|
|
43
|
+
text-align: center;
|
|
44
|
+
opacity: 0.6;
|
|
45
|
+
}
|
|
46
|
+
.pc-benefits-block__text p {
|
|
47
|
+
margin: 0;
|
|
48
|
+
}
|
|
49
|
+
.pc-benefits-block__cards {
|
|
50
|
+
display: flex;
|
|
51
|
+
flex-wrap: wrap;
|
|
52
|
+
gap: 16px;
|
|
53
|
+
padding-bottom: 64px;
|
|
54
|
+
}
|
|
55
|
+
.pc-benefits-block__labels {
|
|
56
|
+
display: flex;
|
|
57
|
+
flex-wrap: wrap;
|
|
58
|
+
gap: 16px;
|
|
59
|
+
padding-top: 16px;
|
|
60
|
+
padding-bottom: 16px;
|
|
61
|
+
}
|
|
62
|
+
.pc-benefits-block__images {
|
|
63
|
+
display: grid;
|
|
64
|
+
grid-template-columns: repeat(12, 1fr);
|
|
65
|
+
grid-auto-rows: 300px;
|
|
66
|
+
gap: 12px;
|
|
67
|
+
padding-top: 12px;
|
|
68
|
+
padding-bottom: 27px;
|
|
69
|
+
}
|
|
70
|
+
.pc-benefits-block__image {
|
|
71
|
+
display: block;
|
|
72
|
+
width: 100%;
|
|
73
|
+
height: 100%;
|
|
74
|
+
object-fit: cover;
|
|
75
|
+
border-radius: 24px;
|
|
76
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BenefitsBlock = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const components_1 = require("../../components");
|
|
7
|
+
const utils_1 = require("../../utils");
|
|
8
|
+
const BenefitsCard_1 = tslib_1.__importDefault(require("./BenefitsCard/BenefitsCard"));
|
|
9
|
+
const BenefitsLabel_1 = tslib_1.__importDefault(require("./BenefitsLabel/BenefitsLabel"));
|
|
10
|
+
const b = (0, utils_1.block)('benefits-block');
|
|
11
|
+
const BenefitsBlock = (props) => {
|
|
12
|
+
const { titleOne, postTitleOne, textOne, titleTwo, postTitleTwo, textTwo, background, cards, items, theme, accentColor, time, } = props;
|
|
13
|
+
const [activeIndex, setActiveIndex] = (0, react_1.useState)(0);
|
|
14
|
+
const data = items === null || items === void 0 ? void 0 : items[activeIndex];
|
|
15
|
+
(0, react_1.useEffect)(() => {
|
|
16
|
+
const interval = setInterval(() => {
|
|
17
|
+
if (items === null || items === void 0 ? void 0 : items.length) {
|
|
18
|
+
setActiveIndex((prev) => (prev + 1) % items.length);
|
|
19
|
+
}
|
|
20
|
+
}, time || 2000);
|
|
21
|
+
return () => clearInterval(interval);
|
|
22
|
+
}, [items === null || items === void 0 ? void 0 : items.length, time]);
|
|
23
|
+
const styles = (0, react_1.useMemo)(() => accentColor
|
|
24
|
+
? {
|
|
25
|
+
['--local-accent-color']: accentColor,
|
|
26
|
+
}
|
|
27
|
+
: {}, [accentColor]);
|
|
28
|
+
return (react_1.default.createElement("div", { className: b({ theme }), style: styles },
|
|
29
|
+
react_1.default.createElement("div", { className: b('background'), style: { background } }),
|
|
30
|
+
(titleOne || postTitleOne || textOne) && (react_1.default.createElement("div", { className: b('header') },
|
|
31
|
+
(titleOne || postTitleOne) && (react_1.default.createElement("div", { className: b('title') },
|
|
32
|
+
titleOne,
|
|
33
|
+
react_1.default.createElement("span", null, postTitleOne))),
|
|
34
|
+
textOne && react_1.default.createElement(components_1.HTML, { className: b('text') }, textOne))),
|
|
35
|
+
Boolean(cards === null || cards === void 0 ? void 0 : cards.length) && (react_1.default.createElement("div", { className: b('cards') }, cards === null || cards === void 0 ? void 0 : cards.map((card, index) => (react_1.default.createElement(BenefitsCard_1.default, Object.assign({ key: index }, card)))))),
|
|
36
|
+
(titleTwo || postTitleTwo || textTwo) && (react_1.default.createElement("div", { className: b('header') },
|
|
37
|
+
(titleTwo || postTitleTwo) && (react_1.default.createElement("div", { className: b('title') },
|
|
38
|
+
titleTwo,
|
|
39
|
+
react_1.default.createElement("span", null, postTitleTwo))),
|
|
40
|
+
textTwo && react_1.default.createElement(components_1.HTML, { className: b('text') }, textTwo))),
|
|
41
|
+
Boolean(items === null || items === void 0 ? void 0 : items.length) && (react_1.default.createElement("div", { className: b('labels') }, items === null || items === void 0 ? void 0 : items.map((item, index) => (react_1.default.createElement(BenefitsLabel_1.default, Object.assign({ key: index }, item, { active: index === activeIndex })))))),
|
|
42
|
+
data && (react_1.default.createElement("div", { className: b('images') }, data.images.map((image, index) => (react_1.default.createElement("div", { key: index, style: {
|
|
43
|
+
gridColumn: `span ${data.columns[index]}`,
|
|
44
|
+
gridRow: `span ${data.rows[index]}`,
|
|
45
|
+
} },
|
|
46
|
+
react_1.default.createElement(components_1.ImageBase, { className: b('image'), src: image }))))))));
|
|
47
|
+
};
|
|
48
|
+
exports.BenefitsBlock = BenefitsBlock;
|
|
49
|
+
exports.default = exports.BenefitsBlock;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/* use this for style redefinitions to awoid problems with
|
|
2
|
+
unpredictable css rules order in build */
|
|
3
|
+
.pc-benefits-card {
|
|
4
|
+
background-color: rgba(31, 47, 61, 0.3);
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
gap: 8px;
|
|
8
|
+
padding: 32px;
|
|
9
|
+
min-height: 360px;
|
|
10
|
+
min-width: 270px;
|
|
11
|
+
border-radius: 24px;
|
|
12
|
+
flex: 1;
|
|
13
|
+
}
|
|
14
|
+
.pc-benefits-card__icon {
|
|
15
|
+
display: block;
|
|
16
|
+
width: 64px;
|
|
17
|
+
height: 64px;
|
|
18
|
+
object-fit: contain;
|
|
19
|
+
margin-bottom: 24px;
|
|
20
|
+
}
|
|
21
|
+
.pc-benefits-card__title {
|
|
22
|
+
font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
|
|
23
|
+
line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
|
|
24
|
+
color: var(--local-accent-color);
|
|
25
|
+
}
|
|
26
|
+
.pc-benefits-card__text {
|
|
27
|
+
font-size: var(--g-text-body-3-font-size, var(--pc-text-body-3-font-size));
|
|
28
|
+
line-height: var(--g-text-body-3-line-height, var(--pc-text-body-3-line-height));
|
|
29
|
+
color: var(--local-base-color);
|
|
30
|
+
opacity: 0.8;
|
|
31
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BenefitsCard = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const components_1 = require("../../../components");
|
|
7
|
+
const utils_1 = require("../../../utils");
|
|
8
|
+
const b = (0, utils_1.block)('benefits-card');
|
|
9
|
+
const BenefitsCard = (props) => {
|
|
10
|
+
const { icon, title, text } = props;
|
|
11
|
+
return (react_1.default.createElement("div", { className: b() },
|
|
12
|
+
react_1.default.createElement(components_1.ImageBase, { className: b('icon'), src: icon }),
|
|
13
|
+
react_1.default.createElement("div", { className: b('title') }, title),
|
|
14
|
+
react_1.default.createElement("div", { className: b('text') }, text)));
|
|
15
|
+
};
|
|
16
|
+
exports.BenefitsCard = BenefitsCard;
|
|
17
|
+
exports.default = exports.BenefitsCard;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/* use this for style redefinitions to awoid problems with
|
|
2
|
+
unpredictable css rules order in build */
|
|
3
|
+
.pc-benefits-label {
|
|
4
|
+
background-color: rgba(31, 47, 61, 0.3);
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
gap: 8px;
|
|
8
|
+
padding: 32px;
|
|
9
|
+
min-height: 158px;
|
|
10
|
+
min-width: 270px;
|
|
11
|
+
border-radius: 24px;
|
|
12
|
+
flex: 1;
|
|
13
|
+
border: 1px solid transparent;
|
|
14
|
+
}
|
|
15
|
+
.pc-benefits-label_active {
|
|
16
|
+
border: 1px solid var(--local-accent-color);
|
|
17
|
+
}
|
|
18
|
+
.pc-benefits-label__title {
|
|
19
|
+
font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
|
|
20
|
+
line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
|
|
21
|
+
color: var(--local-accent-color);
|
|
22
|
+
text-align: center;
|
|
23
|
+
}
|
|
24
|
+
.pc-benefits-label__text {
|
|
25
|
+
font-size: var(--g-text-body-3-font-size, var(--pc-text-body-3-font-size));
|
|
26
|
+
line-height: var(--g-text-body-3-line-height, var(--pc-text-body-3-line-height));
|
|
27
|
+
color: var(--local-base-color);
|
|
28
|
+
opacity: 0.8;
|
|
29
|
+
text-align: center;
|
|
30
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BenefitsLabel = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const utils_1 = require("../../../utils");
|
|
7
|
+
const b = (0, utils_1.block)('benefits-label');
|
|
8
|
+
const BenefitsLabel = (props) => {
|
|
9
|
+
const { title, text, active } = props;
|
|
10
|
+
return (react_1.default.createElement("div", { className: b({ active }) },
|
|
11
|
+
react_1.default.createElement("div", { className: b('title') }, title),
|
|
12
|
+
react_1.default.createElement("div", { className: b('text') }, text)));
|
|
13
|
+
};
|
|
14
|
+
exports.BenefitsLabel = BenefitsLabel;
|
|
15
|
+
exports.default = exports.BenefitsLabel;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export declare const BenefitsBlock: {
|
|
2
|
+
'benefits-block': {
|
|
3
|
+
additionalProperties: boolean;
|
|
4
|
+
required: boolean;
|
|
5
|
+
properties: {
|
|
6
|
+
titleOne: {
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
postTitleOne: {
|
|
10
|
+
type: string;
|
|
11
|
+
};
|
|
12
|
+
textOne: {
|
|
13
|
+
type: string;
|
|
14
|
+
};
|
|
15
|
+
titleTwo: {
|
|
16
|
+
type: string;
|
|
17
|
+
};
|
|
18
|
+
postTitleTwo: {
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
21
|
+
textTwo: {
|
|
22
|
+
type: string;
|
|
23
|
+
};
|
|
24
|
+
background: {
|
|
25
|
+
type: string;
|
|
26
|
+
};
|
|
27
|
+
cards: {
|
|
28
|
+
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
|
+
};
|
|
45
|
+
items: {
|
|
46
|
+
type: string;
|
|
47
|
+
items: {
|
|
48
|
+
type: string;
|
|
49
|
+
additionalProperties: boolean;
|
|
50
|
+
required: string[];
|
|
51
|
+
properties: {
|
|
52
|
+
title: {
|
|
53
|
+
type: string;
|
|
54
|
+
};
|
|
55
|
+
text: {
|
|
56
|
+
type: string;
|
|
57
|
+
};
|
|
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
|
+
};
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
theme: {
|
|
80
|
+
type: string;
|
|
81
|
+
enum: string[];
|
|
82
|
+
};
|
|
83
|
+
accentColor: {
|
|
84
|
+
type: string;
|
|
85
|
+
};
|
|
86
|
+
time: {
|
|
87
|
+
type: string;
|
|
88
|
+
};
|
|
89
|
+
type: {};
|
|
90
|
+
when: {
|
|
91
|
+
type: string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
};
|
|
95
|
+
};
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BenefitsBlock = void 0;
|
|
4
|
+
const common_1 = require("../../schema/validators/common");
|
|
5
|
+
exports.BenefitsBlock = {
|
|
6
|
+
'benefits-block': {
|
|
7
|
+
additionalProperties: false,
|
|
8
|
+
required: false,
|
|
9
|
+
properties: Object.assign(Object.assign({}, common_1.BaseProps), { titleOne: { type: 'string' }, postTitleOne: { type: 'string' }, textOne: { type: 'string' }, titleTwo: { type: 'string' }, postTitleTwo: { type: 'string' }, textTwo: { type: 'string' }, background: { type: 'string' }, cards: {
|
|
10
|
+
type: 'array',
|
|
11
|
+
items: {
|
|
12
|
+
additionalProperties: false,
|
|
13
|
+
required: ['icon', 'title', 'text'],
|
|
14
|
+
properties: {
|
|
15
|
+
icon: { type: 'string' },
|
|
16
|
+
title: { type: 'string' },
|
|
17
|
+
text: { type: 'string' },
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
}, items: {
|
|
21
|
+
type: 'array',
|
|
22
|
+
items: {
|
|
23
|
+
type: 'object',
|
|
24
|
+
additionalProperties: false,
|
|
25
|
+
required: ['title', 'text'],
|
|
26
|
+
properties: {
|
|
27
|
+
title: { type: 'string' },
|
|
28
|
+
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
|
+
},
|
|
48
|
+
},
|
|
49
|
+
}, theme: common_1.ThemeProps, accentColor: { type: 'string' }, time: { type: 'number' } }),
|
|
50
|
+
},
|
|
51
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/* use this for style redefinitions to awoid problems with
|
|
2
|
+
unpredictable css rules order in build */
|
|
3
|
+
.pc-scroller-block__header {
|
|
4
|
+
margin-bottom: 72px;
|
|
5
|
+
}
|
|
6
|
+
.pc-scroller-block__title {
|
|
7
|
+
color: #001a2b;
|
|
8
|
+
font-size: 48px;
|
|
9
|
+
line-height: 52px;
|
|
10
|
+
font-weight: 600;
|
|
11
|
+
text-align: center;
|
|
12
|
+
}
|
|
13
|
+
.pc-scroller-block__text {
|
|
14
|
+
color: #001a2b;
|
|
15
|
+
margin-top: 16px;
|
|
16
|
+
font-size: 24px;
|
|
17
|
+
line-height: 28px;
|
|
18
|
+
text-align: center;
|
|
19
|
+
}
|
|
20
|
+
.pc-scroller-block__content {
|
|
21
|
+
position: relative;
|
|
22
|
+
gap: 16px;
|
|
23
|
+
display: flex;
|
|
24
|
+
flex-wrap: nowrap;
|
|
25
|
+
width: 100vw;
|
|
26
|
+
overflow: scroll;
|
|
27
|
+
-webkit-overflow-scrolling: touch;
|
|
28
|
+
scrollbar-width: none;
|
|
29
|
+
}
|
|
30
|
+
.pc-scroller-block__content::-webkit-scrollbar {
|
|
31
|
+
display: none;
|
|
32
|
+
}
|
|
33
|
+
.pc-scroller-block__content_gapLong {
|
|
34
|
+
gap: 48px;
|
|
35
|
+
}
|
|
36
|
+
.pc-scroller-block__item {
|
|
37
|
+
position: relative;
|
|
38
|
+
z-index: 1;
|
|
39
|
+
flex: none;
|
|
40
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScrollerBlock = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const utils_1 = require("../../utils");
|
|
7
|
+
const b = (0, utils_1.block)('scroller-block');
|
|
8
|
+
const ScrollerBlock = (props) => {
|
|
9
|
+
const { title, text, widths, gapLong, children } = props;
|
|
10
|
+
const rootRef = (0, react_1.useRef)(null);
|
|
11
|
+
const contentRef = (0, react_1.useRef)(null);
|
|
12
|
+
(0, react_1.useEffect)(() => {
|
|
13
|
+
const updateSize = () => {
|
|
14
|
+
if (contentRef.current && rootRef.current) {
|
|
15
|
+
const space = (window.innerWidth - rootRef.current.clientWidth) / 2;
|
|
16
|
+
contentRef.current.style.setProperty('padding-left', `${space}px`);
|
|
17
|
+
contentRef.current.style.setProperty('padding-right', `${space}px`);
|
|
18
|
+
contentRef.current.style.setProperty('left', `${-space}px`);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
updateSize();
|
|
22
|
+
window.addEventListener('resize', updateSize, { passive: true });
|
|
23
|
+
return () => {
|
|
24
|
+
window.removeEventListener('resize', updateSize);
|
|
25
|
+
};
|
|
26
|
+
}, []);
|
|
27
|
+
return (react_1.default.createElement("div", { className: b(), ref: rootRef },
|
|
28
|
+
(title || text) && (react_1.default.createElement("div", { className: b('header') },
|
|
29
|
+
title && react_1.default.createElement("div", { className: b('title') }, title),
|
|
30
|
+
text && react_1.default.createElement("div", { className: b('text') }, text))),
|
|
31
|
+
react_1.default.createElement("div", { className: b('content', { gapLong }), ref: contentRef }, react_1.default.Children.map(children, (child, index) => (react_1.default.createElement("div", { key: index, className: b('item'), style: { width: (widths === null || widths === void 0 ? void 0 : widths[index]) || '100%' } }, child))))));
|
|
32
|
+
};
|
|
33
|
+
exports.ScrollerBlock = ScrollerBlock;
|
|
34
|
+
exports.default = exports.ScrollerBlock;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export declare const ScrollerBlock: {
|
|
2
|
+
'scroller-block': {
|
|
3
|
+
additionalProperties: boolean;
|
|
4
|
+
required: boolean;
|
|
5
|
+
properties: {
|
|
6
|
+
title: {
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
text: {
|
|
10
|
+
type: string;
|
|
11
|
+
};
|
|
12
|
+
widths: {
|
|
13
|
+
type: string;
|
|
14
|
+
items: {
|
|
15
|
+
type: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
gapLong: {
|
|
19
|
+
type: string;
|
|
20
|
+
};
|
|
21
|
+
children: {
|
|
22
|
+
type: string;
|
|
23
|
+
items: {
|
|
24
|
+
$ref: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
type: {};
|
|
28
|
+
when: {
|
|
29
|
+
type: string;
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScrollerBlock = void 0;
|
|
4
|
+
const common_1 = require("../../schema/validators/common");
|
|
5
|
+
exports.ScrollerBlock = {
|
|
6
|
+
'scroller-block': {
|
|
7
|
+
additionalProperties: false,
|
|
8
|
+
required: false,
|
|
9
|
+
properties: Object.assign(Object.assign({}, common_1.BaseProps), { title: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
}, text: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
}, widths: {
|
|
14
|
+
type: 'array',
|
|
15
|
+
items: {
|
|
16
|
+
type: 'string',
|
|
17
|
+
},
|
|
18
|
+
}, gapLong: {
|
|
19
|
+
type: 'boolean',
|
|
20
|
+
}, children: common_1.ChildrenCardsProps }),
|
|
21
|
+
},
|
|
22
|
+
};
|
|
@@ -9,6 +9,8 @@ export { default as SliderNewBlock } from './SliderNew/Slider';
|
|
|
9
9
|
export { default as ExtendedFeaturesBlock } from './ExtendedFeatures/ExtendedFeatures';
|
|
10
10
|
export { default as PromoFeaturesBlock } from './PromoFeaturesBlock/PromoFeaturesBlock';
|
|
11
11
|
export { default as AdvantagesBlock } from './Advantages/Advantages';
|
|
12
|
+
export { default as BenefitsBlock } from './Benefits/Benefits';
|
|
13
|
+
export { default as ScrollerBlock } from './Scroller/Scroller';
|
|
12
14
|
export { default as QuestionsBlock } from './Questions/Questions';
|
|
13
15
|
export { default as TableBlock } from './Table/Table';
|
|
14
16
|
export { default as TabsBlock } from './Tabs/Tabs';
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.BenchmarkBlock = exports.MiniCaseBlock = exports.HighlightTableBlock = exports.PressReleasesBlock = exports.RelevantReportsBlock = exports.RelevantReportsCardsBlock = exports.RelevantPostsBlock = exports.BlogFeedBlock = exports.EventsSectionBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsSectionsBlock = exports.ReportsCardsBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterCardLayoutBlock = exports.FilterBlock = exports.ShareBlock = exports.BannerMinifyBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderMinifyBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.AdvantagesBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.LogoRotatorBlock = exports.BannerBlock = void 0;
|
|
6
|
+
exports.BenchmarkBlock = exports.MiniCaseBlock = exports.HighlightTableBlock = exports.PressReleasesBlock = exports.RelevantReportsBlock = exports.RelevantReportsCardsBlock = exports.RelevantPostsBlock = exports.BlogFeedBlock = exports.EventsSectionBlock = exports.EventsFeedBlock = exports.LinkTableBlock = exports.FormWallBlock = exports.ReportsSectionsBlock = exports.ReportsCardsBlock = exports.ReportsBlock = exports.QuotesBlock = exports.ServicesBlock = exports.SolutionsBlock = exports.MarqueeLinksBlock = exports.FormBlock = exports.FilterCardLayoutBlock = exports.FilterBlock = exports.ShareBlock = exports.BannerMinifyBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderMinifyBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.ScrollerBlock = exports.BenefitsBlock = exports.AdvantagesBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.LogoRotatorBlock = exports.BannerBlock = void 0;
|
|
7
7
|
var Banner_1 = require("./Banner/Banner");
|
|
8
8
|
Object.defineProperty(exports, "BannerBlock", { enumerable: true, get: function () { return __importDefault(Banner_1).default; } });
|
|
9
9
|
var LogoRotator_1 = require("./LogoRotator/LogoRotator");
|
|
@@ -26,6 +26,10 @@ var PromoFeaturesBlock_1 = require("./PromoFeaturesBlock/PromoFeaturesBlock");
|
|
|
26
26
|
Object.defineProperty(exports, "PromoFeaturesBlock", { enumerable: true, get: function () { return __importDefault(PromoFeaturesBlock_1).default; } });
|
|
27
27
|
var Advantages_1 = require("./Advantages/Advantages");
|
|
28
28
|
Object.defineProperty(exports, "AdvantagesBlock", { enumerable: true, get: function () { return __importDefault(Advantages_1).default; } });
|
|
29
|
+
var Benefits_1 = require("./Benefits/Benefits");
|
|
30
|
+
Object.defineProperty(exports, "BenefitsBlock", { enumerable: true, get: function () { return __importDefault(Benefits_1).default; } });
|
|
31
|
+
var Scroller_1 = require("./Scroller/Scroller");
|
|
32
|
+
Object.defineProperty(exports, "ScrollerBlock", { enumerable: true, get: function () { return __importDefault(Scroller_1).default; } });
|
|
29
33
|
var Questions_1 = require("./Questions/Questions");
|
|
30
34
|
Object.defineProperty(exports, "QuestionsBlock", { enumerable: true, get: function () { return __importDefault(Questions_1).default; } });
|
|
31
35
|
var Table_1 = require("./Table/Table");
|
|
@@ -11,6 +11,8 @@ export * from './Info/schema';
|
|
|
11
11
|
export * from './Media/schema';
|
|
12
12
|
export * from './PromoFeaturesBlock/schema';
|
|
13
13
|
export * from './Advantages/schema';
|
|
14
|
+
export * from './Benefits/schema';
|
|
15
|
+
export * from './Scroller/schema';
|
|
14
16
|
export * from './Questions/schema';
|
|
15
17
|
export * from './Slider/schema';
|
|
16
18
|
export * from './Table/schema';
|
|
@@ -14,6 +14,8 @@ tslib_1.__exportStar(require("./Info/schema"), exports);
|
|
|
14
14
|
tslib_1.__exportStar(require("./Media/schema"), exports);
|
|
15
15
|
tslib_1.__exportStar(require("./PromoFeaturesBlock/schema"), exports);
|
|
16
16
|
tslib_1.__exportStar(require("./Advantages/schema"), exports);
|
|
17
|
+
tslib_1.__exportStar(require("./Benefits/schema"), exports);
|
|
18
|
+
tslib_1.__exportStar(require("./Scroller/schema"), exports);
|
|
17
19
|
tslib_1.__exportStar(require("./Questions/schema"), exports);
|
|
18
20
|
tslib_1.__exportStar(require("./Slider/schema"), exports);
|
|
19
21
|
tslib_1.__exportStar(require("./Table/schema"), exports);
|
|
@@ -11,7 +11,7 @@ unpredictable css rules order in build */
|
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
.pc-card-base-block {
|
|
14
|
-
min-height:
|
|
14
|
+
min-height: 240px;
|
|
15
15
|
height: 100%;
|
|
16
16
|
overflow-x: hidden;
|
|
17
17
|
border-radius: var(--pc-border-radius);
|
|
@@ -62,7 +62,7 @@ unpredictable css rules order in build */
|
|
|
62
62
|
a.pc-card-base-block {
|
|
63
63
|
color: inherit;
|
|
64
64
|
text-decoration: none;
|
|
65
|
-
min-height:
|
|
65
|
+
min-height: 240px;
|
|
66
66
|
height: 100%;
|
|
67
67
|
overflow-x: hidden;
|
|
68
68
|
border-radius: var(--pc-border-radius);
|
|
@@ -3,6 +3,8 @@ export declare const blockMap: {
|
|
|
3
3
|
"extended-features-block": ({ title, description, items, colSizes, animated, }: import("./models").ExtendedFeaturesProps) => JSX.Element;
|
|
4
4
|
"promo-features-block": (props: import("./models").PromoFeaturesProps) => JSX.Element;
|
|
5
5
|
"advantages-block": (props: import("./models").AdvantagesBlockProps) => JSX.Element;
|
|
6
|
+
"benefits-block": (props: import("./models").BenefitsBlockProps) => JSX.Element;
|
|
7
|
+
"scroller-block": (props: import("react").PropsWithChildren<Omit<import("./models").ScrollerBlockProps, "children">>) => JSX.Element;
|
|
6
8
|
"questions-block": (props: import("./models").QuestionsProps) => JSX.Element;
|
|
7
9
|
"banner-block": (props: import("./models").BannerBlockProps) => JSX.Element;
|
|
8
10
|
"logo-rotator-block": (props: import("./models").LogoRotatorBlockProps) => JSX.Element;
|
|
@@ -12,6 +12,8 @@ exports.blockMap = {
|
|
|
12
12
|
[models_1.BlockType.ExtendedFeaturesBlock]: blocks_1.ExtendedFeaturesBlock,
|
|
13
13
|
[models_1.BlockType.PromoFeaturesBlock]: blocks_1.PromoFeaturesBlock,
|
|
14
14
|
[models_1.BlockType.AdvantagesBlock]: blocks_1.AdvantagesBlock,
|
|
15
|
+
[models_1.BlockType.BenefitsBlock]: blocks_1.BenefitsBlock,
|
|
16
|
+
[models_1.BlockType.ScrollerBlock]: blocks_1.ScrollerBlock,
|
|
15
17
|
[models_1.BlockType.QuestionsBlock]: blocks_1.QuestionsBlock,
|
|
16
18
|
[models_1.BlockType.BannerBlock]: blocks_1.BannerBlock,
|
|
17
19
|
[models_1.BlockType.LogoRotatorBlock]: blocks_1.LogoRotatorBlock,
|