@1money/component-ui 0.1.18 → 0.1.19

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.
@@ -1,5 +1,10 @@
1
- import type { NavigationProps, NavigationHandlers } from './interface';
1
+ import type { FC } from 'react';
2
+ import type { NavigationProps, NavigationItemProps, NavigationHandlers } from './interface';
2
3
  import './style';
3
- export declare const Navigation: import("react").ForwardRefExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>>;
4
- declare const _default: import("react").NamedExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>>;
4
+ export declare const Navigation: import("react").ForwardRefExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>> & {
5
+ Item: FC<NavigationItemProps>;
6
+ };
7
+ declare const _default: import("react").NamedExoticComponent<Omit<NavigationProps, "ref"> & import("react").RefAttributes<NavigationHandlers>> & {
8
+ Item: FC<NavigationItemProps>;
9
+ };
5
10
  export default _default;
@@ -8,7 +8,7 @@ var __rest = this && this.__rest || function (s, e) {
8
8
  return t;
9
9
  };
10
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
- import { memo, useState, forwardRef, useImperativeHandle, cloneElement, isValidElement } from 'react';
11
+ import { memo, useMemo, useState, forwardRef, useImperativeHandle, cloneElement, isValidElement } from 'react';
12
12
  import { default as classnames, joinCls } from '../../utils/classnames';
13
13
  import useControlledState from '@1money/hooks/useControlledState';
14
14
  import useEventCallback from '@1money/hooks/useEventCallback';
@@ -18,6 +18,7 @@ import { Icons } from '../Icons';
18
18
  import { Typography } from '../Typography';
19
19
  import { Trigger } from '../Trigger';
20
20
  import NavigationLogo from './NavigationLogo';
21
+ import { NavigationContext, useNavigationContext } from './context';
21
22
  import './style';
22
23
  var ICON_SIZE = 16;
23
24
  var CHEVRON_SIZE = 16;
@@ -25,7 +26,7 @@ var COLLAPSE_ICON_SIZE = 16;
25
26
  var isIconName = function isIconName(icon) {
26
27
  return typeof icon === 'string';
27
28
  };
28
- export var Navigation = /*#__PURE__*/forwardRef(function (props, ref) {
29
+ var NavigationBase = /*#__PURE__*/forwardRef(function (props, ref) {
29
30
  var _props$className = props.className,
30
31
  className = _props$className === void 0 ? '' : _props$className,
31
32
  _props$prefixCls = props.prefixCls,
@@ -63,48 +64,57 @@ export var Navigation = /*#__PURE__*/forwardRef(function (props, ref) {
63
64
  var handleToggleCollapse = useEventCallback(function () {
64
65
  handleCollapse(!collapsed);
65
66
  });
66
- return _jsxs("nav", Object.assign({
67
- className: classes(void 0, joinCls(collapsed && classes('collapsed'), className))
68
- }, rest, {
69
- children: [_jsx("div", {
70
- className: classes('header'),
71
- children: header !== undefined ? header : _jsx(NavigationLogo, {
72
- collapsed: collapsed,
73
- onClick: onLogoClick
74
- })
75
- }), selector && _jsx("div", {
76
- className: classes('selector'),
77
- children: selector
78
- }), _jsxs("div", {
79
- className: classes('nav'),
67
+ var contextValue = useMemo(function () {
68
+ return {
69
+ prefixCls: prefixCls,
70
+ collapsed: collapsed
71
+ };
72
+ }, [prefixCls, collapsed]);
73
+ return _jsx(NavigationContext.Provider, {
74
+ value: contextValue,
75
+ children: _jsxs("nav", Object.assign({
76
+ className: classes(void 0, joinCls(collapsed && classes('collapsed'), className))
77
+ }, rest, {
80
78
  children: [_jsx("div", {
81
- className: classes('menu'),
82
- children: items.filter(function (item) {
83
- return !item.hidden;
84
- }).map(function (item, index) {
85
- var _a;
86
- return _jsx(NavigationMenuItem, {
87
- item: item,
88
- prefixCls: prefixCls,
89
- collapsed: collapsed
90
- }, (_a = item.key) !== null && _a !== void 0 ? _a : index);
91
- })
92
- }), collapsible && _jsx("button", {
93
- className: classes('collapse-toggle'),
94
- onClick: handleToggleCollapse,
95
- type: "button",
96
- children: _jsx(Icons, {
97
- name: collapsed ? 'extend' : 'collapse',
98
- size: COLLAPSE_ICON_SIZE
79
+ className: classes('header'),
80
+ children: header !== undefined ? header : _jsx(NavigationLogo, {
81
+ collapsed: collapsed,
82
+ onClick: onLogoClick
99
83
  })
84
+ }), selector && _jsx("div", {
85
+ className: classes('selector'),
86
+ children: selector
87
+ }), _jsxs("div", {
88
+ className: classes('nav'),
89
+ children: [_jsx("div", {
90
+ className: classes('menu'),
91
+ children: items.filter(function (item) {
92
+ return !item.hidden;
93
+ }).map(function (item, index) {
94
+ var _a;
95
+ return _jsx(NavigationMenuItem, {
96
+ item: item,
97
+ prefixCls: prefixCls,
98
+ collapsed: collapsed
99
+ }, (_a = item.key) !== null && _a !== void 0 ? _a : index);
100
+ })
101
+ }), collapsible && _jsx("button", {
102
+ className: classes('collapse-toggle'),
103
+ onClick: handleToggleCollapse,
104
+ type: "button",
105
+ children: _jsx(Icons, {
106
+ name: collapsed ? 'extend' : 'collapse',
107
+ size: COLLAPSE_ICON_SIZE
108
+ })
109
+ })]
110
+ }), children && _jsx("div", {
111
+ className: classes('settings'),
112
+ children: children
100
113
  })]
101
- }), children && _jsx("div", {
102
- className: classes('settings'),
103
- children: children
104
- })]
105
- }));
114
+ }))
115
+ });
106
116
  });
107
- Navigation.displayName = 'Navigation';
117
+ NavigationBase.displayName = 'Navigation';
108
118
  var NavigationMenuItem = function NavigationMenuItem(_ref) {
109
119
  var item = _ref.item,
110
120
  prefixCls = _ref.prefixCls,
@@ -298,5 +308,27 @@ var NavigationMenuItem = function NavigationMenuItem(_ref) {
298
308
  })]
299
309
  });
300
310
  };
301
- export default /*#__PURE__*/memo(Navigation);
302
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTmF2aWdhdGlvbi9OYXZpZ2F0aW9uLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL05hdmlnYXRpb24udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VTdGF0ZSIsImZvcndhcmRSZWYiLCJ1c2VJbXBlcmF0aXZlSGFuZGxlIiwiY2xvbmVFbGVtZW50IiwiaXNWYWxpZEVsZW1lbnQiLCJkZWZhdWx0IiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJ1c2VDb250cm9sbGVkU3RhdGUiLCJ1c2VFdmVudENhbGxiYWNrIiwidXNlTWVtb2l6ZWRGbiIsInVzZUxhdGVzdCIsIkljb25zIiwiVHlwb2dyYXBoeSIsIlRyaWdnZXIiLCJOYXZpZ2F0aW9uTG9nbyIsIklDT05fU0laRSIsIkNIRVZST05fU0laRSIsIkNPTExBUFNFX0lDT05fU0laRSIsImlzSWNvbk5hbWUiLCJpY29uIiwiTmF2aWdhdGlvbiIsInByb3BzIiwicmVmIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJpdGVtcyIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJfcHJvcHMkZGVmYXVsdENvbGxhcHMiLCJkZWZhdWx0Q29sbGFwc2VkIiwiX3Byb3BzJGNvbGxhcHNpYmxlIiwiY29sbGFwc2libGUiLCJvbkNvbGxhcHNlIiwib25Mb2dvQ2xpY2siLCJoZWFkZXIiLCJzZWxlY3RvciIsImNoaWxkcmVuIiwicmVzdCIsImNsYXNzZXMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldENvbGxhcHNlZCIsImNvbGxhcHNlZFJlZiIsImhhbmRsZUNvbGxhcHNlIiwidmFsdWUiLCJ0b2dnbGUiLCJjdXJyZW50IiwiY29sbGFwc2UiLCJoYW5kbGVUb2dnbGVDb2xsYXBzZSIsImFzc2lnbiIsInVuZGVmaW5lZCIsIm9uQ2xpY2siLCJmaWx0ZXIiLCJpdGVtIiwiaGlkZGVuIiwibWFwIiwiaW5kZXgiLCJfYSIsIk5hdmlnYXRpb25NZW51SXRlbSIsImtleSIsInR5cGUiLCJuYW1lIiwic2l6ZSIsImRpc3BsYXlOYW1lIiwiX3JlZiIsImxhYmVsIiwic3VmZml4IiwibGluayIsImFjdGl2ZSIsImRpc2FibGVkIiwiZGVmYXVsdE9wZW4iLCJvbk9wZW5DaGFuZ2UiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwib3BlbiIsInNldE9wZW4iLCJoYW5kbGVDbGljayIsIm5leHQiLCJoYXNDaGlsZHJlbiIsInZpc2libGVDaGlsZHJlbiIsImNoaWxkIiwiY2hpbGRBY3RpdmUiLCJzb21lIiwicmVuZGVySWNvbiIsIml0ZW1JY29uIiwid3JhcFdpdGhMaW5rIiwiY29udGVudCIsIml0ZW1MaW5rIiwiaHJlZiIsImNvbGxhcHNlZENvbnRlbnQiLCJMYWJlbCIsImFzIiwidHJpZ2dlciIsInBsYWNlbWVudCIsIm9mZnNldCIsIm92ZXJsYXlDbGFzc05hbWUiLCJfcmVmMiIsImNsb3NlIiwiX2IiLCJjaGlsZENvbnRlbnQiLCJUaXRsZSIsIml0ZW1Db250ZW50Il0sIm1hcHBpbmdzIjoiO0FBQUEsSUFBSUEsTUFBTSxHQUFJLElBQUksSUFBSSxJQUFJLENBQUNBLE1BQU0sSUFBSyxVQUFVQyxDQUFDLEVBQUVDLENBQUMsRUFBRTtFQUNsRCxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0VBQ1YsS0FBSyxJQUFJQyxDQUFDLElBQUlILENBQUMsRUFBRSxJQUFJSSxNQUFNLENBQUNDLFNBQVMsQ0FBQ0MsY0FBYyxDQUFDQyxJ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QUNpQixVQUFVLENBQUMyRixLQUFLLEVBQUE7Z0JBQUN0QyxJQUFJLEVBQUMsSUFBSTtnQkFBQzZCLEVBQUUsRUFBQyxLQUFLO2dCQUFDdEUsU0FBUyxFQUFFZ0IsT0FBTyxDQUFDLFlBQVksQ0FBQztnQkFBQUYsUUFBQSxFQUNsRTZDLEtBQUssQ0FBQ2Y7Y0FBSyxDQUFBLENBQ0ssRUFDbEJlLEtBQUssQ0FBQ2QsTUFBTSxJQUFJMUUsSUFBQSxDQUFBLE1BQUEsRUFBQTtnQkFBTTZCLFNBQVMsRUFBRWdCLE9BQU8sQ0FBQyxhQUFhLENBQUM7Z0JBQUFGLFFBQUEsRUFBRzZDLEtBQUssQ0FBQ2Q7Y0FBTSxDQUFBLENBQVE7WUFBQSxDQUFBO1VBQzNFLENBQUEsRUF4QkQsQ0FBQVQsRUFBQSxHQUFBdUIsS0FBSyxDQUFDckIsR0FBRyxNQUFBLElBQUEsSUFBQUYsRUFBQSxLQUFBLEtBQUEsQ0FBQSxHQUFBQSxFQUFBLEdBQUlELEtBQUssQ0EwQjFCO1VBRUQsT0FBT3dCLEtBQUssQ0FBQ2IsSUFBSSxHQUFHa0IsWUFBWSxDQUFDYyxZQUFZLEVBQUVuQixLQUFLLENBQUNiLElBQUksQ0FBQyxHQUFHZ0MsWUFBWTtRQUMzRSxDQUFDO01BQUMsQ0FBQTtJQUNJLENBQUEsQ0FFVDtFQUFBLENBQUEsQ0FDRztBQUVWLENBQUM7QUFFRCw0QkFBZXhHLElBQUksQ0FBQ3NCLFVBQVUsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL05hdmlnYXRpb24vTmF2aWdhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VTdGF0ZSwgZm9yd2FyZFJlZiwgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXRlc3QnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBUcmlnZ2VyIH0gZnJvbSAnLi4vVHJpZ2dlcic7XG5pbXBvcnQgTmF2aWdhdGlvbkxvZ28gZnJvbSAnLi9OYXZpZ2F0aW9uTG9nbyc7XG5pbXBvcnQgJy4vc3R5bGUnO1xuY29uc3QgSUNPTl9TSVpFID0gMTY7XG5jb25zdCBDSEVWUk9OX1NJWkUgPSAxNjtcbmNvbnN0IENPTExBUFNFX0lDT05fU0laRSA9IDE2O1xuY29uc3QgaXNJY29uTmFtZSA9IChpY29uKSA9PiB0eXBlb2YgaWNvbiA9PT0gJ3N0cmluZyc7XG5leHBvcnQgY29uc3QgTmF2aWdhdGlvbiA9IGZvcndhcmRSZWYoKHByb3BzLCByZWYpID0+IHtcbiAgICBjb25zdCB7IGNsYXNzTmFtZSA9ICcnLCBwcmVmaXhDbHMgPSAnbmF2aWdhdGlvbicsIGl0ZW1zLCBjb2xsYXBzZWQ6IGNvbnRyb2xsZWRDb2xsYXBzZWQsIGRlZmF1bHRDb2xsYXBzZWQgPSBmYWxzZSwgY29sbGFwc2libGUgPSBmYWxzZSwgb25Db2xsYXBzZSwgb25Mb2dvQ2xpY2ssIGhlYWRlciwgc2VsZWN0b3IsIGNoaWxkcmVuIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwicHJlZml4Q2xzXCIsIFwiaXRlbXNcIiwgXCJjb2xsYXBzZWRcIiwgXCJkZWZhdWx0Q29sbGFwc2VkXCIsIFwiY29sbGFwc2libGVcIiwgXCJvbkNvbGxhcHNlXCIsIFwib25Mb2dvQ2xpY2tcIiwgXCJoZWFkZXJcIiwgXCJzZWxlY3RvclwiLCBcImNoaWxkcmVuXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IFtjb2xsYXBzZWQsIHNldENvbGxhcHNlZF0gPSB1c2VDb250cm9sbGVkU3RhdGUoZGVmYXVsdENvbGxhcHNlZCwgY29udHJvbGxlZENvbGxhcHNlZCk7XG4gICAgY29uc3QgY29sbGFwc2VkUmVmID0gdXNlTGF0ZXN0KGNvbGxhcHNlZCk7XG4gICAgY29uc3QgaGFuZGxlQ29sbGFwc2UgPSB1c2VFdmVudENhbGxiYWNrKCh2YWx1ZSkgPT4ge1xuICAgICAgICBzZXRDb2xsYXBzZWQodmFsdWUpO1xuICAgICAgICBvbkNvbGxhcHNlID09PSBudWxsIHx8IG9uQ29sbGFwc2UgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ29sbGFwc2UodmFsdWUpO1xuICAgIH0pO1xuICAgIHVzZUltcGVyYXRpdmVIYW5kbGUocmVmLCAoKSA9PiAoe1xuICAgICAgICB0b2dnbGU6ICgpID0+IGhhbmRsZUNvbGxhcHNlKCFjb2xsYXBzZWRSZWYuY3VycmVudCksXG4gICAgICAgIGNvbGxhcHNlOiBoYW5kbGVDb2xsYXBzZSxcbiAgICB9KSwgW2hhbmRsZUNvbGxhcHNlXSk7XG4gICAgY29uc3QgaGFuZGxlVG9nZ2xlQ29sbGFwc2UgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaGFuZGxlQ29sbGFwc2UoIWNvbGxhcHNlZCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIChfanN4cyhcIm5hdlwiLCBPYmplY3QuYXNzaWduKHsgY2xhc3NOYW1lOiBjbGFzc2VzKHZvaWQgMCwgam9pbkNscyhjb2xsYXBzZWQgJiYgY2xhc3NlcygnY29sbGFwc2VkJyksIGNsYXNzTmFtZSkpIH0sIHJlc3QsIHsgY2hpbGRyZW46IFtfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdoZWFkZXInKSwgY2hpbGRyZW46IGhlYWRlciAhPT0gdW5kZWZpbmVkID8gaGVhZGVyIDogKF9qc3goTmF2aWdhdGlvbkxvZ28sIHsgY29sbGFwc2VkOiBjb2xsYXBzZWQsIG9uQ2xpY2s6IG9uTG9nb0NsaWNrIH0pKSB9KSwgc2VsZWN0b3IgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc2VsZWN0b3InKSwgY2hpbGRyZW46IHNlbGVjdG9yIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbmF2JyksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnbWVudScpLCBjaGlsZHJlbjogaXRlbXMuZmlsdGVyKGl0ZW0gPT4gIWl0ZW0uaGlkZGVuKS5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChOYXZpZ2F0aW9uTWVudUl0ZW0sIHsgaXRlbTogaXRlbSwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIGNvbGxhcHNlZDogY29sbGFwc2VkIH0sIChfYSA9IGl0ZW0ua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkgfSksIGNvbGxhcHNpYmxlICYmIChfanN4KFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZS10b2dnbGUnKSwgb25DbGljazogaGFuZGxlVG9nZ2xlQ29sbGFwc2UsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBfanN4KEljb25zLCB7IG5hbWU6IGNvbGxhcHNlZCA/ICdleHRlbmQnIDogJ2NvbGxhcHNlJywgc2l6ZTogQ09MTEFQU0VfSUNPTl9TSVpFIH0pIH0pKV0gfSksIGNoaWxkcmVuICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NldHRpbmdzJyksIGNoaWxkcmVuOiBjaGlsZHJlbiB9KV0gfSkpKTtcbn0pO1xuTmF2aWdhdGlvbi5kaXNwbGF5TmFtZSA9ICdOYXZpZ2F0aW9uJztcbmNvbnN0IE5hdmlnYXRpb25NZW51SXRlbSA9ICh7IGl0ZW0sIHByZWZpeENscywgY29sbGFwc2VkIH0pID0+IHtcbiAgICBjb25zdCB7IGxhYmVsLCBpY29uLCBzdWZmaXgsIGxpbmssIGFjdGl2ZSwgZGlzYWJsZWQsIG9uQ2xpY2ssIGNoaWxkcmVuLCBkZWZhdWx0T3Blbiwgb25PcGVuQ2hhbmdlIH0gPSBpdGVtO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gdXNlU3RhdGUoZGVmYXVsdE9wZW4gIT09IG51bGwgJiYgZGVmYXVsdE9wZW4gIT09IHZvaWQgMCA/IGRlZmF1bHRPcGVuIDogZmFsc2UpO1xuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gdXNlTWVtb2l6ZWRGbigoZSkgPT4ge1xuICAgICAgICBpZiAoZGlzYWJsZWQpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGlmIChjaGlsZHJlbiA9PT0gbnVsbCB8fCBjaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICBjb25zdCBuZXh0ID0gIW9wZW47XG4gICAgICAgICAgICBzZXRPcGVuKG5leHQpO1xuICAgICAgICAgICAgb25PcGVuQ2hhbmdlID09PSBudWxsIHx8IG9uT3BlbkNoYW5nZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PcGVuQ2hhbmdlKG5leHQpO1xuICAgICAgICB9XG4gICAgICAgIG9uQ2xpY2sgPT09IG51bGwgfHwgb25DbGljayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25DbGljayhlKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYXNDaGlsZHJlbiA9IGNoaWxkcmVuICYmIGNoaWxkcmVuLmxlbmd0aCA+IDA7XG4gICAgY29uc3QgdmlzaWJsZUNoaWxkcmVuID0gY2hpbGRyZW4gPT09IG51bGwgfHwgY2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNoaWxkcmVuLmZpbHRlcihjaGlsZCA9PiAhY2hpbGQuaGlkZGVuKTtcbiAgICBjb25zdCBjaGlsZEFjdGl2ZSA9IGhhc0NoaWxkcmVuICYmIGNoaWxkcmVuLnNvbWUoY2hpbGQgPT4gY2hpbGQuYWN0aXZlKTtcbiAgICBjb25zdCByZW5kZXJJY29uID0gKGl0ZW1JY29uKSA9PiB7XG4gICAgICAgIGlmICghaXRlbUljb24pXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgaWYgKGlzSWNvbk5hbWUoaXRlbUljb24pKSB7XG4gICAgICAgICAgICByZXR1cm4gX2pzeChJY29ucywgeyBuYW1lOiBpdGVtSWNvbiwgc2l6ZTogSUNPTl9TSVpFIH0pO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpdGVtSWNvbjtcbiAgICB9O1xuICAgIGNvbnN0IHdyYXBXaXRoTGluayA9IChjb250ZW50LCBpdGVtTGluaykgPT4ge1xuICAgICAgICBpZiAoIWl0ZW1MaW5rKVxuICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgICAgIGlmICh0eXBlb2YgaXRlbUxpbmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gX2pzeChcImFcIiwgeyBocmVmOiBpdGVtTGluaywgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWxpbmsnKSwgY2hpbGRyZW46IGNvbnRlbnQgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGl0ZW1MaW5rKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNsb25lRWxlbWVudChpdGVtTGluaywge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBjb250ZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNvbnRlbnQ7XG4gICAgfTtcbiAgICBpZiAoY29sbGFwc2VkKSB7XG4gICAgICAgIGNvbnN0IGNvbGxhcHNlZENvbnRlbnQgPSAoX2pzeHMoXCJidXR0b25cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1pdGVtJywgam9pbkNscygoYWN0aXZlIHx8IGNoaWxkQWN0aXZlKSAmJiBjbGFzc2VzKCdjb2xsYXBzZWQtaXRlbS1hY3RpdmUnKSwgZGlzYWJsZWQgJiYgY2xhc3NlcygnY29sbGFwc2VkLWl0ZW0tZGlzYWJsZWQnKSkpLCBvbkNsaWNrOiBoYXNDaGlsZHJlbiA/IHVuZGVmaW5lZCA6IGhhbmRsZUNsaWNrLCBkaXNhYmxlZDogZGlzYWJsZWQsIHR5cGU6IFwiYnV0dG9uXCIsIGNoaWxkcmVuOiBbaWNvbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1pdGVtLWljb24nKSwgY2hpbGRyZW46IHJlbmRlckljb24oaWNvbikgfSkpLCBfanN4KFR5cG9ncmFwaHkuTGFiZWwsIHsgc2l6ZTogXCJ4c1wiLCBhczogXCJzcGFuXCIsIGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLWl0ZW0tbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pXSB9KSk7XG4gICAgICAgIGlmIChoYXNDaGlsZHJlbiAmJiAodmlzaWJsZUNoaWxkcmVuID09PSBudWxsIHx8IHZpc2libGVDaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmlzaWJsZUNoaWxkcmVuLmxlbmd0aCkpIHtcbiAgICAgICAgICAgIHJldHVybiAoX2pzeChUcmlnZ2VyLCB7IHRyaWdnZXI6IFwiY2xpY2tcIiwgcGxhY2VtZW50OiBcInJpZ2h0LXN0YXJ0XCIsIG9mZnNldDogMTAsIG92ZXJsYXlDbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51LXBhbmVsJyksIGNvbnRlbnQ6ICh7IGNsb3NlIH0pID0+IChfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudScpLCBjaGlsZHJlbjogdmlzaWJsZUNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRDb250ZW50ID0gKF9qc3hzKFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudS1pdGVtJywgam9pbkNscyhjaGlsZC5hY3RpdmUgJiYgY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUtaXRlbS1hY3RpdmUnKSwgY2hpbGQuZGlzYWJsZWQgJiYgY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUtaXRlbS1kaXNhYmxlZCcpKSksIG9uQ2xpY2s6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGlsZC5kaXNhYmxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9hID0gY2hpbGQub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY2hpbGQsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGRpc2FibGVkOiBjaGlsZC5kaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgY2hpbGRyZW46IFtjaGlsZC5pY29uICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1pY29uJyksIGNoaWxkcmVuOiByZW5kZXJJY29uKGNoaWxkLmljb24pIH0pKSwgX2pzeChUeXBvZ3JhcGh5LlRpdGxlLCB7IHNpemU6IFwic21cIiwgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogY2hpbGQubGFiZWwgfSksIGNoaWxkLnN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1zdWZmaXgnKSwgY2hpbGRyZW46IGNoaWxkLnN1ZmZpeCB9KV0gfSwgKF9hID0gY2hpbGQua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNoaWxkcmVuOiBbaW5kZXggPiAwICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51LWRpdmlkZXInKSB9KSwgY2hpbGQubGluayA/IHdyYXBXaXRoTGluayhjaGlsZENvbnRlbnQsIGNoaWxkLmxpbmspIDogY2hpbGRDb250ZW50XSB9LCAoX2IgPSBjaGlsZC5rZXkpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IGluZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgIH0pIH0pKSwgY2hpbGRyZW46IGNvbGxhcHNlZENvbnRlbnQgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsaW5rID8gd3JhcFdpdGhMaW5rKGNvbGxhcHNlZENvbnRlbnQsIGxpbmspIDogY29sbGFwc2VkQ29udGVudDtcbiAgICB9XG4gICAgcmV0dXJuIChfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS13cmFwcGVyJyksIGNoaWxkcmVuOiBbKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtQ29udGVudCA9IChfanN4cyhcImJ1dHRvblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbScsIGpvaW5DbHMoaGFzQ2hpbGRyZW4gJiYgY2xhc3NlcygnaXRlbS1leHBhbmRhYmxlJyksIGFjdGl2ZSAmJiBjbGFzc2VzKCdpdGVtLWFjdGl2ZScpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdpdGVtLWRpc2FibGVkJykpKSwgb25DbGljazogaGFuZGxlQ2xpY2ssIGRpc2FibGVkOiBkaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgY2hpbGRyZW46IFtfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1jb250ZW50JyksIGNoaWxkcmVuOiBbaWNvbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0taWNvbicpLCBjaGlsZHJlbjogcmVuZGVySWNvbihpY29uKSB9KSksIF9qc3goVHlwb2dyYXBoeS5UaXRsZSwgeyBzaXplOiBcInNtXCIsIGFzOiBcImRpdlwiLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tbGFiZWwnKSwgY2hpbGRyZW46IGxhYmVsIH0pLCBzdWZmaXggJiYgX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tc3VmZml4JyksIGNoaWxkcmVuOiBzdWZmaXggfSldIH0pLCBoYXNDaGlsZHJlbiAmJiAoX2pzeChcInNwYW5cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tYXJyb3cnLCBqb2luQ2xzKG9wZW4gJiYgY2xhc3NlcygnaXRlbS1hcnJvdy1vcGVuJykpKSwgY2hpbGRyZW46IF9qc3goSWNvbnMsIHsgbmFtZTogXCJjaGV2cm9uRG93blwiLCBzaXplOiBDSEVWUk9OX1NJWkUgfSkgfSkpXSB9KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxpbmsgJiYgIWhhc0NoaWxkcmVuID8gd3JhcFdpdGhMaW5rKGl0ZW1Db250ZW50LCBsaW5rKSA6IGl0ZW1Db250ZW50O1xuICAgICAgICAgICAgfSkoKSwgaGFzQ2hpbGRyZW4gJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1Ym1lbnUnLCBqb2luQ2xzKG9wZW4gJiYgY2xhc3Nlcygnc3VibWVudS1vcGVuJykpKSwgY2hpbGRyZW46IF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1Ym1lbnUtaW5uZXInKSwgY2hpbGRyZW46IHZpc2libGVDaGlsZHJlbiA9PT0gbnVsbCB8fCB2aXNpYmxlQ2hpbGRyZW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IHZpc2libGVDaGlsZHJlbi5tYXAoKGNoaWxkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hpbGRDb250ZW50ID0gKF9qc3goXCJidXR0b25cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3N1Ym1lbnUtaXRlbScsIGpvaW5DbHMoY2hpbGQuYWN0aXZlICYmIGNsYXNzZXMoJ3N1Ym1lbnUtaXRlbS1hY3RpdmUnKSwgY2hpbGQuZGlzYWJsZWQgJiYgY2xhc3Nlcygnc3VibWVudS1pdGVtLWRpc2FibGVkJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmRpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKF9hID0gY2hpbGQub25DbGljaykgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmNhbGwoY2hpbGQsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGRpc2FibGVkOiBjaGlsZC5kaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgY2hpbGRyZW46IF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWNvbnRlbnQnKSwgY2hpbGRyZW46IFtjaGlsZC5pY29uICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1pY29uJyksIGNoaWxkcmVuOiByZW5kZXJJY29uKGNoaWxkLmljb24pIH0pKSwgX2pzeChUeXBvZ3JhcGh5LlRpdGxlLCB7IHNpemU6IFwic21cIiwgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogY2hpbGQubGFiZWwgfSksIGNoaWxkLnN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1zdWZmaXgnKSwgY2hpbGRyZW46IGNoaWxkLnN1ZmZpeCB9KV0gfSkgfSwgKF9hID0gY2hpbGQua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkLmxpbmsgPyB3cmFwV2l0aExpbmsoY2hpbGRDb250ZW50LCBjaGlsZC5saW5rKSA6IGNoaWxkQ29udGVudDtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSkgfSkpXSB9KSk7XG59O1xuZXhwb3J0IGRlZmF1bHQgbWVtbyhOYXZpZ2F0aW9uKTsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
311
+ /**
312
+ * A single sidebar row for the bottom `children` slot (settings, profile, …).
313
+ * Reads the prefix and collapsed state from the parent Navigation, so it gets
314
+ * the same layout plus hover / active / disabled states as a row from `items`.
315
+ * Also available as `Navigation.Item`.
316
+ */
317
+ var NavigationSlotItem = function NavigationSlotItem(props) {
318
+ var _useNavigationContext = useNavigationContext(),
319
+ prefixCls = _useNavigationContext.prefixCls,
320
+ collapsed = _useNavigationContext.collapsed;
321
+ return _jsx(NavigationMenuItem, {
322
+ item: props,
323
+ prefixCls: prefixCls,
324
+ collapsed: collapsed
325
+ });
326
+ };
327
+ NavigationSlotItem.displayName = 'Navigation.Item';
328
+ export var Navigation = Object.assign(NavigationBase, {
329
+ Item: NavigationSlotItem
330
+ });
331
+ export default Object.assign(/*#__PURE__*/memo(NavigationBase), {
332
+ Item: NavigationSlotItem
333
+ });
334
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvTmF2aWdhdGlvbi9OYXZpZ2F0aW9uLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uL05hdmlnYXRpb24udHN4Il0sIm5hbWVzIjpbIl9fcmVzdCIsInMiLCJlIiwidCIsInAiLCJPYmplY3QiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpbmRleE9mIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwiaSIsImxlbmd0aCIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwianN4IiwiX2pzeCIsImpzeHMiLCJfanN4cyIsIm1lbW8iLCJ1c2VNZW1vIiwidXNlU3RhdGUiLCJmb3J3YXJkUmVmIiwidXNlSW1wZXJhdGl2ZUhhbmRsZSIsImNsb25lRWxlbWVudCIsImlzVmFsaWRFbGVtZW50IiwiZGVmYXVsdCIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwidXNlQ29udHJvbGxlZFN0YXRlIiwidXNlRXZlbnRDYWxsYmFjayIsInVzZU1lbW9pemVkRm4iLCJ1c2VMYXRlc3QiLCJJY29ucyIsIlR5cG9ncmFwaHkiLCJUcmlnZ2VyIiwiTmF2aWdhdGlvbkxvZ28iLCJOYXZpZ2F0aW9uQ29udGV4dCIsInVzZU5hdmlnYXRpb25Db250ZXh0IiwiSUNPTl9TSVpFIiwiQ0hFVlJPTl9TSVpFIiwiQ09MTEFQU0VfSUNPTl9TSVpFIiwiaXNJY29uTmFtZSIsImljb24iLCJOYXZpZ2F0aW9uQmFzZSIsInByb3BzIiwicmVmIiwiX3Byb3BzJGNsYXNzTmFtZSIsImNsYXNzTmFtZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJpdGVtcyIsImNvbnRyb2xsZWRDb2xsYXBzZWQiLCJjb2xsYXBzZWQiLCJfcHJvcHMkZGVmYXVsdENvbGxhcHMiLCJkZWZhdWx0Q29sbGFwc2VkIiwiX3Byb3BzJGNvbGxhcHNpYmxlIiwiY29sbGFwc2libGUiLCJvbkNvbGxhcHNlIiwib25Mb2dvQ2xpY2siLCJoZWFkZXIiLCJzZWxlY3RvciIsImNoaWxkcmVuIiwicmVzdCIsImNsYXNzZXMiLCJfdXNlQ29udHJvbGxlZFN0YXRlIiwiX3VzZUNvbnRyb2xsZWRTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsInNldENvbGxhcHNlZCIsImNvbGxhcHNlZFJlZiIsImhhbmRsZUNvbGxhcHNlIiwidmFsdWUiLCJ0b2dnbGUiLCJjdXJyZW50IiwiY29sbGFwc2UiLCJoYW5kbGVUb2dnbGVDb2xsYXBzZSIsImNvbnRleHRWYWx1ZSIsIlByb3ZpZGVyIiwiYXNzaWduIiwidW5kZWZpbmVkIiwib25DbGljayIsImZpbHRlciIsIml0ZW0iLCJoaWRkZW4iLCJtYXAiLCJpbmRleCIsIl9hIiwiTmF2aWdhdGlvbk1lbnVJdGVtIiwia2V5IiwidHlwZSIsIm5hbWUiLCJzaXplIiwiZGlzcGxheU5hbWUiLCJfcmVmIiwibGFiZWwiLCJzdWZmaXgiLCJsaW5rIiwiYWN0aXZlIiwiZGlzYWJsZWQiLCJkZWZhdWx0T3BlbiIsIm9uT3BlbkNoYW5nZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJvcGVuIiwic2V0T3BlbiIsImhhbmRsZUNsaWNrIiwibmV4dCIsImhhc0NoaWxkcmVuIiwidmlzaWJsZUNoaWxkcmVuIiwiY2hpbGQiLCJjaGlsZEFjdGl2ZSIsInNvbWUiLCJyZW5kZXJJY29uIiwiaXRlbUljb24iLCJ3cmFwV2l0aExpbmsiLCJjb250ZW50IiwiaXRlbUxpbmsiLCJocmVmIiwiY29sbGFwc2VkQ29udGVudCIsIkxhYmVsIiwiYXMiLCJ0cmlnZ2VyIiwicGxhY2VtZW50Iiwib2Zmc2V0Iiwib3ZlcmxheUNsYXNzTmFtZSIsIl9yZWYyIiwiY2xvc2UiLCJfYiIsImNoaWxkQ29udGVudCIsIlRpdGxlIiwiaXRlbUNvbnRlbnQiLCJOYXZpZ2F0aW9uU2xvdEl0ZW0iLCJfdXNlTmF2aWdhdGlvbkNvbnRleHQiLCJOYXZpZ2F0aW9uIiwiSXRlbSJdLCJtYXBwaW5ncyI6IjtBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFD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WUFBWSxFQUFFbkIsS0FBSyxDQUFDYixJQUFJLENBQUMsR0FBR2dDLFlBQVk7UUFDM0UsQ0FBQztNQUFDLENBQUE7SUFDSSxDQUFBLENBRVQ7RUFBQSxDQUFBLENBQ0c7QUFFVixDQUFDO0FBRUQ7QURwTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQ3NNQSxJQUFNRyxrQkFBa0IsR0FBNEIsU0FBOUNBLGtCQUFrQkEsQ0FBNkJ0RixLQUFLLEVBQUk7RUFDNUQsSUFBQXVGLHFCQUFBLEdBQWlDOUYsb0JBQW9CLENBQUEsQ0FBRTtJQUEvQ1ksU0FBUyxHQUFBa0YscUJBQUEsQ0FBVGxGLFNBQVM7SUFBRUcsU0FBUyxHQUFBK0UscUJBQUEsQ0FBVC9FLFNBQVM7RUFDNUIsT0FBT3JDLElBQUEsQ0FBQ3VFLGtCQUFrQixFQUFBO0lBQUNMLElBQUksRUFBRXJDLEtBQUs7SUFBRUssU0FBUyxFQUFFQSxTQUFTO0lBQUVHLFNBQVMsRUFBRUE7RUFBUyxDQUFBLENBQUk7QUFDeEYsQ0FBQztBQUVEOEUsa0JBQWtCLENBQUN2QyxXQUFXLEdBQUcsaUJBQWlCO0FBRWxELE9BQU8sSUFBTXlDLFVBQVUsR0FBRy9ILE1BQU0sQ0FBQ3dFLE1BQU0sQ0FBQ2xDLGNBQWMsRUFBRTtFQUN0RDBGLElBQUksRUFBRUg7QUR0TVIsQ0N1TUMsQ0FBQztBQUVGLGVBQWU3SCxNQUFNLENBQUN3RSxNQUFNLGNBQUMzRCxJQUFJLENBQUN5QixjQUFjLENBQUMsRUFBRTtFQUNqRDBGLElBQUksRUFBRUg7QUR2TVIsQ0N3TUMsQ0FBQyIsImZpbGUiOiJjb21wb25lbnRzL05hdmlnYXRpb24vTmF2aWdhdGlvbi5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBqc3hzIGFzIF9qc3hzIH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vLCB1c2VTdGF0ZSwgZm9yd2FyZFJlZiwgdXNlSW1wZXJhdGl2ZUhhbmRsZSwgY2xvbmVFbGVtZW50LCBpc1ZhbGlkRWxlbWVudCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGRlZmF1bHQgYXMgY2xhc3NuYW1lcywgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVzZUNvbnRyb2xsZWRTdGF0ZSBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUNvbnRyb2xsZWRTdGF0ZSc7XG5pbXBvcnQgdXNlRXZlbnRDYWxsYmFjayBmcm9tICdAMW1vbmV5L2hvb2tzL3VzZUV2ZW50Q2FsbGJhY2snO1xuaW1wb3J0IHVzZU1lbW9pemVkRm4gZnJvbSAnQDFtb25leS9ob29rcy91c2VNZW1vaXplZEZuJztcbmltcG9ydCB1c2VMYXRlc3QgZnJvbSAnQDFtb25leS9ob29rcy91c2VMYXRlc3QnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi9JY29ucyc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBUcmlnZ2VyIH0gZnJvbSAnLi4vVHJpZ2dlcic7XG5pbXBvcnQgTmF2aWdhdGlvbkxvZ28gZnJvbSAnLi9OYXZpZ2F0aW9uTG9nbyc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29udGV4dCwgdXNlTmF2aWdhdGlvbkNvbnRleHQgfSBmcm9tICcuL2NvbnRleHQnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IElDT05fU0laRSA9IDE2O1xuY29uc3QgQ0hFVlJPTl9TSVpFID0gMTY7XG5jb25zdCBDT0xMQVBTRV9JQ09OX1NJWkUgPSAxNjtcbmNvbnN0IGlzSWNvbk5hbWUgPSAoaWNvbikgPT4gdHlwZW9mIGljb24gPT09ICdzdHJpbmcnO1xuY29uc3QgTmF2aWdhdGlvbkJhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUgPSAnJywgcHJlZml4Q2xzID0gJ25hdmlnYXRpb24nLCBpdGVtcywgY29sbGFwc2VkOiBjb250cm9sbGVkQ29sbGFwc2VkLCBkZWZhdWx0Q29sbGFwc2VkID0gZmFsc2UsIGNvbGxhcHNpYmxlID0gZmFsc2UsIG9uQ29sbGFwc2UsIG9uTG9nb0NsaWNrLCBoZWFkZXIsIHNlbGVjdG9yLCBjaGlsZHJlbiB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNsYXNzTmFtZVwiLCBcInByZWZpeENsc1wiLCBcIml0ZW1zXCIsIFwiY29sbGFwc2VkXCIsIFwiZGVmYXVsdENvbGxhcHNlZFwiLCBcImNvbGxhcHNpYmxlXCIsIFwib25Db2xsYXBzZVwiLCBcIm9uTG9nb0NsaWNrXCIsIFwiaGVhZGVyXCIsIFwic2VsZWN0b3JcIiwgXCJjaGlsZHJlblwiXSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbY29sbGFwc2VkLCBzZXRDb2xsYXBzZWRdID0gdXNlQ29udHJvbGxlZFN0YXRlKGRlZmF1bHRDb2xsYXBzZWQsIGNvbnRyb2xsZWRDb2xsYXBzZWQpO1xuICAgIGNvbnN0IGNvbGxhcHNlZFJlZiA9IHVzZUxhdGVzdChjb2xsYXBzZWQpO1xuICAgIGNvbnN0IGhhbmRsZUNvbGxhcHNlID0gdXNlRXZlbnRDYWxsYmFjaygodmFsdWUpID0+IHtcbiAgICAgICAgc2V0Q29sbGFwc2VkKHZhbHVlKTtcbiAgICAgICAgb25Db2xsYXBzZSA9PT0gbnVsbCB8fCBvbkNvbGxhcHNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNvbGxhcHNlKHZhbHVlKTtcbiAgICB9KTtcbiAgICB1c2VJbXBlcmF0aXZlSGFuZGxlKHJlZiwgKCkgPT4gKHtcbiAgICAgICAgdG9nZ2xlOiAoKSA9PiBoYW5kbGVDb2xsYXBzZSghY29sbGFwc2VkUmVmLmN1cnJlbnQpLFxuICAgICAgICBjb2xsYXBzZTogaGFuZGxlQ29sbGFwc2UsXG4gICAgfSksIFtoYW5kbGVDb2xsYXBzZV0pO1xuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZUNvbGxhcHNlID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIGhhbmRsZUNvbGxhcHNlKCFjb2xsYXBzZWQpO1xuICAgIH0pO1xuICAgIGNvbnN0IGNvbnRleHRWYWx1ZSA9IHVzZU1lbW8oKCkgPT4gKHsgcHJlZml4Q2xzLCBjb2xsYXBzZWQgfSksIFtwcmVmaXhDbHMsIGNvbGxhcHNlZF0pO1xuICAgIHJldHVybiAoX2pzeChOYXZpZ2F0aW9uQ29udGV4dC5Qcm92aWRlciwgeyB2YWx1ZTogY29udGV4dFZhbHVlLCBjaGlsZHJlbjogX2pzeHMoXCJuYXZcIiwgT2JqZWN0LmFzc2lnbih7IGNsYXNzTmFtZTogY2xhc3Nlcyh2b2lkIDAsIGpvaW5DbHMoY29sbGFwc2VkICYmIGNsYXNzZXMoJ2NvbGxhcHNlZCcpLCBjbGFzc05hbWUpKSB9LCByZXN0LCB7IGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaGVhZGVyJyksIGNoaWxkcmVuOiBoZWFkZXIgIT09IHVuZGVmaW5lZCA/IGhlYWRlciA6IChfanN4KE5hdmlnYXRpb25Mb2dvLCB7IGNvbGxhcHNlZDogY29sbGFwc2VkLCBvbkNsaWNrOiBvbkxvZ29DbGljayB9KSkgfSksIHNlbGVjdG9yICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ3NlbGVjdG9yJyksIGNoaWxkcmVuOiBzZWxlY3RvciB9KSwgX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ25hdicpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ21lbnUnKSwgY2hpbGRyZW46IGl0ZW1zLmZpbHRlcihpdGVtID0+ICFpdGVtLmhpZGRlbikubWFwKChpdGVtLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoX2pzeChOYXZpZ2F0aW9uTWVudUl0ZW0sIHsgaXRlbTogaXRlbSwgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIGNvbGxhcHNlZDogY29sbGFwc2VkIH0sIChfYSA9IGl0ZW0ua2V5KSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBpbmRleCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pIH0pLCBjb2xsYXBzaWJsZSAmJiAoX2pzeChcImJ1dHRvblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2UtdG9nZ2xlJyksIG9uQ2xpY2s6IGhhbmRsZVRvZ2dsZUNvbGxhcHNlLCB0eXBlOiBcImJ1dHRvblwiLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiBjb2xsYXBzZWQgPyAnZXh0ZW5kJyA6ICdjb2xsYXBzZScsIHNpemU6IENPTExBUFNFX0lDT05fU0laRSB9KSB9KSldIH0pLCBjaGlsZHJlbiAmJiBfanN4KFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdzZXR0aW5ncycpLCBjaGlsZHJlbjogY2hpbGRyZW4gfSldIH0pKSB9KSk7XG59KTtcbk5hdmlnYXRpb25CYXNlLmRpc3BsYXlOYW1lID0gJ05hdmlnYXRpb24nO1xuY29uc3QgTmF2aWdhdGlvbk1lbnVJdGVtID0gKHsgaXRlbSwgcHJlZml4Q2xzLCBjb2xsYXBzZWQgfSkgPT4ge1xuICAgIGNvbnN0IHsgbGFiZWwsIGljb24sIHN1ZmZpeCwgbGluaywgYWN0aXZlLCBkaXNhYmxlZCwgb25DbGljaywgY2hpbGRyZW4sIGRlZmF1bHRPcGVuLCBvbk9wZW5DaGFuZ2UgfSA9IGl0ZW07XG4gICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICBjb25zdCBbb3Blbiwgc2V0T3Blbl0gPSB1c2VTdGF0ZShkZWZhdWx0T3BlbiAhPT0gbnVsbCAmJiBkZWZhdWx0T3BlbiAhPT0gdm9pZCAwID8gZGVmYXVsdE9wZW4gOiBmYWxzZSk7XG4gICAgY29uc3QgaGFuZGxlQ2xpY2sgPSB1c2VNZW1vaXplZEZuKChlKSA9PiB7XG4gICAgICAgIGlmIChkaXNhYmxlZClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgaWYgKGNoaWxkcmVuID09PSBudWxsIHx8IGNoaWxkcmVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSAhb3BlbjtcbiAgICAgICAgICAgIHNldE9wZW4obmV4dCk7XG4gICAgICAgICAgICBvbk9wZW5DaGFuZ2UgPT09IG51bGwgfHwgb25PcGVuQ2hhbmdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbk9wZW5DaGFuZ2UobmV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgb25DbGljayA9PT0gbnVsbCB8fCBvbkNsaWNrID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsaWNrKGUpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhc0NoaWxkcmVuID0gY2hpbGRyZW4gJiYgY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICBjb25zdCB2aXNpYmxlQ2hpbGRyZW4gPSBjaGlsZHJlbiA9PT0gbnVsbCB8fCBjaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+ICFjaGlsZC5oaWRkZW4pO1xuICAgIGNvbnN0IGNoaWxkQWN0aXZlID0gaGFzQ2hpbGRyZW4gJiYgY2hpbGRyZW4uc29tZShjaGlsZCA9PiBjaGlsZC5hY3RpdmUpO1xuICAgIGNvbnN0IHJlbmRlckljb24gPSAoaXRlbUljb24pID0+IHtcbiAgICAgICAgaWYgKCFpdGVtSWNvbilcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICBpZiAoaXNJY29uTmFtZShpdGVtSWNvbikpIHtcbiAgICAgICAgICAgIHJldHVybiBfanN4KEljb25zLCB7IG5hbWU6IGl0ZW1JY29uLCBzaXplOiBJQ09OX1NJWkUgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW1JY29uO1xuICAgIH07XG4gICAgY29uc3Qgd3JhcFdpdGhMaW5rID0gKGNvbnRlbnQsIGl0ZW1MaW5rKSA9PiB7XG4gICAgICAgIGlmICghaXRlbUxpbmspXG4gICAgICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICAgICAgaWYgKHR5cGVvZiBpdGVtTGluayA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBfanN4KFwiYVwiLCB7IGhyZWY6IGl0ZW1MaW5rLCBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tbGluaycpLCBjaGlsZHJlbjogY29udGVudCB9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNWYWxpZEVsZW1lbnQoaXRlbUxpbmspKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xvbmVFbGVtZW50KGl0ZW1MaW5rLCB7XG4gICAgICAgICAgICAgICAgY2hpbGRyZW46IGNvbnRlbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY29udGVudDtcbiAgICB9O1xuICAgIGlmIChjb2xsYXBzZWQpIHtcbiAgICAgICAgY29uc3QgY29sbGFwc2VkQ29udGVudCA9IChfanN4cyhcImJ1dHRvblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLWl0ZW0nLCBqb2luQ2xzKChhY3RpdmUgfHwgY2hpbGRBY3RpdmUpICYmIGNsYXNzZXMoJ2NvbGxhcHNlZC1pdGVtLWFjdGl2ZScpLCBkaXNhYmxlZCAmJiBjbGFzc2VzKCdjb2xsYXBzZWQtaXRlbS1kaXNhYmxlZCcpKSksIG9uQ2xpY2s6IGhhc0NoaWxkcmVuID8gdW5kZWZpbmVkIDogaGFuZGxlQ2xpY2ssIGRpc2FibGVkOiBkaXNhYmxlZCwgdHlwZTogXCJidXR0b25cIiwgY2hpbGRyZW46IFtpY29uICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLWl0ZW0taWNvbicpLCBjaGlsZHJlbjogcmVuZGVySWNvbihpY29uKSB9KSksIF9qc3goVHlwb2dyYXBoeS5MYWJlbCwgeyBzaXplOiBcInhzXCIsIGFzOiBcInNwYW5cIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdjb2xsYXBzZWQtaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSldIH0pKTtcbiAgICAgICAgaWYgKGhhc0NoaWxkcmVuICYmICh2aXNpYmxlQ2hpbGRyZW4gPT09IG51bGwgfHwgdmlzaWJsZUNoaWxkcmVuID09PSB2b2lkIDAgPyB2b2lkIDAgOiB2aXNpYmxlQ2hpbGRyZW4ubGVuZ3RoKSkge1xuICAgICAgICAgICAgcmV0dXJuIChfanN4KFRyaWdnZXIsIHsgdHJpZ2dlcjogXCJjbGlja1wiLCBwbGFjZW1lbnQ6IFwicmlnaHQtc3RhcnRcIiwgb2Zmc2V0OiAxMCwgb3ZlcmxheUNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUtcGFuZWwnKSwgY29udGVudDogKHsgY2xvc2UgfSkgPT4gKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51JyksIGNoaWxkcmVuOiB2aXNpYmxlQ2hpbGRyZW4ubWFwKChjaGlsZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBfYSwgX2I7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZENvbnRlbnQgPSAoX2pzeHMoXCJidXR0b25cIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2NvbGxhcHNlZC1zdWJtZW51LWl0ZW0nLCBqb2luQ2xzKGNoaWxkLmFjdGl2ZSAmJiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudS1pdGVtLWFjdGl2ZScpLCBjaGlsZC5kaXNhYmxlZCAmJiBjbGFzc2VzKCdjb2xsYXBzZWQtc3VibWVudS1pdGVtLWRpc2FibGVkJykpKSwgb25DbGljazogKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9hO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNoaWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBjaGlsZC5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjaGlsZCwgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZGlzYWJsZWQ6IGNoaWxkLmRpc2FibGVkLCB0eXBlOiBcImJ1dHRvblwiLCBjaGlsZHJlbjogW2NoaWxkLmljb24gJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWljb24nKSwgY2hpbGRyZW46IHJlbmRlckljb24oY2hpbGQuaWNvbikgfSkpLCBfanN4KFR5cG9ncmFwaHkuVGl0bGUsIHsgc2l6ZTogXCJzbVwiLCBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWxhYmVsJyksIGNoaWxkcmVuOiBjaGlsZC5sYWJlbCB9KSwgY2hpbGQuc3VmZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLXN1ZmZpeCcpLCBjaGlsZHJlbjogY2hpbGQuc3VmZml4IH0pXSB9LCAoX2EgPSBjaGlsZC5rZXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGluZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2hpbGRyZW46IFtpbmRleCA+IDAgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnY29sbGFwc2VkLXN1Ym1lbnUtZGl2aWRlcicpIH0pLCBjaGlsZC5saW5rID8gd3JhcFdpdGhMaW5rKGNoaWxkQ29udGVudCwgY2hpbGQubGluaykgOiBjaGlsZENvbnRlbnRdIH0sIChfYiA9IGNoaWxkLmtleSkgIT09IG51bGwgJiYgX2IgIT09IHZvaWQgMCA/IF9iIDogaW5kZXgpKTtcbiAgICAgICAgICAgICAgICAgICAgfSkgfSkpLCBjaGlsZHJlbjogY29sbGFwc2VkQ29udGVudCB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxpbmsgPyB3cmFwV2l0aExpbmsoY29sbGFwc2VkQ29udGVudCwgbGluaykgOiBjb2xsYXBzZWRDb250ZW50O1xuICAgIH1cbiAgICByZXR1cm4gKF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLXdyYXBwZXInKSwgY2hpbGRyZW46IFsoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW1Db250ZW50ID0gKF9qc3hzKFwiYnV0dG9uXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtJywgam9pbkNscyhoYXNDaGlsZHJlbiAmJiBjbGFzc2VzKCdpdGVtLWV4cGFuZGFibGUnKSwgYWN0aXZlICYmIGNsYXNzZXMoJ2l0ZW0tYWN0aXZlJyksIGRpc2FibGVkICYmIGNsYXNzZXMoJ2l0ZW0tZGlzYWJsZWQnKSkpLCBvbkNsaWNrOiBoYW5kbGVDbGljaywgZGlzYWJsZWQ6IGRpc2FibGVkLCB0eXBlOiBcImJ1dHRvblwiLCBjaGlsZHJlbjogW19qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWNvbnRlbnQnKSwgY2hpbGRyZW46IFtpY29uICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1pY29uJyksIGNoaWxkcmVuOiByZW5kZXJJY29uKGljb24pIH0pKSwgX2pzeChUeXBvZ3JhcGh5LlRpdGxlLCB7IHNpemU6IFwic21cIiwgYXM6IFwiZGl2XCIsIGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1sYWJlbCcpLCBjaGlsZHJlbjogbGFiZWwgfSksIHN1ZmZpeCAmJiBfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1zdWZmaXgnKSwgY2hpbGRyZW46IHN1ZmZpeCB9KV0gfSksIGhhc0NoaWxkcmVuICYmIChfanN4KFwic3BhblwiLCB7IGNsYXNzTmFtZTogY2xhc3NlcygnaXRlbS1hcnJvdycsIGpvaW5DbHMob3BlbiAmJiBjbGFzc2VzKCdpdGVtLWFycm93LW9wZW4nKSkpLCBjaGlsZHJlbjogX2pzeChJY29ucywgeyBuYW1lOiBcImNoZXZyb25Eb3duXCIsIHNpemU6IENIRVZST05fU0laRSB9KSB9KSldIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbGluayAmJiAhaGFzQ2hpbGRyZW4gPyB3cmFwV2l0aExpbmsoaXRlbUNvbnRlbnQsIGxpbmspIDogaXRlbUNvbnRlbnQ7XG4gICAgICAgICAgICB9KSgpLCBoYXNDaGlsZHJlbiAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VibWVudScsIGpvaW5DbHMob3BlbiAmJiBjbGFzc2VzKCdzdWJtZW51LW9wZW4nKSkpLCBjaGlsZHJlbjogX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VibWVudS1pbm5lcicpLCBjaGlsZHJlbjogdmlzaWJsZUNoaWxkcmVuID09PSBudWxsIHx8IHZpc2libGVDaGlsZHJlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogdmlzaWJsZUNoaWxkcmVuLm1hcCgoY2hpbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGlsZENvbnRlbnQgPSAoX2pzeChcImJ1dHRvblwiLCB7IGNsYXNzTmFtZTogY2xhc3Nlcygnc3VibWVudS1pdGVtJywgam9pbkNscyhjaGlsZC5hY3RpdmUgJiYgY2xhc3Nlcygnc3VibWVudS1pdGVtLWFjdGl2ZScpLCBjaGlsZC5kaXNhYmxlZCAmJiBjbGFzc2VzKCdzdWJtZW51LWl0ZW0tZGlzYWJsZWQnKSkpLCBvbkNsaWNrOiAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghY2hpbGQuZGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoX2EgPSBjaGlsZC5vbkNsaWNrKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChjaGlsZCwgZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZGlzYWJsZWQ6IGNoaWxkLmRpc2FibGVkLCB0eXBlOiBcImJ1dHRvblwiLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBjbGFzc05hbWU6IGNsYXNzZXMoJ2l0ZW0tY29udGVudCcpLCBjaGlsZHJlbjogW2NoaWxkLmljb24gJiYgKF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWljb24nKSwgY2hpbGRyZW46IHJlbmRlckljb24oY2hpbGQuaWNvbikgfSkpLCBfanN4KFR5cG9ncmFwaHkuVGl0bGUsIHsgc2l6ZTogXCJzbVwiLCBhczogXCJkaXZcIiwgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLWxhYmVsJyksIGNoaWxkcmVuOiBjaGlsZC5sYWJlbCB9KSwgY2hpbGQuc3VmZml4ICYmIF9qc3goXCJzcGFuXCIsIHsgY2xhc3NOYW1lOiBjbGFzc2VzKCdpdGVtLXN1ZmZpeCcpLCBjaGlsZHJlbjogY2hpbGQuc3VmZml4IH0pXSB9KSB9LCAoX2EgPSBjaGlsZC5rZXkpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IGluZGV4KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hpbGQubGluayA/IHdyYXBXaXRoTGluayhjaGlsZENvbnRlbnQsIGNoaWxkLmxpbmspIDogY2hpbGRDb250ZW50O1xuICAgICAgICAgICAgICAgICAgICB9KSB9KSB9KSldIH0pKTtcbn07XG4vKipcbiAqIEEgc2luZ2xlIHNpZGViYXIgcm93IGZvciB0aGUgYm90dG9tIGBjaGlsZHJlbmAgc2xvdCAoc2V0dGluZ3MsIHByb2ZpbGUsIOKApikuXG4gKiBSZWFkcyB0aGUgcHJlZml4IGFuZCBjb2xsYXBzZWQgc3RhdGUgZnJvbSB0aGUgcGFyZW50IE5hdmlnYXRpb24sIHNvIGl0IGdldHNcbiAqIHRoZSBzYW1lIGxheW91dCBwbHVzIGhvdmVyIC8gYWN0aXZlIC8gZGlzYWJsZWQgc3RhdGVzIGFzIGEgcm93IGZyb20gYGl0ZW1zYC5cbiAqIEFsc28gYXZhaWxhYmxlIGFzIGBOYXZpZ2F0aW9uLkl0ZW1gLlxuICovXG5jb25zdCBOYXZpZ2F0aW9uU2xvdEl0ZW0gPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCB7IHByZWZpeENscywgY29sbGFwc2VkIH0gPSB1c2VOYXZpZ2F0aW9uQ29udGV4dCgpO1xuICAgIHJldHVybiBfanN4KE5hdmlnYXRpb25NZW51SXRlbSwgeyBpdGVtOiBwcm9wcywgcHJlZml4Q2xzOiBwcmVmaXhDbHMsIGNvbGxhcHNlZDogY29sbGFwc2VkIH0pO1xufTtcbk5hdmlnYXRpb25TbG90SXRlbS5kaXNwbGF5TmFtZSA9ICdOYXZpZ2F0aW9uLkl0ZW0nO1xuZXhwb3J0IGNvbnN0IE5hdmlnYXRpb24gPSBPYmplY3QuYXNzaWduKE5hdmlnYXRpb25CYXNlLCB7XG4gICAgSXRlbTogTmF2aWdhdGlvblNsb3RJdGVtLFxufSk7XG5leHBvcnQgZGVmYXVsdCBPYmplY3QuYXNzaWduKG1lbW8oTmF2aWdhdGlvbkJhc2UpLCB7XG4gICAgSXRlbTogTmF2aWdhdGlvblNsb3RJdGVtLFxufSk7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -0,0 +1,12 @@
1
+ export interface NavigationContextValue {
2
+ prefixCls: string;
3
+ collapsed: boolean;
4
+ }
5
+ /**
6
+ * Broadcasts the sidebar's class prefix and collapsed state so a
7
+ * `Navigation.Item` placed in the bottom `children` slot renders exactly
8
+ * like a row from `items`. Outside a Navigation it falls back to the
9
+ * default prefix, expanded.
10
+ */
11
+ export declare const NavigationContext: import("react").Context<NavigationContextValue>;
12
+ export declare const useNavigationContext: () => NavigationContextValue;
@@ -0,0 +1,17 @@
1
+ 'use client';
2
+
3
+ import { createContext, useContext } from 'react';
4
+ /**
5
+ * Broadcasts the sidebar's class prefix and collapsed state so a
6
+ * `Navigation.Item` placed in the bottom `children` slot renders exactly
7
+ * like a row from `items`. Outside a Navigation it falls back to the
8
+ * default prefix, expanded.
9
+ */
10
+ export var NavigationContext = /*#__PURE__*/createContext({
11
+ prefixCls: 'navigation',
12
+ collapsed: false
13
+ });
14
+ export var useNavigationContext = function useNavigationContext() {
15
+ return useContext(NavigationContext);
16
+ };
17
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvTmF2aWdhdGlvbi9jb250ZXh0LnRzIiwiY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbnRleHQuanMiXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJOYXZpZ2F0aW9uQ29udGV4dCIsInByZWZpeENscyIsImNvbGxhcHNlZCIsInVzZU5hdmlnYXRpb25Db250ZXh0Il0sIm1hcHBpbmdzIjoiQUFBQSxZQUFZOztBQUVaLFNBQVNBLGFBQWEsRUFBRUMsVUFBVSxRQUFRLE9BQU87QUFPakQ7QUNOQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FEUUEsT0FBTyxJQUFNQyxpQkFBaUIsZ0JBQUdGLGFBQWEsQ0FBeUI7RUFDckVHLFNBQVMsRUFBRSxZQUFZO0VBQ3ZCQyxTQUFTLEVBQUU7QUNOYixDRE9DLENBQUM7QUFFRixPQUFPLElBQU1DLG9CQUFvQixHQUFHLFNBQXZCQSxvQkFBb0JBLENBQUE7RUFBQSxPQUFTSixVQUFVLENBQUNDLGlCQUFpQixDQUFDO0FBQUEiLCJmaWxlIjoiY29tcG9uZW50cy9OYXZpZ2F0aW9uL2NvbnRleHQuanMiLCJzb3VyY2VzQ29udGVudCI6W251bGwsIid1c2UgY2xpZW50JztcbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCc7XG4vKipcbiAqIEJyb2FkY2FzdHMgdGhlIHNpZGViYXIncyBjbGFzcyBwcmVmaXggYW5kIGNvbGxhcHNlZCBzdGF0ZSBzbyBhXG4gKiBgTmF2aWdhdGlvbi5JdGVtYCBwbGFjZWQgaW4gdGhlIGJvdHRvbSBgY2hpbGRyZW5gIHNsb3QgcmVuZGVycyBleGFjdGx5XG4gKiBsaWtlIGEgcm93IGZyb20gYGl0ZW1zYC4gT3V0c2lkZSBhIE5hdmlnYXRpb24gaXQgZmFsbHMgYmFjayB0byB0aGVcbiAqIGRlZmF1bHQgcHJlZml4LCBleHBhbmRlZC5cbiAqL1xuZXhwb3J0IGNvbnN0IE5hdmlnYXRpb25Db250ZXh0ID0gY3JlYXRlQ29udGV4dCh7XG4gICAgcHJlZml4Q2xzOiAnbmF2aWdhdGlvbicsXG4gICAgY29sbGFwc2VkOiBmYWxzZSxcbn0pO1xuZXhwb3J0IGNvbnN0IHVzZU5hdmlnYXRpb25Db250ZXh0ID0gKCkgPT4gdXNlQ29udGV4dChOYXZpZ2F0aW9uQ29udGV4dCk7Il0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -48,9 +48,12 @@ export interface NavigationProps {
48
48
  onLogoClick?: (e: MouseEvent<HTMLElement>) => void;
49
49
  /** Company selector slot (below header) */
50
50
  selector?: ReactNode;
51
- /** Children rendered at bottom (e.g., settings, profile) */
51
+ /** Children rendered at bottom (e.g., settings, profile). Use `Navigation.Item` for rows that match `items`. */
52
52
  children?: ReactNode;
53
53
  }
54
+ /** Props of `Navigation.Item` — a single row for the bottom `children` slot */
55
+ export interface NavigationItemProps extends Omit<NavigationItem, 'key' | 'hidden' | 'children' | 'defaultOpen' | 'onOpenChange'> {
56
+ }
54
57
  export interface NavigationHandlers {
55
58
  /** Toggle collapsed state */
56
59
  toggle: () => void;