@doyourjob/gravity-ui-page-constructor 5.31.136 → 5.31.138-dev.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/build/cjs/blocks/Advantages/Advantages.css +132 -0
- package/build/cjs/blocks/Advantages/Advantages.d.ts +3 -0
- package/build/cjs/blocks/Advantages/Advantages.js +34 -0
- package/build/cjs/blocks/Advantages/schema.d.ts +56 -0
- package/build/cjs/blocks/Advantages/schema.js +36 -0
- package/build/cjs/blocks/Benchmark/Benchmark.css +75 -0
- package/build/cjs/blocks/Benchmark/Benchmark.d.ts +4 -0
- package/build/cjs/blocks/Benchmark/Benchmark.js +26 -0
- package/build/cjs/blocks/Benchmark/schema.d.ts +328 -0
- package/build/cjs/blocks/Benchmark/schema.js +54 -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 +1 -0
- package/build/cjs/blocks/validators.js +1 -0
- package/build/cjs/components/AnimateBlock/AnimateBlock.d.ts +1 -0
- package/build/cjs/components/AnimateBlock/AnimateBlock.js +2 -1
- package/build/cjs/components/Odometer/Odometer.d.ts +9 -0
- package/build/cjs/components/Odometer/Odometer.js +28 -0
- package/build/cjs/components/Odometer/useOdometer.d.ts +1 -0
- package/build/cjs/components/Odometer/useOdometer.js +106 -0
- package/build/cjs/components/VideoBlock/VideoBlock.css +2 -1
- package/build/cjs/components/index.d.ts +1 -0
- package/build/cjs/components/index.js +3 -1
- package/build/cjs/constructor-items.d.ts +4 -1
- package/build/cjs/constructor-items.js +3 -0
- package/build/cjs/containers/PageConstructor/PageConstructor.css +3 -0
- package/build/cjs/internal-typings/global.d.ts +8 -0
- package/build/cjs/models/constructor-items/blocks.d.ts +36 -2
- package/build/cjs/models/constructor-items/blocks.js +2 -0
- package/build/cjs/models/constructor-items/sub-blocks.d.ts +20 -2
- package/build/cjs/models/constructor-items/sub-blocks.js +1 -0
- package/build/cjs/schema/constants.d.ts +308 -0
- package/build/cjs/schema/constants.js +5 -2
- package/build/cjs/schema/validators/blocks.d.ts +2 -0
- package/build/cjs/schema/validators/blocks.js +2 -0
- package/build/cjs/schema/validators/sub-blocks.d.ts +1 -0
- package/build/cjs/schema/validators/sub-blocks.js +1 -0
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.css +6 -0
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
- package/build/cjs/sub-blocks/LayoutItem/LayoutItem.js +2 -2
- package/build/cjs/sub-blocks/LayoutItem/schema.d.ts +3 -0
- package/build/cjs/sub-blocks/LayoutItem/schema.js +3 -1
- package/build/cjs/sub-blocks/StoryCard/StoryCard.css +93 -0
- package/build/cjs/sub-blocks/StoryCard/StoryCard.d.ts +4 -0
- package/build/cjs/sub-blocks/StoryCard/StoryCard.js +33 -0
- package/build/cjs/sub-blocks/StoryCard/schema.d.ts +310 -0
- package/build/cjs/sub-blocks/StoryCard/schema.js +22 -0
- package/build/cjs/sub-blocks/index.d.ts +1 -0
- package/build/cjs/sub-blocks/index.js +3 -1
- package/build/cjs/text-transform/config.js +22 -0
- package/build/esm/blocks/Advantages/Advantages.css +132 -0
- package/build/esm/blocks/Advantages/Advantages.d.ts +4 -0
- package/build/esm/blocks/Advantages/Advantages.js +30 -0
- package/build/esm/blocks/Advantages/schema.d.ts +56 -0
- package/build/esm/blocks/Advantages/schema.js +33 -0
- package/build/esm/blocks/Benchmark/Benchmark.css +75 -0
- package/build/esm/blocks/Benchmark/Benchmark.d.ts +5 -0
- package/build/esm/blocks/Benchmark/Benchmark.js +24 -0
- package/build/esm/blocks/Benchmark/schema.d.ts +328 -0
- package/build/esm/blocks/Benchmark/schema.js +51 -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 +1 -0
- package/build/esm/blocks/validators.js +1 -0
- package/build/esm/components/AnimateBlock/AnimateBlock.d.ts +1 -0
- package/build/esm/components/AnimateBlock/AnimateBlock.js +2 -1
- package/build/esm/components/Odometer/Odometer.d.ts +9 -0
- package/build/esm/components/Odometer/Odometer.js +25 -0
- package/build/esm/components/Odometer/useOdometer.d.ts +1 -0
- package/build/esm/components/Odometer/useOdometer.js +102 -0
- package/build/esm/components/VideoBlock/VideoBlock.css +2 -1
- package/build/esm/components/index.d.ts +1 -0
- package/build/esm/components/index.js +1 -0
- package/build/esm/constructor-items.d.ts +4 -1
- package/build/esm/constructor-items.js +5 -2
- package/build/esm/containers/PageConstructor/PageConstructor.css +3 -0
- package/build/esm/internal-typings/global.d.ts +8 -0
- package/build/esm/models/constructor-items/blocks.d.ts +36 -2
- package/build/esm/models/constructor-items/blocks.js +2 -0
- package/build/esm/models/constructor-items/sub-blocks.d.ts +20 -2
- package/build/esm/models/constructor-items/sub-blocks.js +1 -0
- package/build/esm/schema/constants.d.ts +308 -0
- package/build/esm/schema/constants.js +7 -4
- package/build/esm/schema/validators/blocks.d.ts +2 -0
- package/build/esm/schema/validators/blocks.js +2 -0
- package/build/esm/schema/validators/sub-blocks.d.ts +1 -0
- package/build/esm/schema/validators/sub-blocks.js +1 -0
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.css +6 -0
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.d.ts +1 -1
- package/build/esm/sub-blocks/LayoutItem/LayoutItem.js +2 -2
- package/build/esm/sub-blocks/LayoutItem/schema.d.ts +3 -0
- package/build/esm/sub-blocks/LayoutItem/schema.js +3 -1
- package/build/esm/sub-blocks/StoryCard/StoryCard.css +93 -0
- package/build/esm/sub-blocks/StoryCard/StoryCard.d.ts +5 -0
- package/build/esm/sub-blocks/StoryCard/StoryCard.js +31 -0
- package/build/esm/sub-blocks/StoryCard/schema.d.ts +310 -0
- package/build/esm/sub-blocks/StoryCard/schema.js +19 -0
- package/build/esm/sub-blocks/index.d.ts +1 -0
- package/build/esm/sub-blocks/index.js +1 -0
- package/build/esm/text-transform/config.js +22 -0
- package/package.json +1 -1
- package/schema/index.js +1 -1
- package/server/models/constructor-items/blocks.d.ts +36 -2
- package/server/models/constructor-items/blocks.js +2 -0
- package/server/models/constructor-items/sub-blocks.d.ts +20 -2
- package/server/models/constructor-items/sub-blocks.js +1 -0
- package/server/text-transform/config.js +22 -0
- package/styles/mixins.scss +8 -0
- package/styles/root.scss +4 -0
- package/styles/styles.css +3 -0
- package/widget/index.js +1 -1
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
.pc-advantages-block__item-desc, .pc-advantages-block__item-title, .pc-advantages-block__link, .pc-advantages-block__title {
|
|
2
|
+
margin: 0;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
/* use this for style redefinitions to awoid problems with
|
|
6
|
+
unpredictable css rules order in build */
|
|
7
|
+
@media (min-width: 769px) {
|
|
8
|
+
.pc-advantages-block.pc-AnimateBlock, .pc-AnimateBlock .pc-advantages-block {
|
|
9
|
+
position: relative;
|
|
10
|
+
top: 100px;
|
|
11
|
+
opacity: 0;
|
|
12
|
+
}
|
|
13
|
+
.pc-advantages-block.pc-AnimateBlock.animate, .pc-AnimateBlock .pc-advantages-block.animate {
|
|
14
|
+
top: 0;
|
|
15
|
+
opacity: 1;
|
|
16
|
+
transition: top 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.8s cubic-bezier(0.25, 0.46, 0.45, 0.94);
|
|
17
|
+
transition-delay: 0s;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
.pc-advantages-block__header {
|
|
21
|
+
flex: 1;
|
|
22
|
+
display: flex;
|
|
23
|
+
flex-direction: column;
|
|
24
|
+
}
|
|
25
|
+
.pc-advantages-block__header.pc-advantages-block__header {
|
|
26
|
+
padding-top: 32px;
|
|
27
|
+
padding-bottom: 32px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.pc-advantages-block__title {
|
|
31
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
32
|
+
font-size: 48px;
|
|
33
|
+
line-height: 52px;
|
|
34
|
+
color: var(--pc-color-ab-base);
|
|
35
|
+
}
|
|
36
|
+
.pc-advantages-block__title p {
|
|
37
|
+
margin: 0;
|
|
38
|
+
}
|
|
39
|
+
@media (max-width: 577px) {
|
|
40
|
+
.pc-advantages-block__title {
|
|
41
|
+
font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
|
|
42
|
+
line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
.pc-advantages-block__link {
|
|
46
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
47
|
+
font-size: 48px;
|
|
48
|
+
line-height: 52px;
|
|
49
|
+
transition: color 0.3s ease;
|
|
50
|
+
color: var(--pc-color-ab-second);
|
|
51
|
+
margin-bottom: 32px;
|
|
52
|
+
}
|
|
53
|
+
@media (hover: hover) and (pointer: fine) {
|
|
54
|
+
.pc-advantages-block__link:hover {
|
|
55
|
+
color: var(--pc-color-ab-base);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
@media (max-width: 577px) {
|
|
59
|
+
.pc-advantages-block__link {
|
|
60
|
+
font-size: var(--g-text-display-2-font-size, var(--pc-text-display-2-font-size));
|
|
61
|
+
line-height: var(--g-text-display-2-line-height, var(--pc-text-display-2-line-height));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
.pc-advantages-block__wrap-logo {
|
|
65
|
+
margin-top: auto;
|
|
66
|
+
}
|
|
67
|
+
.pc-advantages-block__logo {
|
|
68
|
+
display: block;
|
|
69
|
+
object-fit: contain;
|
|
70
|
+
height: 76px;
|
|
71
|
+
}
|
|
72
|
+
.pc-advantages-block__item {
|
|
73
|
+
display: flex;
|
|
74
|
+
margin-left: 0;
|
|
75
|
+
margin-bottom: 16px;
|
|
76
|
+
border-left: none;
|
|
77
|
+
border-right: none;
|
|
78
|
+
border-top: 1px var(--pc-color-ab-border) solid;
|
|
79
|
+
transition: opacity 0.3s ease;
|
|
80
|
+
}
|
|
81
|
+
@media (hover: hover) and (pointer: fine) {
|
|
82
|
+
.pc-advantages-block__item:hover {
|
|
83
|
+
opacity: 0.5;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
.pc-advantages-block__item-wrap {
|
|
87
|
+
padding: 32px 0;
|
|
88
|
+
}
|
|
89
|
+
.pc-advantages-block__item-image {
|
|
90
|
+
width: 230px;
|
|
91
|
+
height: 230px;
|
|
92
|
+
display: block;
|
|
93
|
+
margin-left: 32px;
|
|
94
|
+
}
|
|
95
|
+
.pc-advantages-block__item-title {
|
|
96
|
+
font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
|
|
97
|
+
line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
|
|
98
|
+
color: var(--pc-text-header-color);
|
|
99
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
100
|
+
color: var(--pc-color-ab-second);
|
|
101
|
+
margin-bottom: 8px;
|
|
102
|
+
}
|
|
103
|
+
.pc-advantages-block__item-desc {
|
|
104
|
+
font-size: var(--g-text-header-2-font-size, var(--pc-text-header-2-font-size));
|
|
105
|
+
line-height: var(--g-text-header-2-line-height, var(--pc-text-header-2-line-height));
|
|
106
|
+
color: var(--pc-text-header-color);
|
|
107
|
+
font-weight: var(--g-text-accent-font-weight);
|
|
108
|
+
color: var(--pc-color-ab-base);
|
|
109
|
+
opacity: 0.6;
|
|
110
|
+
}
|
|
111
|
+
@media (min-width: 1185px) {
|
|
112
|
+
.pc-advantages-block__item {
|
|
113
|
+
border-left: 1px var(--pc-color-ab-border) solid;
|
|
114
|
+
border-right: 1px var(--pc-color-ab-border) solid;
|
|
115
|
+
margin-left: 8px;
|
|
116
|
+
margin-bottom: 0;
|
|
117
|
+
}
|
|
118
|
+
.pc-advantages-block__item + .pc-advantages-block__item {
|
|
119
|
+
border-top: 1px var(--pc-color-ab-border) solid;
|
|
120
|
+
}
|
|
121
|
+
.pc-advantages-block__item-wrap {
|
|
122
|
+
padding: 32px;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
@media (max-width: 769px) {
|
|
126
|
+
.pc-advantages-block__item {
|
|
127
|
+
flex-direction: column;
|
|
128
|
+
}
|
|
129
|
+
.pc-advantages-block__item-wrap {
|
|
130
|
+
padding: 16px 0;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdvantagesBlock = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
const uikit_1 = require("@gravity-ui/uikit");
|
|
7
|
+
const components_1 = require("../../components");
|
|
8
|
+
const AnimateBlock_1 = tslib_1.__importDefault(require("../../components/AnimateBlock/AnimateBlock"));
|
|
9
|
+
const grid_1 = require("../../grid");
|
|
10
|
+
const utils_1 = require("../../utils");
|
|
11
|
+
const b = (0, utils_1.block)('advantages-block');
|
|
12
|
+
const colSizesHeader = { all: 12, xl: 6 };
|
|
13
|
+
const colSizesBody = { all: 12, xl: 6 };
|
|
14
|
+
const AdvantagesBlock = (props) => {
|
|
15
|
+
const { animated, title, link, logo, items } = props;
|
|
16
|
+
return (react_1.default.createElement(AnimateBlock_1.default, { className: b(), animate: animated },
|
|
17
|
+
react_1.default.createElement(grid_1.Grid, null,
|
|
18
|
+
react_1.default.createElement(grid_1.Row, null,
|
|
19
|
+
react_1.default.createElement(grid_1.Col, { sizes: colSizesHeader, className: b('header') },
|
|
20
|
+
title && (react_1.default.createElement("h2", { className: b('title') },
|
|
21
|
+
react_1.default.createElement(components_1.HTML, null, title))),
|
|
22
|
+
link && (react_1.default.createElement(uikit_1.Link, { className: b('link'), href: link.url }, link.text)),
|
|
23
|
+
logo && (react_1.default.createElement("div", { className: b('wrap-logo') },
|
|
24
|
+
react_1.default.createElement(components_1.Image, { className: b('logo'), src: logo, alt: "", "aria-hidden": "true" })))),
|
|
25
|
+
react_1.default.createElement(grid_1.Col, { sizes: colSizesBody },
|
|
26
|
+
react_1.default.createElement(grid_1.Grid, null, items === null || items === void 0 ? void 0 : items.map((item, index) => (react_1.default.createElement(components_1.RouterLink, { href: item.url, key: index },
|
|
27
|
+
react_1.default.createElement(uikit_1.Link, { href: item.url, className: b('item') },
|
|
28
|
+
react_1.default.createElement("div", { className: b('item-wrap') },
|
|
29
|
+
react_1.default.createElement("h3", { className: b('item-title') }, item.title),
|
|
30
|
+
react_1.default.createElement("div", { className: b('item-desc') }, item.description)),
|
|
31
|
+
item.image && (react_1.default.createElement(components_1.Image, { className: b('item-image'), src: item.image, alt: "", "aria-hidden": "true" }))))))))))));
|
|
32
|
+
};
|
|
33
|
+
exports.AdvantagesBlock = AdvantagesBlock;
|
|
34
|
+
exports.default = exports.AdvantagesBlock;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const AdvantagesBlock: {
|
|
2
|
+
'advantages-block': {
|
|
3
|
+
additionalProperties: boolean;
|
|
4
|
+
required: boolean;
|
|
5
|
+
properties: {
|
|
6
|
+
title: {
|
|
7
|
+
type: string;
|
|
8
|
+
};
|
|
9
|
+
link: {
|
|
10
|
+
type: string;
|
|
11
|
+
additionalProperties: boolean;
|
|
12
|
+
required: boolean;
|
|
13
|
+
properties: {
|
|
14
|
+
url: {
|
|
15
|
+
type: string;
|
|
16
|
+
};
|
|
17
|
+
text: {
|
|
18
|
+
type: string;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
logo: {
|
|
23
|
+
type: string;
|
|
24
|
+
};
|
|
25
|
+
items: {
|
|
26
|
+
type: string;
|
|
27
|
+
items: {
|
|
28
|
+
type: string;
|
|
29
|
+
additionalProperties: boolean;
|
|
30
|
+
required: boolean;
|
|
31
|
+
properties: {
|
|
32
|
+
url: {
|
|
33
|
+
type: string;
|
|
34
|
+
};
|
|
35
|
+
image: {
|
|
36
|
+
type: string;
|
|
37
|
+
};
|
|
38
|
+
title: {
|
|
39
|
+
type: string;
|
|
40
|
+
};
|
|
41
|
+
description: {
|
|
42
|
+
type: string;
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
animated: {
|
|
48
|
+
type: string;
|
|
49
|
+
};
|
|
50
|
+
type: {};
|
|
51
|
+
when: {
|
|
52
|
+
type: string;
|
|
53
|
+
};
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AdvantagesBlock = void 0;
|
|
4
|
+
const common_1 = require("../../schema/validators/common");
|
|
5
|
+
exports.AdvantagesBlock = {
|
|
6
|
+
'advantages-block': {
|
|
7
|
+
additionalProperties: false,
|
|
8
|
+
required: false,
|
|
9
|
+
properties: Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.AnimatableProps), { title: {
|
|
10
|
+
type: 'string',
|
|
11
|
+
}, link: {
|
|
12
|
+
type: 'object',
|
|
13
|
+
additionalProperties: false,
|
|
14
|
+
required: true,
|
|
15
|
+
properties: {
|
|
16
|
+
url: { type: 'string' },
|
|
17
|
+
text: { type: 'string' },
|
|
18
|
+
},
|
|
19
|
+
}, logo: {
|
|
20
|
+
type: 'string',
|
|
21
|
+
}, items: {
|
|
22
|
+
type: 'array',
|
|
23
|
+
items: {
|
|
24
|
+
type: 'object',
|
|
25
|
+
additionalProperties: false,
|
|
26
|
+
required: true,
|
|
27
|
+
properties: {
|
|
28
|
+
url: { type: 'string' },
|
|
29
|
+
image: { type: 'string' },
|
|
30
|
+
title: { type: 'string' },
|
|
31
|
+
description: { type: 'string' },
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
} }),
|
|
35
|
+
},
|
|
36
|
+
};
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/* use this for style redefinitions to awoid problems with
|
|
2
|
+
unpredictable css rules order in build */
|
|
3
|
+
.pc-benchmark-block {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
align-items: center;
|
|
7
|
+
}
|
|
8
|
+
.pc-benchmark-block__title {
|
|
9
|
+
margin-bottom: 32px;
|
|
10
|
+
}
|
|
11
|
+
.pc-benchmark-block__content {
|
|
12
|
+
flex: 1;
|
|
13
|
+
border: 1px #001a2b solid;
|
|
14
|
+
border-radius: 24px;
|
|
15
|
+
overflow: hidden;
|
|
16
|
+
}
|
|
17
|
+
.pc-benchmark-block__wrap {
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
align-items: center;
|
|
21
|
+
border: 0.5px #001a2b solid;
|
|
22
|
+
margin-top: -0.5px;
|
|
23
|
+
margin-bottom: -0.5px;
|
|
24
|
+
}
|
|
25
|
+
.pc-benchmark-block__wrap.pc-benchmark-block__wrap {
|
|
26
|
+
padding-top: 32px;
|
|
27
|
+
padding-bottom: 24px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.pc-benchmark-block__wrap-inner {
|
|
31
|
+
width: 100%;
|
|
32
|
+
display: flex;
|
|
33
|
+
}
|
|
34
|
+
@media (max-width: 1081px) {
|
|
35
|
+
.pc-benchmark-block__wrap-inner {
|
|
36
|
+
flex-direction: column;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
.pc-benchmark-block__wrap-title {
|
|
40
|
+
text-align: center;
|
|
41
|
+
margin-bottom: 48px;
|
|
42
|
+
}
|
|
43
|
+
@media (max-width: 1081px) {
|
|
44
|
+
.pc-benchmark-block__wrap-title {
|
|
45
|
+
margin-bottom: 24px;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
.pc-benchmark-block__item {
|
|
49
|
+
flex: 1;
|
|
50
|
+
text-align: center;
|
|
51
|
+
padding-left: 8px;
|
|
52
|
+
padding-right: 8px;
|
|
53
|
+
}
|
|
54
|
+
@media (max-width: 1081px) {
|
|
55
|
+
.pc-benchmark-block__item + .pc-benchmark-block__item {
|
|
56
|
+
margin-top: 32px;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
.pc-benchmark-block__value {
|
|
60
|
+
font-size: 64px;
|
|
61
|
+
line-height: 52px;
|
|
62
|
+
font-weight: 600;
|
|
63
|
+
letter-spacing: -0.002em;
|
|
64
|
+
margin-top: 12px;
|
|
65
|
+
margin-bottom: 12px;
|
|
66
|
+
}
|
|
67
|
+
@media (max-width: 769px) {
|
|
68
|
+
.pc-benchmark-block__value {
|
|
69
|
+
font-size: 32px;
|
|
70
|
+
line-height: 26px;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
.pc-benchmark-block__label {
|
|
74
|
+
font-weight: 700;
|
|
75
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
5
|
+
const uikit_1 = require("@gravity-ui/uikit");
|
|
6
|
+
const components_1 = require("../../components");
|
|
7
|
+
const grid_1 = require("../../grid");
|
|
8
|
+
const utils_1 = require("../../utils");
|
|
9
|
+
const b = (0, utils_1.block)('benchmark-block');
|
|
10
|
+
const defaultSizes = { all: 12 };
|
|
11
|
+
const Benchmark = ({ title, data, duration, animated }) => {
|
|
12
|
+
const [playNumbers, setPlayNumbers] = (0, react_1.useState)(false);
|
|
13
|
+
const handleOnAnimateStart = (0, react_1.useCallback)(() => setPlayNumbers(true), []);
|
|
14
|
+
return (react_1.default.createElement(components_1.AnimateBlock, { className: b(), animate: animated, onAnimateStart: handleOnAnimateStart },
|
|
15
|
+
title && react_1.default.createElement(components_1.Title, { title: title, className: b('title') }),
|
|
16
|
+
react_1.default.createElement(grid_1.Grid, { className: b('content') },
|
|
17
|
+
react_1.default.createElement(grid_1.Row, null, data.map((column, columnIndex) => (react_1.default.createElement(grid_1.Col, { key: columnIndex, sizes: column.sizes || defaultSizes, className: b('wrap') },
|
|
18
|
+
column.title && (react_1.default.createElement(uikit_1.Text, { variant: "header-2", className: b('wrap-title') }, column.title)),
|
|
19
|
+
react_1.default.createElement("div", { className: b('wrap-inner') }, column.items.map((item, index) => (react_1.default.createElement("div", { key: index, className: b('item') },
|
|
20
|
+
item.top && (react_1.default.createElement(uikit_1.Text, { variant: "body-1", className: b('label') }, item.top)),
|
|
21
|
+
react_1.default.createElement("div", { className: b('value') },
|
|
22
|
+
react_1.default.createElement(components_1.Odometer, { value: item.value, initValue: item.init, duration: duration, animated: playNumbers }),
|
|
23
|
+
item.postfix),
|
|
24
|
+
item.bottom && (react_1.default.createElement(uikit_1.Text, { variant: "body-1", className: b('label') }, item.bottom)))))))))))));
|
|
25
|
+
};
|
|
26
|
+
exports.default = Benchmark;
|