@gravity-ui/navigation 2.24.1 → 2.26.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 (35) hide show
  1. package/build/cjs/AsideHeader.js +1 -1
  2. package/build/cjs/Drawer.js +5 -5
  3. package/build/cjs/Drawer.js.map +1 -1
  4. package/build/cjs/{FooterItem-003eb137.js → FooterItem-7491de3b.js} +1 -1
  5. package/build/cjs/{FooterItem-003eb137.js.map → FooterItem-7491de3b.js.map} +1 -1
  6. package/build/cjs/{HotkeysPanel-d971b094.js → HotkeysPanel-c3315c0b.js} +1 -1
  7. package/build/cjs/{HotkeysPanel-d971b094.js.map → HotkeysPanel-c3315c0b.js.map} +1 -1
  8. package/build/cjs/{PageLayoutAside-af13d746.js → PageLayoutAside-946fbebf.js} +14 -6
  9. package/build/cjs/PageLayoutAside-946fbebf.js.map +1 -0
  10. package/build/cjs/PageLayoutAside.js +1 -1
  11. package/build/cjs/components/AsideHeader/types.d.ts +6 -0
  12. package/build/cjs/components/Drawer/Drawer.d.ts +10 -0
  13. package/build/cjs/components/types.d.ts +1 -0
  14. package/build/cjs/index.js +3 -3
  15. package/build/cjs/index4.js +1 -1
  16. package/build/cjs/index6.js +1 -1
  17. package/build/esm/AsideHeader.js +1 -1
  18. package/build/esm/Drawer.js +5 -5
  19. package/build/esm/Drawer.js.map +1 -1
  20. package/build/esm/{FooterItem-42f3ac69.js → FooterItem-f9f2cf2b.js} +1 -1
  21. package/build/esm/{FooterItem-42f3ac69.js.map → FooterItem-f9f2cf2b.js.map} +1 -1
  22. package/build/esm/{HotkeysPanel-f0e2a06c.js → HotkeysPanel-c6beeaf4.js} +1 -1
  23. package/build/esm/{HotkeysPanel-f0e2a06c.js.map → HotkeysPanel-c6beeaf4.js.map} +1 -1
  24. package/build/esm/{PageLayoutAside-0c0d6943.js → PageLayoutAside-d78babcb.js} +14 -6
  25. package/build/esm/PageLayoutAside-d78babcb.js.map +1 -0
  26. package/build/esm/PageLayoutAside.js +1 -1
  27. package/build/esm/components/AsideHeader/types.d.ts +6 -0
  28. package/build/esm/components/Drawer/Drawer.d.ts +10 -0
  29. package/build/esm/components/types.d.ts +1 -0
  30. package/build/esm/index.js +4 -4
  31. package/build/esm/index4.js +1 -1
  32. package/build/esm/index6.js +1 -1
  33. package/package.json +1 -1
  34. package/build/cjs/PageLayoutAside-af13d746.js.map +0 -1
  35. package/build/esm/PageLayoutAside-0c0d6943.js.map +0 -1
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  require('react');
6
- var PageLayoutAside = require('./PageLayoutAside-af13d746.js');
6
+ var PageLayoutAside = require('./PageLayoutAside-946fbebf.js');
7
7
  require('@gravity-ui/uikit');
8
8
  require('./debounce-8772fd80.js');
9
9
  require('./utils-db3e03c2.js');
@@ -9,6 +9,11 @@ export interface LayoutProps {
9
9
  className?: string;
10
10
  topAlert?: AsideHeaderTopAlertProps;
11
11
  }
12
+ export interface EditMenuProps {
13
+ onOpenEditMode?: () => void;
14
+ onToggleMenuItem?: (changedItem: MenuItem) => void;
15
+ onResetSettingsToDefault?: () => void;
16
+ }
12
17
  export interface AsideHeaderGeneralProps extends QAProps {
13
18
  logo?: LogoProps;
14
19
  multipleTooltip?: boolean;
@@ -26,6 +31,7 @@ export interface AsideHeaderGeneralProps extends QAProps {
26
31
  compact: boolean;
27
32
  asideRef: React.RefObject<HTMLDivElement>;
28
33
  }) => React.ReactNode;
34
+ editMenuProps?: EditMenuProps;
29
35
  onClosePanel?: () => void;
30
36
  onChangeCompact?: (compact: boolean) => void;
31
37
  openModalSubscriber?: (subscriber: OpenModalSubscriber) => void;
@@ -35,6 +35,11 @@ export interface DrawerItemProps {
35
35
  minResizeWidth?: number;
36
36
  /** The maximum width of the resizable drawer item */
37
37
  maxResizeWidth?: number;
38
+ /**
39
+ * Keep child components mounted when closed, prioritized over Drawer.keepMounted property
40
+ * @default false
41
+ * */
42
+ keepMounted?: boolean;
38
43
  }
39
44
  export declare const DrawerItem: React.ForwardRefExoticComponent<DrawerItemProps & React.RefAttributes<HTMLDivElement>>;
40
45
  type DrawerChild = React.ReactElement<DrawerItemProps>;
@@ -60,6 +65,11 @@ export interface DrawerProps {
60
65
  hideVeil?: boolean;
61
66
  /** Optional flag to not use `Portal` for drawer */
62
67
  disablePortal?: boolean;
68
+ /**
69
+ * Keep child components mounted when closed
70
+ * @default false
71
+ * */
72
+ keepMounted?: boolean;
63
73
  }
64
74
  export declare const Drawer: React.FC<DrawerProps>;
65
75
  export {};
@@ -25,6 +25,7 @@ export interface MenuItem extends QAProps {
25
25
  item: MenuItem;
26
26
  ref: React.RefObject<HTMLElement>;
27
27
  }) => React.ReactNode;
28
+ preventUserRemoving?: boolean;
28
29
  rightAdornment?: React.ReactNode;
29
30
  type?: MenuItemType;
30
31
  afterMoreButton?: boolean;
@@ -6,10 +6,10 @@ var AsideHeader = require('./AsideHeader.js');
6
6
  var AsideHeaderContext = require('./AsideHeaderContext.js');
7
7
  var FooterItem = require('./FooterItem.js');
8
8
  var PageLayout = require('./PageLayout.js');
9
- var PageLayoutAside = require('./PageLayoutAside-af13d746.js');
9
+ var PageLayoutAside = require('./PageLayoutAside-946fbebf.js');
10
10
  var AsideFallback = require('./AsideFallback.js');
11
11
  var Drawer = require('./Drawer.js');
12
- var FooterItem$1 = require('./FooterItem-003eb137.js');
12
+ var FooterItem$1 = require('./FooterItem-7491de3b.js');
13
13
  var React = require('react');
14
14
  var uikit = require('@gravity-ui/uikit');
15
15
  var debounce = require('./debounce-8772fd80.js');
@@ -19,7 +19,7 @@ var styleInject_es = require('./style-inject.es-dcee06b6.js');
19
19
  var icons = require('@gravity-ui/icons');
20
20
  var ActionBar = require('./ActionBar-3c6cdf57.js');
21
21
  var Title = require('./Title-54580605.js');
22
- var HotkeysPanel = require('./HotkeysPanel-d971b094.js');
22
+ var HotkeysPanel = require('./HotkeysPanel-c3315c0b.js');
23
23
  var Settings = require('./Settings-8dc2a8ee.js');
24
24
  require('./Item-7c1b54f5.js');
25
25
  require('./constants-d81c3867.js');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var HotkeysPanel = require('./HotkeysPanel-d971b094.js');
5
+ var HotkeysPanel = require('./HotkeysPanel-c3315c0b.js');
6
6
  require('./tslib.es6-705c6589.js');
7
7
  require('react');
8
8
  require('@gravity-ui/uikit');
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var FooterItem = require('./FooterItem-003eb137.js');
5
+ var FooterItem = require('./FooterItem-7491de3b.js');
6
6
  require('react');
7
7
  require('./Content-64d5738a.js');
8
8
  require('./Drawer.js');
@@ -1,7 +1,7 @@
1
1
  import { _ as __rest } from './tslib.es6-3cd4e99f.js';
2
2
  import React__default from 'react';
3
3
  import { PageLayout } from './PageLayout.js';
4
- import { P as PageLayoutAside } from './PageLayoutAside-0c0d6943.js';
4
+ import { P as PageLayoutAside } from './PageLayoutAside-d78babcb.js';
5
5
  import './Content-f94ba85d.js';
6
6
  import './constants-b1604ff5.js';
7
7
  import './AsideHeaderContext.js';
@@ -3096,7 +3096,7 @@ styleInject(css_248z);
3096
3096
  const b = block('drawer');
3097
3097
  const TIMEOUT = 300;
3098
3098
  const DrawerItem = React__default.forwardRef(function DrawerItem(props, ref) {
3099
- const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResize, } = props;
3099
+ const { visible, content, children, direction = 'left', className, resizable, width, minResizeWidth, maxResizeWidth, onResize, keepMounted = false, } = props;
3100
3100
  const itemRef = React__default.useRef(null);
3101
3101
  const handleRef = useForkRef(ref, itemRef);
3102
3102
  const cssDirection = direction === 'left' ? undefined : direction;
@@ -3109,11 +3109,11 @@ const DrawerItem = React__default.forwardRef(function DrawerItem(props, ref) {
3109
3109
  });
3110
3110
  const resizerElement = resizable ? (React__default.createElement("div", Object.assign({ className: b('resizer', { direction }) }, resizerHandlers),
3111
3111
  React__default.createElement("div", { className: b('resizer-handle') }))) : null;
3112
- return (React__default.createElement(CSSTransition, { in: visible, timeout: TIMEOUT, unmountOnExit: true, classNames: b('item-transition', { direction: cssDirection }), nodeRef: itemRef },
3112
+ return (React__default.createElement(CSSTransition, { in: visible, timeout: TIMEOUT, mountOnEnter: !keepMounted, unmountOnExit: !keepMounted, classNames: b('item-transition', { direction: cssDirection }), nodeRef: itemRef },
3113
3113
  React__default.createElement("div", { ref: handleRef, className: b('item', { direction: cssDirection }, className), style: { width: resizable ? `${resizedWidth}px` : undefined } },
3114
3114
  resizerElement, children !== null && children !== void 0 ? children : content)));
3115
3115
  });
3116
- const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEscape, preventScrollBody = true, hideVeil, disablePortal = true, }) => {
3116
+ const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEscape, preventScrollBody = true, hideVeil, disablePortal = true, keepMounted = false, }) => {
3117
3117
  let someItemVisible = false;
3118
3118
  React__default.Children.forEach(children, (child) => {
3119
3119
  if (React__default.isValidElement(child) && child.type === DrawerItem) {
@@ -3139,7 +3139,7 @@ const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEsca
3139
3139
  useBodyScrollLock({ enabled: preventScrollBody && someItemVisible });
3140
3140
  const containerRef = React__default.useRef(null);
3141
3141
  const veilRef = React__default.useRef(null);
3142
- const drawer = (React__default.createElement(Transition, { in: someItemVisible, timeout: { enter: 0, exit: TIMEOUT }, mountOnEnter: true, unmountOnExit: true, nodeRef: containerRef }, (state) => {
3142
+ const drawer = (React__default.createElement(Transition, { in: someItemVisible, timeout: { enter: 0, exit: TIMEOUT }, mountOnEnter: !keepMounted, unmountOnExit: !keepMounted, nodeRef: containerRef }, (state) => {
3143
3143
  const childrenVisible = someItemVisible && state === 'entered';
3144
3144
  return (React__default.createElement("div", { ref: containerRef, className: b({ hideVeil }, className), style: style },
3145
3145
  React__default.createElement(CSSTransition, { in: childrenVisible, timeout: TIMEOUT, unmountOnExit: true, classNames: b('veil-transition'), nodeRef: veilRef },
@@ -3148,7 +3148,7 @@ const Drawer = ({ className, veilClassName, children, style, onVeilClick, onEsca
3148
3148
  if (React__default.isValidElement(child) &&
3149
3149
  child.type === DrawerItem) {
3150
3150
  const childVisible = Boolean(child.props.visible);
3151
- return React__default.cloneElement(child, Object.assign(Object.assign({}, child.props), { visible: childVisible && childrenVisible }));
3151
+ return React__default.cloneElement(child, Object.assign(Object.assign({ keepMounted }, child.props), { visible: childVisible && childrenVisible }));
3152
3152
  }
3153
3153
  return child;
3154
3154
  })));