@gravity-ui/navigation 1.9.0 → 2.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/README.md +12 -9
  2. package/build/cjs/{ActionBar-96a59723.js → ActionBar-38c4e24f.js} +2 -2
  3. package/build/cjs/ActionBar-38c4e24f.js.map +1 -0
  4. package/build/cjs/AsideFallback.js +4 -4
  5. package/build/cjs/AsideFallback.js.map +1 -1
  6. package/build/cjs/AsideHeader.js +6 -5
  7. package/build/cjs/AsideHeader.js.map +1 -1
  8. package/build/cjs/AsideHeaderContext.js.map +1 -1
  9. package/build/cjs/Drawer.js +3 -3
  10. package/build/cjs/Drawer.js.map +1 -1
  11. package/build/cjs/{FooterItem-eafaeac3.js → FooterItem-0b0d76e4.js} +56 -56
  12. package/build/cjs/FooterItem-0b0d76e4.js.map +1 -0
  13. package/build/cjs/FooterItem.js +5 -5
  14. package/build/cjs/FooterItem.js.map +1 -1
  15. package/build/cjs/{HotkeysPanel-2e240e4d.js → HotkeysPanel-4ad41893.js} +15 -15
  16. package/build/cjs/HotkeysPanel-4ad41893.js.map +1 -0
  17. package/build/cjs/{Item-b5ef87be.js → Item-d836a378.js} +50 -50
  18. package/build/cjs/Item-d836a378.js.map +1 -0
  19. package/build/cjs/PageLayout.js +5 -5
  20. package/build/cjs/PageLayout.js.map +1 -1
  21. package/build/cjs/PageLayoutAside.js +231 -230
  22. package/build/cjs/PageLayoutAside.js.map +1 -1
  23. package/build/cjs/{Settings-11b021e4.js → Settings-a0deac97.js} +47 -47
  24. package/build/cjs/Settings-a0deac97.js.map +1 -0
  25. package/build/cjs/{Title-c539667f.js → Title-54580605.js} +5 -5
  26. package/build/cjs/Title-54580605.js.map +1 -0
  27. package/build/cjs/{TopPanel-b531a2be.js → TopPanel-1b062791.js} +3 -3
  28. package/build/cjs/TopPanel-1b062791.js.map +1 -0
  29. package/build/cjs/{cn-1964a72a.js → cn-9933321a.js} +2 -1
  30. package/build/cjs/{cn-1964a72a.js.map → cn-9933321a.js.map} +1 -1
  31. package/build/cjs/components/AllPagesPanel/i18n/index.d.ts +1 -1
  32. package/build/cjs/components/AsideHeader/i18n/index.d.ts +1 -1
  33. package/build/cjs/components/AsideHeader/types.d.ts +1 -1
  34. package/build/cjs/components/CompositeBar/utils.d.ts +2 -2
  35. package/build/cjs/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
  36. package/build/cjs/components/MobileHeader/MobileHeader.d.ts +3 -3
  37. package/build/cjs/components/MobileHeader/i18n/index.d.ts +1 -1
  38. package/build/cjs/components/Settings/Settings.d.ts +1 -1
  39. package/build/cjs/components/Settings/i18n/index.d.ts +1 -1
  40. package/build/cjs/components/Title/i18n/index.d.ts +1 -1
  41. package/build/cjs/components/index.d.ts +0 -1
  42. package/build/cjs/components/types.d.ts +1 -1
  43. package/build/cjs/index.js +11 -16
  44. package/build/cjs/index.js.map +1 -1
  45. package/build/cjs/index2.js +2 -2
  46. package/build/cjs/index3.js +4 -4
  47. package/build/cjs/index4.js +2 -2
  48. package/build/cjs/index5.js +6 -6
  49. package/build/cjs/index6.js +6 -6
  50. package/build/cjs/utils-db3e03c2.js +8 -0
  51. package/build/cjs/{utils-a93dd754.js.map → utils-db3e03c2.js.map} +1 -1
  52. package/build/esm/{ActionBar-68f814a3.js → ActionBar-affc1f80.js} +2 -2
  53. package/build/esm/ActionBar-affc1f80.js.map +1 -0
  54. package/build/esm/AsideFallback.js +4 -4
  55. package/build/esm/AsideFallback.js.map +1 -1
  56. package/build/esm/AsideHeader.js +6 -5
  57. package/build/esm/AsideHeader.js.map +1 -1
  58. package/build/esm/AsideHeaderContext.js.map +1 -1
  59. package/build/esm/Drawer.js +3 -3
  60. package/build/esm/Drawer.js.map +1 -1
  61. package/build/esm/{FooterItem-39ac7c22.js → FooterItem-76774de7.js} +57 -57
  62. package/build/esm/FooterItem-76774de7.js.map +1 -0
  63. package/build/esm/FooterItem.js +5 -5
  64. package/build/esm/FooterItem.js.map +1 -1
  65. package/build/esm/{HotkeysPanel-bd0e997d.js → HotkeysPanel-9138824c.js} +15 -15
  66. package/build/esm/HotkeysPanel-9138824c.js.map +1 -0
  67. package/build/esm/{Item-c8057002.js → Item-9eb6b3be.js} +50 -50
  68. package/build/esm/Item-9eb6b3be.js.map +1 -0
  69. package/build/esm/PageLayout.js +5 -5
  70. package/build/esm/PageLayout.js.map +1 -1
  71. package/build/esm/PageLayoutAside.js +219 -218
  72. package/build/esm/PageLayoutAside.js.map +1 -1
  73. package/build/esm/{Settings-31634d93.js → Settings-0a78c1a7.js} +48 -48
  74. package/build/esm/Settings-0a78c1a7.js.map +1 -0
  75. package/build/esm/{Title-b2f2c4e9.js → Title-03b4255a.js} +5 -5
  76. package/build/esm/Title-03b4255a.js.map +1 -0
  77. package/build/esm/{TopPanel-36ffc4c7.js → TopPanel-2760cf72.js} +3 -3
  78. package/build/esm/TopPanel-2760cf72.js.map +1 -0
  79. package/build/esm/{cn-589cd9e2.js → cn-ffe5e9f5.js} +2 -2
  80. package/build/esm/{cn-589cd9e2.js.map → cn-ffe5e9f5.js.map} +1 -1
  81. package/build/esm/components/AllPagesPanel/i18n/index.d.ts +1 -1
  82. package/build/esm/components/AsideHeader/i18n/index.d.ts +1 -1
  83. package/build/esm/components/AsideHeader/types.d.ts +1 -1
  84. package/build/esm/components/CompositeBar/utils.d.ts +2 -2
  85. package/build/esm/components/HotkeysPanel/HotkeysPanel.d.ts +1 -1
  86. package/build/esm/components/MobileHeader/MobileHeader.d.ts +3 -3
  87. package/build/esm/components/MobileHeader/i18n/index.d.ts +1 -1
  88. package/build/esm/components/Settings/Settings.d.ts +1 -1
  89. package/build/esm/components/Settings/i18n/index.d.ts +1 -1
  90. package/build/esm/components/Title/i18n/index.d.ts +1 -1
  91. package/build/esm/components/index.d.ts +0 -1
  92. package/build/esm/components/types.d.ts +1 -1
  93. package/build/esm/index.js +11 -11
  94. package/build/esm/index2.js +2 -2
  95. package/build/esm/index3.js +4 -4
  96. package/build/esm/index4.js +2 -2
  97. package/build/esm/index5.js +6 -6
  98. package/build/esm/index6.js +6 -6
  99. package/build/esm/utils-117463a5.js +6 -0
  100. package/build/esm/{utils-6d5146c7.js.map → utils-117463a5.js.map} +1 -1
  101. package/package.json +30 -30
  102. package/build/cjs/ActionBar-96a59723.js.map +0 -1
  103. package/build/cjs/FooterItem-eafaeac3.js.map +0 -1
  104. package/build/cjs/HotkeysPanel-2e240e4d.js.map +0 -1
  105. package/build/cjs/Item-b5ef87be.js.map +0 -1
  106. package/build/cjs/Settings-11b021e4.js.map +0 -1
  107. package/build/cjs/Title-c539667f.js.map +0 -1
  108. package/build/cjs/TopPanel-b531a2be.js.map +0 -1
  109. package/build/cjs/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  110. package/build/cjs/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  111. package/build/cjs/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  112. package/build/cjs/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
  113. package/build/cjs/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  114. package/build/cjs/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  115. package/build/cjs/components/AsideHeader/__stories__/moc.d.ts +0 -5
  116. package/build/cjs/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
  117. package/build/cjs/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
  118. package/build/cjs/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
  119. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
  120. package/build/cjs/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
  121. package/build/cjs/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  122. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
  123. package/build/cjs/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  124. package/build/cjs/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
  125. package/build/cjs/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  126. package/build/cjs/components/MobileHeader/__stories__/moc.d.ts +0 -1
  127. package/build/cjs/components/Settings/__stories__/Settings.stories.d.ts +0 -4
  128. package/build/cjs/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  129. package/build/cjs/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  130. package/build/cjs/components/utils/configure.d.ts +0 -12
  131. package/build/cjs/components/utils/registerKeyset.d.ts +0 -5
  132. package/build/cjs/i18n.d.ts +0 -2
  133. package/build/cjs/registerKeyset-f4ce9ee7.js +0 -215
  134. package/build/cjs/registerKeyset-f4ce9ee7.js.map +0 -1
  135. package/build/cjs/utils-a93dd754.js +0 -8
  136. package/build/esm/ActionBar-68f814a3.js.map +0 -1
  137. package/build/esm/FooterItem-39ac7c22.js.map +0 -1
  138. package/build/esm/HotkeysPanel-bd0e997d.js.map +0 -1
  139. package/build/esm/Item-c8057002.js.map +0 -1
  140. package/build/esm/Settings-31634d93.js.map +0 -1
  141. package/build/esm/Title-b2f2c4e9.js.map +0 -1
  142. package/build/esm/TopPanel-36ffc4c7.js.map +0 -1
  143. package/build/esm/components/ActionBar/__stories__/ActionBar.stories.d.ts +0 -20
  144. package/build/esm/components/ActionBar/__stories__/ActionBarShowcase.d.ts +0 -2
  145. package/build/esm/components/ActionBar/__stories__/ActionBarSingleSection.d.ts +0 -2
  146. package/build/esm/components/AsideHeader/__stories__/AsideHeader.stories.d.ts +0 -13
  147. package/build/esm/components/AsideHeader/__stories__/AsideHeaderShowcase.d.ts +0 -13
  148. package/build/esm/components/AsideHeader/__stories__/getAsideHeaderWrapper.d.ts +0 -3
  149. package/build/esm/components/AsideHeader/__stories__/moc.d.ts +0 -5
  150. package/build/esm/components/Drawer/__stories__/Drawer.stories.d.ts +0 -3
  151. package/build/esm/components/Drawer/__stories__/DrawerShowcase.d.ts +0 -3
  152. package/build/esm/components/FooterItem/__stories__/FooterItem.stories.d.ts +0 -5
  153. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanel.stories.d.ts +0 -3
  154. package/build/esm/components/HotkeysPanel/__stories__/HotkeysPanelShowcase.d.ts +0 -3
  155. package/build/esm/components/HotkeysPanel/__stories__/moc.d.ts +0 -2
  156. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/BurgerMenu.stories.d.ts +0 -5
  157. package/build/esm/components/MobileHeader/BurgerMenu/__stories__/moc.d.ts +0 -2
  158. package/build/esm/components/MobileHeader/__stories__/MobileHeader.stories.d.ts +0 -3
  159. package/build/esm/components/MobileHeader/__stories__/MobileHeaderShowcase.d.ts +0 -3
  160. package/build/esm/components/MobileHeader/__stories__/moc.d.ts +0 -1
  161. package/build/esm/components/Settings/__stories__/Settings.stories.d.ts +0 -4
  162. package/build/esm/components/Settings/__stories__/SettingsDemo.d.ts +0 -14
  163. package/build/esm/components/Settings/__stories__/SettingsMobileDemo.d.ts +0 -8
  164. package/build/esm/components/utils/configure.d.ts +0 -12
  165. package/build/esm/components/utils/registerKeyset.d.ts +0 -5
  166. package/build/esm/i18n.d.ts +0 -2
  167. package/build/esm/registerKeyset-35f1ea08.js +0 -212
  168. package/build/esm/registerKeyset-35f1ea08.js.map +0 -1
  169. package/build/esm/utils-6d5146c7.js +0 -6
@@ -1,13 +0,0 @@
1
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
2
- export default _default;
3
- export declare const Showcase: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
4
- export declare const Compact: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
5
- export declare const MultipleTooltip: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
6
- export declare const CustomTheme: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
7
- export declare const AdvancedUsage: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
8
- export declare const HeaderAlert: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
9
- export declare const HeaderAlertCentered: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
10
- export declare const Fallback: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, {
11
- headerDecoration: boolean;
12
- subheaderItemsCount: number;
13
- }>;
@@ -1,13 +0,0 @@
1
- import React from 'react';
2
- import { AsideHeaderTopAlertProps } from '../..';
3
- import './AsideHeaderShowcase.scss';
4
- interface AsideHeaderShowcaseProps {
5
- multipleTooltip?: boolean;
6
- initialCompact?: boolean;
7
- topAlert?: AsideHeaderTopAlertProps;
8
- customBackground?: React.ReactNode;
9
- customBackgroundClassName?: string;
10
- headerDecoration?: boolean;
11
- }
12
- export declare const AsideHeaderShowcase: React.FC<AsideHeaderShowcaseProps>;
13
- export {};
@@ -1,3 +0,0 @@
1
- import React, { FC } from 'react';
2
- import { AsideHeaderProps } from '../types';
3
- export declare function getAsideHeaderWrapper(props?: AsideHeaderProps): (Story: FC) => React.JSX.Element;
@@ -1,5 +0,0 @@
1
- import { MenuItem } from '../../types';
2
- import { AsideHeaderContextType } from '../AsideHeaderContext';
3
- export declare const EMPTY_CONTEXT_VALUE: AsideHeaderContextType;
4
- export declare const menuItemsShowcase: MenuItem[];
5
- export declare const text = "\nDid you attend? He sang by grove ripe -\nThe bard of love, the singer of his mourning.\nWhen fields were silent by the early morning,\nTo sad and simple sounds of a pipe\nDid you attend?\n\nDid you behold in dark of forest leaf\nThe bard of love, the singer of his sadness?\nThe trace of tears, the smile, the utter paleness,\nThe quiet look, full of eternal grief,\nDid you behold?\n\nThen did you sigh when hearing how cries\nThe bard of love, the singer of his dole?\nWhen in the woods you saw the young man, sole,\nAnd met the look of his extinguished eyes,\nThen did you sigh?\n";
@@ -1,3 +0,0 @@
1
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
2
- export default _default;
3
- export declare const Showcase: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import './DrawerShowcase.scss';
3
- export declare function DrawerShowcase(): React.JSX.Element;
@@ -1,5 +0,0 @@
1
- import { FooterItemProps } from '../FooterItem';
2
- import './FooterItemShowcase.scss';
3
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
4
- export default _default;
5
- export declare const Default: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, FooterItemProps>;
@@ -1,3 +0,0 @@
1
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
2
- export default _default;
3
- export declare const Showcase: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import './HotkeysPanelShowcase.scss';
3
- export declare function HotkeysPanelShowcase(): React.JSX.Element;
@@ -1,2 +0,0 @@
1
- import { HotkeysGroup } from '..';
2
- export declare const hotkeys: HotkeysGroup[];
@@ -1,5 +0,0 @@
1
- import { BurgerMenuInnerProps } from '../BurgerMenu';
2
- import './BurgerMenuShowcase.scss';
3
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
4
- export default _default;
5
- export declare const Showcase: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, BurgerMenuInnerProps>;
@@ -1,2 +0,0 @@
1
- import { MobileMenuItem } from '../../types';
2
- export declare const mobileMenuItemsShowcase: MobileMenuItem[];
@@ -1,3 +0,0 @@
1
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
2
- export default _default;
3
- export declare const Showcase: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
@@ -1,3 +0,0 @@
1
- import React from 'react';
2
- import './MobileHeaderShowcase.scss';
3
- export declare function MobileHeaderShowcase(): React.JSX.Element;
@@ -1 +0,0 @@
1
- export declare const text = "\nDid you attend? He sang by grove ripe -\nThe bard of love, the singer of his mourning.\nWhen fields were silent by the early morning,\nTo sad and simple sounds of a pipe\nDid you attend?\n\nDid you behold in dark of forest leaf\nThe bard of love, the singer of his sadness?\nThe trace of tears, the smile, the utter paleness,\nThe quiet look, full of eternal grief,\nDid you behold?\n\nThen did you sigh when hearing how cries\nThe bard of love, the singer of his dole?\nWhen in the woods you saw the young man, sole,\nAnd met the look of his extinguished eyes,\nThen did you sigh?\n";
@@ -1,4 +0,0 @@
1
- declare const _default: import("@storybook/types").ComponentAnnotations<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
2
- export default _default;
3
- export declare const Showcase: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
4
- export declare const ViewMobile: import("@storybook/types").AnnotatedStoryFn<import("@storybook/react/dist/types-0a347bb9").R, import("@storybook/types").Args>;
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
- import './SettingsDemo.scss';
3
- export interface DemoProps {
4
- title: string;
5
- }
6
- export interface DemoRowProps {
7
- title: string;
8
- }
9
- export declare const SettingsComponent: React.MemoExoticComponent<({ initialPage, withBadge, onClose, }: {
10
- initialPage?: string | undefined;
11
- withBadge?: boolean | undefined;
12
- onClose: () => void;
13
- }) => React.JSX.Element>;
14
- export declare function SettingsDemo(): React.JSX.Element;
@@ -1,8 +0,0 @@
1
- import React from 'react';
2
- import './SettingsMobileDemo.scss';
3
- export declare const SettingsMobileComponent: React.MemoExoticComponent<({ initialPage, withBadge, onClose, }: {
4
- initialPage?: string | undefined;
5
- withBadge?: boolean | undefined;
6
- onClose?: (() => void) | undefined;
7
- }) => React.JSX.Element>;
8
- export declare function SettingsMobileDemo(): React.JSX.Element;
@@ -1,12 +0,0 @@
1
- export declare enum Lang {
2
- Ru = "ru",
3
- En = "en"
4
- }
5
- interface Config {
6
- lang: `${Lang}`;
7
- }
8
- type Subscriber = (config: Config) => void;
9
- export declare const configure: (newConfig: Partial<Config>) => void;
10
- export declare const subscribeConfigure: (sub: Subscriber) => () => void;
11
- export declare const getConfig: () => Config;
12
- export {};
@@ -1,5 +0,0 @@
1
- import { i18n } from '../../i18n';
2
- import { Lang } from './configure';
3
- type KeysData = Parameters<typeof i18n.registerKeyset>[2];
4
- export declare function registerKeyset<T extends KeysData>(data: Record<Lang, T>, keysetName: string): (key: string, params?: import("@gravity-ui/i18n").Params | undefined) => string;
5
- export {};
@@ -1,2 +0,0 @@
1
- import { I18N } from '@gravity-ui/i18n';
2
- export declare const i18n: I18N;
@@ -1,215 +0,0 @@
1
- 'use strict';
2
-
3
- const PARAM_REGEXP = /{{(.*?)}}/g;
4
- function replaceParams(keyValue, params) {
5
- let result = '';
6
- let lastIndex = (PARAM_REGEXP.lastIndex = 0);
7
- let match;
8
- while ((match = PARAM_REGEXP.exec(keyValue))) {
9
- if (lastIndex !== match.index) {
10
- result += keyValue.slice(lastIndex, match.index);
11
- }
12
- lastIndex = PARAM_REGEXP.lastIndex;
13
- const [all, key] = match;
14
- if (Object.prototype.hasOwnProperty.call(params, key)) {
15
- result += params[key];
16
- }
17
- else {
18
- result += all;
19
- }
20
- }
21
- if (lastIndex < keyValue.length) {
22
- result += keyValue.slice(lastIndex);
23
- }
24
- return result;
25
- }
26
-
27
- var PluralForm;
28
- (function (PluralForm) {
29
- PluralForm[PluralForm["One"] = 0] = "One";
30
- PluralForm[PluralForm["Few"] = 1] = "Few";
31
- PluralForm[PluralForm["Many"] = 2] = "Many";
32
- PluralForm[PluralForm["None"] = 3] = "None";
33
- })(PluralForm || (PluralForm = {}));
34
-
35
- function pluralizerEn (count, pluralForms) {
36
- if (count === 0) {
37
- return pluralForms.None;
38
- }
39
- if (count === 1 || count === -1) {
40
- return pluralForms.One;
41
- }
42
- return pluralForms.Many;
43
- }
44
-
45
- function pluralizerRu (count, pluralForms) {
46
- // the rules for negative numbers are the same
47
- const lastDigit = Math.abs(count % 10);
48
- const last2Digits = Math.abs(count % 100);
49
- if (count === 0) {
50
- return pluralForms.None;
51
- }
52
- if (lastDigit === 1 && last2Digits !== 11) {
53
- return pluralForms.One;
54
- }
55
- if ((lastDigit > 1 && lastDigit < 5) && (last2Digits < 10 || last2Digits > 20)) {
56
- return pluralForms.Few;
57
- }
58
- return pluralForms.Many;
59
- }
60
-
61
- class I18N {
62
- constructor(options) {
63
- this.data = {};
64
- this.lang = undefined;
65
- this.pluralizers = {
66
- en: pluralizerEn,
67
- ru: pluralizerRu,
68
- };
69
- this.logger = null;
70
- this.logger = (options === null || options === void 0 ? void 0 : options.logger) || null;
71
- }
72
- setLang(lang) {
73
- this.lang = lang;
74
- }
75
- configurePluralization(pluralizers) {
76
- this.pluralizers = Object.assign({}, this.pluralizers, pluralizers);
77
- }
78
- registerKeyset(lang, keysetName, data = {}) {
79
- if (this.data[lang] && Object.prototype.hasOwnProperty.call(this.data[lang], keysetName)) {
80
- throw new Error(`Keyset '${keysetName}' is already registered, aborting!`);
81
- }
82
- this.data[lang] = Object.assign({}, this.data[lang], { [keysetName]: data });
83
- }
84
- registerKeysets(lang, data) {
85
- Object.keys(data).forEach((keysetName) => {
86
- this.registerKeyset(lang, keysetName, data[keysetName]);
87
- });
88
- }
89
- has(keysetName, key, lang) {
90
- const languageData = this.getLanguageData(lang);
91
- return Boolean(languageData && languageData[keysetName] && languageData[keysetName][key]);
92
- }
93
- i18n(keysetName, key, params) {
94
- const languageData = this.getLanguageData(this.lang);
95
- if (typeof languageData === 'undefined') {
96
- throw new Error(`Language '${this.lang}' is not defined, make sure you call setLang for the same language you called registerKeysets for!`);
97
- }
98
- if (Object.keys(languageData).length === 0) {
99
- this.warn('Language data is empty.');
100
- return key;
101
- }
102
- const keyset = languageData[keysetName];
103
- if (!keyset) {
104
- this.warn('Keyset not found.', keysetName);
105
- return key;
106
- }
107
- if (Object.keys(keyset).length === 0) {
108
- this.warn('Keyset is empty.', keysetName);
109
- return key;
110
- }
111
- const keyValue = keyset && keyset[key];
112
- let result;
113
- if (typeof keyValue === 'undefined') {
114
- this.warn('Missing key.', keysetName, key);
115
- return key;
116
- }
117
- if (Array.isArray(keyValue)) {
118
- if (keyValue.length < 3) {
119
- this.warn('Missing required plurals', keysetName, key);
120
- return key;
121
- }
122
- const count = Number(params === null || params === void 0 ? void 0 : params.count);
123
- if (Number.isNaN(count)) {
124
- this.warn('Missing params.count for key.', keysetName, key);
125
- return key;
126
- }
127
- const pluralizer = this.getLanguagePluralizer(this.lang);
128
- result = keyValue[pluralizer(count, PluralForm)] || keyValue[PluralForm.Many];
129
- if (keyValue[PluralForm.None] === undefined) {
130
- this.warn('Missing key for 0', keysetName, key);
131
- }
132
- }
133
- else {
134
- result = keyValue;
135
- }
136
- if (params) {
137
- result = replaceParams(result, params);
138
- }
139
- return result;
140
- }
141
- keyset(keysetName) {
142
- return (key, params) => {
143
- return this.i18n(keysetName, key, params);
144
- };
145
- }
146
- warn(msg, keyset, key) {
147
- var _a;
148
- let cacheKey = '';
149
- if (keyset) {
150
- cacheKey += keyset;
151
- if (key) {
152
- cacheKey += `.${key}`;
153
- }
154
- }
155
- else {
156
- cacheKey = 'languageData';
157
- }
158
- (_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(`I18n: ${msg}`, {
159
- level: 'info',
160
- logger: cacheKey,
161
- extra: {
162
- type: 'i18n'
163
- }
164
- });
165
- }
166
- getLanguageData(lang) {
167
- const langCode = lang || this.lang;
168
- return langCode ? this.data[langCode] : undefined;
169
- }
170
- getLanguagePluralizer(lang) {
171
- const pluralizer = lang ? this.pluralizers[lang] : undefined;
172
- if (!pluralizer) {
173
- this.warn(`Pluralization is not configured for language '${lang}', falling back to the english ruleset`);
174
- }
175
- return pluralizer || pluralizerEn;
176
- }
177
- }
178
-
179
- exports.Lang = void 0;
180
- (function (Lang) {
181
- Lang["Ru"] = "ru";
182
- Lang["En"] = "en";
183
- })(exports.Lang || (exports.Lang = {}));
184
- let subs = [];
185
- const config = {
186
- lang: exports.Lang.En,
187
- };
188
- const configure = (newConfig) => {
189
- Object.assign(config, newConfig);
190
- subs.forEach((sub) => {
191
- sub(config);
192
- });
193
- };
194
- const subscribeConfigure = (sub) => {
195
- subs.push(sub);
196
- return () => {
197
- subs = subs.filter((item) => item !== sub);
198
- };
199
- };
200
- const getConfig = () => config;
201
-
202
- const i18n = new I18N();
203
- i18n.setLang(getConfig().lang);
204
- subscribeConfigure((config) => {
205
- i18n.setLang(config.lang);
206
- });
207
-
208
- function registerKeyset(data, keysetName) {
209
- Object.entries(data).forEach(([lang, keys]) => i18n.registerKeyset(lang, keysetName, keys));
210
- return i18n.keyset(keysetName);
211
- }
212
-
213
- exports.configure = configure;
214
- exports.registerKeyset = registerKeyset;
215
- //# sourceMappingURL=registerKeyset-f4ce9ee7.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerKeyset-f4ce9ee7.js","sources":["../../node_modules/@gravity-ui/i18n/build/esm/replace-params.js","../../node_modules/@gravity-ui/i18n/build/esm/types.js","../../node_modules/@gravity-ui/i18n/build/esm/plural/en.js","../../node_modules/@gravity-ui/i18n/build/esm/plural/ru.js","../../node_modules/@gravity-ui/i18n/build/esm/index.js","../../../src/components/utils/configure.ts","../../../src/i18n.ts","../../../src/components/utils/registerKeyset.ts"],"sourcesContent":["const PARAM_REGEXP = /{{(.*?)}}/g;\nexport function replaceParams(keyValue, params) {\n let result = '';\n let lastIndex = (PARAM_REGEXP.lastIndex = 0);\n let match;\n while ((match = PARAM_REGEXP.exec(keyValue))) {\n if (lastIndex !== match.index) {\n result += keyValue.slice(lastIndex, match.index);\n }\n lastIndex = PARAM_REGEXP.lastIndex;\n const [all, key] = match;\n if (Object.prototype.hasOwnProperty.call(params, key)) {\n result += params[key];\n }\n else {\n result += all;\n }\n }\n if (lastIndex < keyValue.length) {\n result += keyValue.slice(lastIndex);\n }\n return result;\n}\n","export var PluralForm;\n(function (PluralForm) {\n PluralForm[PluralForm[\"One\"] = 0] = \"One\";\n PluralForm[PluralForm[\"Few\"] = 1] = \"Few\";\n PluralForm[PluralForm[\"Many\"] = 2] = \"Many\";\n PluralForm[PluralForm[\"None\"] = 3] = \"None\";\n})(PluralForm || (PluralForm = {}));\n","export default function (count, pluralForms) {\n if (count === 0) {\n return pluralForms.None;\n }\n if (count === 1 || count === -1) {\n return pluralForms.One;\n }\n return pluralForms.Many;\n}\n","export default function (count, pluralForms) {\n // the rules for negative numbers are the same\n const lastDigit = Math.abs(count % 10);\n const last2Digits = Math.abs(count % 100);\n if (count === 0) {\n return pluralForms.None;\n }\n if (lastDigit === 1 && last2Digits !== 11) {\n return pluralForms.One;\n }\n if ((lastDigit > 1 && lastDigit < 5) && (last2Digits < 10 || last2Digits > 20)) {\n return pluralForms.Few;\n }\n return pluralForms.Many;\n}\n","import { replaceParams } from './replace-params';\nimport { PluralForm } from './types';\nimport pluralizerEn from './plural/en';\nimport pluralizerRu from './plural/ru';\nexport * from './types';\nexport class I18N {\n constructor(options) {\n this.data = {};\n this.lang = undefined;\n this.pluralizers = {\n en: pluralizerEn,\n ru: pluralizerRu,\n };\n this.logger = null;\n this.logger = (options === null || options === void 0 ? void 0 : options.logger) || null;\n }\n setLang(lang) {\n this.lang = lang;\n }\n configurePluralization(pluralizers) {\n this.pluralizers = Object.assign({}, this.pluralizers, pluralizers);\n }\n registerKeyset(lang, keysetName, data = {}) {\n if (this.data[lang] && Object.prototype.hasOwnProperty.call(this.data[lang], keysetName)) {\n throw new Error(`Keyset '${keysetName}' is already registered, aborting!`);\n }\n this.data[lang] = Object.assign({}, this.data[lang], { [keysetName]: data });\n }\n registerKeysets(lang, data) {\n Object.keys(data).forEach((keysetName) => {\n this.registerKeyset(lang, keysetName, data[keysetName]);\n });\n }\n has(keysetName, key, lang) {\n const languageData = this.getLanguageData(lang);\n return Boolean(languageData && languageData[keysetName] && languageData[keysetName][key]);\n }\n i18n(keysetName, key, params) {\n const languageData = this.getLanguageData(this.lang);\n if (typeof languageData === 'undefined') {\n throw new Error(`Language '${this.lang}' is not defined, make sure you call setLang for the same language you called registerKeysets for!`);\n }\n if (Object.keys(languageData).length === 0) {\n this.warn('Language data is empty.');\n return key;\n }\n const keyset = languageData[keysetName];\n if (!keyset) {\n this.warn('Keyset not found.', keysetName);\n return key;\n }\n if (Object.keys(keyset).length === 0) {\n this.warn('Keyset is empty.', keysetName);\n return key;\n }\n const keyValue = keyset && keyset[key];\n let result;\n if (typeof keyValue === 'undefined') {\n this.warn('Missing key.', keysetName, key);\n return key;\n }\n if (Array.isArray(keyValue)) {\n if (keyValue.length < 3) {\n this.warn('Missing required plurals', keysetName, key);\n return key;\n }\n const count = Number(params === null || params === void 0 ? void 0 : params.count);\n if (Number.isNaN(count)) {\n this.warn('Missing params.count for key.', keysetName, key);\n return key;\n }\n const pluralizer = this.getLanguagePluralizer(this.lang);\n result = keyValue[pluralizer(count, PluralForm)] || keyValue[PluralForm.Many];\n if (keyValue[PluralForm.None] === undefined) {\n this.warn('Missing key for 0', keysetName, key);\n }\n }\n else {\n result = keyValue;\n }\n if (params) {\n result = replaceParams(result, params);\n }\n return result;\n }\n keyset(keysetName) {\n return (key, params) => {\n return this.i18n(keysetName, key, params);\n };\n }\n warn(msg, keyset, key) {\n var _a;\n let cacheKey = '';\n if (keyset) {\n cacheKey += keyset;\n if (key) {\n cacheKey += `.${key}`;\n }\n }\n else {\n cacheKey = 'languageData';\n }\n (_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(`I18n: ${msg}`, {\n level: 'info',\n logger: cacheKey,\n extra: {\n type: 'i18n'\n }\n });\n }\n getLanguageData(lang) {\n const langCode = lang || this.lang;\n return langCode ? this.data[langCode] : undefined;\n }\n getLanguagePluralizer(lang) {\n const pluralizer = lang ? this.pluralizers[lang] : undefined;\n if (!pluralizer) {\n this.warn(`Pluralization is not configured for language '${lang}', falling back to the english ruleset`);\n }\n return pluralizer || pluralizerEn;\n }\n}\n","export enum Lang {\n Ru = 'ru',\n En = 'en',\n}\n\ninterface Config {\n lang: `${Lang}`;\n}\n\ntype Subscriber = (config: Config) => void;\n\nlet subs: Subscriber[] = [];\n\nconst config: Config = {\n lang: Lang.En,\n};\n\nexport const configure = (newConfig: Partial<Config>) => {\n Object.assign(config, newConfig);\n subs.forEach((sub) => {\n sub(config);\n });\n};\n\nexport const subscribeConfigure = (sub: Subscriber) => {\n subs.push(sub);\n\n return () => {\n subs = subs.filter((item) => item !== sub);\n };\n};\n\nexport const getConfig = () => config;\n","import {I18N} from '@gravity-ui/i18n';\n\nimport {getConfig, subscribeConfigure} from './components/utils/configure';\n\nexport const i18n = new I18N();\n\ni18n.setLang(getConfig().lang);\n\nsubscribeConfigure((config) => {\n i18n.setLang(config.lang);\n});\n","import {i18n} from '../../i18n';\n\nimport {Lang} from './configure';\n\ntype KeysData = Parameters<typeof i18n.registerKeyset>[2];\n\nexport function registerKeyset<T extends KeysData>(data: Record<Lang, T>, keysetName: string) {\n Object.entries(data).forEach(([lang, keys]) => i18n.registerKeyset(lang, keysetName, keys));\n\n return i18n.keyset(keysetName);\n}\n"],"names":["Lang"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- 'use strict';
2
-
3
- var cn = require('./cn-1964a72a.js');
4
-
5
- const b = cn.block('aside-header');
6
-
7
- exports.b = b;
8
- //# sourceMappingURL=utils-a93dd754.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ActionBar-68f814a3.js","sources":["../../../src/components/ActionBar/Group/ActionBarGroup.tsx","../../../src/components/ActionBar/Item/ActionBarItem.tsx","../../../src/components/ActionBar/Section/ActionBarSection.tsx","../../../src/components/ActionBar/Separator/ActionBarSeparator.tsx","../../../src/components/ActionBar/ActionBar.tsx"],"sourcesContent":["import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../../utils/cn';\nimport {PropsWithPull} from '../types';\n\nimport './ActionBarGroup.scss';\n\nexport type Props = PropsWithChildren<\n PropsWithPull<{\n className?: string;\n }>\n>;\n\nconst b = block('action-bar-group');\n\nexport const ActionBarGroup = ({children, className, pull}: Props) => {\n return (\n <ul className={b({pull}, className)} role=\"group\">\n {children}\n </ul>\n );\n};\n\nActionBarGroup.displayName = 'ActionBar.Group';\n","import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../../utils/cn';\nimport {PropsWithPull} from '../types';\n\nimport './ActionBarItem.scss';\n\nexport type Props = PropsWithChildren<\n PropsWithPull<{\n spacing?: boolean;\n className?: string;\n }>\n>;\n\nconst b = block('action-bar-item');\n\nexport const ActionBarItem = ({children, className, pull, spacing = true}: Props) => {\n return <li className={b({pull, spacing}, className)}>{children}</li>;\n};\n\nActionBarItem.displayName = 'ActionBar.Item';\n","import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../../utils/cn';\n\nimport './ActionBarSection.scss';\n\nexport type Props = PropsWithChildren<{type?: 'primary' | 'secondary'}>;\n\nconst b = block('action-bar-section');\n\nexport const ActionBarSection = ({children, type = 'primary'}: Props) => {\n return <div className={b({type})}>{children}</div>;\n};\n\nActionBarSection.displayName = 'ActionBar.Section';\n","import React from 'react';\n\nimport {block} from '../../utils/cn';\n\nimport './ActionBarSeparator.scss';\n\nconst b = block('action-bar-separator');\n\nexport const ActionBarSeparator = () => {\n return <li role=\"separator\" className={b()} />;\n};\n\nActionBarSeparator.displayName = 'ActionBar.Separator';\n","import React, {PropsWithChildren} from 'react';\n\nimport {block} from '../utils/cn';\nimport {ActionBarGroup} from './Group/ActionBarGroup';\nimport {ActionBarItem} from './Item/ActionBarItem';\nimport {ActionBarSection} from './Section/ActionBarSection';\nimport {ActionBarSeparator} from './Separator/ActionBarSeparator';\n\nimport './ActionBar.scss';\n\nexport type Props = PropsWithChildren<{\n 'aria-label'?: string;\n className?: string;\n}>;\n\nconst b = block('action-bar');\n\nconst ActionBar = ({children, className, 'aria-label': ariaLabel}: Props) => {\n return (\n <section className={b(null, className)} aria-label={ariaLabel}>\n {children}\n </section>\n );\n};\n\nActionBar.displayName = 'ActionBar';\n\nconst PublicActionBar = Object.assign(ActionBar, {\n Section: ActionBarSection,\n Group: ActionBarGroup,\n Item: ActionBarItem,\n Separator: ActionBarSeparator,\n});\n\nexport {PublicActionBar as ActionBar};\n"],"names":["b","React"],"mappings":";;;;;;;AAaA,MAAMA,GAAC,GAAG,KAAK,CAAC,kBAAkB,CAAC,CAAC;AAE7B,MAAM,cAAc,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAQ,KAAI;IACjE,QACIC,qCAAI,SAAS,EAAED,GAAC,CAAC,EAAC,IAAI,EAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAC,OAAO,IAC5C,QAAQ,CACR,EACP;AACN,CAAC,CAAC;AAEF,cAAc,CAAC,WAAW,GAAG,iBAAiB;;;;;ACT9C,MAAMA,GAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAE5B,MAAM,aAAa,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,EAAQ,KAAI;AAChF,IAAA,OAAOC,qCAAI,SAAS,EAAED,GAAC,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,EAAE,SAAS,CAAC,EAAG,EAAA,QAAQ,CAAM,CAAC;AACzE,CAAC,CAAC;AAEF,aAAa,CAAC,WAAW,GAAG,gBAAgB;;;;;ACZ5C,MAAMA,GAAC,GAAG,KAAK,CAAC,oBAAoB,CAAC,CAAC;AAE/B,MAAM,gBAAgB,GAAG,CAAC,EAAC,QAAQ,EAAE,IAAI,GAAG,SAAS,EAAQ,KAAI;AACpE,IAAA,OAAOC,cAAK,CAAA,aAAA,CAAA,KAAA,EAAA,EAAA,SAAS,EAAED,GAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAA,EAAG,QAAQ,CAAO,CAAC;AACvD,CAAC,CAAC;AAEF,gBAAgB,CAAC,WAAW,GAAG,mBAAmB;;;;;ACRlD,MAAMA,GAAC,GAAG,KAAK,CAAC,sBAAsB,CAAC,CAAC;AAEjC,MAAM,kBAAkB,GAAG,MAAK;IACnC,OAAOC,cAAA,CAAA,aAAA,CAAA,IAAA,EAAA,EAAI,IAAI,EAAC,WAAW,EAAC,SAAS,EAAED,GAAC,EAAE,EAAA,CAAI,CAAC;AACnD,CAAC,CAAC;AAEF,kBAAkB,CAAC,WAAW,GAAG,qBAAqB;;;;;ACGtD,MAAM,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC;AAE9B,MAAM,SAAS,GAAG,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAQ,KAAI;AACxE,IAAA,QACIC,cAAS,CAAA,aAAA,CAAA,SAAA,EAAA,EAAA,SAAS,EAAE,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,gBAAc,SAAS,EAAA,EACxD,QAAQ,CACH,EACZ;AACN,CAAC,CAAC;AAEF,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAEpC,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;AAC7C,IAAA,OAAO,EAAE,gBAAgB;AACzB,IAAA,KAAK,EAAE,cAAc;AACrB,IAAA,IAAI,EAAE,aAAa;AACnB,IAAA,SAAS,EAAE,kBAAkB;AAChC,CAAA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"FooterItem-39ac7c22.js","sources":["../../../src/hooks/useForwardRef.tsx","../../../src/components/MobileHeader/Burger/Burger.tsx","../../../src/components/MobileHeader/Logo/Logo.tsx","../../../src/components/MobileHeader/constants.ts","../../../src/components/MobileHeader/utils.ts","../../../src/components/MobileHeader/BurgerMenu/BurgerCompositeBar/BurgerCompositeBar.tsx","../../../src/components/MobileHeader/BurgerMenu/BurgerMenu.tsx","../../../src/components/MobileHeader/i18n/index.ts","../../../src/components/MobileHeader/MobileHeader.tsx","../../../src/components/MobileHeader/FooterItem/FooterItem.tsx"],"sourcesContent":["import React from 'react';\n\nexport const useForwardRef = <T,>(\n ref: ((instance: T | null) => void) | React.MutableRefObject<T | null> | null,\n initialValue: any = null,\n) => {\n const targetRef = React.useRef<T>(initialValue);\n\n React.useEffect(() => {\n if (!ref) return;\n\n if (typeof ref === 'function') {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }, [ref]);\n\n return targetRef;\n};\n","import React from 'react';\nimport {block} from '../../utils/cn';\n\nimport './Burger.scss';\n\nconst b = block('mobile-header-burger');\n\ninterface BurgerProps {\n closeTitle: string;\n openTitle: string;\n opened?: boolean;\n className?: string;\n onClick?: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\nexport const Burger = React.memo(\n ({closeTitle, openTitle, opened, className, onClick}: BurgerProps) => (\n <button\n className={b({opened}, className)}\n onClick={onClick}\n aria-label={opened ? closeTitle : openTitle}\n >\n <span className={b('icon')}>\n <span className={b('icon-dash')}></span>\n </span>\n </button>\n ),\n);\n\nBurger.displayName = 'Burger';\n","import React from 'react';\nimport {Icon} from '@gravity-ui/uikit';\nimport {block} from '../../utils/cn';\nimport {LogoProps} from '../../types';\n\nimport './Logo.scss';\n\nconst b = block('mobile-header-logo');\n\ninterface LogoInnerProps extends LogoProps {\n compact: boolean;\n}\n\nexport const Logo: React.FC<LogoInnerProps> = ({\n text,\n compact,\n icon,\n iconSrc,\n iconClassName,\n iconSize = 32,\n textSize = 20,\n href = '/',\n wrapper,\n onClick,\n}) => {\n const hasClickHandler = typeof onClick === 'function';\n const hasWrapper = typeof wrapper === 'function';\n\n const linkProps = hasClickHandler\n ? {}\n : {\n target: '_self',\n href,\n };\n\n let logoIcon;\n\n if (iconSrc) {\n logoIcon = (\n <img\n alt=\"logo icon\"\n src={iconSrc}\n width={iconSize}\n height={iconSize}\n className={iconClassName}\n />\n );\n } else if (icon) {\n logoIcon = <Icon data={icon} size={iconSize} className={b('icon', iconClassName)} />;\n }\n\n let logoTitle: React.ReactNode;\n\n if (typeof text === 'function') {\n logoTitle = text();\n } else {\n logoTitle = (\n <span className={b('title')} style={{fontSize: textSize}}>\n {text}\n </span>\n );\n }\n\n const logo = (\n <React.Fragment>\n {logoIcon}\n {logoTitle}\n </React.Fragment>\n );\n\n return hasWrapper ? (\n <div className={b()} onClick={onClick}>\n {wrapper(logo, compact)}\n </div>\n ) : (\n <a {...linkProps} className={b()} onClick={onClick}>\n {logo}\n </a>\n );\n};\n","import {ItemEventsConfig} from './types';\n\nexport const MOBILE_ITEM_HEIGHT = 48;\nexport const MOBILE_HEADER_COMPACT_HEIGHT = 50;\nexport const MOBILE_HEADER_EXPANDED_HEIGHT = 120;\nexport const MOBILE_HEADER_ICON_SIZE = 20;\n\nexport const EVENT_NAMES: ItemEventsConfig = {\n toggleEvent: 'MOBILE_PANEL_TOGGLE',\n closeEvent: 'MOBILE_PANEL_CLOSE',\n openEvent: 'MOBILE_PANEL_OPEN',\n};\n\nexport const BURGER_PANEL_ITEM_ID = 'burger';\n","import {MobileMenuItem} from './types';\nimport {MOBILE_ITEM_HEIGHT} from './constants';\n\nexport const getItemHeight = (item: MobileMenuItem) => {\n switch (item.type) {\n case 'divider':\n return 1;\n default:\n return MOBILE_ITEM_HEIGHT;\n }\n};\n\nexport const getSelectedItemIndex = (items: MobileMenuItem[]) => {\n const index = items.findIndex(({current}) => Boolean(current));\n\n return index === -1 ? undefined : index;\n};\n","import React from 'react';\nimport {List, Icon} from '@gravity-ui/uikit';\n\nimport {block} from '../../../utils/cn';\nimport {MobileMenuItem} from '../../types';\nimport {MOBILE_HEADER_ICON_SIZE} from '../../constants';\nimport {getItemHeight, getSelectedItemIndex} from '../../utils';\n\nimport './BurgerCompositeBar.scss';\n\nconst b = block('burger-composite-bar');\n\ninterface ItemProps {\n item: MobileMenuItem;\n onItemClick?: (item: MobileMenuItem) => void;\n}\n\nconst Item = ({item, onItemClick}: ItemProps) => {\n const {icon, type = 'regular', iconSize = MOBILE_HEADER_ICON_SIZE} = item;\n\n if (type === 'divider') {\n return <div className={b('menu-divider')} />;\n }\n\n const node = (\n <div\n className={b('item', {type})}\n onClick={() => {\n if (typeof item.onItemClick === 'function') {\n item.onItemClick(item);\n }\n\n if (type === 'regular') {\n onItemClick?.(item);\n }\n }}\n >\n <div className={b('item-icon-place')}>\n {icon && <Icon data={icon} size={iconSize} className={b('item-icon')} />}\n </div>\n <div className={b('item-title')}>{item.title}</div>\n </div>\n );\n\n if (typeof item.itemWrapper === 'function') {\n return item.itemWrapper(node, item) as React.ReactElement;\n }\n\n return item.link ? (\n <a href={item.link} className={b('link')}>\n {node}\n </a>\n ) : (\n node\n );\n};\nItem.displayName = 'Item';\n\ninterface BurgerCompositeBarProps {\n items: MobileMenuItem[];\n onItemClick?: (item: MobileMenuItem) => void;\n}\n\nexport const BurgerCompositeBar = React.memo(({items, onItemClick}: BurgerCompositeBarProps) => {\n return (\n <nav className={b()}>\n <List<MobileMenuItem>\n items={items}\n selectedItemIndex={getSelectedItemIndex(items)}\n itemHeight={getItemHeight}\n itemClassName={b('root-menu-item')}\n virtualized={false}\n filterable={false}\n sortable={false}\n renderItem={(item) => <Item item={item} onItemClick={onItemClick} />}\n />\n </nav>\n );\n});\n\nBurgerCompositeBar.displayName = 'BurgerCompositeBar';\n","import React from 'react';\nimport {Sheet} from '@gravity-ui/uikit';\nimport {block} from '../../utils/cn';\n\nimport {MobileMenuItem, ModalItem} from '../types';\nimport {BurgerCompositeBar} from './BurgerCompositeBar/BurgerCompositeBar';\n\nimport './BurgerMenu.scss';\n\nconst b = block('mobile-header-burger-menu');\n\nexport interface BurgerMenuInnerProps {\n items?: MobileMenuItem[];\n modalItem?: ModalItem;\n renderFooter?: () => React.ReactNode;\n onItemClick?: (item: MobileMenuItem) => void;\n className?: string;\n}\n\nexport const BurgerMenu = React.memo(\n ({items = [], renderFooter, modalItem, className, onItemClick}: BurgerMenuInnerProps) => {\n return (\n <div className={b(null, className)}>\n {modalItem && (\n <Sheet\n visible={modalItem.visible}\n id={modalItem.id}\n title={modalItem.title}\n onClose={modalItem.onClose}\n contentClassName={modalItem.contentClassName}\n className={modalItem.className}\n >\n {modalItem.renderContent?.()}\n </Sheet>\n )}\n\n <BurgerCompositeBar items={items} onItemClick={onItemClick} />\n\n {renderFooter && <div className={b('footer')}>{renderFooter?.()}</div>}\n </div>\n );\n },\n);\n\nBurgerMenu.displayName = 'BurgerMenu';\n","import {registerKeyset} from '../../utils/registerKeyset';\n\nimport en from './en.json';\nimport ru from './ru.json';\n\nconst COMPONENT = 'MobileHeader';\nexport default registerKeyset({en, ru}, COMPONENT);\n","import React, {useCallback, useState, useMemo, useEffect} from 'react';\n\nimport {block} from '../utils/cn';\nimport {LogoProps} from '../types';\nimport {MobileMenuItem, MobileHeaderEvent} from './types';\nimport {useForwardRef} from '../../hooks/useForwardRef';\nimport {Drawer, DrawerItem, DrawerItemProps} from '../Drawer/Drawer';\nimport {Content, RenderContentType} from '../Content';\nimport {Burger} from './Burger/Burger';\nimport {Logo} from './Logo/Logo';\nimport {BurgerMenu, BurgerMenuInnerProps} from './BurgerMenu/BurgerMenu';\nimport {\n MOBILE_HEADER_COMPACT_HEIGHT,\n MOBILE_HEADER_EXPANDED_HEIGHT,\n EVENT_NAMES,\n BURGER_PANEL_ITEM_ID,\n} from './constants';\nimport i18n from './i18n';\n\nimport './MobileHeader.scss';\n\nconst b = block('mobile-header');\n\ntype PanelName = DrawerItemProps['id'] | null;\n\ninterface BurgerMenuProps extends Omit<BurgerMenuInnerProps, 'renderFooter'> {\n renderFooter?: (data: {size: number; isCompact: boolean}) => React.ReactNode;\n}\n\ninterface PanelItem extends Omit<DrawerItemProps, 'visible'> {}\n\nexport interface MobileHeaderProps {\n logo: LogoProps;\n burgerMenu: BurgerMenuProps;\n burgerCloseTitle?: string;\n burgerOpenTitle?: string;\n panelItems?: PanelItem[];\n renderContent?: RenderContentType;\n sideItemRenderContent?: RenderContentType;\n onEvent?: (itemName: string, eventName: MobileHeaderEvent) => void;\n onClosePanel?: () => void;\n className?: string;\n}\n\nexport const MobileHeader = React.forwardRef<HTMLDivElement, MobileHeaderProps>(\n (\n {\n logo,\n burgerMenu,\n burgerCloseTitle = i18n('burger_button_close'),\n burgerOpenTitle = i18n('burger_button_open'),\n panelItems = [],\n renderContent,\n sideItemRenderContent,\n onClosePanel,\n onEvent,\n className,\n },\n ref,\n ): React.ReactElement => {\n const targetRef = useForwardRef<HTMLDivElement>(ref);\n const [compact] = useState(true);\n const [visiblePanel, setVisiblePanel] = useState<PanelName>(null);\n\n // for expand top panel cases (i.e. switch service panel). Will be removed if not used in future design\n const size = compact ? MOBILE_HEADER_COMPACT_HEIGHT : MOBILE_HEADER_EXPANDED_HEIGHT;\n\n const onPanelToggle = useCallback(\n (name: PanelName) => {\n if (!name) return;\n\n setVisiblePanel((prev) => {\n const panelOpen = prev === name;\n\n onEvent?.(name, panelOpen ? EVENT_NAMES.closeEvent : EVENT_NAMES.openEvent);\n\n return panelOpen ? null : name;\n });\n },\n [onEvent],\n );\n\n const onMobilePanelToggle = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onPanelToggle(detail?.panelName);\n }\n },\n [onPanelToggle],\n );\n\n const onMobilePanelOpen = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onEvent?.(detail?.panelName, EVENT_NAMES.openEvent);\n setVisiblePanel(detail?.panelName);\n }\n },\n [onEvent],\n );\n\n const onMobilePanelClose = useCallback(\n ({detail}) => {\n if (typeof detail?.panelName === 'string') {\n onEvent?.(detail?.panelName, EVENT_NAMES.closeEvent);\n setVisiblePanel(null);\n }\n },\n [onEvent],\n );\n\n const onBurgerOpen = useCallback(() => {\n onEvent?.(BURGER_PANEL_ITEM_ID, EVENT_NAMES.openEvent);\n setVisiblePanel(BURGER_PANEL_ITEM_ID);\n }, [onEvent]);\n\n const onBurgerClose = useCallback(() => {\n onEvent?.(BURGER_PANEL_ITEM_ID, EVENT_NAMES.closeEvent);\n setVisiblePanel(null);\n }, [onEvent]);\n\n const onCloseDrawer = useCallback(() => {\n if (visiblePanel) {\n onEvent?.(visiblePanel, EVENT_NAMES.closeEvent);\n }\n setVisiblePanel(null);\n }, [visiblePanel, onEvent]);\n\n const onBurgerMenuItemClick = useCallback(\n (item: MobileMenuItem) => {\n const closeMenuOnClick = item.closeMenuOnClick ?? true;\n\n if (closeMenuOnClick) {\n onBurgerClose();\n }\n },\n [onBurgerClose],\n );\n\n const renderBurgerMenuFooter = useCallback(\n () =>\n burgerMenu.renderFooter?.({\n size,\n isCompact: compact,\n }),\n [burgerMenu, size, compact],\n );\n\n const onLogoClick = useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n onClosePanel?.();\n logo.onClick?.(event);\n },\n [logo, onClosePanel],\n );\n\n const burgerPanelItem: PanelItem = useMemo(\n () => ({\n id: BURGER_PANEL_ITEM_ID,\n content: (\n <BurgerMenu\n items={burgerMenu.items}\n modalItem={burgerMenu.modalItem}\n renderFooter={renderBurgerMenuFooter}\n onItemClick={onBurgerMenuItemClick}\n className={b('burger-menu')}\n />\n ),\n }),\n [burgerMenu.items, burgerMenu.modalItem, onBurgerMenuItemClick, renderBurgerMenuFooter],\n );\n\n useEffect(() => {\n const node = targetRef?.current;\n\n if (node) {\n node.addEventListener('MOBILE_BURGER_OPEN', onBurgerOpen);\n node.addEventListener('MOBILE_BURGER_CLOSE', onBurgerClose);\n\n node.addEventListener('MOBILE_PANEL_TOGGLE', onMobilePanelToggle);\n node.addEventListener('MOBILE_PANEL_OPEN', onMobilePanelOpen);\n node.addEventListener('MOBILE_PANEL_CLOSE', onMobilePanelClose);\n }\n\n return () => {\n if (node) {\n node.removeEventListener('MOBILE_BURGER_OPEN', onBurgerOpen);\n node.removeEventListener('MOBILE_BURGER_CLOSE', onBurgerClose);\n\n node.removeEventListener('MOBILE_PANEL_TOGGLE', onMobilePanelToggle);\n node.removeEventListener('MOBILE_PANEL_OPEN', onMobilePanelOpen);\n node.removeEventListener('MOBILE_PANEL_CLOSE', onMobilePanelClose);\n }\n };\n }, [\n targetRef,\n onBurgerClose,\n onBurgerOpen,\n onMobilePanelToggle,\n onMobilePanelOpen,\n onMobilePanelClose,\n ]);\n\n return (\n <div className={b({compact}, className)} ref={targetRef}>\n <header className={b('header')} style={{height: size}}>\n <Burger\n opened={visiblePanel === burgerPanelItem.id}\n onClick={() => onPanelToggle(BURGER_PANEL_ITEM_ID)}\n className={b('burger')}\n closeTitle={burgerCloseTitle}\n openTitle={burgerOpenTitle}\n />\n <Logo {...logo} compact={compact} onClick={onLogoClick} />\n\n <div className={b('side-item')}>{sideItemRenderContent?.({size})}</div>\n </header>\n\n <Drawer\n className={b('panels')}\n onVeilClick={onCloseDrawer}\n onEscape={onCloseDrawer}\n style={{top: size}}\n >\n {[burgerPanelItem, ...panelItems].map((item) => (\n <DrawerItem\n {...item}\n key={item.id}\n visible={visiblePanel === item.id}\n className={b('panel-item', item.className)}\n />\n ))}\n </Drawer>\n\n <Content\n size={size}\n renderContent={renderContent}\n className={b('content')}\n cssSizeVariableName=\"--mobile-header-size\"\n />\n </div>\n );\n },\n);\n\nMobileHeader.displayName = 'MobileHeader';\n","import React from 'react';\nimport {block} from '../../utils/cn';\n\nimport {eventBroker, Icon, IconProps, Sheet} from '@gravity-ui/uikit';\n\nimport {MOBILE_HEADER_ICON_SIZE} from '../constants';\nimport {ModalItem} from '../types';\n\nimport './FooterItem.scss';\n\nconst b = block('mobile-header-footer-item');\n\nexport interface FooterItemProps {\n icon?: IconProps['data'];\n iconSize?: string | number;\n className?: string;\n modalItem: ModalItem;\n onClick?: (event: React.MouseEvent<HTMLElement, MouseEvent>) => void;\n}\n\nexport const FooterItem = ({\n icon,\n iconSize = MOBILE_HEADER_ICON_SIZE,\n className,\n modalItem = {visible: false},\n onClick,\n}: FooterItemProps) => {\n const handleClick = React.useCallback(\n (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n eventBroker.publish({\n componentId: 'MobileHeaderFooterItem',\n eventId: 'click',\n domEvent: event,\n });\n\n onClick?.(event);\n },\n [onClick],\n );\n\n return (\n <div className={b()}>\n <button className={b('button', className)} onClick={handleClick}>\n {icon ? <Icon data={icon} size={iconSize} className={b('icon')} /> : null}\n </button>\n\n <Sheet\n id={modalItem.id}\n title={modalItem.title}\n visible={modalItem.visible}\n className={b('modal', modalItem.className)}\n contentClassName={b('modal-content', modalItem.contentClassName)}\n allowHideOnContentScroll={modalItem.modalAllowHideOnContentScroll}\n onClose={modalItem.onClose}\n >\n {modalItem.renderContent?.()}\n </Sheet>\n </div>\n );\n};\n"],"names":["React","b"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HotkeysPanel-bd0e997d.js","sources":["../../../src/components/HotkeysPanel/utils/flattenHotkeyGroups.ts","../../../src/components/HotkeysPanel/utils/filterHotkeys.ts","../../../src/components/HotkeysPanel/HotkeysPanel.tsx"],"sourcesContent":["import type {HotkeysGroup, HotkeysListItem} from '../types';\n\nexport function flattenHotkeyGroups<T>(hotkeys: HotkeysGroup<T>[]) {\n const result: HotkeysListItem[] = [];\n\n for (const hotkeysGroup of hotkeys) {\n result.push({\n title: hotkeysGroup.title,\n group: true,\n });\n\n result.push(...hotkeysGroup.items);\n }\n\n return result;\n}\n","import type {HotkeysGroup} from '..';\n\nexport function filterHotkeys<T>(hotkeys: HotkeysGroup<T>[], filter: string) {\n if (filter) {\n const result = [];\n const normalizedFilter = filter.toLowerCase();\n\n for (const hotkeysBlock of hotkeys) {\n const filteredItems = hotkeysBlock.items.filter((item) =>\n item.title.toLowerCase().includes(normalizedFilter),\n );\n if (filteredItems.length > 0) {\n result.push({\n ...hotkeysBlock,\n items: filteredItems,\n });\n }\n }\n\n return result;\n }\n\n return hotkeys;\n}\n","import React, {useMemo, useCallback, useState} from 'react';\nimport type {ReactNode} from 'react';\n\nimport {Hotkey, List, TextInput} from '@gravity-ui/uikit';\nimport type {ListProps} from '@gravity-ui/uikit';\n\nimport {Drawer, DrawerItem} from '../Drawer/Drawer';\nimport type {DrawerProps} from '../Drawer/Drawer';\nimport {block} from '../utils/cn';\n\nimport {flattenHotkeyGroups} from './utils/flattenHotkeyGroups';\nimport {filterHotkeys} from './utils/filterHotkeys';\nimport type {HotkeysListItem, HotkeysGroup} from './types';\nimport './HotkeysPanel.scss';\n\nconst b = block('hotkeys-panel');\n\nexport type HotkeysPanelProps<T> = {\n hotkeys: HotkeysGroup<T>[];\n title?: ReactNode;\n filterPlaceholder?: string;\n emptyState?: ReactNode;\n visible: boolean;\n onClose?: () => void;\n className?: string;\n leftOffset?: number | string;\n topOffset?: number | string;\n preventScrollBody?: DrawerProps['preventScrollBody'];\n} & Omit<ListProps<HotkeysListItem>, 'items' | 'emptyPlaceholder'>;\n\nexport function HotkeysPanel<T = {}>({\n visible,\n onClose,\n leftOffset,\n topOffset,\n className,\n preventScrollBody,\n hotkeys,\n itemClassName,\n filterPlaceholder,\n title,\n emptyState,\n ...listProps\n}: HotkeysPanelProps<T>) {\n const [filter, setFilter] = useState('');\n\n const hotkeysList = useMemo(() => {\n const filteredHotkeys = filterHotkeys(hotkeys, filter);\n return flattenHotkeyGroups(filteredHotkeys);\n }, [hotkeys, filter]);\n\n const renderItem = useCallback(\n (item: HotkeysListItem) => (\n <div className={b('item-content', {group: item.group})} key={item.title}>\n {item.title}\n {item.value && <Hotkey className={b('hotkey')} value={item.value} />}\n </div>\n ),\n [],\n );\n\n const drawerItemContent = (\n <React.Fragment>\n <h2 className={b('title')}>{title}</h2>\n <TextInput\n value={filter}\n onUpdate={setFilter}\n placeholder={filterPlaceholder}\n autoFocus\n className={b('search')}\n hasClear\n />\n <List<HotkeysListItem>\n className={b('list')}\n virtualized={false}\n filterable={false}\n items={hotkeysList}\n renderItem={renderItem}\n itemClassName={b('item', itemClassName)}\n emptyPlaceholder={emptyState as string}\n {...listProps}\n />\n </React.Fragment>\n );\n\n return (\n <Drawer\n className={b(null, className)}\n onVeilClick={onClose}\n onEscape={onClose}\n preventScrollBody={preventScrollBody}\n style={{\n left: leftOffset,\n top: topOffset,\n }}\n >\n <DrawerItem\n id=\"hotkeys\"\n visible={visible}\n className={b('drawer-item')}\n content={drawerItemContent}\n />\n </Drawer>\n );\n}\n"],"names":["React"],"mappings":"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"}