@doyourjob/gravity-ui-page-constructor 5.31.109 → 5.31.110-background-effect-for-header-1
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/Header/BackgroundEffect/BackgroundEffect.css +30 -0
- package/build/cjs/blocks/Header/BackgroundEffect/BackgroundEffect.d.ts +6 -0
- package/build/cjs/blocks/Header/BackgroundEffect/BackgroundEffect.js +76 -0
- package/build/cjs/blocks/Header/Header.css +0 -8
- package/build/cjs/blocks/Header/Header.js +13 -18
- package/build/cjs/blocks/Header/HeaderButtons/HeaderButtons.css +9 -0
- package/build/cjs/blocks/Header/HeaderButtons/HeaderButtons.d.ts +6 -0
- package/build/cjs/blocks/Header/HeaderButtons/HeaderButtons.js +20 -0
- package/build/cjs/blocks/Header/HeaderDescription/HeaderDescription.d.ts +3 -0
- package/build/cjs/blocks/Header/HeaderDescription/HeaderDescription.js +19 -0
- package/build/cjs/blocks/Header/schema.d.ts +26 -0
- package/build/cjs/blocks/Header/schema.js +9 -0
- package/build/cjs/blocks/HeaderSlider/schema.d.ts +13 -0
- package/build/cjs/blocks/MiniCase/MiniCase.d.ts +3 -0
- package/build/cjs/blocks/MiniCase/MiniCase.js +16 -0
- package/build/cjs/blocks/MiniCase/schema.d.ts +170 -0
- package/build/cjs/blocks/MiniCase/schema.js +16 -0
- package/build/cjs/blocks/index.d.ts +1 -0
- package/build/cjs/blocks/index.js +3 -1
- package/build/cjs/components/Media/Video/utils.d.ts +1 -0
- package/build/cjs/components/Media/Video/utils.js +2 -1
- package/build/cjs/constructor-items.d.ts +1 -0
- package/build/cjs/constructor-items.js +1 -0
- package/build/cjs/context/miniCaseContext/MiniCaseContext.d.ts +4 -0
- package/build/cjs/context/miniCaseContext/MiniCaseContext.js +6 -0
- package/build/cjs/context/miniCaseContext/index.d.ts +1 -0
- package/build/cjs/context/miniCaseContext/index.js +4 -0
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js +1 -0
- package/build/cjs/models/constructor-items/blocks.d.ts +15 -3
- package/build/cjs/models/constructor-items/blocks.js +1 -0
- package/build/cjs/schema/constants.d.ts +2 -2
- package/build/cjs/schema/constants.js +2 -1
- package/build/cjs/schema/validators/blocks.d.ts +1 -0
- package/build/cjs/schema/validators/blocks.js +1 -0
- package/build/cjs/text-transform/config.js +1 -0
- package/build/esm/blocks/Header/BackgroundEffect/BackgroundEffect.css +30 -0
- package/build/esm/blocks/Header/BackgroundEffect/BackgroundEffect.d.ts +7 -0
- package/build/esm/blocks/Header/BackgroundEffect/BackgroundEffect.js +72 -0
- package/build/esm/blocks/Header/Header.css +0 -8
- package/build/esm/blocks/Header/Header.js +15 -20
- package/build/esm/blocks/Header/HeaderButtons/HeaderButtons.css +9 -0
- package/build/esm/blocks/Header/HeaderButtons/HeaderButtons.d.ts +7 -0
- package/build/esm/blocks/Header/HeaderButtons/HeaderButtons.js +16 -0
- package/build/esm/blocks/Header/HeaderDescription/HeaderDescription.d.ts +3 -0
- package/build/esm/blocks/Header/HeaderDescription/HeaderDescription.js +14 -0
- package/build/esm/blocks/Header/schema.d.ts +26 -0
- package/build/esm/blocks/Header/schema.js +9 -0
- package/build/esm/blocks/HeaderSlider/schema.d.ts +13 -0
- package/build/esm/blocks/MiniCase/MiniCase.d.ts +3 -0
- package/build/esm/blocks/MiniCase/MiniCase.js +14 -0
- package/build/esm/blocks/MiniCase/schema.d.ts +170 -0
- package/build/esm/blocks/MiniCase/schema.js +13 -0
- package/build/esm/blocks/index.d.ts +1 -0
- package/build/esm/blocks/index.js +1 -0
- package/build/esm/components/Media/Video/utils.d.ts +1 -0
- package/build/esm/components/Media/Video/utils.js +1 -1
- package/build/esm/constructor-items.d.ts +1 -0
- package/build/esm/constructor-items.js +2 -1
- package/build/esm/context/miniCaseContext/MiniCaseContext.d.ts +4 -0
- package/build/esm/context/miniCaseContext/MiniCaseContext.js +2 -0
- package/build/esm/context/miniCaseContext/index.d.ts +1 -0
- package/build/esm/context/miniCaseContext/index.js +1 -0
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/models/constructor-items/blocks.d.ts +15 -3
- package/build/esm/models/constructor-items/blocks.js +1 -0
- package/build/esm/schema/constants.d.ts +2 -2
- package/build/esm/schema/constants.js +3 -2
- package/build/esm/schema/validators/blocks.d.ts +1 -0
- package/build/esm/schema/validators/blocks.js +1 -0
- package/build/esm/text-transform/config.js +1 -0
- package/package.json +1 -1
- package/schema/index.js +1 -1
- package/server/models/constructor-items/blocks.d.ts +15 -3
- package/server/models/constructor-items/blocks.js +1 -0
- package/server/text-transform/config.js +1 -0
- package/widget/index.js +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/* use this for style redefinitions to awoid problems with
|
|
2
|
+
unpredictable css rules order in build */
|
|
3
|
+
.pc-background-effect {
|
|
4
|
+
position: absolute;
|
|
5
|
+
inset: 0;
|
|
6
|
+
display: flex;
|
|
7
|
+
}
|
|
8
|
+
.pc-background-effect__left {
|
|
9
|
+
position: absolute;
|
|
10
|
+
inset: 0;
|
|
11
|
+
clip-path: inset(0 0.01% 0 0);
|
|
12
|
+
transition: clip-path 1.5s ease;
|
|
13
|
+
}
|
|
14
|
+
.pc-background-effect__right {
|
|
15
|
+
position: absolute;
|
|
16
|
+
inset: 0;
|
|
17
|
+
clip-path: inset(0 0 0 99.99%);
|
|
18
|
+
transition: clip-path 1.5s ease;
|
|
19
|
+
}
|
|
20
|
+
.pc-header-block:hover .pc-background-effect__left {
|
|
21
|
+
clip-path: inset(0 99.99% 0 0);
|
|
22
|
+
}
|
|
23
|
+
.pc-header-block:hover .pc-background-effect__right {
|
|
24
|
+
clip-path: inset(0 0 0 0.01%);
|
|
25
|
+
}
|
|
26
|
+
.pc-background-effect__video {
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: 100%;
|
|
29
|
+
object-fit: cover;
|
|
30
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BackgroundEffect = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const utils_1 = require("../../../components/Media/Video/utils");
|
|
7
|
+
const utils_2 = require("../../../utils");
|
|
8
|
+
const b = (0, utils_2.block)('background-effect');
|
|
9
|
+
const SYNC_THRESHOLD = 0.03;
|
|
10
|
+
const MAX_DESYNC = 0.5;
|
|
11
|
+
const FAST_RATE = 1.05;
|
|
12
|
+
const SLOW_RATE = 0.95;
|
|
13
|
+
const BackgroundEffect = ({ firstSrc, secondSrc }) => {
|
|
14
|
+
const master = (0, react_1.useRef)(null);
|
|
15
|
+
const slave = (0, react_1.useRef)(null);
|
|
16
|
+
(0, react_1.useEffect)(() => {
|
|
17
|
+
const m = master.current;
|
|
18
|
+
const s = slave.current;
|
|
19
|
+
let rafId;
|
|
20
|
+
if (m && s) {
|
|
21
|
+
const syncMaster = (_, metadata) => {
|
|
22
|
+
if (m.paused) {
|
|
23
|
+
m.play().catch(() => { });
|
|
24
|
+
}
|
|
25
|
+
const targetTime = metadata.mediaTime;
|
|
26
|
+
const delta = targetTime - s.currentTime;
|
|
27
|
+
if (s.paused) {
|
|
28
|
+
s.play().catch(() => { });
|
|
29
|
+
}
|
|
30
|
+
if (Math.abs(delta) > MAX_DESYNC) {
|
|
31
|
+
s.currentTime = targetTime;
|
|
32
|
+
}
|
|
33
|
+
else if (Math.abs(delta) > SYNC_THRESHOLD) {
|
|
34
|
+
s.playbackRate = delta > 0 ? FAST_RATE : SLOW_RATE;
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
s.playbackRate = 1;
|
|
38
|
+
}
|
|
39
|
+
rafId = m.requestVideoFrameCallback(syncMaster);
|
|
40
|
+
};
|
|
41
|
+
rafId = m.requestVideoFrameCallback(syncMaster);
|
|
42
|
+
}
|
|
43
|
+
const handleVisibility = () => {
|
|
44
|
+
if (!document.hidden && m && s) {
|
|
45
|
+
m.play().catch(() => { });
|
|
46
|
+
s.play().catch(() => { });
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
document.addEventListener('visibilitychange', handleVisibility);
|
|
50
|
+
return () => {
|
|
51
|
+
var _a;
|
|
52
|
+
document.removeEventListener('visibilitychange', handleVisibility);
|
|
53
|
+
if (rafId && m) {
|
|
54
|
+
(_a = m.cancelVideoFrameCallback) === null || _a === void 0 ? void 0 : _a.call(m, rafId);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
}, []);
|
|
58
|
+
if (!firstSrc || !secondSrc) {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
return (react_1.default.createElement("div", { className: b() },
|
|
62
|
+
react_1.default.createElement("div", { className: b('left') },
|
|
63
|
+
react_1.default.createElement("video", { ref: master, disablePictureInPicture: true, playsInline: true,
|
|
64
|
+
// @ts-ignore
|
|
65
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
66
|
+
pip: "false", autoPlay: true, loop: true, preload: "auto", muted: true, className: b('video') },
|
|
67
|
+
react_1.default.createElement("source", { src: firstSrc, type: (0, utils_1.parseVideoType)(firstSrc) }))),
|
|
68
|
+
react_1.default.createElement("div", { className: b('right') },
|
|
69
|
+
react_1.default.createElement("video", { ref: slave, disablePictureInPicture: true, playsInline: true,
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
// eslint-disable-next-line react/no-unknown-property
|
|
72
|
+
pip: "false", autoPlay: true, loop: true, preload: "auto", muted: true, className: b('video') },
|
|
73
|
+
react_1.default.createElement("source", { src: secondSrc, type: (0, utils_1.parseVideoType)(secondSrc) })))));
|
|
74
|
+
};
|
|
75
|
+
exports.BackgroundEffect = BackgroundEffect;
|
|
76
|
+
exports.default = exports.BackgroundEffect;
|
|
@@ -105,14 +105,6 @@ unpredictable css rules order in build */
|
|
|
105
105
|
line-height: var(--g-text-body-3-line-height, var(--pc-text-body-3-line-height));
|
|
106
106
|
color: var(--g-color-text-primary);
|
|
107
107
|
}
|
|
108
|
-
.pc-header-block__buttons {
|
|
109
|
-
margin-top: 16px;
|
|
110
|
-
}
|
|
111
|
-
.pc-header-block__button.pc-header-block__button {
|
|
112
|
-
margin-top: 16px;
|
|
113
|
-
margin-right: 16px;
|
|
114
|
-
}
|
|
115
|
-
|
|
116
108
|
.pc-header-block__media {
|
|
117
109
|
position: absolute;
|
|
118
110
|
display: none;
|
|
@@ -6,14 +6,16 @@ const react_1 = tslib_1.__importStar(require("react"));
|
|
|
6
6
|
const uikit_1 = require("@gravity-ui/uikit");
|
|
7
7
|
const components_1 = require("../../components");
|
|
8
8
|
const utils_1 = require("../../components/Media/Image/utils");
|
|
9
|
-
const YFMWrapper_1 = tslib_1.__importDefault(require("../../components/YFMWrapper/YFMWrapper"));
|
|
10
9
|
const headerContext_1 = require("../../context/headerContext");
|
|
11
10
|
const mobileContext_1 = require("../../context/mobileContext");
|
|
12
11
|
const theme_1 = require("../../context/theme");
|
|
13
12
|
const grid_1 = require("../../grid");
|
|
14
13
|
const utils_2 = require("../../utils");
|
|
15
14
|
const BackButton_1 = tslib_1.__importDefault(require("./BackButton/BackButton"));
|
|
15
|
+
const BackgroundEffect_1 = tslib_1.__importDefault(require("./BackgroundEffect/BackgroundEffect"));
|
|
16
16
|
const Breadcrumbs_1 = tslib_1.__importDefault(require("./Breadcrumbs/Breadcrumbs"));
|
|
17
|
+
const HeaderButtons_1 = tslib_1.__importDefault(require("./HeaderButtons/HeaderButtons"));
|
|
18
|
+
const HeaderDescription_1 = tslib_1.__importDefault(require("./HeaderDescription/HeaderDescription"));
|
|
17
19
|
const HeaderStock_1 = tslib_1.__importDefault(require("./HeaderStock/HeaderStock"));
|
|
18
20
|
const HeaderTag_1 = tslib_1.__importDefault(require("./HeaderTag/HeaderTag"));
|
|
19
21
|
const HeaderTags_1 = tslib_1.__importDefault(require("./HeaderTags/HeaderTags"));
|
|
@@ -29,20 +31,17 @@ const Background = ({ background, isMobile }) => {
|
|
|
29
31
|
const FullWidthBackground = ({ background }) => (react_1.default.createElement("div", { className: b('background', { ['full-width']: true }), style: { backgroundColor: background === null || background === void 0 ? void 0 : background.color } }));
|
|
30
32
|
// eslint-disable-next-line complexity
|
|
31
33
|
const HeaderBlock = (props) => {
|
|
32
|
-
const { title, switchingTitle, topTags, bottomTags, overtitle, description, buttons, stock, stockPrice, stockShares, image, video, width = 's', imageSize, offset = 'default', background, theme: textTheme = 'light', verticalOffset = 'm', className, breadcrumbs, status, renderTitle, children, mediaView = 'full', } = props;
|
|
34
|
+
const { title, switchingTitle, topTags, bottomTags, overtitle, description, buttons, stock, stockPrice, stockShares, image, video, width = 's', imageSize, offset = 'default', background, theme: textTheme = 'light', verticalOffset = 'm', className, breadcrumbs, status, renderTitle, children, mediaView = 'full', backgroundEffect = {}, } = props;
|
|
33
35
|
const isMobile = (0, react_1.useContext)(mobileContext_1.MobileContext);
|
|
34
36
|
const { backButton, blockTag } = (0, react_1.useContext)(headerContext_1.HeaderContext);
|
|
35
37
|
const theme = (0, theme_1.useTheme)();
|
|
36
38
|
const hasRightSideImage = Boolean(image || video);
|
|
37
|
-
const curImageSize = imageSize || (0, utils_3.getImageSize)(width);
|
|
38
|
-
const titleSizes = hasRightSideImage ? (0, utils_3.titleWithImageSizes)(curImageSize) : (0, utils_3.getTitleSizes)(width);
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
const backgroundThemed = background && (0, utils_2.getThemedValue)(background, theme);
|
|
44
|
-
const imageThemed = image && (0, utils_2.getThemedValue)(image, theme);
|
|
45
|
-
const videoThemed = video && (0, utils_2.getThemedValue)(video, theme);
|
|
39
|
+
const curImageSize = (0, react_1.useMemo)(() => imageSize || (0, utils_3.getImageSize)(width), [imageSize, width]);
|
|
40
|
+
const titleSizes = (0, react_1.useMemo)(() => (hasRightSideImage ? (0, utils_3.titleWithImageSizes)(curImageSize) : (0, utils_3.getTitleSizes)(width)), [curImageSize, hasRightSideImage, width]);
|
|
41
|
+
const curVerticalOffset = (0, react_1.useMemo)(() => verticalOffset !== null && verticalOffset !== void 0 ? verticalOffset : (hasRightSideImage ? 'm' : verticalOffset), [hasRightSideImage, verticalOffset]);
|
|
42
|
+
const backgroundThemed = (0, react_1.useMemo)(() => background && (0, utils_2.getThemedValue)(background, theme), [background, theme]);
|
|
43
|
+
const imageThemed = (0, react_1.useMemo)(() => image && (0, utils_2.getThemedValue)(image, theme), [image, theme]);
|
|
44
|
+
const videoThemed = (0, react_1.useMemo)(() => video && (0, utils_2.getThemedValue)(video, theme), [theme, video]);
|
|
46
45
|
const fullWidth = (backgroundThemed === null || backgroundThemed === void 0 ? void 0 : backgroundThemed.fullWidth) || (backgroundThemed === null || backgroundThemed === void 0 ? void 0 : backgroundThemed.fullWidthMedia);
|
|
47
46
|
const titleId = (0, uikit_1.useUniqId)();
|
|
48
47
|
return (react_1.default.createElement("header", { className: b({
|
|
@@ -53,6 +52,7 @@ const HeaderBlock = (props) => {
|
|
|
53
52
|
}, className) },
|
|
54
53
|
backgroundThemed && fullWidth && react_1.default.createElement(FullWidthBackground, { background: backgroundThemed }),
|
|
55
54
|
backgroundThemed && react_1.default.createElement(Background, { background: backgroundThemed, isMobile: isMobile }),
|
|
55
|
+
react_1.default.createElement(BackgroundEffect_1.default, Object.assign({}, backgroundEffect)),
|
|
56
56
|
react_1.default.createElement(grid_1.Grid, { containerClass: b('container-fluid') },
|
|
57
57
|
react_1.default.createElement(Breadcrumbs_1.default, { breadcrumbs: breadcrumbs, theme: textTheme }),
|
|
58
58
|
react_1.default.createElement(BackButton_1.default, { backButton: verticalOffset !== '0' && !breadcrumbs ? backButton : undefined, theme: textTheme }),
|
|
@@ -75,13 +75,8 @@ const HeaderBlock = (props) => {
|
|
|
75
75
|
react_1.default.createElement(HeaderTag_1.default, { tag: blockTag }),
|
|
76
76
|
status,
|
|
77
77
|
switchingTitle ? (react_1.default.createElement(SwitchingTtitle_1.default, Object.assign({}, switchingTitle))) : (react_1.default.createElement(react_1.default.Fragment, null, renderTitle ? (renderTitle(title)) : (react_1.default.createElement(components_1.HTML, null, title))))),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
constructor: true,
|
|
81
|
-
constructorTheme: textTheme,
|
|
82
|
-
} }))),
|
|
83
|
-
buttons && (react_1.default.createElement("div", { className: b('buttons'), "data-qa": "header-buttons" }, buttons.map((button, index) => (react_1.default.createElement(components_1.RouterLink, { href: button.url, key: index },
|
|
84
|
-
react_1.default.createElement(components_1.Button, Object.assign({ key: index, className: b('button'), size: "xl", extraProps: Object.assign({ 'aria-describedby': titleId }, button.extraProps) }, button))))))),
|
|
78
|
+
react_1.default.createElement(HeaderDescription_1.default, { className: b('description', { theme: textTheme }), description: description, theme: textTheme }),
|
|
79
|
+
react_1.default.createElement(HeaderButtons_1.default, { buttons: buttons, titleId: titleId }),
|
|
85
80
|
children),
|
|
86
81
|
stock && (react_1.default.createElement(HeaderStock_1.default, { type: stock, stockPrice: stockPrice, stockShares: stockShares, theme: textTheme }))),
|
|
87
82
|
react_1.default.createElement(HeaderTags_1.default, { theme: textTheme, tags: bottomTags, className: b('tags', { bottom: true }), sizes: titleSizes }))),
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { HeaderBlockProps } from '../../../models';
|
|
2
|
+
type HeaderButtonsProps = Pick<HeaderBlockProps, 'buttons'> & {
|
|
3
|
+
titleId?: string;
|
|
4
|
+
};
|
|
5
|
+
export declare const HeaderButtons: ({ buttons, titleId }: HeaderButtonsProps) => JSX.Element | null;
|
|
6
|
+
export default HeaderButtons;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HeaderButtons = 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 b = (0, utils_1.block)('header-buttons');
|
|
9
|
+
const HeaderButton = (props) => {
|
|
10
|
+
const extraProps = (0, react_1.useMemo)(() => (Object.assign({ 'aria-describedby': props.titleId }, props.extraProps)), [props.extraProps, props.titleId]);
|
|
11
|
+
return (react_1.default.createElement(components_1.RouterLink, { href: props.url },
|
|
12
|
+
react_1.default.createElement(components_1.Button, Object.assign({ className: b('button'), size: "xl", extraProps: extraProps }, props))));
|
|
13
|
+
};
|
|
14
|
+
const HeaderButtons = ({ buttons, titleId }) => {
|
|
15
|
+
if (!buttons)
|
|
16
|
+
return null;
|
|
17
|
+
return (react_1.default.createElement("div", { className: b(), "data-qa": "header-buttons" }, buttons.map((button, index) => (react_1.default.createElement(HeaderButton, Object.assign({ key: index }, button, { titleId: titleId }))))));
|
|
18
|
+
};
|
|
19
|
+
exports.HeaderButtons = HeaderButtons;
|
|
20
|
+
exports.default = exports.HeaderButtons;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HeaderDescription = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
const YFMWrapper_1 = tslib_1.__importDefault(require("../../../components/YFMWrapper/YFMWrapper"));
|
|
7
|
+
const HeaderDescription = (props) => {
|
|
8
|
+
const { description, theme, className } = props;
|
|
9
|
+
const modifiers = (0, react_1.useMemo)(() => ({
|
|
10
|
+
constructor: true,
|
|
11
|
+
constructorTheme: theme,
|
|
12
|
+
}), [theme]);
|
|
13
|
+
if (!description)
|
|
14
|
+
return null;
|
|
15
|
+
return (react_1.default.createElement("div", { className: className },
|
|
16
|
+
react_1.default.createElement(YFMWrapper_1.default, { content: description, modifiers: modifiers })));
|
|
17
|
+
};
|
|
18
|
+
exports.HeaderDescription = HeaderDescription;
|
|
19
|
+
exports.default = exports.HeaderDescription;
|
|
@@ -979,6 +979,19 @@ export declare const HeaderProperties: {
|
|
|
979
979
|
};
|
|
980
980
|
};
|
|
981
981
|
};
|
|
982
|
+
backgroundEffect: {
|
|
983
|
+
type: string;
|
|
984
|
+
additionalProperties: boolean;
|
|
985
|
+
required: boolean;
|
|
986
|
+
properties: {
|
|
987
|
+
firstSrc: {
|
|
988
|
+
type: string;
|
|
989
|
+
};
|
|
990
|
+
secondSrc: {
|
|
991
|
+
type: string;
|
|
992
|
+
};
|
|
993
|
+
};
|
|
994
|
+
};
|
|
982
995
|
};
|
|
983
996
|
export declare const HeaderBlock: {
|
|
984
997
|
'header-block': {
|
|
@@ -1648,6 +1661,19 @@ export declare const HeaderBlock: {
|
|
|
1648
1661
|
};
|
|
1649
1662
|
};
|
|
1650
1663
|
};
|
|
1664
|
+
backgroundEffect: {
|
|
1665
|
+
type: string;
|
|
1666
|
+
additionalProperties: boolean;
|
|
1667
|
+
required: boolean;
|
|
1668
|
+
properties: {
|
|
1669
|
+
firstSrc: {
|
|
1670
|
+
type: string;
|
|
1671
|
+
};
|
|
1672
|
+
secondSrc: {
|
|
1673
|
+
type: string;
|
|
1674
|
+
};
|
|
1675
|
+
};
|
|
1676
|
+
};
|
|
1651
1677
|
anchor: {
|
|
1652
1678
|
type: string;
|
|
1653
1679
|
additionalProperties: boolean;
|
|
@@ -190,6 +190,15 @@ exports.HeaderProperties = {
|
|
|
190
190
|
},
|
|
191
191
|
},
|
|
192
192
|
},
|
|
193
|
+
backgroundEffect: {
|
|
194
|
+
type: 'object',
|
|
195
|
+
additionalProperties: false,
|
|
196
|
+
required: true,
|
|
197
|
+
properties: {
|
|
198
|
+
firstSrc: { type: 'string' },
|
|
199
|
+
secondSrc: { type: 'string' },
|
|
200
|
+
},
|
|
201
|
+
},
|
|
193
202
|
};
|
|
194
203
|
exports.HeaderBlock = {
|
|
195
204
|
'header-block': {
|
|
@@ -673,6 +673,19 @@ export declare const HeaderSliderBlock: {
|
|
|
673
673
|
};
|
|
674
674
|
};
|
|
675
675
|
};
|
|
676
|
+
backgroundEffect: {
|
|
677
|
+
type: string;
|
|
678
|
+
additionalProperties: boolean;
|
|
679
|
+
required: boolean;
|
|
680
|
+
properties: {
|
|
681
|
+
firstSrc: {
|
|
682
|
+
type: string;
|
|
683
|
+
};
|
|
684
|
+
secondSrc: {
|
|
685
|
+
type: string;
|
|
686
|
+
};
|
|
687
|
+
};
|
|
688
|
+
};
|
|
676
689
|
};
|
|
677
690
|
};
|
|
678
691
|
};
|
|
@@ -0,0 +1,16 @@
|
|
|
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 miniCaseContext_1 = require("../../context/miniCaseContext");
|
|
6
|
+
const sub_blocks_1 = require("../../sub-blocks");
|
|
7
|
+
const Slider_1 = tslib_1.__importDefault(require("../SliderNew/Slider"));
|
|
8
|
+
const MiniCaseBlock = (props) => {
|
|
9
|
+
const { items } = props, sliderProps = tslib_1.__rest(props, ["items"]);
|
|
10
|
+
const data = (0, react_1.useContext)(miniCaseContext_1.MiniCaseContext);
|
|
11
|
+
const fullItems = (0, react_1.useMemo)(() => items
|
|
12
|
+
.map((item) => (data || {})[item])
|
|
13
|
+
.filter((el) => Boolean(el)), [data, items]);
|
|
14
|
+
return (react_1.default.createElement(Slider_1.default, Object.assign({}, sliderProps, { slidesToShow: 1 }), fullItems.map((args, index) => (react_1.default.createElement(sub_blocks_1.CaseStudyCard, Object.assign({ key: index }, args))))));
|
|
15
|
+
};
|
|
16
|
+
exports.default = MiniCaseBlock;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
export declare const MiniCaseBlock: {
|
|
2
|
+
'mini-case-block': {
|
|
3
|
+
additionalProperties: boolean;
|
|
4
|
+
required: string[];
|
|
5
|
+
properties: {
|
|
6
|
+
items: {
|
|
7
|
+
type: string;
|
|
8
|
+
items: {
|
|
9
|
+
type: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
title: {
|
|
13
|
+
oneOf: ({
|
|
14
|
+
type: string;
|
|
15
|
+
optionName: string;
|
|
16
|
+
} | {
|
|
17
|
+
optionName: string;
|
|
18
|
+
type: string;
|
|
19
|
+
additionalProperties: boolean;
|
|
20
|
+
required: string[];
|
|
21
|
+
properties: {
|
|
22
|
+
text: {
|
|
23
|
+
type: string;
|
|
24
|
+
contentType: string;
|
|
25
|
+
};
|
|
26
|
+
link: {
|
|
27
|
+
type: string;
|
|
28
|
+
additionalProperties: boolean;
|
|
29
|
+
required: string[];
|
|
30
|
+
properties: {
|
|
31
|
+
text: {
|
|
32
|
+
type: string;
|
|
33
|
+
contentType: string;
|
|
34
|
+
};
|
|
35
|
+
url: {
|
|
36
|
+
type: string;
|
|
37
|
+
};
|
|
38
|
+
urlTitle: {
|
|
39
|
+
type: string;
|
|
40
|
+
};
|
|
41
|
+
arrow: {
|
|
42
|
+
type: string;
|
|
43
|
+
};
|
|
44
|
+
theme: {
|
|
45
|
+
type: string;
|
|
46
|
+
enum: string[];
|
|
47
|
+
};
|
|
48
|
+
textSize: {
|
|
49
|
+
type: string;
|
|
50
|
+
enum: string[];
|
|
51
|
+
};
|
|
52
|
+
target: {
|
|
53
|
+
type: string;
|
|
54
|
+
enum: string[];
|
|
55
|
+
};
|
|
56
|
+
analyticsEvents: {
|
|
57
|
+
oneOf: ({
|
|
58
|
+
optionName: string;
|
|
59
|
+
type: string;
|
|
60
|
+
additionalProperties: {
|
|
61
|
+
type: string;
|
|
62
|
+
};
|
|
63
|
+
required: string[];
|
|
64
|
+
properties: {
|
|
65
|
+
name: {
|
|
66
|
+
type: string;
|
|
67
|
+
};
|
|
68
|
+
type: {
|
|
69
|
+
type: string;
|
|
70
|
+
};
|
|
71
|
+
counters: {
|
|
72
|
+
type: string;
|
|
73
|
+
additionalProperties: boolean;
|
|
74
|
+
required: never[];
|
|
75
|
+
properties: {
|
|
76
|
+
include: {
|
|
77
|
+
type: string;
|
|
78
|
+
items: {
|
|
79
|
+
type: string;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
exclude: {
|
|
83
|
+
type: string;
|
|
84
|
+
items: {
|
|
85
|
+
type: string;
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
context: {
|
|
91
|
+
type: string;
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
items?: undefined;
|
|
95
|
+
} | {
|
|
96
|
+
type: string;
|
|
97
|
+
items: {
|
|
98
|
+
type: string;
|
|
99
|
+
additionalProperties: {
|
|
100
|
+
type: string;
|
|
101
|
+
};
|
|
102
|
+
required: string[];
|
|
103
|
+
properties: {
|
|
104
|
+
name: {
|
|
105
|
+
type: string;
|
|
106
|
+
};
|
|
107
|
+
type: {
|
|
108
|
+
type: string;
|
|
109
|
+
};
|
|
110
|
+
counters: {
|
|
111
|
+
type: string;
|
|
112
|
+
additionalProperties: boolean;
|
|
113
|
+
required: never[];
|
|
114
|
+
properties: {
|
|
115
|
+
include: {
|
|
116
|
+
type: string;
|
|
117
|
+
items: {
|
|
118
|
+
type: string;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
exclude: {
|
|
122
|
+
type: string;
|
|
123
|
+
items: {
|
|
124
|
+
type: string;
|
|
125
|
+
};
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
context: {
|
|
130
|
+
type: string;
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
optionName: string;
|
|
135
|
+
})[];
|
|
136
|
+
};
|
|
137
|
+
type: {};
|
|
138
|
+
when: {
|
|
139
|
+
type: string;
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
textSize: {
|
|
144
|
+
type: string;
|
|
145
|
+
enum: string[];
|
|
146
|
+
};
|
|
147
|
+
url: {
|
|
148
|
+
type: string;
|
|
149
|
+
};
|
|
150
|
+
urlTitle: {
|
|
151
|
+
type: string;
|
|
152
|
+
};
|
|
153
|
+
resetMargin: {
|
|
154
|
+
type: string;
|
|
155
|
+
};
|
|
156
|
+
};
|
|
157
|
+
})[];
|
|
158
|
+
};
|
|
159
|
+
description: {
|
|
160
|
+
type: string;
|
|
161
|
+
contentType: string;
|
|
162
|
+
inputType: string;
|
|
163
|
+
};
|
|
164
|
+
type: {};
|
|
165
|
+
when: {
|
|
166
|
+
type: string;
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiniCaseBlock = void 0;
|
|
4
|
+
const common_1 = require("../../schema/validators/common");
|
|
5
|
+
exports.MiniCaseBlock = {
|
|
6
|
+
'mini-case-block': {
|
|
7
|
+
additionalProperties: false,
|
|
8
|
+
required: ['items'],
|
|
9
|
+
properties: Object.assign(Object.assign(Object.assign({}, common_1.BaseProps), common_1.BlockHeaderProps), { items: {
|
|
10
|
+
type: 'array',
|
|
11
|
+
items: {
|
|
12
|
+
type: 'string',
|
|
13
|
+
},
|
|
14
|
+
} }),
|
|
15
|
+
},
|
|
16
|
+
};
|
|
@@ -37,3 +37,4 @@ export { default as RelevantReportsCardsBlock } from './RelevantReportsCards/Rel
|
|
|
37
37
|
export { default as RelevantReportsBlock } from './RelevantReports/RelevantReports';
|
|
38
38
|
export { default as PressReleasesBlock } from './PressReleases/PressReleases';
|
|
39
39
|
export { default as HighlightTableBlock } from './HighlightTable/HighlightTable';
|
|
40
|
+
export { default as MiniCaseBlock } from './MiniCase/MiniCase';
|
|
@@ -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.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.FilterBlock = exports.ShareBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = exports.BannerBlock = void 0;
|
|
6
|
+
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.FilterBlock = exports.ShareBlock = exports.ContentLayoutBlock = exports.CardLayoutBlock = exports.HeaderSliderBlock = exports.IconsBlock = exports.HeaderBlock = exports.TabLinksBlock = exports.TabsHighlightTableBlock = exports.TabsBlock = exports.TableBlock = exports.QuestionsBlock = exports.PromoFeaturesBlock = exports.ExtendedFeaturesBlock = exports.SliderNewBlock = exports.SliderBlock = exports.MapBlock = exports.MediaBlock = exports.InfoBlock = exports.CompaniesBlock = 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 Companies_1 = require("./Companies/Companies");
|
|
@@ -82,3 +82,5 @@ var PressReleases_1 = require("./PressReleases/PressReleases");
|
|
|
82
82
|
Object.defineProperty(exports, "PressReleasesBlock", { enumerable: true, get: function () { return __importDefault(PressReleases_1).default; } });
|
|
83
83
|
var HighlightTable_1 = require("./HighlightTable/HighlightTable");
|
|
84
84
|
Object.defineProperty(exports, "HighlightTableBlock", { enumerable: true, get: function () { return __importDefault(HighlightTable_1).default; } });
|
|
85
|
+
var MiniCase_1 = require("./MiniCase/MiniCase");
|
|
86
|
+
Object.defineProperty(exports, "MiniCaseBlock", { enumerable: true, get: function () { return __importDefault(MiniCase_1).default; } });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getVideoTypesWithPriority = exports.VideoType = exports.VideoExt = void 0;
|
|
3
|
+
exports.getVideoTypesWithPriority = exports.parseVideoType = exports.VideoType = exports.VideoExt = void 0;
|
|
4
4
|
var VideoExt;
|
|
5
5
|
(function (VideoExt) {
|
|
6
6
|
VideoExt["Mp4"] = "mp4";
|
|
@@ -34,6 +34,7 @@ function parseVideoType(src) {
|
|
|
34
34
|
return undefined;
|
|
35
35
|
}
|
|
36
36
|
}
|
|
37
|
+
exports.parseVideoType = parseVideoType;
|
|
37
38
|
const getVideoTypesWithPriority = (sources) => sources
|
|
38
39
|
.map((src) => ({ src, type: parseVideoType(src) }))
|
|
39
40
|
.sort(({ type: typeA }, { type: typeB }) => {
|
|
@@ -30,6 +30,7 @@ export declare const blockMap: {
|
|
|
30
30
|
"relevant-reports-block": ({ typeKey, link, title, description, slider, date, dateStart, dateEnd, }: import("./models").RelevantReportsBlockProps) => JSX.Element;
|
|
31
31
|
"press-releases-block": ({ title }: import("./models").PressReleasesBlockProps) => JSX.Element;
|
|
32
32
|
"highlight-table-block": ({ title, description, table, legend, contentSize, legendPosition, legendAlign, }: import("./models").HighlightTableBlockProps) => JSX.Element;
|
|
33
|
+
"mini-case-block": (props: import("./models").MiniCaseBlockProps) => JSX.Element;
|
|
33
34
|
"link-table-block": ({ title, items }: import("./models").LinkTableBlockProps) => JSX.Element;
|
|
34
35
|
"services-block": ({ title, serviceLinkType }: import("./models").ServicesBlockProps) => JSX.Element;
|
|
35
36
|
"quotes-block": ({ theme: localTheme, items, background, backgroundColor, }: import("./models").QuotesBlockProps) => JSX.Element;
|
|
@@ -39,6 +39,7 @@ exports.blockMap = {
|
|
|
39
39
|
[models_1.BlockType.RelevantReportsBlock]: blocks_1.RelevantReportsBlock,
|
|
40
40
|
[models_1.BlockType.PressReleasesBlock]: blocks_1.PressReleasesBlock,
|
|
41
41
|
[models_1.BlockType.HighlightTableBlock]: blocks_1.HighlightTableBlock,
|
|
42
|
+
[models_1.BlockType.MiniCaseBlock]: blocks_1.MiniCaseBlock,
|
|
42
43
|
[models_1.BlockType.LinkTableBlock]: blocks_1.LinkTableBlock,
|
|
43
44
|
[models_1.BlockType.ServicesBlock]: blocks_1.ServicesBlock,
|
|
44
45
|
[models_1.BlockType.QuotesBlock]: blocks_1.QuotesBlock,
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MiniCaseContext = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const react_1 = tslib_1.__importDefault(require("react"));
|
|
6
|
+
exports.MiniCaseContext = react_1.default.createContext({});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './MiniCaseContext';
|