@gravity-ui/page-constructor 1.7.0-alpha.1 → 1.7.0-alpha.10
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/README.md +58 -36
- package/build/cjs/components/OverflowScroller/OverflowScroller.css +2 -0
- package/build/cjs/components/RouterLink/RouterLink.d.ts +1 -1
- package/build/cjs/components/index.d.ts +1 -0
- package/build/cjs/components/index.js +39 -40
- package/build/cjs/components/navigation/components/Header/Header.css +19 -19
- package/build/cjs/components/navigation/components/Header/Header.d.ts +2 -22
- package/build/cjs/components/navigation/components/Header/Header.js +40 -70
- package/build/cjs/components/navigation/components/Logo/Logo.css +13 -8
- package/build/cjs/components/navigation/components/Logo/Logo.d.ts +1 -1
- package/build/cjs/components/navigation/components/Logo/Logo.js +11 -7
- package/build/cjs/components/navigation/components/MobileNavigation/MobileNavigation.css +17 -11
- package/build/cjs/components/navigation/components/MobileNavigation/MobileNavigation.js +3 -3
- package/build/cjs/components/navigation/components/Navigation/Navigation.css +8 -8
- package/build/cjs/components/navigation/components/Navigation/Navigation.d.ts +9 -2
- package/build/cjs/components/navigation/components/Navigation/Navigation.js +18 -19
- package/build/cjs/components/navigation/components/NavigationItem/NavigationItem.css +9 -9
- package/build/cjs/components/navigation/components/NavigationItem/NavigationItem.d.ts +1 -3
- package/build/cjs/components/navigation/components/NavigationItem/NavigationItem.js +27 -15
- package/build/cjs/components/navigation/components/NavigationPopup/NavigationPopup.css +4 -4
- package/build/cjs/components/navigation/components/NavigationPopup/NavigationPopup.d.ts +4 -18
- package/build/cjs/components/navigation/components/NavigationPopup/NavigationPopup.js +34 -46
- package/build/cjs/components/navigation/components/SocialIcon/SocialIcon.css +3 -3
- package/build/cjs/components/navigation/components/SocialIcon/SocialIcon.d.ts +1 -1
- package/build/cjs/components/navigation/components/SocialIcon/SocialIcon.js +8 -4
- package/build/cjs/components/navigation/components/index.d.ts +7 -0
- package/build/cjs/components/navigation/components/index.js +20 -0
- package/build/cjs/components/navigation/containers/Layout/Layout.css +10 -0
- package/build/cjs/components/navigation/containers/Layout/Layout.d.ts +8 -0
- package/build/cjs/components/navigation/containers/Layout/Layout.js +11 -0
- package/build/cjs/containers/PageConstructor/PageConstructor.d.ts +3 -4
- package/build/cjs/containers/PageConstructor/PageConstructor.js +11 -11
- package/build/cjs/models/index.d.ts +1 -0
- package/build/cjs/models/index.js +1 -0
- package/build/cjs/models/navigation.d.ts +8 -5
- package/build/esm/components/OverflowScroller/OverflowScroller.css +2 -0
- package/build/esm/components/RouterLink/RouterLink.d.ts +1 -1
- package/build/esm/components/index.d.ts +1 -0
- package/build/esm/components/index.js +1 -0
- package/build/esm/components/navigation/components/Header/Header.css +19 -19
- package/build/esm/components/navigation/components/Header/Header.d.ts +2 -22
- package/build/esm/components/navigation/components/Header/Header.js +37 -69
- package/build/esm/components/navigation/components/Logo/Logo.css +13 -8
- package/build/esm/components/navigation/components/Logo/Logo.d.ts +1 -1
- package/build/esm/components/navigation/components/Logo/Logo.js +10 -6
- package/build/esm/components/navigation/components/MobileNavigation/MobileNavigation.css +17 -11
- package/build/esm/components/navigation/components/MobileNavigation/MobileNavigation.js +2 -2
- package/build/esm/components/navigation/components/Navigation/Navigation.css +8 -8
- package/build/esm/components/navigation/components/Navigation/Navigation.d.ts +9 -2
- package/build/esm/components/navigation/components/Navigation/Navigation.js +17 -18
- package/build/esm/components/navigation/components/NavigationItem/NavigationItem.css +9 -9
- package/build/esm/components/navigation/components/NavigationItem/NavigationItem.d.ts +1 -3
- package/build/esm/components/navigation/components/NavigationItem/NavigationItem.js +23 -11
- package/build/esm/components/navigation/components/NavigationPopup/NavigationPopup.css +4 -4
- package/build/esm/components/navigation/components/NavigationPopup/NavigationPopup.d.ts +4 -18
- package/build/esm/components/navigation/components/NavigationPopup/NavigationPopup.js +32 -45
- package/build/esm/components/navigation/components/SocialIcon/SocialIcon.css +3 -3
- package/build/esm/components/navigation/components/SocialIcon/SocialIcon.d.ts +1 -1
- package/build/esm/components/navigation/components/SocialIcon/SocialIcon.js +7 -3
- package/build/esm/components/navigation/components/index.d.ts +7 -0
- package/build/esm/components/navigation/components/index.js +7 -0
- package/build/esm/components/navigation/containers/Layout/Layout.css +10 -0
- package/build/esm/components/navigation/containers/Layout/Layout.d.ts +9 -0
- package/build/esm/components/navigation/containers/Layout/Layout.js +9 -0
- package/build/esm/containers/PageConstructor/PageConstructor.d.ts +3 -4
- package/build/esm/containers/PageConstructor/PageConstructor.js +11 -11
- package/build/esm/models/index.d.ts +1 -0
- package/build/esm/models/index.js +1 -0
- package/build/esm/models/navigation.d.ts +8 -5
- package/package.json +1 -4
- package/server/models/index.d.ts +1 -0
- package/server/models/index.js +1 -0
- package/server/models/navigation.d.ts +62 -0
- package/server/models/navigation.js +10 -0
package/README.md
CHANGED
|
@@ -32,59 +32,81 @@ const Page: WithChildren<PageProps> = ({content}) => (
|
|
|
32
32
|
|
|
33
33
|
```typescript
|
|
34
34
|
interface PageConstructorProps {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
content: PageContent; //Blocks data in JSON format.
|
|
36
|
+
shouldRenderBlock?: ShouldRenderBlock; // A function that is invoked when rendering each block and lets you set conditions for its display.
|
|
37
|
+
custom?: Custom; //Custom blocks (see `Customization`).
|
|
38
|
+
renderMenu?: () => React.ReactNode; //A function that renders the page menu with navigation (we plan to add rendering for the default menu version).
|
|
39
|
+
navigation?: NavigationData; // Navigation data for using navigation component in JSON format
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
interface PageConstructorProviderProps {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
43
|
+
isMobile?: boolean; //A flag indicating that the code is executed in mobile mode.
|
|
44
|
+
locale?: LocaleContextProps; //Info about the language and domain (used when generating and formatting links).
|
|
45
|
+
location?: Location; //API of the browser or router history, the page URL.
|
|
46
|
+
metrika?: Metrika; //Functions for sending analytics
|
|
47
|
+
ssrConfig?: SSR; //A flag indicating that the code is run on the server size.
|
|
48
|
+
theme?: 'light' | 'dark'; //Theme to render the page with.
|
|
48
49
|
}
|
|
49
50
|
|
|
50
51
|
export interface PageContent extends Animatable {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
blocks: Block[];
|
|
53
|
+
menu?: Menu;
|
|
54
|
+
background?: MediaProps;
|
|
55
|
+
footnotes?: string[];
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
interface Custom {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
blocks?: CustomItems;
|
|
60
|
+
subBlocks?: CustomItems;
|
|
61
|
+
headers?: CustomItems;
|
|
62
|
+
loadable?: LoadableConfig;
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
type ShouldRenderBlock = (block: Block, blockKey: string) => Boolean;
|
|
65
66
|
|
|
66
|
-
interface Location
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
interface Locale = {
|
|
75
|
-
lang?: Lang;
|
|
76
|
-
tld?: string;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
interface SSR = {
|
|
80
|
-
isServer?: boolean;
|
|
67
|
+
interface Location {
|
|
68
|
+
history?: History;
|
|
69
|
+
search?: string;
|
|
70
|
+
hash?: string;
|
|
71
|
+
pathname?: string;
|
|
72
|
+
hostname?: string;
|
|
81
73
|
}
|
|
82
74
|
|
|
83
|
-
interface
|
|
84
|
-
|
|
85
|
-
|
|
75
|
+
interface Locale {
|
|
76
|
+
lang?: Lang;
|
|
77
|
+
tld?: string;
|
|
86
78
|
}
|
|
87
79
|
|
|
80
|
+
interface SSR {
|
|
81
|
+
isServer?: boolean;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
interface Metrika {
|
|
85
|
+
metrika?: any;
|
|
86
|
+
pixel?: any;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
interface NavigationData {
|
|
90
|
+
logo: NavigationLogo;
|
|
91
|
+
header: HeaderData;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
interface NavigationLogo {
|
|
95
|
+
icon: ImageProps;
|
|
96
|
+
text?: string;
|
|
97
|
+
url?: string;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
interface HeaderData {
|
|
101
|
+
leftItems: NavigationItem[];
|
|
102
|
+
rightItems?: NavigationItem[];
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
interface NavigationLogo {
|
|
106
|
+
icon: ImageProps;
|
|
107
|
+
text?: string;
|
|
108
|
+
url?: string;
|
|
109
|
+
}
|
|
88
110
|
```
|
|
89
111
|
|
|
90
112
|
### Custom blocks
|
|
@@ -9,10 +9,12 @@
|
|
|
9
9
|
.pc-overflow-scroller__scroller {
|
|
10
10
|
position: absolute;
|
|
11
11
|
z-index: 10;
|
|
12
|
+
top: 0;
|
|
12
13
|
display: flex;
|
|
13
14
|
justify-content: flex-end;
|
|
14
15
|
align-items: center;
|
|
15
16
|
width: 32px;
|
|
17
|
+
height: calc(100% - 1px);
|
|
16
18
|
cursor: pointer;
|
|
17
19
|
color: var(--yc-color-text-secondary);
|
|
18
20
|
background: linear-gradient(to left, var(--yc-color-base-background) 70%, var(--pc-transparent) 100%) no-repeat;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { WithChildren } from '../../models';
|
|
2
2
|
export interface RouterLinkProps {
|
|
3
3
|
href: string;
|
|
4
|
-
[key: string]:
|
|
4
|
+
[key: string]: unknown;
|
|
5
5
|
}
|
|
6
6
|
declare const RouterLink: ({ href, children }: WithChildren<RouterLinkProps>) => JSX.Element;
|
|
7
7
|
export default RouterLink;
|
|
@@ -34,4 +34,5 @@ export { default as Author } from './Author/Author';
|
|
|
34
34
|
export { default as RouterLink } from './RouterLink/RouterLink';
|
|
35
35
|
export { default as HTML } from './HTML/HTML';
|
|
36
36
|
export { default as Header } from './navigation/components/Header/Header';
|
|
37
|
+
export * as Navigation from './navigation/components/index';
|
|
37
38
|
export type { RouterLinkProps } from './RouterLink/RouterLink';
|
|
@@ -1,78 +1,77 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.Header = exports.HTML = exports.RouterLink = exports.Author = exports.OverflowScroller = exports.Control = exports.YandexForm = exports.YFMWrapper = exports.VideoBlock = exports.UnpublishedLabel = exports.ToggleArrow = exports.Title = exports.Table = exports.ReactPlayer = exports.OutsideClick = exports.Media = exports.Links = exports.Link = exports.Image = exports.HeightCalculator = exports.HeaderBreadcrumbs = exports.FullWidthBackground = exports.FullscreenImage = exports.Foldable = exports.FileLink = exports.ErrorWrapper = exports.CardBase = exports.Button = exports.BlockHeader = exports.BlockBase = exports.BalancedMasonry = exports.BackLink = exports.BackgroundMedia = exports.BackgroundImage = exports.AnimateBlock = exports.Anchor = void 0;
|
|
3
|
+
exports.Navigation = exports.Header = exports.HTML = exports.RouterLink = exports.Author = exports.OverflowScroller = exports.Control = exports.YandexForm = exports.YFMWrapper = exports.VideoBlock = exports.UnpublishedLabel = exports.ToggleArrow = exports.Title = exports.Table = exports.ReactPlayer = exports.OutsideClick = exports.Media = exports.Links = exports.Link = exports.Image = exports.HeightCalculator = exports.HeaderBreadcrumbs = exports.FullWidthBackground = exports.FullscreenImage = exports.Foldable = exports.FileLink = exports.ErrorWrapper = exports.CardBase = exports.Button = exports.BlockHeader = exports.BlockBase = exports.BalancedMasonry = exports.BackLink = exports.BackgroundMedia = exports.BackgroundImage = exports.AnimateBlock = exports.Anchor = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
7
5
|
var Anchor_1 = require("./Anchor/Anchor");
|
|
8
|
-
Object.defineProperty(exports, "Anchor", { enumerable: true, get: function () { return __importDefault(Anchor_1).default; } });
|
|
6
|
+
Object.defineProperty(exports, "Anchor", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Anchor_1).default; } });
|
|
9
7
|
var AnimateBlock_1 = require("./AnimateBlock/AnimateBlock");
|
|
10
|
-
Object.defineProperty(exports, "AnimateBlock", { enumerable: true, get: function () { return __importDefault(AnimateBlock_1).default; } });
|
|
8
|
+
Object.defineProperty(exports, "AnimateBlock", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(AnimateBlock_1).default; } });
|
|
11
9
|
var BackgroundImage_1 = require("./BackgroundImage/BackgroundImage");
|
|
12
|
-
Object.defineProperty(exports, "BackgroundImage", { enumerable: true, get: function () { return __importDefault(BackgroundImage_1).default; } });
|
|
10
|
+
Object.defineProperty(exports, "BackgroundImage", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(BackgroundImage_1).default; } });
|
|
13
11
|
var BackgroundMedia_1 = require("./BackgroundMedia/BackgroundMedia");
|
|
14
|
-
Object.defineProperty(exports, "BackgroundMedia", { enumerable: true, get: function () { return __importDefault(BackgroundMedia_1).default; } });
|
|
12
|
+
Object.defineProperty(exports, "BackgroundMedia", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(BackgroundMedia_1).default; } });
|
|
15
13
|
var BackLink_1 = require("./BackLink/BackLink");
|
|
16
|
-
Object.defineProperty(exports, "BackLink", { enumerable: true, get: function () { return __importDefault(BackLink_1).default; } });
|
|
14
|
+
Object.defineProperty(exports, "BackLink", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(BackLink_1).default; } });
|
|
17
15
|
var BalancedMasonry_1 = require("./BalancedMasonry/BalancedMasonry");
|
|
18
|
-
Object.defineProperty(exports, "BalancedMasonry", { enumerable: true, get: function () { return __importDefault(BalancedMasonry_1).default; } });
|
|
16
|
+
Object.defineProperty(exports, "BalancedMasonry", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(BalancedMasonry_1).default; } });
|
|
19
17
|
var BlockBase_1 = require("./BlockBase/BlockBase");
|
|
20
|
-
Object.defineProperty(exports, "BlockBase", { enumerable: true, get: function () { return __importDefault(BlockBase_1).default; } });
|
|
18
|
+
Object.defineProperty(exports, "BlockBase", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(BlockBase_1).default; } });
|
|
21
19
|
var BlockHeader_1 = require("./BlockHeader/BlockHeader");
|
|
22
|
-
Object.defineProperty(exports, "BlockHeader", { enumerable: true, get: function () { return __importDefault(BlockHeader_1).default; } });
|
|
20
|
+
Object.defineProperty(exports, "BlockHeader", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(BlockHeader_1).default; } });
|
|
23
21
|
var Button_1 = require("./Button/Button");
|
|
24
|
-
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return __importDefault(Button_1).default; } });
|
|
22
|
+
Object.defineProperty(exports, "Button", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Button_1).default; } });
|
|
25
23
|
var CardBase_1 = require("./CardBase/CardBase");
|
|
26
|
-
Object.defineProperty(exports, "CardBase", { enumerable: true, get: function () { return __importDefault(CardBase_1).default; } });
|
|
24
|
+
Object.defineProperty(exports, "CardBase", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(CardBase_1).default; } });
|
|
27
25
|
var ErrorWrapper_1 = require("./ErrorWrapper/ErrorWrapper");
|
|
28
|
-
Object.defineProperty(exports, "ErrorWrapper", { enumerable: true, get: function () { return __importDefault(ErrorWrapper_1).default; } });
|
|
26
|
+
Object.defineProperty(exports, "ErrorWrapper", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(ErrorWrapper_1).default; } });
|
|
29
27
|
var FileLink_1 = require("./FileLink/FileLink");
|
|
30
|
-
Object.defineProperty(exports, "FileLink", { enumerable: true, get: function () { return __importDefault(FileLink_1).default; } });
|
|
28
|
+
Object.defineProperty(exports, "FileLink", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(FileLink_1).default; } });
|
|
31
29
|
var Foldable_1 = require("./Foldable/Foldable");
|
|
32
|
-
Object.defineProperty(exports, "Foldable", { enumerable: true, get: function () { return __importDefault(Foldable_1).default; } });
|
|
30
|
+
Object.defineProperty(exports, "Foldable", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Foldable_1).default; } });
|
|
33
31
|
var FullscreenImage_1 = require("./FullscreenImage/FullscreenImage");
|
|
34
|
-
Object.defineProperty(exports, "FullscreenImage", { enumerable: true, get: function () { return __importDefault(FullscreenImage_1).default; } });
|
|
32
|
+
Object.defineProperty(exports, "FullscreenImage", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(FullscreenImage_1).default; } });
|
|
35
33
|
var FullWidthBackground_1 = require("./FullWidthBackground/FullWidthBackground");
|
|
36
|
-
Object.defineProperty(exports, "FullWidthBackground", { enumerable: true, get: function () { return __importDefault(FullWidthBackground_1).default; } });
|
|
34
|
+
Object.defineProperty(exports, "FullWidthBackground", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(FullWidthBackground_1).default; } });
|
|
37
35
|
var HeaderBreadcrumbs_1 = require("./HeaderBreadcrumbs/HeaderBreadcrumbs");
|
|
38
|
-
Object.defineProperty(exports, "HeaderBreadcrumbs", { enumerable: true, get: function () { return __importDefault(HeaderBreadcrumbs_1).default; } });
|
|
36
|
+
Object.defineProperty(exports, "HeaderBreadcrumbs", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(HeaderBreadcrumbs_1).default; } });
|
|
39
37
|
var HeightCalculator_1 = require("./HeightCalculator/HeightCalculator");
|
|
40
|
-
Object.defineProperty(exports, "HeightCalculator", { enumerable: true, get: function () { return __importDefault(HeightCalculator_1).default; } });
|
|
38
|
+
Object.defineProperty(exports, "HeightCalculator", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(HeightCalculator_1).default; } });
|
|
41
39
|
var Image_1 = require("./Image/Image");
|
|
42
|
-
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return __importDefault(Image_1).default; } });
|
|
40
|
+
Object.defineProperty(exports, "Image", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Image_1).default; } });
|
|
43
41
|
var Link_1 = require("./Link/Link");
|
|
44
|
-
Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return __importDefault(Link_1).default; } });
|
|
42
|
+
Object.defineProperty(exports, "Link", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Link_1).default; } });
|
|
45
43
|
var Links_1 = require("./Link/Links");
|
|
46
|
-
Object.defineProperty(exports, "Links", { enumerable: true, get: function () { return __importDefault(Links_1).default; } });
|
|
44
|
+
Object.defineProperty(exports, "Links", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Links_1).default; } });
|
|
47
45
|
var Media_1 = require("./Media/Media");
|
|
48
|
-
Object.defineProperty(exports, "Media", { enumerable: true, get: function () { return __importDefault(Media_1).default; } });
|
|
46
|
+
Object.defineProperty(exports, "Media", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Media_1).default; } });
|
|
49
47
|
var OutsideClick_1 = require("./OutsideClick/OutsideClick");
|
|
50
|
-
Object.defineProperty(exports, "OutsideClick", { enumerable: true, get: function () { return __importDefault(OutsideClick_1).default; } });
|
|
48
|
+
Object.defineProperty(exports, "OutsideClick", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(OutsideClick_1).default; } });
|
|
51
49
|
var ReactPlayer_1 = require("./ReactPlayer/ReactPlayer");
|
|
52
|
-
Object.defineProperty(exports, "ReactPlayer", { enumerable: true, get: function () { return __importDefault(ReactPlayer_1).default; } });
|
|
50
|
+
Object.defineProperty(exports, "ReactPlayer", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(ReactPlayer_1).default; } });
|
|
53
51
|
var Table_1 = require("./Table/Table");
|
|
54
|
-
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return __importDefault(Table_1).default; } });
|
|
52
|
+
Object.defineProperty(exports, "Table", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Table_1).default; } });
|
|
55
53
|
var Title_1 = require("./Title/Title");
|
|
56
|
-
Object.defineProperty(exports, "Title", { enumerable: true, get: function () { return __importDefault(Title_1).default; } });
|
|
54
|
+
Object.defineProperty(exports, "Title", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Title_1).default; } });
|
|
57
55
|
var ToggleArrow_1 = require("./ToggleArrow/ToggleArrow");
|
|
58
|
-
Object.defineProperty(exports, "ToggleArrow", { enumerable: true, get: function () { return __importDefault(ToggleArrow_1).default; } });
|
|
56
|
+
Object.defineProperty(exports, "ToggleArrow", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(ToggleArrow_1).default; } });
|
|
59
57
|
var UnpublishedLabel_1 = require("./UnpublishedLabel/UnpublishedLabel");
|
|
60
|
-
Object.defineProperty(exports, "UnpublishedLabel", { enumerable: true, get: function () { return __importDefault(UnpublishedLabel_1).default; } });
|
|
58
|
+
Object.defineProperty(exports, "UnpublishedLabel", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(UnpublishedLabel_1).default; } });
|
|
61
59
|
var VideoBlock_1 = require("./VideoBlock/VideoBlock");
|
|
62
|
-
Object.defineProperty(exports, "VideoBlock", { enumerable: true, get: function () { return __importDefault(VideoBlock_1).default; } });
|
|
60
|
+
Object.defineProperty(exports, "VideoBlock", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(VideoBlock_1).default; } });
|
|
63
61
|
var YFMWrapper_1 = require("./YFMWrapper/YFMWrapper");
|
|
64
|
-
Object.defineProperty(exports, "YFMWrapper", { enumerable: true, get: function () { return __importDefault(YFMWrapper_1).default; } });
|
|
62
|
+
Object.defineProperty(exports, "YFMWrapper", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(YFMWrapper_1).default; } });
|
|
65
63
|
var YandexForm_1 = require("./YandexForm/YandexForm");
|
|
66
|
-
Object.defineProperty(exports, "YandexForm", { enumerable: true, get: function () { return __importDefault(YandexForm_1).default; } });
|
|
64
|
+
Object.defineProperty(exports, "YandexForm", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(YandexForm_1).default; } });
|
|
67
65
|
var Control_1 = require("./Control/Control");
|
|
68
|
-
Object.defineProperty(exports, "Control", { enumerable: true, get: function () { return __importDefault(Control_1).default; } });
|
|
66
|
+
Object.defineProperty(exports, "Control", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Control_1).default; } });
|
|
69
67
|
var OverflowScroller_1 = require("./OverflowScroller/OverflowScroller");
|
|
70
|
-
Object.defineProperty(exports, "OverflowScroller", { enumerable: true, get: function () { return __importDefault(OverflowScroller_1).default; } });
|
|
68
|
+
Object.defineProperty(exports, "OverflowScroller", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(OverflowScroller_1).default; } });
|
|
71
69
|
var Author_1 = require("./Author/Author");
|
|
72
|
-
Object.defineProperty(exports, "Author", { enumerable: true, get: function () { return __importDefault(Author_1).default; } });
|
|
70
|
+
Object.defineProperty(exports, "Author", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Author_1).default; } });
|
|
73
71
|
var RouterLink_1 = require("./RouterLink/RouterLink");
|
|
74
|
-
Object.defineProperty(exports, "RouterLink", { enumerable: true, get: function () { return __importDefault(RouterLink_1).default; } });
|
|
72
|
+
Object.defineProperty(exports, "RouterLink", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(RouterLink_1).default; } });
|
|
75
73
|
var HTML_1 = require("./HTML/HTML");
|
|
76
|
-
Object.defineProperty(exports, "HTML", { enumerable: true, get: function () { return __importDefault(HTML_1).default; } });
|
|
74
|
+
Object.defineProperty(exports, "HTML", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(HTML_1).default; } });
|
|
77
75
|
var Header_1 = require("./navigation/components/Header/Header");
|
|
78
|
-
Object.defineProperty(exports, "Header", { enumerable: true, get: function () { return __importDefault(Header_1).default; } });
|
|
76
|
+
Object.defineProperty(exports, "Header", { enumerable: true, get: function () { return (0, tslib_1.__importDefault)(Header_1).default; } });
|
|
77
|
+
exports.Navigation = (0, tslib_1.__importStar)(require("./navigation/components/index"));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/* use this for style redefinitions to awoid problems with
|
|
2
2
|
unpredictable css rules order in build */
|
|
3
|
-
.header {
|
|
3
|
+
.pc-header {
|
|
4
4
|
position: sticky;
|
|
5
5
|
z-index: 98;
|
|
6
6
|
top: 0;
|
|
@@ -9,39 +9,39 @@ unpredictable css rules order in build */
|
|
|
9
9
|
align-items: center;
|
|
10
10
|
height: var(--header-height);
|
|
11
11
|
background-color: var(--yc-color-base-background);
|
|
12
|
-
box-shadow: inset
|
|
12
|
+
box-shadow: inset 0 -1px 0 var(--yc-color-line-generic);
|
|
13
13
|
}
|
|
14
|
-
.header__wrapper {
|
|
14
|
+
.pc-header__wrapper {
|
|
15
15
|
display: flex;
|
|
16
16
|
justify-content: space-between;
|
|
17
17
|
align-items: center;
|
|
18
18
|
height: var(--header-height);
|
|
19
19
|
}
|
|
20
20
|
@media (min-width: 769px) {
|
|
21
|
-
.header__mobile-menu-button {
|
|
21
|
+
.pc-header__mobile-menu-button {
|
|
22
22
|
display: none;
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
|
-
.header__navigation, .header__left, .header__right {
|
|
25
|
+
.pc-header__navigation, .pc-header__left, .pc-header__right {
|
|
26
26
|
display: flex;
|
|
27
27
|
align-items: center;
|
|
28
28
|
}
|
|
29
|
-
.header__navigation {
|
|
29
|
+
.pc-header__navigation {
|
|
30
30
|
position: relative;
|
|
31
|
+
margin-right: 20px;
|
|
31
32
|
flex: 1 0 0;
|
|
32
33
|
justify-content: flex-start;
|
|
33
|
-
margin-right: 20px;
|
|
34
34
|
}
|
|
35
35
|
@media (max-width: 768px) {
|
|
36
|
-
.header__navigation {
|
|
36
|
+
.pc-header__navigation {
|
|
37
37
|
display: none;
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
|
-
.header__right {
|
|
40
|
+
.pc-header__right {
|
|
41
41
|
flex: 0;
|
|
42
42
|
justify-content: flex-end;
|
|
43
43
|
}
|
|
44
|
-
.header__navigation-container {
|
|
44
|
+
.pc-header__navigation-container {
|
|
45
45
|
display: flex;
|
|
46
46
|
overflow-x: hidden;
|
|
47
47
|
flex: 1 0 0;
|
|
@@ -49,37 +49,37 @@ unpredictable css rules order in build */
|
|
|
49
49
|
align-items: center;
|
|
50
50
|
margin-right: 20px;
|
|
51
51
|
}
|
|
52
|
-
.header__buttons {
|
|
52
|
+
.pc-header__buttons {
|
|
53
53
|
display: flex;
|
|
54
54
|
}
|
|
55
55
|
@media (max-width: 768px) {
|
|
56
|
-
.header__buttons {
|
|
56
|
+
.pc-header__buttons {
|
|
57
57
|
display: none;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
.header__buttons > *:not(:last-child) {
|
|
60
|
+
.pc-header__buttons > *:not(:last-child) {
|
|
61
61
|
margin-right: 16px;
|
|
62
62
|
}
|
|
63
|
-
.header__button {
|
|
63
|
+
.pc-header__button {
|
|
64
64
|
margin-top: 0;
|
|
65
65
|
}
|
|
66
|
-
.header__logo {
|
|
66
|
+
.pc-header__logo {
|
|
67
67
|
margin: 0 32px 0 0;
|
|
68
68
|
cursor: pointer;
|
|
69
69
|
}
|
|
70
70
|
@media (max-width: 768px) {
|
|
71
|
-
.header__navigation-container {
|
|
71
|
+
.pc-header__navigation-container {
|
|
72
72
|
justify-content: flex-end;
|
|
73
73
|
}
|
|
74
|
-
.header__left {
|
|
74
|
+
.pc-header__left {
|
|
75
75
|
flex: 1 0 0;
|
|
76
76
|
}
|
|
77
77
|
}
|
|
78
78
|
@media (max-width: 576px) {
|
|
79
|
-
.header__navigation-container {
|
|
79
|
+
.pc-header__navigation-container {
|
|
80
80
|
margin-right: 12px;
|
|
81
81
|
}
|
|
82
|
-
.header__logo {
|
|
82
|
+
.pc-header__logo {
|
|
83
83
|
margin-right: 0;
|
|
84
84
|
}
|
|
85
85
|
}
|
|
@@ -1,28 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { HeaderData, NavigationLogo } from '../../../../models
|
|
2
|
+
import { HeaderData, NavigationLogo } from '../../../../models';
|
|
3
3
|
export interface HeaderProps {
|
|
4
4
|
logo: NavigationLogo;
|
|
5
5
|
data: HeaderData;
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
isSidebarOpened: boolean;
|
|
9
|
-
activeItemIndex: number;
|
|
10
|
-
}
|
|
11
|
-
declare class Header extends React.Component<HeaderProps, HeaderState> {
|
|
12
|
-
ref: React.RefObject<unknown>;
|
|
13
|
-
state: {
|
|
14
|
-
isSidebarOpened: boolean;
|
|
15
|
-
activeItemIndex: number;
|
|
16
|
-
};
|
|
17
|
-
render(): JSX.Element;
|
|
18
|
-
private renderLeft;
|
|
19
|
-
private renderLogo;
|
|
20
|
-
private renderRight;
|
|
21
|
-
private renderRightItems;
|
|
22
|
-
private renderMobileMenuButton;
|
|
23
|
-
private renderMobileNavigation;
|
|
24
|
-
private onActiveItemChange;
|
|
25
|
-
private onSidebarOpenedChange;
|
|
26
|
-
private hideSidebar;
|
|
27
|
-
}
|
|
7
|
+
export declare const Header: React.FC<HeaderProps>;
|
|
28
8
|
export default Header;
|
|
@@ -1,81 +1,51 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Header = void 0;
|
|
3
4
|
const tslib_1 = require("tslib");
|
|
4
5
|
const react_1 = (0, tslib_1.__importStar)(require("react"));
|
|
5
|
-
const
|
|
6
|
+
const utils_1 = require("../../../../utils");
|
|
6
7
|
const grid_1 = require("../../../../grid");
|
|
7
8
|
const OutsideClick_1 = (0, tslib_1.__importDefault)(require("../../../OutsideClick/OutsideClick"));
|
|
8
9
|
const Control_1 = (0, tslib_1.__importDefault)(require("../../../Control/Control"));
|
|
9
|
-
const Logo_1 = (0, tslib_1.__importDefault)(require("../Logo/Logo"));
|
|
10
10
|
const Navigation_1 = (0, tslib_1.__importDefault)(require("../Navigation/Navigation"));
|
|
11
11
|
const MobileNavigation_1 = (0, tslib_1.__importDefault)(require("../MobileNavigation/MobileNavigation"));
|
|
12
12
|
const NavigationItem_1 = (0, tslib_1.__importDefault)(require("../NavigationItem/NavigationItem"));
|
|
13
|
+
const Logo_1 = (0, tslib_1.__importDefault)(require("../Logo/Logo"));
|
|
13
14
|
const icons_1 = require("../../../../icons");
|
|
14
|
-
const b = (0,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
if (!logo) {
|
|
52
|
-
return null;
|
|
53
|
-
}
|
|
54
|
-
return (react_1.default.createElement("div", { className: b('left') },
|
|
55
|
-
react_1.default.createElement(Logo_1.default, Object.assign({}, logo, { className: b('logo') }))));
|
|
56
|
-
}
|
|
57
|
-
renderRight() {
|
|
58
|
-
return (react_1.default.createElement("div", { className: b('right') },
|
|
59
|
-
this.renderMobileMenuButton(),
|
|
60
|
-
this.renderRightItems()));
|
|
61
|
-
}
|
|
62
|
-
renderRightItems() {
|
|
63
|
-
const { rightItems } = this.props.data;
|
|
64
|
-
return (rightItems && (react_1.default.createElement("div", { className: b('buttons') }, rightItems.map((button) => (react_1.default.createElement(NavigationItem_1.default, { key: button.text, data: button, className: b('button') }))))));
|
|
65
|
-
}
|
|
66
|
-
renderMobileMenuButton() {
|
|
67
|
-
const { isSidebarOpened } = this.state;
|
|
68
|
-
const iconProps = { icon: isSidebarOpened ? icons_1.NavigationClose : icons_1.NavigationOpen, iconSize: 36 };
|
|
69
|
-
return (react_1.default.createElement(Control_1.default, Object.assign({ className: b('mobile-menu-button'), onClick: (e) => {
|
|
70
|
-
e.stopPropagation();
|
|
71
|
-
this.onSidebarOpenedChange(!isSidebarOpened);
|
|
72
|
-
}, size: "l" }, iconProps)));
|
|
73
|
-
}
|
|
74
|
-
renderMobileNavigation() {
|
|
75
|
-
const { leftItems, rightItems } = this.props.data;
|
|
76
|
-
const { isSidebarOpened, activeItemIndex } = this.state;
|
|
77
|
-
return (react_1.default.createElement(OutsideClick_1.default, { onOutsideClick: () => this.onSidebarOpenedChange(false) },
|
|
78
|
-
react_1.default.createElement(MobileNavigation_1.default, { topItems: leftItems, bottomItems: rightItems, isOpened: isSidebarOpened, activeItemIndex: activeItemIndex, onActiveItemChange: this.onActiveItemChange, onClose: this.hideSidebar })));
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
exports.default = Header;
|
|
15
|
+
const b = (0, utils_1.block)('header');
|
|
16
|
+
const MobileMenuButton = ({ isSidebarOpened, onSidebarOpenedChange, }) => {
|
|
17
|
+
const iconProps = { icon: isSidebarOpened ? icons_1.NavigationClose : icons_1.NavigationOpen, iconSize: 36 };
|
|
18
|
+
return (react_1.default.createElement(Control_1.default, Object.assign({ className: b('mobile-menu-button'), onClick: (e) => {
|
|
19
|
+
e.stopPropagation();
|
|
20
|
+
onSidebarOpenedChange(!isSidebarOpened);
|
|
21
|
+
}, size: "l" }, iconProps)));
|
|
22
|
+
};
|
|
23
|
+
const Header = ({ data, logo }) => {
|
|
24
|
+
const { leftItems, rightItems } = data;
|
|
25
|
+
const [isSidebarOpened, setIsSidebarOpened] = (0, react_1.useState)(false);
|
|
26
|
+
const [activeItemIndex, setActiveItemIndex] = (0, react_1.useState)(-1);
|
|
27
|
+
const onActiveItemChange = (0, react_1.useCallback)((index) => {
|
|
28
|
+
setActiveItemIndex(index);
|
|
29
|
+
}, []);
|
|
30
|
+
const onSidebarOpenedChange = (0, react_1.useCallback)((isOpen) => {
|
|
31
|
+
setIsSidebarOpened(isOpen);
|
|
32
|
+
}, []);
|
|
33
|
+
const hideSidebar = (0, react_1.useCallback)(() => {
|
|
34
|
+
setIsSidebarOpened(false);
|
|
35
|
+
}, []);
|
|
36
|
+
return (react_1.default.createElement(grid_1.Grid, { className: b() },
|
|
37
|
+
react_1.default.createElement(grid_1.Row, null,
|
|
38
|
+
react_1.default.createElement(grid_1.Col, null,
|
|
39
|
+
react_1.default.createElement("header", { className: b('wrapper') },
|
|
40
|
+
logo && (react_1.default.createElement("div", { className: b('left') },
|
|
41
|
+
react_1.default.createElement(Logo_1.default, Object.assign({}, logo, { className: b('logo') })))),
|
|
42
|
+
react_1.default.createElement("div", { className: b('navigation-container') },
|
|
43
|
+
react_1.default.createElement(Navigation_1.default, { className: b('navigation'), links: leftItems, activeItemIndex: activeItemIndex, onActiveItemChange: onActiveItemChange })),
|
|
44
|
+
react_1.default.createElement("div", { className: b('right') },
|
|
45
|
+
react_1.default.createElement(MobileMenuButton, { isSidebarOpened: isSidebarOpened, onSidebarOpenedChange: onSidebarOpenedChange }),
|
|
46
|
+
rightItems && (react_1.default.createElement("div", { className: b('buttons') }, rightItems.map((button) => (react_1.default.createElement(NavigationItem_1.default, { key: button.text, data: button, className: b('button') })))))),
|
|
47
|
+
react_1.default.createElement(OutsideClick_1.default, { onOutsideClick: () => onSidebarOpenedChange(false) },
|
|
48
|
+
react_1.default.createElement(MobileNavigation_1.default, { topItems: leftItems, bottomItems: rightItems, isOpened: isSidebarOpened, activeItemIndex: activeItemIndex, onActiveItemChange: onActiveItemChange, onClose: hideSidebar })))))));
|
|
49
|
+
};
|
|
50
|
+
exports.Header = Header;
|
|
51
|
+
exports.default = exports.Header;
|
|
@@ -1,18 +1,23 @@
|
|
|
1
|
+
.pc-logo {
|
|
2
|
+
margin: 0;
|
|
3
|
+
}
|
|
4
|
+
|
|
1
5
|
/* use this for style redefinitions to awoid problems with
|
|
2
6
|
unpredictable css rules order in build */
|
|
3
|
-
.logo {
|
|
7
|
+
.pc-logo {
|
|
4
8
|
display: flex;
|
|
5
9
|
align-items: center;
|
|
6
|
-
font-weight:
|
|
7
|
-
font-size: var(--yc-text-header-
|
|
8
|
-
line-height: var(--yc-text-header-
|
|
10
|
+
font-weight: var(--yc-text-accent-font-weight);
|
|
11
|
+
font-size: var(--yc-text-header-1-font-size);
|
|
12
|
+
line-height: var(--yc-text-header-1-line-height);
|
|
13
|
+
color: var(--pc-text-header-color);
|
|
14
|
+
font-weight: var(--yc-text-accent-font-weight);
|
|
9
15
|
}
|
|
10
|
-
.logo__icon {
|
|
11
|
-
|
|
12
|
-
height: 36px;
|
|
16
|
+
.pc-logo__icon {
|
|
17
|
+
display: flex;
|
|
13
18
|
margin-right: 8px;
|
|
14
19
|
object-fit: contain;
|
|
15
20
|
}
|
|
16
|
-
.logo__text {
|
|
21
|
+
.pc-logo__text {
|
|
17
22
|
white-space: nowrap;
|
|
18
23
|
}
|
|
@@ -2,12 +2,16 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
4
4
|
const react_1 = (0, tslib_1.__importDefault)(require("react"));
|
|
5
|
-
const
|
|
6
|
-
const index_1 = require("../../../index");
|
|
5
|
+
const utils_1 = require("../../../../utils");
|
|
7
6
|
const RouterLink_1 = (0, tslib_1.__importDefault)(require("../../../RouterLink/RouterLink"));
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
const utils_2 = require("../../../Media/Image/utils");
|
|
8
|
+
const index_1 = require("../../../index");
|
|
9
|
+
const b = (0, utils_1.block)('logo');
|
|
10
|
+
const Logo = ({ icon, text, className }) => {
|
|
11
|
+
const imageData = (0, utils_2.getMediaImage)(icon);
|
|
12
|
+
return (react_1.default.createElement(RouterLink_1.default, { href: "/", passHref: true },
|
|
13
|
+
react_1.default.createElement("div", { className: b(null, className) },
|
|
14
|
+
imageData && react_1.default.createElement(index_1.Image, Object.assign({ className: b('icon') }, imageData)),
|
|
15
|
+
react_1.default.createElement("span", { className: b('text') }, text))));
|
|
16
|
+
};
|
|
13
17
|
exports.default = Logo;
|