@cloud-ru/uikit-product-header 5.0.17
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/CHANGELOG.md +3498 -0
- package/LICENSE +201 -0
- package/README.md +322 -0
- package/dist/cjs/components/HeaderLayout/HeaderLayout.d.ts +12 -0
- package/dist/cjs/components/HeaderLayout/HeaderLayout.js +25 -0
- package/dist/cjs/components/HeaderLayout/index.d.ts +1 -0
- package/dist/cjs/components/HeaderLayout/index.js +17 -0
- package/dist/cjs/components/HeaderLayout/styles.module.css +35 -0
- package/dist/cjs/components/Logo/Logo.d.ts +20 -0
- package/dist/cjs/components/Logo/Logo.js +61 -0
- package/dist/cjs/components/Logo/index.d.ts +1 -0
- package/dist/cjs/components/Logo/index.js +17 -0
- package/dist/cjs/components/Logo/styles.module.css +28 -0
- package/dist/cjs/components/MainMenu/Content/Content.d.ts +20 -0
- package/dist/cjs/components/MainMenu/Content/Content.js +36 -0
- package/dist/cjs/components/MainMenu/Content/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/Content/index.js +17 -0
- package/dist/cjs/components/MainMenu/Content/styles.module.css +40 -0
- package/dist/cjs/components/MainMenu/MainMenu.d.ts +4 -0
- package/dist/cjs/components/MainMenu/MainMenu.js +16 -0
- package/dist/cjs/components/MainMenu/MenuDesktop/MenuDesktop.d.ts +2 -0
- package/dist/cjs/components/MainMenu/MenuDesktop/MenuDesktop.js +34 -0
- package/dist/cjs/components/MainMenu/MenuDesktop/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/MenuDesktop/index.js +17 -0
- package/dist/cjs/components/MainMenu/MenuDesktop/styles.module.css +94 -0
- package/dist/cjs/components/MainMenu/MenuMobile/MenuMobile.d.ts +2 -0
- package/dist/cjs/components/MainMenu/MenuMobile/MenuMobile.js +31 -0
- package/dist/cjs/components/MainMenu/MenuMobile/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/MenuMobile/index.js +17 -0
- package/dist/cjs/components/MainMenu/MenuMobile/styles.module.css +23 -0
- package/dist/cjs/components/MainMenu/Search/SearchDesktop/SearchDesktop.d.ts +2 -0
- package/dist/cjs/components/MainMenu/Search/SearchDesktop/SearchDesktop.js +18 -0
- package/dist/cjs/components/MainMenu/Search/SearchDesktop/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/Search/SearchDesktop/index.js +17 -0
- package/dist/cjs/components/MainMenu/Search/SearchDesktop/styles.module.css +17 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/SearchMobile.d.ts +2 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/SearchMobile.js +42 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/constants.d.ts +4 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/constants.js +7 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/hooks.d.ts +12 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/hooks.js +40 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/index.js +17 -0
- package/dist/cjs/components/MainMenu/Search/SearchMobile/styles.module.css +57 -0
- package/dist/cjs/components/MainMenu/Search/SearchSettingsButton/SearchSettingsButton.d.ts +4 -0
- package/dist/cjs/components/MainMenu/Search/SearchSettingsButton/SearchSettingsButton.js +13 -0
- package/dist/cjs/components/MainMenu/Search/SearchSettingsButton/index.d.ts +1 -0
- package/dist/cjs/components/MainMenu/Search/SearchSettingsButton/index.js +17 -0
- package/dist/cjs/components/MainMenu/Search/SearchSettingsButton/styles.module.css +11 -0
- package/dist/cjs/components/MainMenu/Search/index.d.ts +3 -0
- package/dist/cjs/components/MainMenu/Search/index.js +19 -0
- package/dist/cjs/components/MainMenu/Search/types.d.ts +14 -0
- package/dist/cjs/components/MainMenu/Search/types.js +2 -0
- package/dist/cjs/components/MainMenu/Search/useSearch.d.ts +8 -0
- package/dist/cjs/components/MainMenu/Search/useSearch.js +169 -0
- package/dist/cjs/components/MainMenu/hooks.d.ts +10 -0
- package/dist/cjs/components/MainMenu/hooks.js +108 -0
- package/dist/cjs/components/MainMenu/index.d.ts +4 -0
- package/dist/cjs/components/MainMenu/index.js +20 -0
- package/dist/cjs/components/MainMenu/styles.module.css +28 -0
- package/dist/cjs/components/MainMenu/types.d.ts +49 -0
- package/dist/cjs/components/MainMenu/types.js +2 -0
- package/dist/cjs/components/PathBreadcrumbs/PathBreadcrumbs.d.ts +7 -0
- package/dist/cjs/components/PathBreadcrumbs/PathBreadcrumbs.js +12 -0
- package/dist/cjs/components/PathBreadcrumbs/index.d.ts +1 -0
- package/dist/cjs/components/PathBreadcrumbs/index.js +17 -0
- package/dist/cjs/components/PathBreadcrumbs/styles.module.css +5 -0
- package/dist/cjs/components/PlatformLogo/Container.d.ts +12 -0
- package/dist/cjs/components/PlatformLogo/Container.js +28 -0
- package/dist/cjs/components/PlatformLogo/index.d.ts +4 -0
- package/dist/cjs/components/PlatformLogo/index.js +9 -0
- package/dist/cjs/components/PlatformLogo/styles.module.css +11 -0
- package/dist/cjs/components/UserMenu/UserMenu.d.ts +14 -0
- package/dist/cjs/components/UserMenu/UserMenu.js +54 -0
- package/dist/cjs/components/UserMenu/hooks/useLogoutItem.d.ts +6 -0
- package/dist/cjs/components/UserMenu/hooks/useLogoutItem.js +21 -0
- package/dist/cjs/components/UserMenu/hooks/useProfileItem.d.ts +3 -0
- package/dist/cjs/components/UserMenu/hooks/useProfileItem.js +29 -0
- package/dist/cjs/components/UserMenu/hooks/useThemeItem.d.ts +6 -0
- package/dist/cjs/components/UserMenu/hooks/useThemeItem.js +75 -0
- package/dist/cjs/components/UserMenu/hooks/useUserMenuItems.d.ts +13 -0
- package/dist/cjs/components/UserMenu/hooks/useUserMenuItems.js +42 -0
- package/dist/cjs/components/UserMenu/index.d.ts +2 -0
- package/dist/cjs/components/UserMenu/index.js +18 -0
- package/dist/cjs/components/UserMenu/styles.module.css +21 -0
- package/dist/cjs/components/UserMenu/types.d.ts +20 -0
- package/dist/cjs/components/UserMenu/types.js +8 -0
- package/dist/cjs/components/index.d.ts +6 -0
- package/dist/cjs/components/index.js +22 -0
- package/dist/cjs/hooks/index.d.ts +1 -0
- package/dist/cjs/hooks/index.js +17 -0
- package/dist/cjs/hooks/useLocalStorage.d.ts +1 -0
- package/dist/cjs/hooks/useLocalStorage.js +13 -0
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +18 -0
- package/dist/esm/components/HeaderLayout/HeaderLayout.d.ts +12 -0
- package/dist/esm/components/HeaderLayout/HeaderLayout.js +19 -0
- package/dist/esm/components/HeaderLayout/index.d.ts +1 -0
- package/dist/esm/components/HeaderLayout/index.js +1 -0
- package/dist/esm/components/HeaderLayout/styles.module.css +35 -0
- package/dist/esm/components/Logo/Logo.d.ts +20 -0
- package/dist/esm/components/Logo/Logo.js +54 -0
- package/dist/esm/components/Logo/index.d.ts +1 -0
- package/dist/esm/components/Logo/index.js +1 -0
- package/dist/esm/components/Logo/styles.module.css +28 -0
- package/dist/esm/components/MainMenu/Content/Content.d.ts +20 -0
- package/dist/esm/components/MainMenu/Content/Content.js +30 -0
- package/dist/esm/components/MainMenu/Content/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/Content/index.js +1 -0
- package/dist/esm/components/MainMenu/Content/styles.module.css +40 -0
- package/dist/esm/components/MainMenu/MainMenu.d.ts +4 -0
- package/dist/esm/components/MainMenu/MainMenu.js +13 -0
- package/dist/esm/components/MainMenu/MenuDesktop/MenuDesktop.d.ts +2 -0
- package/dist/esm/components/MainMenu/MenuDesktop/MenuDesktop.js +28 -0
- package/dist/esm/components/MainMenu/MenuDesktop/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/MenuDesktop/index.js +1 -0
- package/dist/esm/components/MainMenu/MenuDesktop/styles.module.css +94 -0
- package/dist/esm/components/MainMenu/MenuMobile/MenuMobile.d.ts +2 -0
- package/dist/esm/components/MainMenu/MenuMobile/MenuMobile.js +25 -0
- package/dist/esm/components/MainMenu/MenuMobile/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/MenuMobile/index.js +1 -0
- package/dist/esm/components/MainMenu/MenuMobile/styles.module.css +23 -0
- package/dist/esm/components/MainMenu/Search/SearchDesktop/SearchDesktop.d.ts +2 -0
- package/dist/esm/components/MainMenu/Search/SearchDesktop/SearchDesktop.js +12 -0
- package/dist/esm/components/MainMenu/Search/SearchDesktop/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/Search/SearchDesktop/index.js +1 -0
- package/dist/esm/components/MainMenu/Search/SearchDesktop/styles.module.css +17 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/SearchMobile.d.ts +2 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/SearchMobile.js +36 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/constants.d.ts +4 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/constants.js +4 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/hooks.d.ts +12 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/hooks.js +34 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/index.js +1 -0
- package/dist/esm/components/MainMenu/Search/SearchMobile/styles.module.css +57 -0
- package/dist/esm/components/MainMenu/Search/SearchSettingsButton/SearchSettingsButton.d.ts +4 -0
- package/dist/esm/components/MainMenu/Search/SearchSettingsButton/SearchSettingsButton.js +7 -0
- package/dist/esm/components/MainMenu/Search/SearchSettingsButton/index.d.ts +1 -0
- package/dist/esm/components/MainMenu/Search/SearchSettingsButton/index.js +1 -0
- package/dist/esm/components/MainMenu/Search/SearchSettingsButton/styles.module.css +11 -0
- package/dist/esm/components/MainMenu/Search/index.d.ts +3 -0
- package/dist/esm/components/MainMenu/Search/index.js +3 -0
- package/dist/esm/components/MainMenu/Search/types.d.ts +14 -0
- package/dist/esm/components/MainMenu/Search/types.js +1 -0
- package/dist/esm/components/MainMenu/Search/useSearch.d.ts +8 -0
- package/dist/esm/components/MainMenu/Search/useSearch.js +161 -0
- package/dist/esm/components/MainMenu/hooks.d.ts +10 -0
- package/dist/esm/components/MainMenu/hooks.js +101 -0
- package/dist/esm/components/MainMenu/index.d.ts +4 -0
- package/dist/esm/components/MainMenu/index.js +4 -0
- package/dist/esm/components/MainMenu/styles.module.css +28 -0
- package/dist/esm/components/MainMenu/types.d.ts +49 -0
- package/dist/esm/components/MainMenu/types.js +1 -0
- package/dist/esm/components/PathBreadcrumbs/PathBreadcrumbs.d.ts +7 -0
- package/dist/esm/components/PathBreadcrumbs/PathBreadcrumbs.js +6 -0
- package/dist/esm/components/PathBreadcrumbs/index.d.ts +1 -0
- package/dist/esm/components/PathBreadcrumbs/index.js +1 -0
- package/dist/esm/components/PathBreadcrumbs/styles.module.css +5 -0
- package/dist/esm/components/PlatformLogo/Container.d.ts +12 -0
- package/dist/esm/components/PlatformLogo/Container.js +20 -0
- package/dist/esm/components/PlatformLogo/index.d.ts +4 -0
- package/dist/esm/components/PlatformLogo/index.js +6 -0
- package/dist/esm/components/PlatformLogo/styles.module.css +11 -0
- package/dist/esm/components/UserMenu/UserMenu.d.ts +14 -0
- package/dist/esm/components/UserMenu/UserMenu.js +48 -0
- package/dist/esm/components/UserMenu/hooks/useLogoutItem.d.ts +6 -0
- package/dist/esm/components/UserMenu/hooks/useLogoutItem.js +18 -0
- package/dist/esm/components/UserMenu/hooks/useProfileItem.d.ts +3 -0
- package/dist/esm/components/UserMenu/hooks/useProfileItem.js +23 -0
- package/dist/esm/components/UserMenu/hooks/useThemeItem.d.ts +6 -0
- package/dist/esm/components/UserMenu/hooks/useThemeItem.js +72 -0
- package/dist/esm/components/UserMenu/hooks/useUserMenuItems.d.ts +13 -0
- package/dist/esm/components/UserMenu/hooks/useUserMenuItems.js +39 -0
- package/dist/esm/components/UserMenu/index.d.ts +2 -0
- package/dist/esm/components/UserMenu/index.js +2 -0
- package/dist/esm/components/UserMenu/styles.module.css +21 -0
- package/dist/esm/components/UserMenu/types.d.ts +20 -0
- package/dist/esm/components/UserMenu/types.js +5 -0
- package/dist/esm/components/index.d.ts +6 -0
- package/dist/esm/components/index.js +6 -0
- package/dist/esm/hooks/index.d.ts +1 -0
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/useLocalStorage.d.ts +1 -0
- package/dist/esm/hooks/useLocalStorage.js +10 -0
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +2 -0
- package/package.json +68 -0
- package/src/components/HeaderLayout/HeaderLayout.tsx +46 -0
- package/src/components/HeaderLayout/index.ts +1 -0
- package/src/components/HeaderLayout/styles.module.scss +38 -0
- package/src/components/Logo/Logo.tsx +93 -0
- package/src/components/Logo/index.ts +1 -0
- package/src/components/Logo/styles.module.scss +30 -0
- package/src/components/MainMenu/Content/Content.tsx +137 -0
- package/src/components/MainMenu/Content/index.ts +1 -0
- package/src/components/MainMenu/Content/styles.module.scss +35 -0
- package/src/components/MainMenu/MainMenu.tsx +51 -0
- package/src/components/MainMenu/MenuDesktop/MenuDesktop.tsx +120 -0
- package/src/components/MainMenu/MenuDesktop/index.ts +1 -0
- package/src/components/MainMenu/MenuDesktop/styles.module.scss +108 -0
- package/src/components/MainMenu/MenuMobile/MenuMobile.tsx +83 -0
- package/src/components/MainMenu/MenuMobile/index.ts +1 -0
- package/src/components/MainMenu/MenuMobile/styles.module.scss +26 -0
- package/src/components/MainMenu/Search/SearchDesktop/SearchDesktop.tsx +46 -0
- package/src/components/MainMenu/Search/SearchDesktop/index.ts +1 -0
- package/src/components/MainMenu/Search/SearchDesktop/styles.module.scss +21 -0
- package/src/components/MainMenu/Search/SearchMobile/SearchMobile.tsx +102 -0
- package/src/components/MainMenu/Search/SearchMobile/constants.ts +4 -0
- package/src/components/MainMenu/Search/SearchMobile/hooks.ts +43 -0
- package/src/components/MainMenu/Search/SearchMobile/index.ts +1 -0
- package/src/components/MainMenu/Search/SearchMobile/styles.module.scss +72 -0
- package/src/components/MainMenu/Search/SearchSettingsButton/SearchSettingsButton.tsx +22 -0
- package/src/components/MainMenu/Search/SearchSettingsButton/index.ts +1 -0
- package/src/components/MainMenu/Search/SearchSettingsButton/styles.module.scss +13 -0
- package/src/components/MainMenu/Search/index.ts +3 -0
- package/src/components/MainMenu/Search/types.ts +20 -0
- package/src/components/MainMenu/Search/useSearch.tsx +212 -0
- package/src/components/MainMenu/hooks.tsx +135 -0
- package/src/components/MainMenu/index.ts +4 -0
- package/src/components/MainMenu/styles.module.scss +28 -0
- package/src/components/MainMenu/types.ts +62 -0
- package/src/components/PathBreadcrumbs/PathBreadcrumbs.tsx +21 -0
- package/src/components/PathBreadcrumbs/index.ts +1 -0
- package/src/components/PathBreadcrumbs/styles.module.scss +10 -0
- package/src/components/PlatformLogo/Container.tsx +32 -0
- package/src/components/PlatformLogo/index.ts +8 -0
- package/src/components/PlatformLogo/styles.module.scss +13 -0
- package/src/components/UserMenu/UserMenu.tsx +138 -0
- package/src/components/UserMenu/hooks/useLogoutItem.tsx +28 -0
- package/src/components/UserMenu/hooks/useProfileItem.tsx +41 -0
- package/src/components/UserMenu/hooks/useThemeItem.tsx +116 -0
- package/src/components/UserMenu/hooks/useUserMenuItems.ts +77 -0
- package/src/components/UserMenu/index.ts +2 -0
- package/src/components/UserMenu/styles.module.scss +21 -0
- package/src/components/UserMenu/types.ts +24 -0
- package/src/components/index.ts +6 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useLocalStorage.ts +15 -0
- package/src/index.ts +2 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./PathBreadcrumbs"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { JSXElementConstructor, PropsWithChildren } from 'react';
|
|
2
|
+
import { WithSupportProps } from '@sbercloud/uikit-product-utils';
|
|
3
|
+
export type ContainerProps = PropsWithChildren<WithSupportProps<{
|
|
4
|
+
className?: string;
|
|
5
|
+
}>>;
|
|
6
|
+
export declare function Container({ children, ...otherProps }: ContainerProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export type IconComponentProps = {
|
|
8
|
+
className?: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const getPlatformIconComponent: (Icon: JSXElementConstructor<{
|
|
11
|
+
size: number;
|
|
12
|
+
}>) => (props: IconComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.getPlatformIconComponent = void 0;
|
|
18
|
+
exports.Container = Container;
|
|
19
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
20
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
21
|
+
function Container(_a) {
|
|
22
|
+
var { children } = _a, otherProps = __rest(_a, ["children"]);
|
|
23
|
+
return ((0, jsx_runtime_1.jsx)("div", Object.assign({ className: styles_module_scss_1.default.container }, otherProps, { children: children })));
|
|
24
|
+
}
|
|
25
|
+
const getPlatformIconComponent = (Icon) => function IconComponent(props) {
|
|
26
|
+
return ((0, jsx_runtime_1.jsx)(Container, Object.assign({}, props, { children: (0, jsx_runtime_1.jsx)(Icon, { size: 24 }) })));
|
|
27
|
+
};
|
|
28
|
+
exports.getPlatformIconComponent = getPlatformIconComponent;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const AdvancedPlatformLogo: (props: import("./Container").IconComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const EnterprisePlatformLogo: (props: import("./Container").IconComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare const EvolutionPlatformLogo: (props: import("./Container").IconComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare const MLSpacePlatformLogo: (props: import("./Container").IconComponentProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MLSpacePlatformLogo = exports.EvolutionPlatformLogo = exports.EnterprisePlatformLogo = exports.AdvancedPlatformLogo = void 0;
|
|
4
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
5
|
+
const Container_1 = require("./Container");
|
|
6
|
+
exports.AdvancedPlatformLogo = (0, Container_1.getPlatformIconComponent)(uikit_product_icons_1.AdvancedSVG);
|
|
7
|
+
exports.EnterprisePlatformLogo = (0, Container_1.getPlatformIconComponent)(uikit_product_icons_1.VmwareSVG);
|
|
8
|
+
exports.EvolutionPlatformLogo = (0, Container_1.getPlatformIconComponent)(uikit_product_icons_1.EvolutionSVG);
|
|
9
|
+
exports.MLSpacePlatformLogo = (0, Container_1.getPlatformIconComponent)(uikit_product_icons_1.MlSpaceSVG);
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
.container{
|
|
2
|
+
width:24px;
|
|
3
|
+
height:24px;
|
|
4
|
+
color:var(--sys-primary-on-accent, #fbfffc);
|
|
5
|
+
fill:var(--sys-primary-on-accent, #fbfffc);
|
|
6
|
+
background-color:var(--sys-neutral-accent-default, #787b8a);
|
|
7
|
+
border-radius:var(--dimension-050m, 4px);
|
|
8
|
+
display:flex;
|
|
9
|
+
align-items:center;
|
|
10
|
+
justify-content:center;
|
|
11
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { BaseItemProps, ListProps } from '@snack-uikit/list';
|
|
2
|
+
import { ThemeProps, UserProfileProps } from './types';
|
|
3
|
+
export type UserMenuProps = {
|
|
4
|
+
profile?: UserProfileProps;
|
|
5
|
+
theme?: ThemeProps;
|
|
6
|
+
items?: ListProps['items'];
|
|
7
|
+
settingItems?: BaseItemProps[];
|
|
8
|
+
onLogout?(): void;
|
|
9
|
+
open?: boolean;
|
|
10
|
+
setOpen?(open: boolean): void;
|
|
11
|
+
onClick?(): void;
|
|
12
|
+
isMobile?: boolean;
|
|
13
|
+
};
|
|
14
|
+
export declare function UserMenu({ profile, open: openProp, setOpen: setOpenProp, onLogout, items, settingItems, theme, isMobile, onClick, }: UserMenuProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.UserMenu = UserMenu;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
10
|
+
const uikit_product_mobile_drawer_1 = require("@sbercloud/uikit-product-mobile-drawer");
|
|
11
|
+
const avatar_1 = require("@snack-uikit/avatar");
|
|
12
|
+
const button_1 = require("@snack-uikit/button");
|
|
13
|
+
const list_1 = require("@snack-uikit/list");
|
|
14
|
+
const scroll_1 = require("@snack-uikit/scroll");
|
|
15
|
+
const utils_1 = require("@snack-uikit/utils");
|
|
16
|
+
const useUserMenuItems_1 = require("./hooks/useUserMenuItems");
|
|
17
|
+
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
18
|
+
function UserMenu({ profile = {}, open: openProp, setOpen: setOpenProp, onLogout, items, settingItems, theme, isMobile, onClick, }) {
|
|
19
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('Header');
|
|
20
|
+
const [open = false, setOpen] = (0, utils_1.useValueControl)({ value: openProp, onChange: setOpenProp });
|
|
21
|
+
const { fullName = '', inviteCount } = profile;
|
|
22
|
+
const userMenuItems = (0, useUserMenuItems_1.useUserMenuItems)({
|
|
23
|
+
isMobile,
|
|
24
|
+
profile,
|
|
25
|
+
theme,
|
|
26
|
+
items,
|
|
27
|
+
settingItems,
|
|
28
|
+
onClose: () => {
|
|
29
|
+
setOpen(false);
|
|
30
|
+
},
|
|
31
|
+
onLogout,
|
|
32
|
+
});
|
|
33
|
+
const trigger = (0, react_1.useMemo)(() => ((0, jsx_runtime_1.jsx)(button_1.ButtonFunction, { size: 'm', onClick: () => {
|
|
34
|
+
setOpen === null || setOpen === void 0 ? void 0 : setOpen(true);
|
|
35
|
+
onClick === null || onClick === void 0 ? void 0 : onClick();
|
|
36
|
+
}, counter: Number(inviteCount)
|
|
37
|
+
? {
|
|
38
|
+
value: Number(inviteCount),
|
|
39
|
+
appearance: 'primary',
|
|
40
|
+
}
|
|
41
|
+
: undefined, "data-test-id": 'header__user-menu__button', icon: (0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: 'xs', name: fullName, showTwoSymbols: true }) })), [fullName, inviteCount, onClick, setOpen]);
|
|
42
|
+
if (isMobile) {
|
|
43
|
+
return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [trigger, (0, jsx_runtime_1.jsxs)(uikit_product_mobile_drawer_1.MobileDrawerCustom, { open: open, onClose: () => {
|
|
44
|
+
setOpen(false);
|
|
45
|
+
}, position: 'right', swipeEnabled: false, "data-test-id": 'header__user-menu-mobile', closeOnPopstate: true, children: [(0, jsx_runtime_1.jsx)(uikit_product_mobile_drawer_1.MobileDrawerCustom.Header, { title: t('user') }), (0, jsx_runtime_1.jsx)(scroll_1.Scroll, { barHideStrategy: 'never', children: (0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.mobileList, children: (0, jsx_runtime_1.jsx)(list_1.List, { items: userMenuItems, selection: {
|
|
46
|
+
mode: 'single',
|
|
47
|
+
value: 'null',
|
|
48
|
+
}, size: 'm' }) }) })] })] }));
|
|
49
|
+
}
|
|
50
|
+
return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(list_1.Droplist, { items: userMenuItems, selection: {
|
|
51
|
+
mode: 'single',
|
|
52
|
+
value: 'null',
|
|
53
|
+
}, trigger: 'click', placement: 'bottom-end', className: styles_module_scss_1.default.userMenuDroplist, closeOnPopstate: true, closeDroplistOnItemClick: true, "data-test-id": 'header__user-menu', children: trigger }) }));
|
|
54
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLogoutItem = useLogoutItem;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
7
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
8
|
+
function useLogoutItem({ onLogout }) {
|
|
9
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('Header');
|
|
10
|
+
return (0, react_1.useMemo)(() => [
|
|
11
|
+
{ type: 'group', divider: true, items: [] },
|
|
12
|
+
{
|
|
13
|
+
content: {
|
|
14
|
+
option: t('logout'),
|
|
15
|
+
},
|
|
16
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.ExitSVG, {}),
|
|
17
|
+
onClick: onLogout,
|
|
18
|
+
'data-test-id': 'header__user-menu__logout',
|
|
19
|
+
},
|
|
20
|
+
], [onLogout, t]);
|
|
21
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useProfileItem = useProfileItem;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
10
|
+
const avatar_1 = require("@snack-uikit/avatar");
|
|
11
|
+
const styles_module_scss_1 = __importDefault(require('../styles.module.css'));
|
|
12
|
+
function useProfileItem({ fullName = '', email = '', itemWrapRender, onClick, }) {
|
|
13
|
+
return (0, react_1.useMemo)(() => ({
|
|
14
|
+
content: {
|
|
15
|
+
option: fullName,
|
|
16
|
+
description: email,
|
|
17
|
+
truncate: {
|
|
18
|
+
description: 1,
|
|
19
|
+
},
|
|
20
|
+
},
|
|
21
|
+
onClick,
|
|
22
|
+
beforeContent: (0, jsx_runtime_1.jsx)(avatar_1.Avatar, { size: 'xs', name: fullName, showTwoSymbols: true }),
|
|
23
|
+
afterContent: ((0, jsx_runtime_1.jsx)("div", { className: styles_module_scss_1.default.settingIcon, children: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.SettingsSVG, {}) })),
|
|
24
|
+
itemWrapRender,
|
|
25
|
+
id: 'header__user-menu__button',
|
|
26
|
+
'data-test-id': 'header__user-menu__manage-profile',
|
|
27
|
+
className: styles_module_scss_1.default.userMenuInfoItem,
|
|
28
|
+
}), [email, fullName, itemWrapRender, onClick]);
|
|
29
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { DroplistProps } from '@snack-uikit/list';
|
|
2
|
+
import { ThemeProps } from '../types';
|
|
3
|
+
export declare function useThemeItem({ value: themeMode, onChange, isMobile, onClose, }: ThemeProps & {
|
|
4
|
+
isMobile?: boolean;
|
|
5
|
+
onClose?(): void;
|
|
6
|
+
}): DroplistProps['items'][0];
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useThemeItem = useThemeItem;
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const uikit_product_icons_1 = require("@sbercloud/uikit-product-icons");
|
|
7
|
+
const uikit_product_locale_1 = require("@sbercloud/uikit-product-locale");
|
|
8
|
+
const uikit_product_mobile_modal_1 = require("@sbercloud/uikit-product-mobile-modal");
|
|
9
|
+
const list_1 = require("@snack-uikit/list");
|
|
10
|
+
const types_1 = require("../types");
|
|
11
|
+
function useThemeItem({ value: themeMode, onChange, isMobile, onClose, }) {
|
|
12
|
+
const { t } = (0, uikit_product_locale_1.useLocale)('Header');
|
|
13
|
+
const [open, setOpen] = (0, react_1.useState)(false);
|
|
14
|
+
const handleClick = (0, react_1.useCallback)((themeMode) => () => {
|
|
15
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(themeMode);
|
|
16
|
+
!isMobile && (onClose === null || onClose === void 0 ? void 0 : onClose());
|
|
17
|
+
}, [isMobile, onChange, onClose]);
|
|
18
|
+
const themeModeOptions = (0, react_1.useMemo)(() => [
|
|
19
|
+
{
|
|
20
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.DaySVG, {}),
|
|
21
|
+
content: {
|
|
22
|
+
option: t('themeModeLight'),
|
|
23
|
+
},
|
|
24
|
+
onClick: handleClick(types_1.THEME_MODE.Light),
|
|
25
|
+
checked: themeMode === types_1.THEME_MODE.Light,
|
|
26
|
+
'data-test-id': 'header__user-menu__theme-mode__light-option',
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.NightSVG, {}),
|
|
30
|
+
content: {
|
|
31
|
+
option: t('themeModeDark'),
|
|
32
|
+
},
|
|
33
|
+
checked: themeMode === types_1.THEME_MODE.Dark,
|
|
34
|
+
onClick: handleClick(types_1.THEME_MODE.Dark),
|
|
35
|
+
'data-test-id': 'header__user-menu__theme-mode__dark-option',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.LaptopPhoneSVG, {}),
|
|
39
|
+
content: {
|
|
40
|
+
option: t('themeModeSystem'),
|
|
41
|
+
},
|
|
42
|
+
checked: themeMode === types_1.THEME_MODE.System,
|
|
43
|
+
onClick: handleClick(types_1.THEME_MODE.System),
|
|
44
|
+
'data-test-id': 'header__user-menu__theme-mode__system-option',
|
|
45
|
+
},
|
|
46
|
+
], [handleClick, t, themeMode]);
|
|
47
|
+
const themeItem = (0, react_1.useMemo)(() => ({
|
|
48
|
+
type: 'next-list',
|
|
49
|
+
content: {
|
|
50
|
+
option: t('themeModeLabel'),
|
|
51
|
+
},
|
|
52
|
+
placement: 'left-start',
|
|
53
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.ThemeContrastSVG, {}),
|
|
54
|
+
'data-test-id': 'header__user-menu__theme-mode',
|
|
55
|
+
items: themeModeOptions,
|
|
56
|
+
}), [t, themeModeOptions]);
|
|
57
|
+
const mobileThemeItem = (0, react_1.useMemo)(() => ({
|
|
58
|
+
id: 'header__user-menu__theme-mode',
|
|
59
|
+
beforeContent: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.ThemeContrastSVG, {}),
|
|
60
|
+
'data-test-id': 'header__user-menu__theme-mode',
|
|
61
|
+
afterContent: ((0, jsx_runtime_1.jsx)("span", { style: {
|
|
62
|
+
color: 'var(--sys-neutral-text-light)',
|
|
63
|
+
}, children: (0, jsx_runtime_1.jsx)(uikit_product_icons_1.ChevronRightSVG, {}) })),
|
|
64
|
+
content: {
|
|
65
|
+
option: t('themeModeLabel'),
|
|
66
|
+
},
|
|
67
|
+
onClick: () => {
|
|
68
|
+
setOpen(true);
|
|
69
|
+
},
|
|
70
|
+
itemWrapRender: (node) => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [node, (0, jsx_runtime_1.jsxs)(uikit_product_mobile_modal_1.MobileModalCustom, { open: open, onClose: () => {
|
|
71
|
+
setOpen(false);
|
|
72
|
+
}, closeButtonEnabled: true, closeOnPopstate: true, children: [(0, jsx_runtime_1.jsx)(uikit_product_mobile_modal_1.MobileModalCustom.Header, { title: t('themeModeLabel') }), (0, jsx_runtime_1.jsx)(list_1.List, { items: themeModeOptions, size: 'l', selection: { mode: 'single', value: themeMode } })] })] })),
|
|
73
|
+
}), [open, t, themeMode, themeModeOptions]);
|
|
74
|
+
return isMobile ? mobileThemeItem : themeItem;
|
|
75
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BaseItemProps, ListProps } from '@snack-uikit/list';
|
|
2
|
+
import { ThemeProps, UserProfileProps } from '../types';
|
|
3
|
+
type UseMenuItems = {
|
|
4
|
+
profile: UserProfileProps;
|
|
5
|
+
theme?: ThemeProps;
|
|
6
|
+
items?: ListProps['items'];
|
|
7
|
+
settingItems?: BaseItemProps[];
|
|
8
|
+
onLogout?(): void;
|
|
9
|
+
onClose?(): void;
|
|
10
|
+
isMobile?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export declare function useUserMenuItems({ profile, theme, onLogout, items: itemsProp, isMobile, onClose, settingItems, }: UseMenuItems): import("@snack-uikit/list/dist/esm/components/Items").Item[];
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useUserMenuItems = useUserMenuItems;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const list_1 = require("@snack-uikit/list");
|
|
6
|
+
const useLogoutItem_1 = require("./useLogoutItem");
|
|
7
|
+
const useProfileItem_1 = require("./useProfileItem");
|
|
8
|
+
const useThemeItem_1 = require("./useThemeItem");
|
|
9
|
+
const DIVIDER_ITEM = {
|
|
10
|
+
type: 'group',
|
|
11
|
+
divider: true,
|
|
12
|
+
items: [],
|
|
13
|
+
};
|
|
14
|
+
function useUserMenuItems({ profile, theme, onLogout, items: itemsProp = [], isMobile, onClose, settingItems = [], }) {
|
|
15
|
+
const profileItem = (0, useProfileItem_1.useProfileItem)(profile);
|
|
16
|
+
const themeItem = (0, useThemeItem_1.useThemeItem)(Object.assign(Object.assign({}, (theme || {})), { isMobile, onClose }));
|
|
17
|
+
const logoutItem = (0, useLogoutItem_1.useLogoutItem)({ onLogout });
|
|
18
|
+
const items = (0, react_1.useMemo)(() => {
|
|
19
|
+
let items = [profileItem];
|
|
20
|
+
if (themeItem) {
|
|
21
|
+
items = items.concat([DIVIDER_ITEM, themeItem]);
|
|
22
|
+
}
|
|
23
|
+
items = items.concat(itemsProp);
|
|
24
|
+
items = items.concat(logoutItem);
|
|
25
|
+
if (isMobile && Boolean(settingItems === null || settingItems === void 0 ? void 0 : settingItems.length)) {
|
|
26
|
+
items = items.concat([DIVIDER_ITEM, ...settingItems]);
|
|
27
|
+
}
|
|
28
|
+
return items.map(item => {
|
|
29
|
+
if ((0, list_1.isBaseItemProps)(item) && item.id !== 'header__user-menu__theme-mode') {
|
|
30
|
+
return Object.assign(Object.assign({}, item), { onClick: (e) => {
|
|
31
|
+
var _a;
|
|
32
|
+
(_a = item.onClick) === null || _a === void 0 ? void 0 : _a.call(item, e);
|
|
33
|
+
if (!e.metaKey) {
|
|
34
|
+
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
35
|
+
}
|
|
36
|
+
} });
|
|
37
|
+
}
|
|
38
|
+
return item;
|
|
39
|
+
});
|
|
40
|
+
}, [isMobile, itemsProp, logoutItem, onClose, profileItem, settingItems, themeItem]);
|
|
41
|
+
return items;
|
|
42
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./UserMenu"), exports);
|
|
18
|
+
__exportStar(require("./types"), exports);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
.userMenuDroplist{
|
|
2
|
+
width:272px;
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.mobileList{
|
|
6
|
+
padding:16px;
|
|
7
|
+
padding-top:0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.settingIcon{
|
|
11
|
+
color:var(--sys-neutral-text-light, #8b8e9b);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.userMenuInfoItem [data-test-id=list__base-item-option]{
|
|
15
|
+
font-family:var(--sans-label-m-font-family, SB Sans Interface);
|
|
16
|
+
font-weight:var(--sans-label-m-font-weight, Semibold);
|
|
17
|
+
line-height:var(--sans-label-m-line-height, 16px);
|
|
18
|
+
font-size:var(--sans-label-m-font-size, 12px);
|
|
19
|
+
letter-spacing:var(--sans-label-m-letter-spacing, 0px);
|
|
20
|
+
paragraph-spacing:var(--sans-label-m-paragraph-spacing, 6.6px);
|
|
21
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { MouseEvent, ReactNode } from 'react';
|
|
2
|
+
export type UserProfileProps = {
|
|
3
|
+
fullName?: string;
|
|
4
|
+
email?: string;
|
|
5
|
+
inviteCount?: number;
|
|
6
|
+
onClick?(e: MouseEvent<HTMLElement>): void;
|
|
7
|
+
itemWrapRender?(node: ReactNode): ReactNode;
|
|
8
|
+
};
|
|
9
|
+
type ValueOf<T> = T[keyof T];
|
|
10
|
+
export declare const THEME_MODE: {
|
|
11
|
+
readonly Light: "light";
|
|
12
|
+
readonly Dark: "dark";
|
|
13
|
+
readonly System: "system";
|
|
14
|
+
};
|
|
15
|
+
export type ThemeMode = ValueOf<typeof THEME_MODE>;
|
|
16
|
+
export type ThemeProps = {
|
|
17
|
+
value?: ThemeMode;
|
|
18
|
+
onChange?(themeMode: ThemeMode): void;
|
|
19
|
+
};
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./HeaderLayout"), exports);
|
|
18
|
+
__exportStar(require("./MainMenu"), exports);
|
|
19
|
+
__exportStar(require("./UserMenu"), exports);
|
|
20
|
+
__exportStar(require("./Logo"), exports);
|
|
21
|
+
__exportStar(require("./PathBreadcrumbs"), exports);
|
|
22
|
+
__exportStar(require("./PlatformLogo"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useLocalStorage';
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./useLocalStorage"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function useLocalStorage<T extends string = string>(key: string, defaultValue: T): [T, (newValue: T) => void];
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useLocalStorage = useLocalStorage;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
function useLocalStorage(key, defaultValue) {
|
|
6
|
+
var _a;
|
|
7
|
+
const [value, setValueState] = (0, react_1.useState)((_a = localStorage.getItem(key)) !== null && _a !== void 0 ? _a : defaultValue);
|
|
8
|
+
const setValue = (0, react_1.useCallback)((newValue) => {
|
|
9
|
+
localStorage.setItem(key, newValue);
|
|
10
|
+
setValueState(newValue);
|
|
11
|
+
}, [key]);
|
|
12
|
+
return [value, setValue];
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./components"), exports);
|
|
18
|
+
__exportStar(require("./hooks"), exports);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { WithSupportProps } from '@sbercloud/uikit-product-utils';
|
|
3
|
+
export type HeaderLayoutProps = WithSupportProps<{
|
|
4
|
+
className?: string;
|
|
5
|
+
menu?: ReactNode;
|
|
6
|
+
logo?: ReactNode;
|
|
7
|
+
select?: ReactNode;
|
|
8
|
+
breadcrumbs?: ReactNode;
|
|
9
|
+
toolbar?: ReactNode;
|
|
10
|
+
isMobile?: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function HeaderLayout({ menu, logo, select, breadcrumbs, toolbar, className, isMobile, ...rest }: HeaderLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import cn from 'classnames';
|
|
14
|
+
import { extractSupportProps } from '@sbercloud/uikit-product-utils';
|
|
15
|
+
import styles from './styles.module.css';
|
|
16
|
+
export function HeaderLayout(_a) {
|
|
17
|
+
var { menu, logo, select, breadcrumbs, toolbar, className, isMobile } = _a, rest = __rest(_a, ["menu", "logo", "select", "breadcrumbs", "toolbar", "className", "isMobile"]);
|
|
18
|
+
return (_jsxs("header", Object.assign({ className: cn(styles.header, className) }, extractSupportProps(rest), { children: [_jsxs("div", { className: styles.top, children: [_jsxs("div", { className: styles.left, children: [menu, logo, !isMobile && select, !isMobile && breadcrumbs] }), _jsx("div", { className: styles.right, children: toolbar })] }), isMobile && Boolean(breadcrumbs) && _jsx("div", { className: styles.bottom, children: breadcrumbs })] })));
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './HeaderLayout';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './HeaderLayout';
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
.header{
|
|
2
|
+
box-sizing:border-box;
|
|
3
|
+
background-color:var(--sys-neutral-background, #eeeff3);
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.top{
|
|
7
|
+
display:flex;
|
|
8
|
+
box-sizing:border-box;
|
|
9
|
+
align-items:center;
|
|
10
|
+
padding:0 var(--dimension-1m, 8px) 0 0;
|
|
11
|
+
height:var(--dimension-6m, 48px);
|
|
12
|
+
gap:var(--dimension-2m, 16px);
|
|
13
|
+
justify-content:space-between;
|
|
14
|
+
border-bottom:var(--border-width-012m, 1px) var(--border-styles-solid, solid) var(--sys-neutral-decor-default, #dde0ea);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.bottom{
|
|
18
|
+
height:32px;
|
|
19
|
+
box-sizing:border-box;
|
|
20
|
+
border-bottom:var(--border-width-012m, 1px) var(--border-styles-solid, solid) var(--sys-neutral-decor-default, #dde0ea);
|
|
21
|
+
display:flex;
|
|
22
|
+
align-items:center;
|
|
23
|
+
overflow:hidden;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.left{
|
|
27
|
+
display:flex;
|
|
28
|
+
min-width:0;
|
|
29
|
+
align-items:center;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.right{
|
|
33
|
+
display:flex;
|
|
34
|
+
align-items:center;
|
|
35
|
+
}
|