add all frontend files

This commit is contained in:
2026-01-17 15:16:36 -05:00
parent ff16ae7858
commit e40287e4aa
25704 changed files with 1935289 additions and 0 deletions

9
node_modules/rc-menu/LICENSE.md generated vendored Normal file
View File

@@ -0,0 +1,9 @@
The MIT License (MIT)
Copyright (c) 2014-present yiminghe
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

469
node_modules/rc-menu/README.md generated vendored Normal file
View File

@@ -0,0 +1,469 @@
# rc-menu
---
React Menu Component. port from https://github.com/kissyteam/menu
[![NPM version][npm-image]][npm-url]
[![npm download][download-image]][download-url]
[![build status][github-actions-image]][github-actions-url]
[![Codecov][codecov-image]][codecov-url]
[![bundle size][bundlephobia-image]][bundlephobia-url]
[![dumi][dumi-image]][dumi-url]
[npm-image]: http://img.shields.io/npm/v/rc-menu.svg?style=flat-square
[npm-url]: http://npmjs.org/package/rc-menu
[github-actions-image]: https://github.com/react-component/menu/workflows/CI/badge.svg
[github-actions-url]: https://github.com/react-component/menu/actions
[circleci-image]: https://img.shields.io/circleci/react-component/menu/master?style=flat-square
[circleci-url]: https://circleci.com/gh/react-component/menu
[codecov-image]: https://img.shields.io/codecov/c/github/react-component/footer/master.svg?style=flat-square
[codecov-url]: https://codecov.io/gh/react-component/footer/branch/master
[coveralls-image]: https://img.shields.io/coveralls/react-component/menu.svg?style=flat-square
[coveralls-url]: https://coveralls.io/r/react-component/menu?branch=master
[david-url]: https://david-dm.org/react-component/menu
[david-image]: https://david-dm.org/react-component/menu/status.svg?style=flat-square
[david-dev-url]: https://david-dm.org/react-component/menu?type=dev
[david-dev-image]: https://david-dm.org/react-component/menu/dev-status.svg?style=flat-square
[download-image]: https://img.shields.io/npm/dm/rc-menu.svg?style=flat-square
[download-url]: https://npmjs.org/package/rc-menu
[bundlephobia-url]: https://bundlephobia.com/result?p=rc-menu
[bundlephobia-image]: https://badgen.net/bundlephobia/minzip/rc-menu
[dumi-url]: https://github.com/umijs/dumi
[dumi-image]: https://img.shields.io/badge/docs%20by-dumi-blue?style=flat-square
## Install
[![rc-menu](https://nodei.co/npm/rc-menu.png)](https://npmjs.org/package/rc-menu)
## Usage
```js
import Menu, { SubMenu, MenuItem } from 'rc-menu';
ReactDOM.render(
<Menu>
<MenuItem>1</MenuItem>
<SubMenu title="2">
<MenuItem>2-1</MenuItem>
</SubMenu>
</Menu>,
container,
);
```
## Compatibility
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/electron/electron_48x48.png" alt="Electron" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)<br>Electron |
| --- | --- | --- | --- | --- |
| IE11, Edge | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## API
### Menu props
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>ref</td>
<td>React.HTMLLIElement</td>
<td></td>
<td>get dom node</td>
</tr>
<tr>
<td>className</td>
<td>String</td>
<td></td>
<td>additional css class of root dom node</td>
</tr>
<tr>
<td>mode</td>
<td>String</td>
<th>vertical</th>
<td>one of ["horizontal","inline","vertical-left","vertical-right"]</td>
</tr>
<tr>
<td>activeKey</td>
<td>String</td>
<th></th>
<td>initial and current active menu item's key.</td>
</tr>
<tr>
<td>defaultActiveFirst</td>
<td>Boolean</td>
<th>false</th>
<td>whether active first menu item when show if activeKey is not set or invalid</td>
</tr>
<tr>
<td>multiple</td>
<td>Boolean</td>
<th>false</th>
<td>whether allow multiple select</td>
</tr>
<tr>
<td>selectable</td>
<td>Boolean</td>
<th>true</th>
<td>allow selecting menu items</td>
</tr>
<tr>
<td>selectedKeys</td>
<td>String[]</td>
<th>[]</th>
<td>selected keys of items</td>
</tr>
<tr>
<td>defaultSelectedKeys</td>
<td>String[]</td>
<th>[]</th>
<td>initial selected keys of items</td>
</tr>
<tr>
<td>openKeys</td>
<td>String[]</td>
<th>[]</th>
<td>open keys of SubMenuItem</td>
</tr>
<tr>
<td>defaultOpenKeys</td>
<td>String[]</td>
<th>[]</th>
<td>initial open keys of SubMenuItem</td>
</tr>
<tr>
<td>onSelect</td>
<td>function({key:String, item:ReactComponent, domEvent:Event, selectedKeys:String[]})</td>
<th></th>
<td>called when select a menu item</td>
</tr>
<tr>
<td>onClick</td>
<td>function({key:String, item:ReactComponent, domEvent:Event, keyPath: String[]})</td>
<th></th>
<td>called when click a menu item</td>
</tr>
<tr>
<td>onOpenChange</td>
<td>(openKeys:String[]) => void</td>
<th></th>
<td>called when open/close sub menu</td>
</tr>
<tr>
<td>onDeselect</td>
<td>function({key:String, item:ReactComponent, domEvent:Event, selectedKeys:String[]})</td>
<th></th>
<td>called when deselect a menu item. only called when allow multiple</td>
</tr>
<tr>
<td>triggerSubMenuAction</td>
<td>Enum { hover, click }</td>
<th>hover</th>
<td>which action can trigger submenu open/close</td>
</tr>
<tr>
<td>openAnimation</td>
<td>{enter:function,leave:function}|String</td>
<th></th>
<td>animate when sub menu open or close. see rc-motion for object type.</td>
</tr>
<tr>
<td>openTransition</td>
<td>String</td>
<th></th>
<td>css transitionName when sub menu open or close</td>
</tr>
<tr>
<td>subMenuOpenDelay</td>
<td>Number</td>
<th>0</th>
<td>delay time to show popup sub menu. unit: s</td>
</tr>
<tr>
<td>subMenuCloseDelay</td>
<td>Number</td>
<th>0.1</th>
<td>delay time to hide popup sub menu. unit: s</td>
</tr>
<tr>
<td>forceSubMenuRender</td>
<td>Boolean</td>
<th>false</th>
<td>whether to render submenu even if it is not visible</td>
</tr>
<tr>
<td>getPopupContainer</td>
<td>Function(menuDOMNode): HTMLElement</td>
<th>() => document.body</th>
<td>Where to render the DOM node of popup menu when the mode is horizontal or vertical</td>
</tr>
<tr>
<td>builtinPlacements</td>
<td>Object of alignConfigs for <a href="https://github.com/yiminghe/dom-align">dom-align</a></td>
<th>see <a href="./src/placements.ts">placements.ts</a></th>
<td>Describes how the popup menus should be positioned</td>
</tr>
<tr>
<td>itemIcon</td>
<td>ReactNode | (props: MenuItemProps) => ReactNode</td>
<th></th>
<td>Specify the menu item icon.</td>
</tr>
<tr>
<td>expandIcon</td>
<td>ReactNode | (props: SubMenuProps & { isSubMenu: boolean }) => ReactNode</td>
<th></th>
<td>Specify the menu item icon.</td>
</tr>
<tr>
<td>direction</td>
<td>String</td>
<th></th>
<td>Layout direction of menu component, it supports RTL direction too.</td>
</tr>
<tr>
<td>inlineIndent</td>
<td>Number</td>
<th>24</th>
<td>Padding level multiplier. Right or left padding depends on param "direction".</td>
</tr>
</tbody>
</table>
### Menu.Item props
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>className</td>
<td>String</td>
<td></td>
<td>additional css class of root dom node</td>
</tr>
<tr>
<td>disabled</td>
<td>Boolean</td>
<th>false</th>
<td>no effect for click or keydown for this item</td>
</tr>
<tr>
<td>extra</td>
<td>React.ReactNode</td>
<th></th>
<td>Specify menu item extra node.</td>
</tr>
<tr>
<td>key</td>
<td>Object</td>
<th></th>
<td>corresponding to activeKey</td>
</tr>
<tr>
<td>onMouseEnter</td>
<td>Function({eventKey, domEvent})</td>
<th></th>
<td></td>
</tr>
<tr>
<td>onMouseLeave</td>
<td>Function({eventKey, domEvent})</td>
<th></th>
<td></td>
</tr>
<tr>
<td>itemIcon</td>
<td>ReactNode | (props: MenuItemProps) => ReactNode</td>
<th></th>
<td>Specify the menu item icon.</td>
</tr>
</tbody>
</table>
### Menu.SubMenu props
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>ref</td>
<td>React.HTMLLIElement</td>
<td></td>
<td>get dom node</td>
</tr>
<tr>
<td>popupClassName</td>
<td>String</td>
<td></td>
<td>additional css class of root dom node</td>
</tr>
<tr>
<td>popupStyle</td>
<td>CSSProperties</td>
<td></td>
<td>additional css style of root dom node</td>
</tr>
<tr>
<td>title</td>
<td>String/ReactElement</td>
<td></td>
<td>sub menu's content</td>
</tr>
<tr>
<td>overflowedIndicator</td>
<td>String/ReactElement</td>
<td>···</td>
<td>overflow indicator when menu overlows in horizontal mode</td>
</tr>
<tr>
<td>key</td>
<td>Object</td>
<th></th>
<td>corresponding to activeKey</td>
</tr>
<tr>
<td>disabled</td>
<td>Boolean</td>
<th>false</th>
<td>no effect for click or keydown for this item</td>
</tr>
<tr>
<td>onMouseEnter</td>
<td>Function({eventKey, domEvent})</td>
<th></th>
<td></td>
</tr>
<tr>
<td>onMouseLeave</td>
<td>Function({eventKey, domEvent})</td>
<th></th>
<td></td>
</tr>
<tr>
<td>onTitleMouseEnter</td>
<td>Function({eventKey, domEvent})</td>
<th></th>
<td></td>
</tr>
<tr>
<td>onTitleMouseLeave</td>
<td>Function({eventKey, domEvent})</td>
<th></th>
<td></td>
</tr>
<tr>
<td>onTitleClick</td>
<td>Function({eventKey, domEvent})</td>
<th></th>
<td></td>
</tr>
<tr>
<td>popupOffset</td>
<td>Array</td>
<th></th>
<td>The offset of the popup submenu, in an x, y coordinate array. e.g.: `[0,15]`</td>
</tr>
<tr>
<td>expandIcon</td>
<td>ReactNode | (props: SubMenuProps) => ReactNode</td>
<th></th>
<td>Specify the menu item icon.</td>
</tr>
<tr>
<td>itemIcon</td>
<td>ReactNode | (props: SubMenuProps & { isSubMenu: boolean }) => ReactNode</td>
<th></th>
<td>Specify the menu item icon.</td>
</tr>
</tbody>
</table>
### Menu.Divider props
none
### Menu.ItemGroup props
<table class="table table-bordered table-striped">
<thead>
<tr>
<th style="width: 100px;">name</th>
<th style="width: 50px;">type</th>
<th style="width: 50px;">default</th>
<th>description</th>
</tr>
</thead>
<tbody>
<tr>
<td>ref</td>
<td>React.HTMLLIElement</td>
<td></td>
<td>get dom node</td>
</tr>
<tr>
<td>title</td>
<td>String|React.Element</td>
<th></th>
<td>title of item group</td>
</tr>
<tr>
<td>children</td>
<td>React.Element[]</td>
<th></th>
<td>MenuItems belonged to this group</td>
</tr>
</tbody>
</table>
## Development
```
npm install
npm start
```
## Example
http://localhost:8001/examples/index.md
online example: http://react-component.github.io/menu/examples/
## Test Case
```
npm test
npm run chrome-test
```
## Coverage
```
npm run coverage
```
open coverage/ dir
## License
rc-menu is released under the MIT license.

353
node_modules/rc-menu/assets/index.css generated vendored Normal file
View File

@@ -0,0 +1,353 @@
@font-face {
font-family: 'FontAwesome';
src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.eot');
src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.woff') format('woff'), url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf') format('truetype'), url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?#fontawesomeregular') format('svg');
font-weight: normal;
font-style: normal;
}
.rc-menu {
outline: none;
margin-bottom: 0;
padding-left: 0;
padding-right: 0;
list-style: none;
border: 1px solid #d9d9d9;
box-shadow: 0 0 4px #d9d9d9;
border-radius: 3px;
color: #666;
}
.rc-menu-rtl {
direction: rtl;
}
.rc-menu-hidden,
.rc-menu-submenu-hidden {
display: none;
}
.rc-menu-collapse {
overflow: hidden;
transition: height 0.3s ease-out;
}
.rc-menu-item-group-list {
margin: 0;
padding: 0;
}
.rc-menu-item-group-title {
color: #999;
line-height: 1.5;
padding: 8px 10px;
border-bottom: 1px solid #dedede;
}
.rc-menu-item-active,
.rc-menu-submenu-active > .rc-menu-submenu-title {
background-color: #eaf8fe;
}
.rc-menu-item-selected {
background-color: #eaf8fe;
transform: translateZ(0);
}
.rc-menu-submenu-selected {
background-color: #eaf8fe;
}
.rc-menu > li.rc-menu-submenu {
padding: 0;
}
.rc-menu-horizontal.rc-menu-sub,
.rc-menu-vertical.rc-menu-sub,
.rc-menu-vertical-left.rc-menu-sub,
.rc-menu-vertical-right.rc-menu-sub {
min-width: 160px;
margin-top: 0;
}
.rc-menu-item,
.rc-menu-submenu-title {
margin: 0;
position: relative;
display: block;
padding: 7px 7px 7px 16px;
white-space: nowrap;
}
.rc-menu-rtl .rc-menu-item,
.rc-menu-rtl .rc-menu-submenu-title {
padding: 7px 16px 7px 7px;
}
.rc-menu-item.rc-menu-item-disabled,
.rc-menu-submenu-title.rc-menu-item-disabled,
.rc-menu-item.rc-menu-submenu-disabled,
.rc-menu-submenu-title.rc-menu-submenu-disabled {
color: #777 !important;
}
.rc-menu-item {
display: flex;
align-items: center;
}
.rc-menu-item .rc-menu-item-extra {
margin-left: auto;
font-size: 14px;
}
.rc-menu-item-divider {
height: 1px;
margin: 1px 0;
overflow: hidden;
padding: 0;
line-height: 0;
background-color: #e5e5e5;
}
.rc-menu-submenu-popup {
position: absolute;
}
.rc-menu-submenu-popup .submenu-title-wrapper {
padding-right: 20px;
}
.rc-menu-submenu-rtl.rc-menu-submenu-popup .submenu-title-wrapper,
.rc-menu-submenu-rtl .rc-menu-submenu-popup .submenu-title-wrapper {
padding-right: 0;
padding-left: 20px;
}
.rc-menu-submenu > .rc-menu {
background-color: #fff;
}
.rc-menu .rc-menu-submenu-title .anticon,
.rc-menu .rc-menu-item .anticon {
width: 14px;
height: 14px;
margin-right: 8px;
top: -1px;
}
.rc-menu-rtl .rc-menu .rc-menu-submenu-title .anticon,
.rc-menu-rtl .rc-menu .rc-menu-item .anticon {
margin-right: 0;
margin-left: 8px;
}
.rc-menu-horizontal {
background-color: #f3f5f7;
border: none;
border-bottom: 1px solid #d9d9d9;
box-shadow: none;
white-space: nowrap;
overflow: hidden;
}
.rc-menu-horizontal > .rc-menu-item,
.rc-menu-horizontal > .rc-menu-submenu > .rc-menu-submenu-title {
padding: 15px 20px;
}
.rc-menu-horizontal > .rc-menu-submenu,
.rc-menu-horizontal > .rc-menu-item {
border-bottom: 2px solid transparent;
display: inline-block;
vertical-align: bottom;
}
.rc-menu-horizontal > .rc-menu-submenu-active,
.rc-menu-horizontal > .rc-menu-item-active {
border-bottom: 2px solid #2db7f5;
background-color: #f3f5f7;
color: #2baee9;
}
.rc-menu-horizontal:after {
content: '\20';
display: block;
height: 0;
clear: both;
}
.rc-menu-vertical,
.rc-menu-vertical-left,
.rc-menu-vertical-right,
.rc-menu-inline {
padding: 12px 0;
}
.rc-menu-vertical > .rc-menu-item,
.rc-menu-vertical-left > .rc-menu-item,
.rc-menu-vertical-right > .rc-menu-item,
.rc-menu-inline > .rc-menu-item,
.rc-menu-vertical > .rc-menu-submenu > .rc-menu-submenu-title,
.rc-menu-vertical-left > .rc-menu-submenu > .rc-menu-submenu-title,
.rc-menu-vertical-right > .rc-menu-submenu > .rc-menu-submenu-title,
.rc-menu-inline > .rc-menu-submenu > .rc-menu-submenu-title {
padding: 12px 8px 12px 24px;
}
.rc-menu-rtl.rc-menu-vertical > .rc-menu-item,
.rc-menu-rtl.rc-menu-vertical-left > .rc-menu-item,
.rc-menu-rtl.rc-menu-vertical-right > .rc-menu-item,
.rc-menu-rtl.rc-menu-inline > .rc-menu-item,
.rc-menu-rtl.rc-menu-vertical > .rc-menu-submenu > .rc-menu-submenu-title,
.rc-menu-rtl.rc-menu-vertical-left > .rc-menu-submenu > .rc-menu-submenu-title,
.rc-menu-rtl.rc-menu-vertical-right > .rc-menu-submenu > .rc-menu-submenu-title,
.rc-menu-rtl.rc-menu-inline > .rc-menu-submenu > .rc-menu-submenu-title {
padding: 12px 24px 12px 8px;
}
.rc-menu-vertical .rc-menu-submenu-arrow,
.rc-menu-vertical-left .rc-menu-submenu-arrow,
.rc-menu-vertical-right .rc-menu-submenu-arrow,
.rc-menu-inline .rc-menu-submenu-arrow {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
vertical-align: baseline;
text-align: center;
text-transform: none;
text-rendering: auto;
position: absolute;
right: 16px;
line-height: 1.5em;
}
.rc-menu-vertical .rc-menu-submenu-arrow:before,
.rc-menu-vertical-left .rc-menu-submenu-arrow:before,
.rc-menu-vertical-right .rc-menu-submenu-arrow:before,
.rc-menu-inline .rc-menu-submenu-arrow:before {
content: '\f0da';
}
.rc-menu-rtl.rc-menu-vertical .rc-menu-submenu-arrow:before,
.rc-menu-rtl.rc-menu-vertical-left .rc-menu-submenu-arrow:before,
.rc-menu-rtl.rc-menu-vertical-right .rc-menu-submenu-arrow:before,
.rc-menu-rtl.rc-menu-inline .rc-menu-submenu-arrow:before,
.rc-menu-submenu-rtl .rc-menu-vertical .rc-menu-submenu-arrow:before,
.rc-menu-submenu-rtl .rc-menu-vertical-left .rc-menu-submenu-arrow:before,
.rc-menu-submenu-rtl .rc-menu-vertical-right .rc-menu-submenu-arrow:before,
.rc-menu-submenu-rtl .rc-menu-inline .rc-menu-submenu-arrow:before {
content: '\f0d9';
}
.rc-menu-rtl.rc-menu-vertical .rc-menu-submenu-arrow,
.rc-menu-rtl.rc-menu-vertical-left .rc-menu-submenu-arrow,
.rc-menu-rtl.rc-menu-vertical-right .rc-menu-submenu-arrow,
.rc-menu-rtl.rc-menu-inline .rc-menu-submenu-arrow,
.rc-menu-submenu-rtl .rc-menu-vertical .rc-menu-submenu-arrow,
.rc-menu-submenu-rtl .rc-menu-vertical-left .rc-menu-submenu-arrow,
.rc-menu-submenu-rtl .rc-menu-vertical-right .rc-menu-submenu-arrow,
.rc-menu-submenu-rtl .rc-menu-inline .rc-menu-submenu-arrow {
right: auto;
left: 16px;
}
.rc-menu-inline .rc-menu-submenu-arrow {
transform: rotate(90deg);
transition: transform 0.3s;
}
.rc-menu-inline .rc-menu-submenu-open > .rc-menu-submenu-title .rc-menu-submenu-arrow {
transform: rotate(-90deg);
}
.rc-menu-vertical.rc-menu-sub,
.rc-menu-vertical-left.rc-menu-sub,
.rc-menu-vertical-right.rc-menu-sub {
padding: 0;
}
.rc-menu-submenu-rtl .rc-menu-vertical.rc-menu-sub,
.rc-menu-submenu-rtl .rc-menu-vertical-left.rc-menu-sub,
.rc-menu-submenu-rtl .rc-menu-vertical-right.rc-menu-sub {
direction: rtl;
}
.rc-menu-sub.rc-menu-inline {
padding: 0;
border: none;
border-radius: 0;
box-shadow: none;
}
.rc-menu-sub.rc-menu-inline > .rc-menu-item,
.rc-menu-sub.rc-menu-inline > .rc-menu-submenu > .rc-menu-submenu-title {
padding-top: 8px;
padding-bottom: 8px;
padding-right: 0;
}
.rc-menu-rtl .rc-menu-sub.rc-menu-inline > .rc-menu-item,
.rc-menu-rtl .rc-menu-sub.rc-menu-inline > .rc-menu-submenu > .rc-menu-submenu-title {
padding-left: 0;
}
.rc-menu-open-slide-up-enter,
.rc-menu-open-slide-up-appear {
animation-duration: 0.3s;
animation-fill-mode: both;
transform-origin: 0 0;
opacity: 0;
animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
animation-play-state: paused;
}
.rc-menu-open-slide-up-leave {
animation-duration: 0.3s;
animation-fill-mode: both;
transform-origin: 0 0;
opacity: 1;
animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
animation-play-state: paused;
}
.rc-menu-open-slide-up-enter.rc-menu-open-slide-up-enter-active,
.rc-menu-open-slide-up-appear.rc-menu-open-slide-up-appear-active {
animation-name: rcMenuOpenSlideUpIn;
animation-play-state: running;
}
.rc-menu-open-slide-up-leave.rc-menu-open-slide-up-leave-active {
animation-name: rcMenuOpenSlideUpOut;
animation-play-state: running;
}
@keyframes rcMenuOpenSlideUpIn {
0% {
opacity: 0;
transform-origin: 0% 0%;
transform: scaleY(0);
}
100% {
opacity: 1;
transform-origin: 0% 0%;
transform: scaleY(1);
}
}
@keyframes rcMenuOpenSlideUpOut {
0% {
opacity: 1;
transform-origin: 0% 0%;
transform: scaleY(1);
}
100% {
opacity: 0;
transform-origin: 0% 0%;
transform: scaleY(0);
}
}
.rc-menu-open-zoom-enter,
.rc-menu-open-zoom-appear {
opacity: 0;
animation-duration: 0.3s;
animation-fill-mode: both;
transform-origin: 0 0;
animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
animation-play-state: paused;
}
.rc-menu-open-zoom-leave {
animation-duration: 0.3s;
animation-fill-mode: both;
transform-origin: 0 0;
animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
animation-play-state: paused;
}
.rc-menu-open-zoom-enter.rc-menu-open-zoom-enter-active,
.rc-menu-open-zoom-appear.rc-menu-open-zoom-appear-active {
animation-name: rcMenuOpenZoomIn;
animation-play-state: running;
}
.rc-menu-open-zoom-leave.rc-menu-open-zoom-leave-active {
animation-name: rcMenuOpenZoomOut;
animation-play-state: running;
}
.rc-menu-submenu-rtl.rc-menu-open-zoom-enter,
.rc-menu-submenu-rtl.rc-menu-open-zoom-appear,
.rc-menu-submenu-rtl.rc-menu-open-zoom-leave,
.rc-menu-submenu-rtl .rc-menu-open-zoom-enter,
.rc-menu-submenu-rtl .rc-menu-open-zoom-appear,
.rc-menu-submenu-rtl .rc-menu-open-zoom-leave {
transform-origin: top right !important;
}
@keyframes rcMenuOpenZoomIn {
0% {
opacity: 0;
transform: scale(0, 0);
}
100% {
opacity: 1;
transform: scale(1, 1);
}
}
@keyframes rcMenuOpenZoomOut {
0% {
transform: scale(1, 1);
}
100% {
opacity: 0;
transform: scale(0, 0);
}
}

382
node_modules/rc-menu/assets/index.less generated vendored Normal file
View File

@@ -0,0 +1,382 @@
@menuPrefixCls: rc-menu;
@font-face {
font-family: 'FontAwesome';
src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.eot');
src: url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.eot?#iefix')
format('embedded-opentype'),
url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.woff')
format('woff'),
url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.ttf')
format('truetype'),
url('https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.2.0/fonts/fontawesome-webfont.svg?#fontawesomeregular')
format('svg');
font-weight: normal;
font-style: normal;
}
.@{menuPrefixCls} {
outline: none;
margin-bottom: 0;
padding-left: 0; // Override default ul/ol
padding-right: 0; // Override default ul/ol in RTL direction
list-style: none;
border: 1px solid #d9d9d9;
box-shadow: 0 0 4px #d9d9d9;
border-radius: 3px;
color: #666;
&-rtl {
direction: rtl;
}
&-hidden,
&-submenu-hidden {
display: none;
}
&-collapse {
overflow: hidden;
// &-active {
transition: height 0.3s ease-out;
// }
}
&-item-group-list {
margin: 0;
padding: 0;
}
&-item-group-title {
color: #999;
line-height: 1.5;
padding: 8px 10px;
border-bottom: 1px solid #dedede;
}
&-item-active,
&-submenu-active > &-submenu-title {
background-color: #eaf8fe;
}
&-item-selected {
background-color: #eaf8fe;
// fix chrome render bug
transform: translateZ(0);
}
&-submenu-selected {
background-color: #eaf8fe;
}
& > li&-submenu {
padding: 0;
}
&-horizontal&-sub,
&-vertical&-sub,
&-vertical-left&-sub,
&-vertical-right&-sub {
min-width: 160px;
margin-top: 0;
}
&-item,
&-submenu-title {
margin: 0;
position: relative;
display: block;
padding: 7px 7px 7px 16px;
white-space: nowrap;
.@{menuPrefixCls}-rtl & {
padding: 7px 16px 7px 7px;
}
// Disabled state sets text to gray and nukes hover/tab effects
&.@{menuPrefixCls}-item-disabled,
&.@{menuPrefixCls}-submenu-disabled {
color: #777 !important;
}
}
&-item {
display: flex;
align-items: center;
.@{menuPrefixCls}-item-extra {
margin-left: auto;
font-size: 14px;
}
}
&-item-divider {
height: 1px;
margin: 1px 0;
overflow: hidden;
padding: 0;
line-height: 0;
background-color: #e5e5e5;
}
&-submenu {
&-popup {
position: absolute;
.submenu-title-wrapper {
padding-right: 20px;
.@{menuPrefixCls}-submenu-rtl&,
.@{menuPrefixCls}-submenu-rtl & {
padding-right: 0;
padding-left: 20px;
}
}
}
> .@{menuPrefixCls} {
background-color: #fff;
}
}
.@{menuPrefixCls}-submenu-title,
.@{menuPrefixCls}-item {
.anticon {
width: 14px;
height: 14px;
margin-right: 8px;
top: -1px;
.@{menuPrefixCls}-rtl & {
margin-right: 0;
margin-left: 8px;
}
}
}
&-horizontal {
background-color: #f3f5f7;
border: none;
border-bottom: 1px solid #d9d9d9;
box-shadow: none;
white-space: nowrap;
overflow: hidden;
& > .@{menuPrefixCls}-item,
& > .@{menuPrefixCls}-submenu > .@{menuPrefixCls}-submenu-title {
padding: 15px 20px;
}
& > .@{menuPrefixCls}-submenu,
& > .@{menuPrefixCls}-item {
border-bottom: 2px solid transparent;
display: inline-block;
vertical-align: bottom;
&-active {
border-bottom: 2px solid #2db7f5;
background-color: #f3f5f7;
color: #2baee9;
}
}
&:after {
content: '\20';
display: block;
height: 0;
clear: both;
}
}
&-vertical,
&-vertical-left,
&-vertical-right,
&-inline {
padding: 12px 0;
& > .@{menuPrefixCls}-item,
& > .@{menuPrefixCls}-submenu > .@{menuPrefixCls}-submenu-title {
padding: 12px 8px 12px 24px;
.@{menuPrefixCls}-rtl& {
padding: 12px 24px 12px 8px;
}
}
.@{menuPrefixCls}-submenu-arrow {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
vertical-align: baseline;
text-align: center;
text-transform: none;
text-rendering: auto;
position: absolute;
right: 16px;
line-height: 1.5em;
&:before {
content: '\f0da';
.@{menuPrefixCls}-rtl&,
.@{menuPrefixCls}-submenu-rtl & {
content: '\f0d9';
}
}
.@{menuPrefixCls}-rtl&,
.@{menuPrefixCls}-submenu-rtl & {
right: auto;
left: 16px;
}
}
}
&-inline {
.@{menuPrefixCls}-submenu-arrow {
transform: rotate(90deg);
transition: transform 0.3s;
}
& .@{menuPrefixCls}-submenu-open > .@{menuPrefixCls}-submenu-title {
.@{menuPrefixCls}-submenu-arrow {
transform: rotate(-90deg);
}
}
}
&-vertical&-sub,
&-vertical-left&-sub,
&-vertical-right&-sub {
padding: 0;
.@{menuPrefixCls}-submenu-rtl & {
direction: rtl;
}
}
&-sub&-inline {
padding: 0;
border: none;
border-radius: 0;
box-shadow: none;
& > .@{menuPrefixCls}-item,
& > .@{menuPrefixCls}-submenu > .@{menuPrefixCls}-submenu-title {
padding-top: 8px;
padding-bottom: 8px;
padding-right: 0;
.@{menuPrefixCls}-rtl & {
padding-left: 0;
}
}
}
.effect() {
animation-duration: 0.3s;
animation-fill-mode: both;
transform-origin: 0 0;
}
&-open {
&-slide-up-enter,
&-slide-up-appear {
.effect();
opacity: 0;
animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
animation-play-state: paused;
}
&-slide-up-leave {
.effect();
opacity: 1;
animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
animation-play-state: paused;
}
&-slide-up-enter&-slide-up-enter-active,
&-slide-up-appear&-slide-up-appear-active {
animation-name: rcMenuOpenSlideUpIn;
animation-play-state: running;
}
&-slide-up-leave&-slide-up-leave-active {
animation-name: rcMenuOpenSlideUpOut;
animation-play-state: running;
}
@keyframes rcMenuOpenSlideUpIn {
0% {
opacity: 0;
transform-origin: 0% 0%;
transform: scaleY(0);
}
100% {
opacity: 1;
transform-origin: 0% 0%;
transform: scaleY(1);
}
}
@keyframes rcMenuOpenSlideUpOut {
0% {
opacity: 1;
transform-origin: 0% 0%;
transform: scaleY(1);
}
100% {
opacity: 0;
transform-origin: 0% 0%;
transform: scaleY(0);
}
}
&-zoom-enter,
&-zoom-appear {
opacity: 0;
.effect();
animation-timing-function: cubic-bezier(0.08, 0.82, 0.17, 1);
animation-play-state: paused;
}
&-zoom-leave {
.effect();
animation-timing-function: cubic-bezier(0.6, 0.04, 0.98, 0.34);
animation-play-state: paused;
}
&-zoom-enter&-zoom-enter-active,
&-zoom-appear&-zoom-appear-active {
animation-name: rcMenuOpenZoomIn;
animation-play-state: running;
}
&-zoom-leave&-zoom-leave-active {
animation-name: rcMenuOpenZoomOut;
animation-play-state: running;
}
&-zoom-enter,
&-zoom-appear,
&-zoom-leave {
.@{menuPrefixCls}-submenu-rtl&,
.@{menuPrefixCls}-submenu-rtl & {
transform-origin: top right !important;
}
}
@keyframes rcMenuOpenZoomIn {
0% {
opacity: 0;
transform: scale(0, 0);
}
100% {
opacity: 1;
transform: scale(1, 1);
}
}
@keyframes rcMenuOpenZoomOut {
0% {
transform: scale(1, 1);
}
100% {
opacity: 0;
transform: scale(0, 0);
}
}
}
}

22
node_modules/rc-menu/assets/menu.less generated vendored Normal file
View File

@@ -0,0 +1,22 @@
@menuPrefixCls: ~'rc-menu';
.@{menuPrefixCls} {
&:focus-visible {
box-shadow: 0 0 5px green;
}
&-horizontal {
display: flex;
flex-wrap: nowrap;
}
&-submenu {
&-hidden {
display: none;
}
}
&-overflow-item {
flex: none;
}
}

4
node_modules/rc-menu/es/Divider.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
import * as React from 'react';
import type { MenuDividerType } from './interface';
export type DividerProps = Omit<MenuDividerType, 'type'>;
export default function Divider({ className, style }: DividerProps): React.JSX.Element;

19
node_modules/rc-menu/es/Divider.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
import * as React from 'react';
import classNames from 'classnames';
import { MenuContext } from "./context/MenuContext";
import { useMeasure } from "./context/PathContext";
export default function Divider(_ref) {
var className = _ref.className,
style = _ref.style;
var _React$useContext = React.useContext(MenuContext),
prefixCls = _React$useContext.prefixCls;
var measure = useMeasure();
if (measure) {
return null;
}
return /*#__PURE__*/React.createElement("li", {
role: "separator",
className: classNames("".concat(prefixCls, "-item-divider"), className),
style: style
});
}

9
node_modules/rc-menu/es/Icon.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
import * as React from 'react';
import type { RenderIconInfo, RenderIconType } from './interface';
export interface IconProps {
icon?: RenderIconType;
props: RenderIconInfo;
/** Fallback of icon if provided */
children?: React.ReactElement;
}
export default function Icon({ icon, props, children }: IconProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;

18
node_modules/rc-menu/es/Icon.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import * as React from 'react';
export default function Icon(_ref) {
var icon = _ref.icon,
props = _ref.props,
children = _ref.children;
var iconNode;
if (icon === null || icon === false) {
return null;
}
if (typeof icon === 'function') {
iconNode = /*#__PURE__*/React.createElement(icon, _objectSpread({}, props));
} else if (typeof icon !== "boolean") {
// Compatible for origin definition
iconNode = icon;
}
return iconNode || children || null;
}

73
node_modules/rc-menu/es/Menu.d.ts generated vendored Normal file
View File

@@ -0,0 +1,73 @@
import type { CSSMotionProps } from 'rc-motion';
import * as React from 'react';
import type { BuiltinPlacements, Components, ItemType, MenuClickEventHandler, MenuMode, MenuRef, RenderIconType, SelectEventHandler, TriggerSubMenuAction } from './interface';
export interface MenuProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onClick' | 'onSelect' | 'dir'> {
prefixCls?: string;
rootClassName?: string;
items?: ItemType[];
/** @deprecated Please use `items` instead */
children?: React.ReactNode;
disabled?: boolean;
/** @private Disable auto overflow. Pls note the prop name may refactor since we do not final decided. */
disabledOverflow?: boolean;
/** direction of menu */
direction?: 'ltr' | 'rtl';
mode?: MenuMode;
inlineCollapsed?: boolean;
defaultOpenKeys?: string[];
openKeys?: string[];
activeKey?: string;
defaultActiveFirst?: boolean;
selectable?: boolean;
multiple?: boolean;
defaultSelectedKeys?: string[];
selectedKeys?: string[];
onSelect?: SelectEventHandler;
onDeselect?: SelectEventHandler;
inlineIndent?: number;
/** Menu motion define. Use `defaultMotions` if you need config motion of each mode */
motion?: CSSMotionProps;
/** Default menu motion of each mode */
defaultMotions?: Partial<{
[key in MenuMode | 'other']: CSSMotionProps;
}>;
subMenuOpenDelay?: number;
subMenuCloseDelay?: number;
forceSubMenuRender?: boolean;
triggerSubMenuAction?: TriggerSubMenuAction;
builtinPlacements?: BuiltinPlacements;
itemIcon?: RenderIconType;
expandIcon?: RenderIconType;
overflowedIndicator?: React.ReactNode;
/** @private Internal usage. Do not use in your production. */
overflowedIndicatorPopupClassName?: string;
getPopupContainer?: (node: HTMLElement) => HTMLElement;
onClick?: MenuClickEventHandler;
onOpenChange?: (openKeys: string[]) => void;
/***
* @private Only used for `pro-layout`. Do not use in your prod directly
* and we do not promise any compatibility for this.
*/
_internalRenderMenuItem?: (originNode: React.ReactElement, menuItemProps: any, stateProps: {
selected: boolean;
}) => React.ReactElement;
/***
* @private Only used for `pro-layout`. Do not use in your prod directly
* and we do not promise any compatibility for this.
*/
_internalRenderSubMenuItem?: (originNode: React.ReactElement, subMenuItemProps: any, stateProps: {
selected: boolean;
open: boolean;
active: boolean;
disabled: boolean;
}) => React.ReactElement;
/**
* @private NEVER! EVER! USE IN PRODUCTION!!!
* This is a hack API for `antd` to fix `findDOMNode` issue.
* Not use it! Not accept any PR try to make it as normal API.
* By zombieJ
*/
_internalComponents?: Components;
}
declare const Menu: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<MenuRef>>;
export default Menu;

481
node_modules/rc-menu/es/Menu.js generated vendored Normal file
View File

@@ -0,0 +1,481 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["prefixCls", "rootClassName", "style", "className", "tabIndex", "items", "children", "direction", "id", "mode", "inlineCollapsed", "disabled", "disabledOverflow", "subMenuOpenDelay", "subMenuCloseDelay", "forceSubMenuRender", "defaultOpenKeys", "openKeys", "activeKey", "defaultActiveFirst", "selectable", "multiple", "defaultSelectedKeys", "selectedKeys", "onSelect", "onDeselect", "inlineIndent", "motion", "defaultMotions", "triggerSubMenuAction", "builtinPlacements", "itemIcon", "expandIcon", "overflowedIndicator", "overflowedIndicatorPopupClassName", "getPopupContainer", "onClick", "onOpenChange", "onKeyDown", "openAnimation", "openTransitionName", "_internalRenderMenuItem", "_internalRenderSubMenuItem", "_internalComponents"];
import classNames from 'classnames';
import Overflow from 'rc-overflow';
import useMergedState from "rc-util/es/hooks/useMergedState";
import isEqual from "rc-util/es/isEqual";
import warning from "rc-util/es/warning";
import * as React from 'react';
import { useImperativeHandle } from 'react';
import { flushSync } from 'react-dom';
import { IdContext } from "./context/IdContext";
import MenuContextProvider from "./context/MenuContext";
import { PathRegisterContext, PathUserContext } from "./context/PathContext";
import PrivateContext from "./context/PrivateContext";
import { getFocusableElements, refreshElements, useAccessibility } from "./hooks/useAccessibility";
import useKeyRecords, { OVERFLOW_KEY } from "./hooks/useKeyRecords";
import useMemoCallback from "./hooks/useMemoCallback";
import useUUID from "./hooks/useUUID";
import MenuItem from "./MenuItem";
import SubMenu from "./SubMenu";
import { parseItems } from "./utils/nodeUtil";
import { warnItemProp } from "./utils/warnUtil";
/**
* Menu modify after refactor:
* ## Add
* - disabled
*
* ## Remove
* - openTransitionName
* - openAnimation
* - onDestroy
* - siderCollapsed: Seems antd do not use this prop (Need test in antd)
* - collapsedWidth: Seems this logic should be handle by antd Layout.Sider
*/
// optimize for render
var EMPTY_LIST = [];
var Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {
var _childList$;
var _ref = props,
_ref$prefixCls = _ref.prefixCls,
prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,
rootClassName = _ref.rootClassName,
style = _ref.style,
className = _ref.className,
_ref$tabIndex = _ref.tabIndex,
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
items = _ref.items,
children = _ref.children,
direction = _ref.direction,
id = _ref.id,
_ref$mode = _ref.mode,
mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,
inlineCollapsed = _ref.inlineCollapsed,
disabled = _ref.disabled,
disabledOverflow = _ref.disabledOverflow,
_ref$subMenuOpenDelay = _ref.subMenuOpenDelay,
subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,
_ref$subMenuCloseDela = _ref.subMenuCloseDelay,
subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,
forceSubMenuRender = _ref.forceSubMenuRender,
defaultOpenKeys = _ref.defaultOpenKeys,
openKeys = _ref.openKeys,
activeKey = _ref.activeKey,
defaultActiveFirst = _ref.defaultActiveFirst,
_ref$selectable = _ref.selectable,
selectable = _ref$selectable === void 0 ? true : _ref$selectable,
_ref$multiple = _ref.multiple,
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
defaultSelectedKeys = _ref.defaultSelectedKeys,
selectedKeys = _ref.selectedKeys,
onSelect = _ref.onSelect,
onDeselect = _ref.onDeselect,
_ref$inlineIndent = _ref.inlineIndent,
inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,
motion = _ref.motion,
defaultMotions = _ref.defaultMotions,
_ref$triggerSubMenuAc = _ref.triggerSubMenuAction,
triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,
builtinPlacements = _ref.builtinPlacements,
itemIcon = _ref.itemIcon,
expandIcon = _ref.expandIcon,
_ref$overflowedIndica = _ref.overflowedIndicator,
overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,
overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,
getPopupContainer = _ref.getPopupContainer,
onClick = _ref.onClick,
onOpenChange = _ref.onOpenChange,
onKeyDown = _ref.onKeyDown,
openAnimation = _ref.openAnimation,
openTransitionName = _ref.openTransitionName,
_internalRenderMenuItem = _ref._internalRenderMenuItem,
_internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,
_internalComponents = _ref._internalComponents,
restProps = _objectWithoutProperties(_ref, _excluded);
var _React$useMemo = React.useMemo(function () {
return [parseItems(children, items, EMPTY_LIST, _internalComponents, prefixCls), parseItems(children, items, EMPTY_LIST, {}, prefixCls)];
}, [children, items, _internalComponents]),
_React$useMemo2 = _slicedToArray(_React$useMemo, 2),
childList = _React$useMemo2[0],
measureChildList = _React$useMemo2[1];
var _React$useState = React.useState(false),
_React$useState2 = _slicedToArray(_React$useState, 2),
mounted = _React$useState2[0],
setMounted = _React$useState2[1];
var containerRef = React.useRef();
var uuid = useUUID(id);
var isRtl = direction === 'rtl';
// ========================= Warn =========================
if (process.env.NODE_ENV !== 'production') {
warning(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');
}
// ========================= Open =========================
var _useMergedState = useMergedState(defaultOpenKeys, {
value: openKeys,
postState: function postState(keys) {
return keys || EMPTY_LIST;
}
}),
_useMergedState2 = _slicedToArray(_useMergedState, 2),
mergedOpenKeys = _useMergedState2[0],
setMergedOpenKeys = _useMergedState2[1];
// React 18 will merge mouse event which means we open key will not sync
// ref: https://github.com/ant-design/ant-design/issues/38818
var triggerOpenKeys = function triggerOpenKeys(keys) {
var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
function doUpdate() {
setMergedOpenKeys(keys);
onOpenChange === null || onOpenChange === void 0 || onOpenChange(keys);
}
if (forceFlush) {
flushSync(doUpdate);
} else {
doUpdate();
}
};
// >>>>> Cache & Reset open keys when inlineCollapsed changed
var _React$useState3 = React.useState(mergedOpenKeys),
_React$useState4 = _slicedToArray(_React$useState3, 2),
inlineCacheOpenKeys = _React$useState4[0],
setInlineCacheOpenKeys = _React$useState4[1];
var mountRef = React.useRef(false);
// ========================= Mode =========================
var _React$useMemo3 = React.useMemo(function () {
if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {
return ['vertical', inlineCollapsed];
}
return [mode, false];
}, [mode, inlineCollapsed]),
_React$useMemo4 = _slicedToArray(_React$useMemo3, 2),
mergedMode = _React$useMemo4[0],
mergedInlineCollapsed = _React$useMemo4[1];
var isInlineMode = mergedMode === 'inline';
var _React$useState5 = React.useState(mergedMode),
_React$useState6 = _slicedToArray(_React$useState5, 2),
internalMode = _React$useState6[0],
setInternalMode = _React$useState6[1];
var _React$useState7 = React.useState(mergedInlineCollapsed),
_React$useState8 = _slicedToArray(_React$useState7, 2),
internalInlineCollapsed = _React$useState8[0],
setInternalInlineCollapsed = _React$useState8[1];
React.useEffect(function () {
setInternalMode(mergedMode);
setInternalInlineCollapsed(mergedInlineCollapsed);
if (!mountRef.current) {
return;
}
// Synchronously update MergedOpenKeys
if (isInlineMode) {
setMergedOpenKeys(inlineCacheOpenKeys);
} else {
// Trigger open event in case its in control
triggerOpenKeys(EMPTY_LIST);
}
}, [mergedMode, mergedInlineCollapsed]);
// ====================== Responsive ======================
var _React$useState9 = React.useState(0),
_React$useState10 = _slicedToArray(_React$useState9, 2),
lastVisibleIndex = _React$useState10[0],
setLastVisibleIndex = _React$useState10[1];
var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;
// Cache
React.useEffect(function () {
if (isInlineMode) {
setInlineCacheOpenKeys(mergedOpenKeys);
}
}, [mergedOpenKeys]);
React.useEffect(function () {
mountRef.current = true;
return function () {
mountRef.current = false;
};
}, []);
// ========================= Path =========================
var _useKeyRecords = useKeyRecords(),
registerPath = _useKeyRecords.registerPath,
unregisterPath = _useKeyRecords.unregisterPath,
refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,
isSubPathKey = _useKeyRecords.isSubPathKey,
getKeyPath = _useKeyRecords.getKeyPath,
getKeys = _useKeyRecords.getKeys,
getSubPathKeys = _useKeyRecords.getSubPathKeys;
var registerPathContext = React.useMemo(function () {
return {
registerPath: registerPath,
unregisterPath: unregisterPath
};
}, [registerPath, unregisterPath]);
var pathUserContext = React.useMemo(function () {
return {
isSubPathKey: isSubPathKey
};
}, [isSubPathKey]);
React.useEffect(function () {
refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {
return child.key;
}));
}, [lastVisibleIndex, allVisible]);
// ======================== Active ========================
var _useMergedState3 = useMergedState(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {
value: activeKey
}),
_useMergedState4 = _slicedToArray(_useMergedState3, 2),
mergedActiveKey = _useMergedState4[0],
setMergedActiveKey = _useMergedState4[1];
var onActive = useMemoCallback(function (key) {
setMergedActiveKey(key);
});
var onInactive = useMemoCallback(function () {
setMergedActiveKey(undefined);
});
useImperativeHandle(ref, function () {
return {
list: containerRef.current,
focus: function focus(options) {
var _childList$find;
var keys = getKeys();
var _refreshElements = refreshElements(keys, uuid),
elements = _refreshElements.elements,
key2element = _refreshElements.key2element,
element2key = _refreshElements.element2key;
var focusableElements = getFocusableElements(containerRef.current, elements);
var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : focusableElements[0] ? element2key.get(focusableElements[0]) : (_childList$find = childList.find(function (node) {
return !node.props.disabled;
})) === null || _childList$find === void 0 ? void 0 : _childList$find.key;
var elementToFocus = key2element.get(shouldFocusKey);
if (shouldFocusKey && elementToFocus) {
var _elementToFocus$focus;
elementToFocus === null || elementToFocus === void 0 || (_elementToFocus$focus = elementToFocus.focus) === null || _elementToFocus$focus === void 0 || _elementToFocus$focus.call(elementToFocus, options);
}
}
};
});
// ======================== Select ========================
// >>>>> Select keys
var _useMergedState5 = useMergedState(defaultSelectedKeys || [], {
value: selectedKeys,
// Legacy convert key to array
postState: function postState(keys) {
if (Array.isArray(keys)) {
return keys;
}
if (keys === null || keys === undefined) {
return EMPTY_LIST;
}
return [keys];
}
}),
_useMergedState6 = _slicedToArray(_useMergedState5, 2),
mergedSelectKeys = _useMergedState6[0],
setMergedSelectKeys = _useMergedState6[1];
// >>>>> Trigger select
var triggerSelection = function triggerSelection(info) {
if (selectable) {
// Insert or Remove
var targetKey = info.key;
var exist = mergedSelectKeys.includes(targetKey);
var newSelectKeys;
if (multiple) {
if (exist) {
newSelectKeys = mergedSelectKeys.filter(function (key) {
return key !== targetKey;
});
} else {
newSelectKeys = [].concat(_toConsumableArray(mergedSelectKeys), [targetKey]);
}
} else {
newSelectKeys = [targetKey];
}
setMergedSelectKeys(newSelectKeys);
// Trigger event
var selectInfo = _objectSpread(_objectSpread({}, info), {}, {
selectedKeys: newSelectKeys
});
if (exist) {
onDeselect === null || onDeselect === void 0 || onDeselect(selectInfo);
} else {
onSelect === null || onSelect === void 0 || onSelect(selectInfo);
}
}
// Whatever selectable, always close it
if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {
triggerOpenKeys(EMPTY_LIST);
}
};
// ========================= Open =========================
/**
* Click for item. SubMenu do not have selection status
*/
var onInternalClick = useMemoCallback(function (info) {
onClick === null || onClick === void 0 || onClick(warnItemProp(info));
triggerSelection(info);
});
var onInternalOpenChange = useMemoCallback(function (key, open) {
var newOpenKeys = mergedOpenKeys.filter(function (k) {
return k !== key;
});
if (open) {
newOpenKeys.push(key);
} else if (internalMode !== 'inline') {
// We need find all related popup to close
var subPathKeys = getSubPathKeys(key);
newOpenKeys = newOpenKeys.filter(function (k) {
return !subPathKeys.has(k);
});
}
if (!isEqual(mergedOpenKeys, newOpenKeys, true)) {
triggerOpenKeys(newOpenKeys, true);
}
});
// ==================== Accessibility =====================
var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {
var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);
onInternalOpenChange(key, nextOpen);
};
var onInternalKeyDown = useAccessibility(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);
// ======================== Effect ========================
React.useEffect(function () {
setMounted(true);
}, []);
// ======================= Context ========================
var privateContext = React.useMemo(function () {
return {
_internalRenderMenuItem: _internalRenderMenuItem,
_internalRenderSubMenuItem: _internalRenderSubMenuItem
};
}, [_internalRenderMenuItem, _internalRenderSubMenuItem]);
// ======================== Render ========================
// >>>>> Children
var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :
// Need wrap for overflow dropdown that do not response for open
childList.map(function (child, index) {
return (
/*#__PURE__*/
// Always wrap provider to avoid sub node re-mount
React.createElement(MenuContextProvider, {
key: child.key,
overflowDisabled: index > lastVisibleIndex
}, child)
);
});
// >>>>> Container
var container = /*#__PURE__*/React.createElement(Overflow, _extends({
id: id,
ref: containerRef,
prefixCls: "".concat(prefixCls, "-overflow"),
component: "ul",
itemComponent: MenuItem,
className: classNames(prefixCls, "".concat(prefixCls, "-root"), "".concat(prefixCls, "-").concat(internalMode), className, _defineProperty(_defineProperty({}, "".concat(prefixCls, "-inline-collapsed"), internalInlineCollapsed), "".concat(prefixCls, "-rtl"), isRtl), rootClassName),
dir: direction,
style: style,
role: "menu",
tabIndex: tabIndex,
data: wrappedChildList,
renderRawItem: function renderRawItem(node) {
return node;
},
renderRawRest: function renderRawRest(omitItems) {
// We use origin list since wrapped list use context to prevent open
var len = omitItems.length;
var originOmitItems = len ? childList.slice(-len) : null;
return /*#__PURE__*/React.createElement(SubMenu, {
eventKey: OVERFLOW_KEY,
title: overflowedIndicator,
disabled: allVisible,
internalPopupClose: len === 0,
popupClassName: overflowedIndicatorPopupClassName
}, originOmitItems);
},
maxCount: internalMode !== 'horizontal' || disabledOverflow ? Overflow.INVALIDATE : Overflow.RESPONSIVE,
ssr: "full",
"data-menu-list": true,
onVisibleChange: function onVisibleChange(newLastIndex) {
setLastVisibleIndex(newLastIndex);
},
onKeyDown: onInternalKeyDown
}, restProps));
// >>>>> Render
return /*#__PURE__*/React.createElement(PrivateContext.Provider, {
value: privateContext
}, /*#__PURE__*/React.createElement(IdContext.Provider, {
value: uuid
}, /*#__PURE__*/React.createElement(MenuContextProvider, {
prefixCls: prefixCls,
rootClassName: rootClassName,
mode: internalMode,
openKeys: mergedOpenKeys,
rtl: isRtl
// Disabled
,
disabled: disabled
// Motion
,
motion: mounted ? motion : null,
defaultMotions: mounted ? defaultMotions : null
// Active
,
activeKey: mergedActiveKey,
onActive: onActive,
onInactive: onInactive
// Selection
,
selectedKeys: mergedSelectKeys
// Level
,
inlineIndent: inlineIndent
// Popup
,
subMenuOpenDelay: subMenuOpenDelay,
subMenuCloseDelay: subMenuCloseDelay,
forceSubMenuRender: forceSubMenuRender,
builtinPlacements: builtinPlacements,
triggerSubMenuAction: triggerSubMenuAction,
getPopupContainer: getPopupContainer
// Icon
,
itemIcon: itemIcon,
expandIcon: expandIcon
// Events
,
onItemClick: onInternalClick,
onOpenChange: onInternalOpenChange
}, /*#__PURE__*/React.createElement(PathUserContext.Provider, {
value: pathUserContext
}, container), /*#__PURE__*/React.createElement("div", {
style: {
display: 'none'
},
"aria-hidden": true
}, /*#__PURE__*/React.createElement(PathRegisterContext.Provider, {
value: registerPathContext
}, measureChildList)))));
});
export default Menu;

13
node_modules/rc-menu/es/MenuItem.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import * as React from 'react';
import type { MenuItemType } from './interface';
export interface MenuItemProps extends Omit<MenuItemType, 'label' | 'key' | 'ref'>, Omit<React.HTMLAttributes<HTMLLIElement>, 'onClick' | 'onMouseEnter' | 'onMouseLeave' | 'onSelect'> {
children?: React.ReactNode;
/** @private Internal filled key. Do not set it directly */
eventKey?: string;
/** @private Do not use. Private warning empty usage */
warnKey?: boolean;
/** @deprecated No place to use this. Should remove */
attribute?: Record<string, string>;
}
declare const _default: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLElement>>;
export default _default;

214
node_modules/rc-menu/es/MenuItem.js generated vendored Normal file
View File

@@ -0,0 +1,214 @@
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
import _classCallCheck from "@babel/runtime/helpers/esm/classCallCheck";
import _createClass from "@babel/runtime/helpers/esm/createClass";
import _inherits from "@babel/runtime/helpers/esm/inherits";
import _createSuper from "@babel/runtime/helpers/esm/createSuper";
var _excluded = ["title", "attribute", "elementRef"],
_excluded2 = ["style", "className", "eventKey", "warnKey", "disabled", "itemIcon", "children", "role", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "onFocus"],
_excluded3 = ["active"];
import classNames from 'classnames';
import Overflow from 'rc-overflow';
import KeyCode from "rc-util/es/KeyCode";
import omit from "rc-util/es/omit";
import { useComposeRef } from "rc-util/es/ref";
import warning from "rc-util/es/warning";
import * as React from 'react';
import { useMenuId } from "./context/IdContext";
import { MenuContext } from "./context/MenuContext";
import { useFullPath, useMeasure } from "./context/PathContext";
import PrivateContext from "./context/PrivateContext";
import useActive from "./hooks/useActive";
import useDirectionStyle from "./hooks/useDirectionStyle";
import Icon from "./Icon";
import { warnItemProp } from "./utils/warnUtil";
// Since Menu event provide the `info.item` which point to the MenuItem node instance.
// We have to use class component here.
// This should be removed from doc & api in future.
var LegacyMenuItem = /*#__PURE__*/function (_React$Component) {
_inherits(LegacyMenuItem, _React$Component);
var _super = _createSuper(LegacyMenuItem);
function LegacyMenuItem() {
_classCallCheck(this, LegacyMenuItem);
return _super.apply(this, arguments);
}
_createClass(LegacyMenuItem, [{
key: "render",
value: function render() {
var _this$props = this.props,
title = _this$props.title,
attribute = _this$props.attribute,
elementRef = _this$props.elementRef,
restProps = _objectWithoutProperties(_this$props, _excluded);
// Here the props are eventually passed to the DOM element.
// React does not recognize non-standard attributes.
// Therefore, remove the props that is not used here.
// ref: https://github.com/ant-design/ant-design/issues/41395
var passedProps = omit(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);
warning(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');
return /*#__PURE__*/React.createElement(Overflow.Item, _extends({}, attribute, {
title: typeof title === 'string' ? title : undefined
}, passedProps, {
ref: elementRef
}));
}
}]);
return LegacyMenuItem;
}(React.Component);
/**
* Real Menu Item component
*/
var InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
var style = props.style,
className = props.className,
eventKey = props.eventKey,
warnKey = props.warnKey,
disabled = props.disabled,
itemIcon = props.itemIcon,
children = props.children,
role = props.role,
onMouseEnter = props.onMouseEnter,
onMouseLeave = props.onMouseLeave,
onClick = props.onClick,
onKeyDown = props.onKeyDown,
onFocus = props.onFocus,
restProps = _objectWithoutProperties(props, _excluded2);
var domDataId = useMenuId(eventKey);
var _React$useContext = React.useContext(MenuContext),
prefixCls = _React$useContext.prefixCls,
onItemClick = _React$useContext.onItemClick,
contextDisabled = _React$useContext.disabled,
overflowDisabled = _React$useContext.overflowDisabled,
contextItemIcon = _React$useContext.itemIcon,
selectedKeys = _React$useContext.selectedKeys,
onActive = _React$useContext.onActive;
var _React$useContext2 = React.useContext(PrivateContext),
_internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;
var itemCls = "".concat(prefixCls, "-item");
var legacyMenuItemRef = React.useRef();
var elementRef = React.useRef();
var mergedDisabled = contextDisabled || disabled;
var mergedEleRef = useComposeRef(ref, elementRef);
var connectedKeys = useFullPath(eventKey);
// ================================ Warn ================================
if (process.env.NODE_ENV !== 'production' && warnKey) {
warning(false, 'MenuItem should not leave undefined `key`.');
}
// ============================= Info =============================
var getEventInfo = function getEventInfo(e) {
return {
key: eventKey,
// Note: For legacy code is reversed which not like other antd component
keyPath: _toConsumableArray(connectedKeys).reverse(),
item: legacyMenuItemRef.current,
domEvent: e
};
};
// ============================= Icon =============================
var mergedItemIcon = itemIcon || contextItemIcon;
// ============================ Active ============================
var _useActive = useActive(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),
active = _useActive.active,
activeProps = _objectWithoutProperties(_useActive, _excluded3);
// ============================ Select ============================
var selected = selectedKeys.includes(eventKey);
// ======================== DirectionStyle ========================
var directionStyle = useDirectionStyle(connectedKeys.length);
// ============================ Events ============================
var onInternalClick = function onInternalClick(e) {
if (mergedDisabled) {
return;
}
var info = getEventInfo(e);
onClick === null || onClick === void 0 || onClick(warnItemProp(info));
onItemClick(info);
};
var onInternalKeyDown = function onInternalKeyDown(e) {
onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);
if (e.which === KeyCode.ENTER) {
var info = getEventInfo(e);
// Legacy. Key will also trigger click event
onClick === null || onClick === void 0 || onClick(warnItemProp(info));
onItemClick(info);
}
};
/**
* Used for accessibility. Helper will focus element without key board.
* We should manually trigger an active
*/
var onInternalFocus = function onInternalFocus(e) {
onActive(eventKey);
onFocus === null || onFocus === void 0 || onFocus(e);
};
// ============================ Render ============================
var optionRoleProps = {};
if (props.role === 'option') {
optionRoleProps['aria-selected'] = selected;
}
var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, _extends({
ref: legacyMenuItemRef,
elementRef: mergedEleRef,
role: role === null ? 'none' : role || 'menuitem',
tabIndex: disabled ? null : -1,
"data-menu-id": overflowDisabled && domDataId ? null : domDataId
}, omit(restProps, ['extra']), activeProps, optionRoleProps, {
component: "li",
"aria-disabled": disabled,
style: _objectSpread(_objectSpread({}, directionStyle), style),
className: classNames(itemCls, _defineProperty(_defineProperty(_defineProperty({}, "".concat(itemCls, "-active"), active), "".concat(itemCls, "-selected"), selected), "".concat(itemCls, "-disabled"), mergedDisabled), className),
onClick: onInternalClick,
onKeyDown: onInternalKeyDown,
onFocus: onInternalFocus
}), children, /*#__PURE__*/React.createElement(Icon, {
props: _objectSpread(_objectSpread({}, props), {}, {
isSelected: selected
}),
icon: mergedItemIcon
}));
if (_internalRenderMenuItem) {
renderNode = _internalRenderMenuItem(renderNode, props, {
selected: selected
});
}
return renderNode;
});
function MenuItem(props, ref) {
var eventKey = props.eventKey;
// ==================== Record KeyPath ====================
var measure = useMeasure();
var connectedKeyPath = useFullPath(eventKey);
// eslint-disable-next-line consistent-return
React.useEffect(function () {
if (measure) {
measure.registerPath(eventKey, connectedKeyPath);
return function () {
measure.unregisterPath(eventKey, connectedKeyPath);
};
}
}, [connectedKeyPath]);
if (measure) {
return null;
}
// ======================== Render ========================
return /*#__PURE__*/React.createElement(InternalMenuItem, _extends({}, props, {
ref: ref
}));
}
export default /*#__PURE__*/React.forwardRef(MenuItem);

12
node_modules/rc-menu/es/MenuItemGroup.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
import * as React from 'react';
import type { MenuItemGroupType } from './interface';
export interface MenuItemGroupProps extends Omit<MenuItemGroupType, 'type' | 'children' | 'label'> {
title?: React.ReactNode;
children?: React.ReactNode;
/** @private Internal filled key. Do not set it directly */
eventKey?: string;
/** @private Do not use. Private warning empty usage */
warnKey?: boolean;
}
declare const MenuItemGroup: React.ForwardRefExoticComponent<Omit<MenuItemGroupProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
export default MenuItemGroup;

52
node_modules/rc-menu/es/MenuItemGroup.js generated vendored Normal file
View File

@@ -0,0 +1,52 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["className", "title", "eventKey", "children"];
import classNames from 'classnames';
import omit from "rc-util/es/omit";
import * as React from 'react';
import { MenuContext } from "./context/MenuContext";
import { useFullPath, useMeasure } from "./context/PathContext";
import { parseChildren } from "./utils/commonUtil";
var InternalMenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
var className = props.className,
title = props.title,
eventKey = props.eventKey,
children = props.children,
restProps = _objectWithoutProperties(props, _excluded);
var _React$useContext = React.useContext(MenuContext),
prefixCls = _React$useContext.prefixCls;
var groupPrefixCls = "".concat(prefixCls, "-item-group");
return /*#__PURE__*/React.createElement("li", _extends({
ref: ref,
role: "presentation"
}, restProps, {
onClick: function onClick(e) {
return e.stopPropagation();
},
className: classNames(groupPrefixCls, className)
}), /*#__PURE__*/React.createElement("div", {
role: "presentation",
className: "".concat(groupPrefixCls, "-title"),
title: typeof title === 'string' ? title : undefined
}, title), /*#__PURE__*/React.createElement("ul", {
role: "group",
className: "".concat(groupPrefixCls, "-list")
}, children));
});
var MenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
var eventKey = props.eventKey,
children = props.children;
var connectedKeyPath = useFullPath(eventKey);
var childList = parseChildren(children, connectedKeyPath);
var measure = useMeasure();
if (measure) {
return childList;
}
return /*#__PURE__*/React.createElement(InternalMenuItemGroup, _extends({
ref: ref
}, omit(props, ['warnKey'])), childList);
});
if (process.env.NODE_ENV !== 'production') {
MenuItemGroup.displayName = 'MenuItemGroup';
}
export default MenuItemGroup;

View File

@@ -0,0 +1,8 @@
import * as React from 'react';
export interface InlineSubMenuListProps {
id?: string;
open: boolean;
keyPath: string[];
children: React.ReactNode;
}
export default function InlineSubMenuList({ id, open, keyPath, children, }: InlineSubMenuListProps): React.JSX.Element;

79
node_modules/rc-menu/es/SubMenu/InlineSubMenuList.js generated vendored Normal file
View File

@@ -0,0 +1,79 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import * as React from 'react';
import CSSMotion from 'rc-motion';
import { getMotion } from "../utils/motionUtil";
import MenuContextProvider, { MenuContext } from "../context/MenuContext";
import SubMenuList from "./SubMenuList";
export default function InlineSubMenuList(_ref) {
var id = _ref.id,
open = _ref.open,
keyPath = _ref.keyPath,
children = _ref.children;
var fixedMode = 'inline';
var _React$useContext = React.useContext(MenuContext),
prefixCls = _React$useContext.prefixCls,
forceSubMenuRender = _React$useContext.forceSubMenuRender,
motion = _React$useContext.motion,
defaultMotions = _React$useContext.defaultMotions,
mode = _React$useContext.mode;
// Always use latest mode check
var sameModeRef = React.useRef(false);
sameModeRef.current = mode === fixedMode;
// We record `destroy` mark here since when mode change from `inline` to others.
// The inline list should remove when motion end.
var _React$useState = React.useState(!sameModeRef.current),
_React$useState2 = _slicedToArray(_React$useState, 2),
destroy = _React$useState2[0],
setDestroy = _React$useState2[1];
var mergedOpen = sameModeRef.current ? open : false;
// ================================= Effect =================================
// Reset destroy state when mode change back
React.useEffect(function () {
if (sameModeRef.current) {
setDestroy(false);
}
}, [mode]);
// ================================= Render =================================
var mergedMotion = _objectSpread({}, getMotion(fixedMode, motion, defaultMotions));
// No need appear since nest inlineCollapse changed
if (keyPath.length > 1) {
mergedMotion.motionAppear = false;
}
// Hide inline list when mode changed and motion end
var originOnVisibleChanged = mergedMotion.onVisibleChanged;
mergedMotion.onVisibleChanged = function (newVisible) {
if (!sameModeRef.current && !newVisible) {
setDestroy(true);
}
return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);
};
if (destroy) {
return null;
}
return /*#__PURE__*/React.createElement(MenuContextProvider, {
mode: fixedMode,
locked: !sameModeRef.current
}, /*#__PURE__*/React.createElement(CSSMotion, _extends({
visible: mergedOpen
}, mergedMotion, {
forceRender: forceSubMenuRender,
removeOnLeave: false,
leavedClassName: "".concat(prefixCls, "-hidden")
}), function (_ref2) {
var motionClassName = _ref2.className,
motionStyle = _ref2.style;
return /*#__PURE__*/React.createElement(SubMenuList, {
id: id,
className: motionClassName,
style: motionStyle
}, children);
}));
}

15
node_modules/rc-menu/es/SubMenu/PopupTrigger.d.ts generated vendored Normal file
View File

@@ -0,0 +1,15 @@
import * as React from 'react';
import type { MenuMode } from '../interface';
export interface PopupTriggerProps {
prefixCls: string;
mode: MenuMode;
visible: boolean;
children: React.ReactElement;
popup: React.ReactNode;
popupStyle?: React.CSSProperties;
popupClassName?: string;
popupOffset?: number[];
disabled: boolean;
onVisibleChange: (visible: boolean) => void;
}
export default function PopupTrigger({ prefixCls, visible, children, popup, popupStyle, popupClassName, popupOffset, disabled, mode, onVisibleChange, }: PopupTriggerProps): React.JSX.Element;

91
node_modules/rc-menu/es/SubMenu/PopupTrigger.js generated vendored Normal file
View File

@@ -0,0 +1,91 @@
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import * as React from 'react';
import Trigger from '@rc-component/trigger';
import classNames from 'classnames';
import raf from "rc-util/es/raf";
import { MenuContext } from "../context/MenuContext";
import { placements, placementsRtl } from "../placements";
import { getMotion } from "../utils/motionUtil";
var popupPlacementMap = {
horizontal: 'bottomLeft',
vertical: 'rightTop',
'vertical-left': 'rightTop',
'vertical-right': 'leftTop'
};
export default function PopupTrigger(_ref) {
var prefixCls = _ref.prefixCls,
visible = _ref.visible,
children = _ref.children,
popup = _ref.popup,
popupStyle = _ref.popupStyle,
popupClassName = _ref.popupClassName,
popupOffset = _ref.popupOffset,
disabled = _ref.disabled,
mode = _ref.mode,
onVisibleChange = _ref.onVisibleChange;
var _React$useContext = React.useContext(MenuContext),
getPopupContainer = _React$useContext.getPopupContainer,
rtl = _React$useContext.rtl,
subMenuOpenDelay = _React$useContext.subMenuOpenDelay,
subMenuCloseDelay = _React$useContext.subMenuCloseDelay,
builtinPlacements = _React$useContext.builtinPlacements,
triggerSubMenuAction = _React$useContext.triggerSubMenuAction,
forceSubMenuRender = _React$useContext.forceSubMenuRender,
rootClassName = _React$useContext.rootClassName,
motion = _React$useContext.motion,
defaultMotions = _React$useContext.defaultMotions;
var _React$useState = React.useState(false),
_React$useState2 = _slicedToArray(_React$useState, 2),
innerVisible = _React$useState2[0],
setInnerVisible = _React$useState2[1];
var placement = rtl ? _objectSpread(_objectSpread({}, placementsRtl), builtinPlacements) : _objectSpread(_objectSpread({}, placements), builtinPlacements);
var popupPlacement = popupPlacementMap[mode];
var targetMotion = getMotion(mode, motion, defaultMotions);
var targetMotionRef = React.useRef(targetMotion);
if (mode !== 'inline') {
/**
* PopupTrigger is only used for vertical and horizontal types.
* When collapsed is unfolded, the inline animation will destroy the vertical animation.
*/
targetMotionRef.current = targetMotion;
}
var mergedMotion = _objectSpread(_objectSpread({}, targetMotionRef.current), {}, {
leavedClassName: "".concat(prefixCls, "-hidden"),
removeOnLeave: false,
motionAppear: true
});
// Delay to change visible
var visibleRef = React.useRef();
React.useEffect(function () {
visibleRef.current = raf(function () {
setInnerVisible(visible);
});
return function () {
raf.cancel(visibleRef.current);
};
}, [visible]);
return /*#__PURE__*/React.createElement(Trigger, {
prefixCls: prefixCls,
popupClassName: classNames("".concat(prefixCls, "-popup"), _defineProperty({}, "".concat(prefixCls, "-rtl"), rtl), popupClassName, rootClassName),
stretch: mode === 'horizontal' ? 'minWidth' : null,
getPopupContainer: getPopupContainer,
builtinPlacements: placement,
popupPlacement: popupPlacement,
popupVisible: innerVisible,
popup: popup,
popupStyle: popupStyle,
popupAlign: popupOffset && {
offset: popupOffset
},
action: disabled ? [] : [triggerSubMenuAction],
mouseEnterDelay: subMenuOpenDelay,
mouseLeaveDelay: subMenuCloseDelay,
onPopupVisibleChange: onVisibleChange,
forceRender: forceSubMenuRender,
popupMotion: mergedMotion,
fresh: true
}, children);
}

6
node_modules/rc-menu/es/SubMenu/SubMenuList.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import * as React from 'react';
export interface SubMenuListProps extends React.HTMLAttributes<HTMLUListElement> {
children?: React.ReactNode;
}
declare const SubMenuList: React.ForwardRefExoticComponent<SubMenuListProps & React.RefAttributes<HTMLUListElement>>;
export default SubMenuList;

25
node_modules/rc-menu/es/SubMenu/SubMenuList.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["className", "children"];
import * as React from 'react';
import classNames from 'classnames';
import { MenuContext } from "../context/MenuContext";
var InternalSubMenuList = function InternalSubMenuList(_ref, ref) {
var className = _ref.className,
children = _ref.children,
restProps = _objectWithoutProperties(_ref, _excluded);
var _React$useContext = React.useContext(MenuContext),
prefixCls = _React$useContext.prefixCls,
mode = _React$useContext.mode,
rtl = _React$useContext.rtl;
return /*#__PURE__*/React.createElement("ul", _extends({
className: classNames(prefixCls, rtl && "".concat(prefixCls, "-rtl"), "".concat(prefixCls, "-sub"), "".concat(prefixCls, "-").concat(mode === 'inline' ? 'inline' : 'vertical'), className),
role: "menu"
}, restProps, {
"data-menu-list": true,
ref: ref
}), children);
};
var SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);
SubMenuList.displayName = 'SubMenuList';
export default SubMenuList;

14
node_modules/rc-menu/es/SubMenu/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import * as React from 'react';
import type { SubMenuType } from '../interface';
export interface SubMenuProps extends Omit<SubMenuType, 'key' | 'children' | 'label'> {
title?: React.ReactNode;
children?: React.ReactNode;
/** @private Used for rest popup. Do not use in your prod */
internalPopupClose?: boolean;
/** @private Internal filled key. Do not set it directly */
eventKey?: string;
/** @private Do not use. Private warning empty usage */
warnKey?: boolean;
}
declare const SubMenu: React.ForwardRefExoticComponent<Omit<SubMenuProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
export default SubMenu;

298
node_modules/rc-menu/es/SubMenu/index.js generated vendored Normal file
View File

@@ -0,0 +1,298 @@
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["style", "className", "title", "eventKey", "warnKey", "disabled", "internalPopupClose", "children", "itemIcon", "expandIcon", "popupClassName", "popupOffset", "popupStyle", "onClick", "onMouseEnter", "onMouseLeave", "onTitleClick", "onTitleMouseEnter", "onTitleMouseLeave"],
_excluded2 = ["active"];
import * as React from 'react';
import classNames from 'classnames';
import Overflow from 'rc-overflow';
import warning from "rc-util/es/warning";
import SubMenuList from "./SubMenuList";
import { parseChildren } from "../utils/commonUtil";
import MenuContextProvider, { MenuContext } from "../context/MenuContext";
import useMemoCallback from "../hooks/useMemoCallback";
import PopupTrigger from "./PopupTrigger";
import Icon from "../Icon";
import useActive from "../hooks/useActive";
import { warnItemProp } from "../utils/warnUtil";
import useDirectionStyle from "../hooks/useDirectionStyle";
import InlineSubMenuList from "./InlineSubMenuList";
import { PathTrackerContext, PathUserContext, useFullPath, useMeasure } from "../context/PathContext";
import { useMenuId } from "../context/IdContext";
import PrivateContext from "../context/PrivateContext";
var InternalSubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
var style = props.style,
className = props.className,
title = props.title,
eventKey = props.eventKey,
warnKey = props.warnKey,
disabled = props.disabled,
internalPopupClose = props.internalPopupClose,
children = props.children,
itemIcon = props.itemIcon,
expandIcon = props.expandIcon,
popupClassName = props.popupClassName,
popupOffset = props.popupOffset,
popupStyle = props.popupStyle,
onClick = props.onClick,
onMouseEnter = props.onMouseEnter,
onMouseLeave = props.onMouseLeave,
onTitleClick = props.onTitleClick,
onTitleMouseEnter = props.onTitleMouseEnter,
onTitleMouseLeave = props.onTitleMouseLeave,
restProps = _objectWithoutProperties(props, _excluded);
var domDataId = useMenuId(eventKey);
var _React$useContext = React.useContext(MenuContext),
prefixCls = _React$useContext.prefixCls,
mode = _React$useContext.mode,
openKeys = _React$useContext.openKeys,
contextDisabled = _React$useContext.disabled,
overflowDisabled = _React$useContext.overflowDisabled,
activeKey = _React$useContext.activeKey,
selectedKeys = _React$useContext.selectedKeys,
contextItemIcon = _React$useContext.itemIcon,
contextExpandIcon = _React$useContext.expandIcon,
onItemClick = _React$useContext.onItemClick,
onOpenChange = _React$useContext.onOpenChange,
onActive = _React$useContext.onActive;
var _React$useContext2 = React.useContext(PrivateContext),
_internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;
var _React$useContext3 = React.useContext(PathUserContext),
isSubPathKey = _React$useContext3.isSubPathKey;
var connectedPath = useFullPath();
var subMenuPrefixCls = "".concat(prefixCls, "-submenu");
var mergedDisabled = contextDisabled || disabled;
var elementRef = React.useRef();
var popupRef = React.useRef();
// ================================ Warn ================================
if (process.env.NODE_ENV !== 'production' && warnKey) {
warning(false, 'SubMenu should not leave undefined `key`.');
}
// ================================ Icon ================================
var mergedItemIcon = itemIcon !== null && itemIcon !== void 0 ? itemIcon : contextItemIcon;
var mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : contextExpandIcon;
// ================================ Open ================================
var originOpen = openKeys.includes(eventKey);
var open = !overflowDisabled && originOpen;
// =============================== Select ===============================
var childrenSelected = isSubPathKey(selectedKeys, eventKey);
// =============================== Active ===============================
var _useActive = useActive(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),
active = _useActive.active,
activeProps = _objectWithoutProperties(_useActive, _excluded2);
// Fallback of active check to avoid hover on menu title or disabled item
var _React$useState = React.useState(false),
_React$useState2 = _slicedToArray(_React$useState, 2),
childrenActive = _React$useState2[0],
setChildrenActive = _React$useState2[1];
var triggerChildrenActive = function triggerChildrenActive(newActive) {
if (!mergedDisabled) {
setChildrenActive(newActive);
}
};
var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {
triggerChildrenActive(true);
onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({
key: eventKey,
domEvent: domEvent
});
};
var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {
triggerChildrenActive(false);
onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({
key: eventKey,
domEvent: domEvent
});
};
var mergedActive = React.useMemo(function () {
if (active) {
return active;
}
if (mode !== 'inline') {
return childrenActive || isSubPathKey([activeKey], eventKey);
}
return false;
}, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);
// ========================== DirectionStyle ==========================
var directionStyle = useDirectionStyle(connectedPath.length);
// =============================== Events ===============================
// >>>> Title click
var onInternalTitleClick = function onInternalTitleClick(e) {
// Skip if disabled
if (mergedDisabled) {
return;
}
onTitleClick === null || onTitleClick === void 0 || onTitleClick({
key: eventKey,
domEvent: e
});
// Trigger open by click when mode is `inline`
if (mode === 'inline') {
onOpenChange(eventKey, !originOpen);
}
};
// >>>> Context for children click
var onMergedItemClick = useMemoCallback(function (info) {
onClick === null || onClick === void 0 || onClick(warnItemProp(info));
onItemClick(info);
});
// >>>>> Visible change
var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {
if (mode !== 'inline') {
onOpenChange(eventKey, newVisible);
}
};
/**
* Used for accessibility. Helper will focus element without key board.
* We should manually trigger an active
*/
var onInternalFocus = function onInternalFocus() {
onActive(eventKey);
};
// =============================== Render ===============================
var popupId = domDataId && "".concat(domDataId, "-popup");
var expandIconNode = React.useMemo(function () {
return /*#__PURE__*/React.createElement(Icon, {
icon: mode !== 'horizontal' ? mergedExpandIcon : undefined,
props: _objectSpread(_objectSpread({}, props), {}, {
isOpen: open,
// [Legacy] Not sure why need this mark
isSubMenu: true
})
}, /*#__PURE__*/React.createElement("i", {
className: "".concat(subMenuPrefixCls, "-arrow")
}));
}, [mode, mergedExpandIcon, props, open, subMenuPrefixCls]);
// >>>>> Title
var titleNode = /*#__PURE__*/React.createElement("div", _extends({
role: "menuitem",
style: directionStyle,
className: "".concat(subMenuPrefixCls, "-title"),
tabIndex: mergedDisabled ? null : -1,
ref: elementRef,
title: typeof title === 'string' ? title : null,
"data-menu-id": overflowDisabled && domDataId ? null : domDataId,
"aria-expanded": open,
"aria-haspopup": true,
"aria-controls": popupId,
"aria-disabled": mergedDisabled,
onClick: onInternalTitleClick,
onFocus: onInternalFocus
}, activeProps), title, expandIconNode);
// Cache mode if it change to `inline` which do not have popup motion
var triggerModeRef = React.useRef(mode);
if (mode !== 'inline' && connectedPath.length > 1) {
triggerModeRef.current = 'vertical';
} else {
triggerModeRef.current = mode;
}
if (!overflowDisabled) {
var triggerMode = triggerModeRef.current;
// Still wrap with Trigger here since we need avoid react re-mount dom node
// Which makes motion failed
titleNode = /*#__PURE__*/React.createElement(PopupTrigger, {
mode: triggerMode,
prefixCls: subMenuPrefixCls,
visible: !internalPopupClose && open && mode !== 'inline',
popupClassName: popupClassName,
popupOffset: popupOffset,
popupStyle: popupStyle,
popup: /*#__PURE__*/React.createElement(MenuContextProvider
// Special handle of horizontal mode
, {
mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode
}, /*#__PURE__*/React.createElement(SubMenuList, {
id: popupId,
ref: popupRef
}, children)),
disabled: mergedDisabled,
onVisibleChange: onPopupVisibleChange
}, titleNode);
}
// >>>>> List node
var listNode = /*#__PURE__*/React.createElement(Overflow.Item, _extends({
ref: ref,
role: "none"
}, restProps, {
component: "li",
style: style,
className: classNames(subMenuPrefixCls, "".concat(subMenuPrefixCls, "-").concat(mode), className, _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "".concat(subMenuPrefixCls, "-open"), open), "".concat(subMenuPrefixCls, "-active"), mergedActive), "".concat(subMenuPrefixCls, "-selected"), childrenSelected), "".concat(subMenuPrefixCls, "-disabled"), mergedDisabled)),
onMouseEnter: onInternalMouseEnter,
onMouseLeave: onInternalMouseLeave
}), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(InlineSubMenuList, {
id: popupId,
open: open,
keyPath: connectedPath
}, children));
if (_internalRenderSubMenuItem) {
listNode = _internalRenderSubMenuItem(listNode, props, {
selected: childrenSelected,
active: mergedActive,
open: open,
disabled: mergedDisabled
});
}
// >>>>> Render
return /*#__PURE__*/React.createElement(MenuContextProvider, {
onItemClick: onMergedItemClick,
mode: mode === 'horizontal' ? 'vertical' : mode,
itemIcon: mergedItemIcon,
expandIcon: mergedExpandIcon
}, listNode);
});
var SubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
var eventKey = props.eventKey,
children = props.children;
var connectedKeyPath = useFullPath(eventKey);
var childList = parseChildren(children, connectedKeyPath);
// ==================== Record KeyPath ====================
var measure = useMeasure();
// eslint-disable-next-line consistent-return
React.useEffect(function () {
if (measure) {
measure.registerPath(eventKey, connectedKeyPath);
return function () {
measure.unregisterPath(eventKey, connectedKeyPath);
};
}
}, [connectedKeyPath]);
var renderNode;
// ======================== Render ========================
if (measure) {
renderNode = childList;
} else {
renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, _extends({
ref: ref
}, props), childList);
}
return /*#__PURE__*/React.createElement(PathTrackerContext.Provider, {
value: connectedKeyPath
}, renderNode);
});
if (process.env.NODE_ENV !== 'production') {
SubMenu.displayName = 'SubMenu';
}
export default SubMenu;

7
node_modules/rc-menu/es/context/IdContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import * as React from 'react';
export declare const IdContext: React.Context<string>;
export declare function getMenuId(uuid: string, eventKey: string): string;
/**
* Get `data-menu-id`
*/
export declare function useMenuId(eventKey: string): string;

16
node_modules/rc-menu/es/context/IdContext.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
import * as React from 'react';
export var IdContext = /*#__PURE__*/React.createContext(null);
export function getMenuId(uuid, eventKey) {
if (uuid === undefined) {
return null;
}
return "".concat(uuid, "-").concat(eventKey);
}
/**
* Get `data-menu-id`
*/
export function useMenuId(eventKey) {
var id = React.useContext(IdContext);
return getMenuId(id, eventKey);
}

37
node_modules/rc-menu/es/context/MenuContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,37 @@
import * as React from 'react';
import type { CSSMotionProps } from 'rc-motion';
import type { BuiltinPlacements, MenuClickEventHandler, MenuMode, RenderIconType, TriggerSubMenuAction } from '../interface';
export interface MenuContextProps {
prefixCls: string;
rootClassName?: string;
openKeys: string[];
rtl?: boolean;
mode: MenuMode;
disabled?: boolean;
overflowDisabled?: boolean;
activeKey: string;
onActive: (key: string) => void;
onInactive: (key: string) => void;
selectedKeys: string[];
inlineIndent: number;
motion?: CSSMotionProps;
defaultMotions?: Partial<{
[key in MenuMode | 'other']: CSSMotionProps;
}>;
subMenuOpenDelay: number;
subMenuCloseDelay: number;
forceSubMenuRender?: boolean;
builtinPlacements?: BuiltinPlacements;
triggerSubMenuAction?: TriggerSubMenuAction;
itemIcon?: RenderIconType;
expandIcon?: RenderIconType;
onItemClick: MenuClickEventHandler;
onOpenChange: (key: string, open: boolean) => void;
getPopupContainer: (node: HTMLElement) => HTMLElement;
}
export declare const MenuContext: React.Context<MenuContextProps>;
export interface InheritableContextProps extends Partial<MenuContextProps> {
children?: React.ReactNode;
locked?: boolean;
}
export default function InheritableContextProvider({ children, locked, ...restProps }: InheritableContextProps): React.JSX.Element;

31
node_modules/rc-menu/es/context/MenuContext.js generated vendored Normal file
View File

@@ -0,0 +1,31 @@
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
var _excluded = ["children", "locked"];
import * as React from 'react';
import useMemo from "rc-util/es/hooks/useMemo";
import isEqual from "rc-util/es/isEqual";
export var MenuContext = /*#__PURE__*/React.createContext(null);
function mergeProps(origin, target) {
var clone = _objectSpread({}, origin);
Object.keys(target).forEach(function (key) {
var value = target[key];
if (value !== undefined) {
clone[key] = value;
}
});
return clone;
}
export default function InheritableContextProvider(_ref) {
var children = _ref.children,
locked = _ref.locked,
restProps = _objectWithoutProperties(_ref, _excluded);
var context = React.useContext(MenuContext);
var inheritableContext = useMemo(function () {
return mergeProps(context, restProps);
}, [context, restProps], function (prev, next) {
return !locked && (prev[0] !== next[0] || !isEqual(prev[1], next[1], true));
});
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
value: inheritableContext
}, children);
}

13
node_modules/rc-menu/es/context/PathContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import * as React from 'react';
export interface PathRegisterContextProps {
registerPath: (key: string, keyPath: string[]) => void;
unregisterPath: (key: string, keyPath: string[]) => void;
}
export declare const PathRegisterContext: React.Context<PathRegisterContextProps>;
export declare function useMeasure(): PathRegisterContextProps;
export declare const PathTrackerContext: React.Context<string[]>;
export declare function useFullPath(eventKey?: string): string[];
export interface PathUserContextProps {
isSubPathKey: (pathKeys: string[], eventKey: string) => boolean;
}
export declare const PathUserContext: React.Context<PathUserContextProps>;

23
node_modules/rc-menu/es/context/PathContext.js generated vendored Normal file
View File

@@ -0,0 +1,23 @@
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import * as React from 'react';
var EmptyList = [];
// ========================= Path Register =========================
export var PathRegisterContext = /*#__PURE__*/React.createContext(null);
export function useMeasure() {
return React.useContext(PathRegisterContext);
}
// ========================= Path Tracker ==========================
export var PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);
export function useFullPath(eventKey) {
var parentKeyPath = React.useContext(PathTrackerContext);
return React.useMemo(function () {
return eventKey !== undefined ? [].concat(_toConsumableArray(parentKeyPath), [eventKey]) : parentKeyPath;
}, [parentKeyPath, eventKey]);
}
// =========================== Path User ===========================
export var PathUserContext = /*#__PURE__*/React.createContext(null);

8
node_modules/rc-menu/es/context/PrivateContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import * as React from 'react';
import type { MenuProps } from '../Menu';
export interface PrivateContextProps {
_internalRenderMenuItem?: MenuProps['_internalRenderMenuItem'];
_internalRenderSubMenuItem?: MenuProps['_internalRenderSubMenuItem'];
}
declare const PrivateContext: React.Context<PrivateContextProps>;
export default PrivateContext;

3
node_modules/rc-menu/es/context/PrivateContext.js generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import * as React from 'react';
var PrivateContext = /*#__PURE__*/React.createContext({});
export default PrivateContext;

12
node_modules/rc-menu/es/hooks/useAccessibility.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
import * as React from 'react';
import type { MenuMode } from '../interface';
/**
* Get focusable elements from the element set under provided container
*/
export declare function getFocusableElements(container: HTMLElement, elements: Set<HTMLElement>): HTMLElement[];
export declare const refreshElements: (keys: string[], id: string) => {
elements: Set<HTMLElement>;
key2element: Map<string, HTMLElement>;
element2key: Map<HTMLElement, string>;
};
export declare function useAccessibility<T extends HTMLElement>(mode: MenuMode, activeKey: string, isRtl: boolean, id: string, containerRef: React.RefObject<HTMLUListElement>, getKeys: () => string[], getKeyPath: (key: string, includeOverflow?: boolean) => string[], triggerActiveKey: (key: string) => void, triggerAccessibilityOpen: (key: string, open?: boolean) => void, originOnKeyDown?: React.KeyboardEventHandler<T>): React.KeyboardEventHandler<T>;

270
node_modules/rc-menu/es/hooks/useAccessibility.js generated vendored Normal file
View File

@@ -0,0 +1,270 @@
import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
import { getFocusNodeList } from "rc-util/es/Dom/focus";
import KeyCode from "rc-util/es/KeyCode";
import raf from "rc-util/es/raf";
import * as React from 'react';
import { getMenuId } from "../context/IdContext";
// destruct to reduce minify size
var LEFT = KeyCode.LEFT,
RIGHT = KeyCode.RIGHT,
UP = KeyCode.UP,
DOWN = KeyCode.DOWN,
ENTER = KeyCode.ENTER,
ESC = KeyCode.ESC,
HOME = KeyCode.HOME,
END = KeyCode.END;
var ArrowKeys = [UP, DOWN, LEFT, RIGHT];
function getOffset(mode, isRootLevel, isRtl, which) {
var _offsets;
var prev = 'prev';
var next = 'next';
var children = 'children';
var parent = 'parent';
// Inline enter is special that we use unique operation
if (mode === 'inline' && which === ENTER) {
return {
inlineTrigger: true
};
}
var inline = _defineProperty(_defineProperty({}, UP, prev), DOWN, next);
var horizontal = _defineProperty(_defineProperty(_defineProperty(_defineProperty({}, LEFT, isRtl ? next : prev), RIGHT, isRtl ? prev : next), DOWN, children), ENTER, children);
var vertical = _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, UP, prev), DOWN, next), ENTER, children), ESC, parent), LEFT, isRtl ? children : parent), RIGHT, isRtl ? parent : children);
var offsets = {
inline: inline,
horizontal: horizontal,
vertical: vertical,
inlineSub: inline,
horizontalSub: vertical,
verticalSub: vertical
};
var type = (_offsets = offsets["".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];
switch (type) {
case prev:
return {
offset: -1,
sibling: true
};
case next:
return {
offset: 1,
sibling: true
};
case parent:
return {
offset: -1,
sibling: false
};
case children:
return {
offset: 1,
sibling: false
};
default:
return null;
}
}
function findContainerUL(element) {
var current = element;
while (current) {
if (current.getAttribute('data-menu-list')) {
return current;
}
current = current.parentElement;
}
// Normally should not reach this line
/* istanbul ignore next */
return null;
}
/**
* Find focused element within element set provided
*/
function getFocusElement(activeElement, elements) {
var current = activeElement || document.activeElement;
while (current) {
if (elements.has(current)) {
return current;
}
current = current.parentElement;
}
return null;
}
/**
* Get focusable elements from the element set under provided container
*/
export function getFocusableElements(container, elements) {
var list = getFocusNodeList(container, true);
return list.filter(function (ele) {
return elements.has(ele);
});
}
function getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {
var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
// Key on the menu item will not get validate parent container
if (!parentQueryContainer) {
return null;
}
// List current level menu item elements
var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);
// Find next focus index
var count = sameLevelFocusableMenuElementList.length;
var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {
return focusMenuElement === ele;
});
if (offset < 0) {
if (focusIndex === -1) {
focusIndex = count - 1;
} else {
focusIndex -= 1;
}
} else if (offset > 0) {
focusIndex += 1;
}
focusIndex = (focusIndex + count) % count;
// Focus menu item
return sameLevelFocusableMenuElementList[focusIndex];
}
export var refreshElements = function refreshElements(keys, id) {
var elements = new Set();
var key2element = new Map();
var element2key = new Map();
keys.forEach(function (key) {
var element = document.querySelector("[data-menu-id='".concat(getMenuId(id, key), "']"));
if (element) {
elements.add(element);
element2key.set(element, key);
key2element.set(key, element);
}
});
return {
elements: elements,
key2element: key2element,
element2key: element2key
};
};
export function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {
var rafRef = React.useRef();
var activeRef = React.useRef();
activeRef.current = activeKey;
var cleanRaf = function cleanRaf() {
raf.cancel(rafRef.current);
};
React.useEffect(function () {
return function () {
cleanRaf();
};
}, []);
return function (e) {
var which = e.which;
if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {
var keys = getKeys();
var refreshedElements = refreshElements(keys, id);
var _refreshedElements = refreshedElements,
elements = _refreshedElements.elements,
key2element = _refreshedElements.key2element,
element2key = _refreshedElements.element2key;
// First we should find current focused MenuItem/SubMenu element
var activeElement = key2element.get(activeKey);
var focusMenuElement = getFocusElement(activeElement, elements);
var focusMenuKey = element2key.get(focusMenuElement);
var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);
// Some mode do not have fully arrow operation like inline
if (!offsetObj && which !== HOME && which !== END) {
return;
}
// Arrow prevent default to avoid page scroll
if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {
e.preventDefault();
}
var tryFocus = function tryFocus(menuElement) {
if (menuElement) {
var focusTargetElement = menuElement;
// Focus to link instead of menu item if possible
var link = menuElement.querySelector('a');
if (link !== null && link !== void 0 && link.getAttribute('href')) {
focusTargetElement = link;
}
var targetKey = element2key.get(menuElement);
triggerActiveKey(targetKey);
/**
* Do not `useEffect` here since `tryFocus` may trigger async
* which makes React sync update the `activeKey`
* that force render before `useRef` set the next activeKey
*/
cleanRaf();
rafRef.current = raf(function () {
if (activeRef.current === targetKey) {
focusTargetElement.focus();
}
});
}
};
if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {
// ========================== Sibling ==========================
// Find walkable focus menu element container
var parentQueryContainer;
if (!focusMenuElement || mode === 'inline') {
parentQueryContainer = containerRef.current;
} else {
parentQueryContainer = findContainerUL(focusMenuElement);
}
// Get next focus element
var targetElement;
var focusableElements = getFocusableElements(parentQueryContainer, elements);
if (which === HOME) {
targetElement = focusableElements[0];
} else if (which === END) {
targetElement = focusableElements[focusableElements.length - 1];
} else {
targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);
}
// Focus menu item
tryFocus(targetElement);
// ======================= InlineTrigger =======================
} else if (offsetObj.inlineTrigger) {
// Inline trigger no need switch to sub menu item
triggerAccessibilityOpen(focusMenuKey);
// =========================== Level ===========================
} else if (offsetObj.offset > 0) {
triggerAccessibilityOpen(focusMenuKey, true);
cleanRaf();
rafRef.current = raf(function () {
// Async should resync elements
refreshedElements = refreshElements(keys, id);
var controlId = focusMenuElement.getAttribute('aria-controls');
var subQueryContainer = document.getElementById(controlId);
// Get sub focusable menu item
var targetElement = getNextFocusElement(subQueryContainer, refreshedElements.elements);
// Focus menu item
tryFocus(targetElement);
}, 5);
} else if (offsetObj.offset < 0) {
var keyPath = getKeyPath(focusMenuKey, true);
var parentKey = keyPath[keyPath.length - 2];
var parentMenuElement = key2element.get(parentKey);
// Focus menu item
triggerAccessibilityOpen(parentKey, false);
tryFocus(parentMenuElement);
}
}
// Pass origin key down event
originOnKeyDown === null || originOnKeyDown === void 0 || originOnKeyDown(e);
};
}

9
node_modules/rc-menu/es/hooks/useActive.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
import * as React from 'react';
import type { MenuHoverEventHandler } from '../interface';
interface ActiveObj {
active: boolean;
onMouseEnter?: React.MouseEventHandler<HTMLElement>;
onMouseLeave?: React.MouseEventHandler<HTMLElement>;
}
export default function useActive(eventKey: string, disabled: boolean, onMouseEnter?: MenuHoverEventHandler, onMouseLeave?: MenuHoverEventHandler): ActiveObj;
export {};

30
node_modules/rc-menu/es/hooks/useActive.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
import * as React from 'react';
import { MenuContext } from "../context/MenuContext";
export default function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
var _React$useContext = React.useContext(MenuContext),
activeKey = _React$useContext.activeKey,
onActive = _React$useContext.onActive,
onInactive = _React$useContext.onInactive;
var ret = {
active: activeKey === eventKey
};
// Skip when disabled
if (!disabled) {
ret.onMouseEnter = function (domEvent) {
onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({
key: eventKey,
domEvent: domEvent
});
onActive(eventKey);
};
ret.onMouseLeave = function (domEvent) {
onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({
key: eventKey,
domEvent: domEvent
});
onInactive(eventKey);
};
}
return ret;
}

2
node_modules/rc-menu/es/hooks/useDirectionStyle.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
import * as React from 'react';
export default function useDirectionStyle(level: number): React.CSSProperties;

17
node_modules/rc-menu/es/hooks/useDirectionStyle.js generated vendored Normal file
View File

@@ -0,0 +1,17 @@
import * as React from 'react';
import { MenuContext } from "../context/MenuContext";
export default function useDirectionStyle(level) {
var _React$useContext = React.useContext(MenuContext),
mode = _React$useContext.mode,
rtl = _React$useContext.rtl,
inlineIndent = _React$useContext.inlineIndent;
if (mode !== 'inline') {
return null;
}
var len = level;
return rtl ? {
paddingRight: len * inlineIndent
} : {
paddingLeft: len * inlineIndent
};
}

10
node_modules/rc-menu/es/hooks/useKeyRecords.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
export declare const OVERFLOW_KEY = "rc-menu-more";
export default function useKeyRecords(): {
registerPath: (key: string, keyPath: string[]) => void;
unregisterPath: (key: string, keyPath: string[]) => void;
refreshOverflowKeys: (keys: string[]) => void;
isSubPathKey: (pathKeys: string[], eventKey: string) => boolean;
getKeyPath: (eventKey: string, includeOverflow?: boolean) => string[];
getKeys: () => string[];
getSubPathKeys: (key: string) => Set<string>;
};

111
node_modules/rc-menu/es/hooks/useKeyRecords.js generated vendored Normal file
View File

@@ -0,0 +1,111 @@
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import * as React from 'react';
import { useRef, useCallback } from 'react';
import warning from "rc-util/es/warning";
import { nextSlice } from "../utils/timeUtil";
var PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';
var getPathStr = function getPathStr(keyPath) {
return keyPath.join(PATH_SPLIT);
};
var getPathKeys = function getPathKeys(keyPathStr) {
return keyPathStr.split(PATH_SPLIT);
};
export var OVERFLOW_KEY = 'rc-menu-more';
export default function useKeyRecords() {
var _React$useState = React.useState({}),
_React$useState2 = _slicedToArray(_React$useState, 2),
internalForceUpdate = _React$useState2[1];
var key2pathRef = useRef(new Map());
var path2keyRef = useRef(new Map());
var _React$useState3 = React.useState([]),
_React$useState4 = _slicedToArray(_React$useState3, 2),
overflowKeys = _React$useState4[0],
setOverflowKeys = _React$useState4[1];
var updateRef = useRef(0);
var destroyRef = useRef(false);
var forceUpdate = function forceUpdate() {
if (!destroyRef.current) {
internalForceUpdate({});
}
};
var registerPath = useCallback(function (key, keyPath) {
// Warning for invalidate or duplicated `key`
if (process.env.NODE_ENV !== 'production') {
warning(!key2pathRef.current.has(key), "Duplicated key '".concat(key, "' used in Menu by path [").concat(keyPath.join(' > '), "]"));
}
// Fill map
var connectedPath = getPathStr(keyPath);
path2keyRef.current.set(connectedPath, key);
key2pathRef.current.set(key, connectedPath);
updateRef.current += 1;
var id = updateRef.current;
nextSlice(function () {
if (id === updateRef.current) {
forceUpdate();
}
});
}, []);
var unregisterPath = useCallback(function (key, keyPath) {
var connectedPath = getPathStr(keyPath);
path2keyRef.current.delete(connectedPath);
key2pathRef.current.delete(key);
}, []);
var refreshOverflowKeys = useCallback(function (keys) {
setOverflowKeys(keys);
}, []);
var getKeyPath = useCallback(function (eventKey, includeOverflow) {
var fullPath = key2pathRef.current.get(eventKey) || '';
var keys = getPathKeys(fullPath);
if (includeOverflow && overflowKeys.includes(keys[0])) {
keys.unshift(OVERFLOW_KEY);
}
return keys;
}, [overflowKeys]);
var isSubPathKey = useCallback(function (pathKeys, eventKey) {
return pathKeys.filter(function (item) {
return item !== undefined;
}).some(function (pathKey) {
var pathKeyList = getKeyPath(pathKey, true);
return pathKeyList.includes(eventKey);
});
}, [getKeyPath]);
var getKeys = function getKeys() {
var keys = _toConsumableArray(key2pathRef.current.keys());
if (overflowKeys.length) {
keys.push(OVERFLOW_KEY);
}
return keys;
};
/**
* Find current key related child path keys
*/
var getSubPathKeys = useCallback(function (key) {
var connectedPath = "".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);
var pathKeys = new Set();
_toConsumableArray(path2keyRef.current.keys()).forEach(function (pathKey) {
if (pathKey.startsWith(connectedPath)) {
pathKeys.add(path2keyRef.current.get(pathKey));
}
});
return pathKeys;
}, []);
React.useEffect(function () {
return function () {
destroyRef.current = true;
};
}, []);
return {
// Register
registerPath: registerPath,
unregisterPath: unregisterPath,
refreshOverflowKeys: refreshOverflowKeys,
// Util
isSubPathKey: isSubPathKey,
getKeyPath: getKeyPath,
getKeys: getKeys,
getSubPathKeys: getSubPathKeys
};
}

5
node_modules/rc-menu/es/hooks/useMemoCallback.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
/**
* Cache callback function that always return same ref instead.
* This is used for context optimization.
*/
export default function useMemoCallback<T extends (...args: any[]) => void>(func: T): T;

18
node_modules/rc-menu/es/hooks/useMemoCallback.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
import * as React from 'react';
/**
* Cache callback function that always return same ref instead.
* This is used for context optimization.
*/
export default function useMemoCallback(func) {
var funRef = React.useRef(func);
funRef.current = func;
var callback = React.useCallback(function () {
var _funRef$current;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));
}, []);
return func ? callback : undefined;
}

1
node_modules/rc-menu/es/hooks/useUUID.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export default function useUUID(id?: string): string;

19
node_modules/rc-menu/es/hooks/useUUID.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import * as React from 'react';
import useMergedState from "rc-util/es/hooks/useMergedState";
var uniquePrefix = Math.random().toFixed(5).toString().slice(2);
var internalId = 0;
export default function useUUID(id) {
var _useMergedState = useMergedState(id, {
value: id
}),
_useMergedState2 = _slicedToArray(_useMergedState, 2),
uuid = _useMergedState2[0],
setUUID = _useMergedState2[1];
React.useEffect(function () {
internalId += 1;
var newId = process.env.NODE_ENV === 'test' ? 'test' : "".concat(uniquePrefix, "-").concat(internalId);
setUUID("rc-menu-uuid-".concat(newId));
}, []);
return uuid;
}

23
node_modules/rc-menu/es/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,23 @@
import Menu from './Menu';
import MenuItem from './MenuItem';
import SubMenu from './SubMenu';
import MenuItemGroup from './MenuItemGroup';
import { useFullPath } from './context/PathContext';
import Divider from './Divider';
import type { MenuProps } from './Menu';
import type { MenuItemProps } from './MenuItem';
import type { SubMenuProps } from './SubMenu';
import type { MenuItemGroupProps } from './MenuItemGroup';
import type { MenuRef } from './interface';
export { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider,
/** @private Only used for antd internal. Do not use in your production. */
useFullPath, };
export type { MenuProps, SubMenuProps, MenuItemProps, MenuItemGroupProps, MenuRef, };
type MenuType = typeof Menu & {
Item: typeof MenuItem;
SubMenu: typeof SubMenu;
ItemGroup: typeof MenuItemGroup;
Divider: typeof Divider;
};
declare const ExportMenu: MenuType;
export default ExportMenu;

14
node_modules/rc-menu/es/index.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import Menu from "./Menu";
import MenuItem from "./MenuItem";
import SubMenu from "./SubMenu";
import MenuItemGroup from "./MenuItemGroup";
import { useFullPath } from "./context/PathContext";
import Divider from "./Divider";
export { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider, /** @private Only used for antd internal. Do not use in your production. */
useFullPath };
var ExportMenu = Menu;
ExportMenu.Item = MenuItem;
ExportMenu.SubMenu = SubMenu;
ExportMenu.ItemGroup = MenuItemGroup;
ExportMenu.Divider = Divider;
export default ExportMenu;

86
node_modules/rc-menu/es/interface.d.ts generated vendored Normal file
View File

@@ -0,0 +1,86 @@
import type * as React from 'react';
interface ItemSharedProps {
ref?: React.Ref<HTMLLIElement | null>;
style?: React.CSSProperties;
className?: string;
}
export interface SubMenuType extends ItemSharedProps {
type?: 'submenu';
label?: React.ReactNode;
children: ItemType[];
disabled?: boolean;
key: string;
rootClassName?: string;
itemIcon?: RenderIconType;
expandIcon?: RenderIconType;
onMouseEnter?: MenuHoverEventHandler;
onMouseLeave?: MenuHoverEventHandler;
popupClassName?: string;
popupOffset?: number[];
popupStyle?: React.CSSProperties;
onClick?: MenuClickEventHandler;
onTitleClick?: (info: MenuTitleInfo) => void;
onTitleMouseEnter?: MenuHoverEventHandler;
onTitleMouseLeave?: MenuHoverEventHandler;
}
export interface MenuItemType extends ItemSharedProps {
type?: 'item';
label?: React.ReactNode;
disabled?: boolean;
itemIcon?: RenderIconType;
extra?: React.ReactNode;
key: React.Key;
onMouseEnter?: MenuHoverEventHandler;
onMouseLeave?: MenuHoverEventHandler;
onClick?: MenuClickEventHandler;
}
export interface MenuItemGroupType extends ItemSharedProps {
type: 'group';
label?: React.ReactNode;
children?: ItemType[];
}
export interface MenuDividerType extends Omit<ItemSharedProps, 'ref'> {
type: 'divider';
}
export type ItemType = SubMenuType | MenuItemType | MenuItemGroupType | MenuDividerType | null;
export type MenuMode = 'horizontal' | 'vertical' | 'inline';
export type BuiltinPlacements = Record<string, any>;
export type TriggerSubMenuAction = 'click' | 'hover';
export interface RenderIconInfo {
isSelected?: boolean;
isOpen?: boolean;
isSubMenu?: boolean;
disabled?: boolean;
}
export type RenderIconType = React.ReactNode | ((props: RenderIconInfo) => React.ReactNode);
export interface MenuInfo {
key: string;
keyPath: string[];
/** @deprecated This will not support in future. You should avoid to use this */
item: React.ReactInstance;
domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
}
export interface MenuTitleInfo {
key: string;
domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
}
export type MenuHoverEventHandler = (info: {
key: string;
domEvent: React.MouseEvent<HTMLElement>;
}) => void;
export interface SelectInfo extends MenuInfo {
selectedKeys: string[];
}
export type SelectEventHandler = (info: SelectInfo) => void;
export type MenuClickEventHandler = (info: MenuInfo) => void;
export type MenuRef = {
/**
* Focus active child if any, or the first child which is not disabled will be focused.
* @param options
*/
focus: (options?: FocusOptions) => void;
list: HTMLUListElement;
};
export type ComponentType = 'submenu' | 'item' | 'group' | 'divider';
export type Components = Partial<Record<ComponentType, React.ComponentType<any>>>;
export {};

1
node_modules/rc-menu/es/interface.js generated vendored Normal file
View File

@@ -0,0 +1 @@
export {};

117
node_modules/rc-menu/es/placements.d.ts generated vendored Normal file
View File

@@ -0,0 +1,117 @@
export declare const placements: {
topLeft: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
topRight: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
bottomLeft: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
bottomRight: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
leftTop: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
leftBottom: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
rightTop: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
rightBottom: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
};
export declare const placementsRtl: {
topLeft: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
topRight: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
bottomLeft: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
bottomRight: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
rightTop: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
rightBottom: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
leftTop: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
leftBottom: {
points: string[];
overflow: {
adjustX: number;
adjustY: number;
};
};
};
export default placements;

73
node_modules/rc-menu/es/placements.js generated vendored Normal file
View File

@@ -0,0 +1,73 @@
var autoAdjustOverflow = {
adjustX: 1,
adjustY: 1
};
export var placements = {
topLeft: {
points: ['bl', 'tl'],
overflow: autoAdjustOverflow
},
topRight: {
points: ['br', 'tr'],
overflow: autoAdjustOverflow
},
bottomLeft: {
points: ['tl', 'bl'],
overflow: autoAdjustOverflow
},
bottomRight: {
points: ['tr', 'br'],
overflow: autoAdjustOverflow
},
leftTop: {
points: ['tr', 'tl'],
overflow: autoAdjustOverflow
},
leftBottom: {
points: ['br', 'bl'],
overflow: autoAdjustOverflow
},
rightTop: {
points: ['tl', 'tr'],
overflow: autoAdjustOverflow
},
rightBottom: {
points: ['bl', 'br'],
overflow: autoAdjustOverflow
}
};
export var placementsRtl = {
topLeft: {
points: ['bl', 'tl'],
overflow: autoAdjustOverflow
},
topRight: {
points: ['br', 'tr'],
overflow: autoAdjustOverflow
},
bottomLeft: {
points: ['tl', 'bl'],
overflow: autoAdjustOverflow
},
bottomRight: {
points: ['tr', 'br'],
overflow: autoAdjustOverflow
},
rightTop: {
points: ['tr', 'tl'],
overflow: autoAdjustOverflow
},
rightBottom: {
points: ['br', 'bl'],
overflow: autoAdjustOverflow
},
leftTop: {
points: ['tl', 'tr'],
overflow: autoAdjustOverflow
},
leftBottom: {
points: ['bl', 'br'],
overflow: autoAdjustOverflow
}
};
export default placements;

2
node_modules/rc-menu/es/utils/commonUtil.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
import * as React from 'react';
export declare function parseChildren(children: React.ReactNode | undefined, keyPath: string[]): React.ReactElement<any, string | React.JSXElementConstructor<any>>[];

25
node_modules/rc-menu/es/utils/commonUtil.js generated vendored Normal file
View File

@@ -0,0 +1,25 @@
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
import toArray from "rc-util/es/Children/toArray";
import * as React from 'react';
export function parseChildren(children, keyPath) {
return toArray(children).map(function (child, index) {
if ( /*#__PURE__*/React.isValidElement(child)) {
var _eventKey, _child$props;
var key = child.key;
var eventKey = (_eventKey = (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.eventKey) !== null && _eventKey !== void 0 ? _eventKey : key;
var emptyKey = eventKey === null || eventKey === undefined;
if (emptyKey) {
eventKey = "tmp_key-".concat([].concat(_toConsumableArray(keyPath), [index]).join('-'));
}
var cloneProps = {
key: eventKey,
eventKey: eventKey
};
if (process.env.NODE_ENV !== 'production' && emptyKey) {
cloneProps.warnKey = true;
}
return /*#__PURE__*/React.cloneElement(child, cloneProps);
}
return child;
});
}

2
node_modules/rc-menu/es/utils/motionUtil.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
import type { CSSMotionProps } from 'rc-motion';
export declare function getMotion(mode: string, motion?: CSSMotionProps, defaultMotions?: Record<string, CSSMotionProps>): CSSMotionProps;

9
node_modules/rc-menu/es/utils/motionUtil.js generated vendored Normal file
View File

@@ -0,0 +1,9 @@
export function getMotion(mode, motion, defaultMotions) {
if (motion) {
return motion;
}
if (defaultMotions) {
return defaultMotions[mode] || defaultMotions.other;
}
return undefined;
}

3
node_modules/rc-menu/es/utils/nodeUtil.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import * as React from 'react';
import type { Components, ItemType } from '../interface';
export declare function parseItems(children: React.ReactNode | undefined, items: ItemType[] | undefined, keyPath: string[], components: Components, prefixCls?: string): React.ReactElement<any, string | React.JSXElementConstructor<any>>[];

78
node_modules/rc-menu/es/utils/nodeUtil.js generated vendored Normal file
View File

@@ -0,0 +1,78 @@
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
import _typeof from "@babel/runtime/helpers/esm/typeof";
var _excluded = ["label", "children", "key", "type", "extra"];
import * as React from 'react';
import Divider from "../Divider";
import MenuItem from "../MenuItem";
import MenuItemGroup from "../MenuItemGroup";
import SubMenu from "../SubMenu";
import { parseChildren } from "./commonUtil";
function convertItemsToNodes(list, components, prefixCls) {
var MergedMenuItem = components.item,
MergedMenuItemGroup = components.group,
MergedSubMenu = components.submenu,
MergedDivider = components.divider;
return (list || []).map(function (opt, index) {
if (opt && _typeof(opt) === 'object') {
var _ref = opt,
label = _ref.label,
children = _ref.children,
key = _ref.key,
type = _ref.type,
extra = _ref.extra,
restProps = _objectWithoutProperties(_ref, _excluded);
var mergedKey = key !== null && key !== void 0 ? key : "tmp-".concat(index);
// MenuItemGroup & SubMenuItem
if (children || type === 'group') {
if (type === 'group') {
// Group
return /*#__PURE__*/React.createElement(MergedMenuItemGroup, _extends({
key: mergedKey
}, restProps, {
title: label
}), convertItemsToNodes(children, components, prefixCls));
}
// Sub Menu
return /*#__PURE__*/React.createElement(MergedSubMenu, _extends({
key: mergedKey
}, restProps, {
title: label
}), convertItemsToNodes(children, components, prefixCls));
}
// MenuItem & Divider
if (type === 'divider') {
return /*#__PURE__*/React.createElement(MergedDivider, _extends({
key: mergedKey
}, restProps));
}
return /*#__PURE__*/React.createElement(MergedMenuItem, _extends({
key: mergedKey
}, restProps, {
extra: extra
}), label, (!!extra || extra === 0) && /*#__PURE__*/React.createElement("span", {
className: "".concat(prefixCls, "-item-extra")
}, extra));
}
return null;
}).filter(function (opt) {
return opt;
});
}
export function parseItems(children, items, keyPath, components, prefixCls) {
var childNodes = children;
var mergedComponents = _objectSpread({
divider: Divider,
item: MenuItem,
group: MenuItemGroup,
submenu: SubMenu
}, components);
if (items) {
childNodes = convertItemsToNodes(items, mergedComponents, prefixCls);
}
return parseChildren(childNodes, keyPath);
}

1
node_modules/rc-menu/es/utils/timeUtil.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export declare function nextSlice(callback: () => void): void;

4
node_modules/rc-menu/es/utils/timeUtil.js generated vendored Normal file
View File

@@ -0,0 +1,4 @@
export function nextSlice(callback) {
/* istanbul ignore next */
Promise.resolve().then(callback);
}

8
node_modules/rc-menu/es/utils/warnUtil.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
/// <reference types="react" />
/**
* `onClick` event return `info.item` which point to react node directly.
* We should warning this since it will not work on FC.
*/
export declare function warnItemProp<T extends {
item: React.ReactInstance;
}>({ item, ...restInfo }: T): T;

19
node_modules/rc-menu/es/utils/warnUtil.js generated vendored Normal file
View File

@@ -0,0 +1,19 @@
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
var _excluded = ["item"];
import warning from "rc-util/es/warning";
/**
* `onClick` event return `info.item` which point to react node directly.
* We should warning this since it will not work on FC.
*/
export function warnItemProp(_ref) {
var item = _ref.item,
restInfo = _objectWithoutProperties(_ref, _excluded);
Object.defineProperty(restInfo, 'item', {
get: function get() {
warning(false, '`info.item` is deprecated since we will move to function component that not provides React Node instance in future.');
return item;
}
});
return restInfo;
}

4
node_modules/rc-menu/lib/Divider.d.ts generated vendored Normal file
View File

@@ -0,0 +1,4 @@
import * as React from 'react';
import type { MenuDividerType } from './interface';
export type DividerProps = Omit<MenuDividerType, 'type'>;
export default function Divider({ className, style }: DividerProps): React.JSX.Element;

29
node_modules/rc-menu/lib/Divider.js generated vendored Normal file
View File

@@ -0,0 +1,29 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Divider;
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _MenuContext = require("./context/MenuContext");
var _PathContext = require("./context/PathContext");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function Divider(_ref) {
var className = _ref.className,
style = _ref.style;
var _React$useContext = React.useContext(_MenuContext.MenuContext),
prefixCls = _React$useContext.prefixCls;
var measure = (0, _PathContext.useMeasure)();
if (measure) {
return null;
}
return /*#__PURE__*/React.createElement("li", {
role: "separator",
className: (0, _classnames.default)("".concat(prefixCls, "-item-divider"), className),
style: style
});
}

9
node_modules/rc-menu/lib/Icon.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
import * as React from 'react';
import type { RenderIconInfo, RenderIconType } from './interface';
export interface IconProps {
icon?: RenderIconType;
props: RenderIconInfo;
/** Fallback of icon if provided */
children?: React.ReactElement;
}
export default function Icon({ icon, props, children }: IconProps): React.ReactElement<any, string | React.JSXElementConstructor<any>>;

28
node_modules/rc-menu/lib/Icon.js generated vendored Normal file
View File

@@ -0,0 +1,28 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = Icon;
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function Icon(_ref) {
var icon = _ref.icon,
props = _ref.props,
children = _ref.children;
var iconNode;
if (icon === null || icon === false) {
return null;
}
if (typeof icon === 'function') {
iconNode = /*#__PURE__*/React.createElement(icon, (0, _objectSpread2.default)({}, props));
} else if (typeof icon !== "boolean") {
// Compatible for origin definition
iconNode = icon;
}
return iconNode || children || null;
}

73
node_modules/rc-menu/lib/Menu.d.ts generated vendored Normal file
View File

@@ -0,0 +1,73 @@
import type { CSSMotionProps } from 'rc-motion';
import * as React from 'react';
import type { BuiltinPlacements, Components, ItemType, MenuClickEventHandler, MenuMode, MenuRef, RenderIconType, SelectEventHandler, TriggerSubMenuAction } from './interface';
export interface MenuProps extends Omit<React.HTMLAttributes<HTMLUListElement>, 'onClick' | 'onSelect' | 'dir'> {
prefixCls?: string;
rootClassName?: string;
items?: ItemType[];
/** @deprecated Please use `items` instead */
children?: React.ReactNode;
disabled?: boolean;
/** @private Disable auto overflow. Pls note the prop name may refactor since we do not final decided. */
disabledOverflow?: boolean;
/** direction of menu */
direction?: 'ltr' | 'rtl';
mode?: MenuMode;
inlineCollapsed?: boolean;
defaultOpenKeys?: string[];
openKeys?: string[];
activeKey?: string;
defaultActiveFirst?: boolean;
selectable?: boolean;
multiple?: boolean;
defaultSelectedKeys?: string[];
selectedKeys?: string[];
onSelect?: SelectEventHandler;
onDeselect?: SelectEventHandler;
inlineIndent?: number;
/** Menu motion define. Use `defaultMotions` if you need config motion of each mode */
motion?: CSSMotionProps;
/** Default menu motion of each mode */
defaultMotions?: Partial<{
[key in MenuMode | 'other']: CSSMotionProps;
}>;
subMenuOpenDelay?: number;
subMenuCloseDelay?: number;
forceSubMenuRender?: boolean;
triggerSubMenuAction?: TriggerSubMenuAction;
builtinPlacements?: BuiltinPlacements;
itemIcon?: RenderIconType;
expandIcon?: RenderIconType;
overflowedIndicator?: React.ReactNode;
/** @private Internal usage. Do not use in your production. */
overflowedIndicatorPopupClassName?: string;
getPopupContainer?: (node: HTMLElement) => HTMLElement;
onClick?: MenuClickEventHandler;
onOpenChange?: (openKeys: string[]) => void;
/***
* @private Only used for `pro-layout`. Do not use in your prod directly
* and we do not promise any compatibility for this.
*/
_internalRenderMenuItem?: (originNode: React.ReactElement, menuItemProps: any, stateProps: {
selected: boolean;
}) => React.ReactElement;
/***
* @private Only used for `pro-layout`. Do not use in your prod directly
* and we do not promise any compatibility for this.
*/
_internalRenderSubMenuItem?: (originNode: React.ReactElement, subMenuItemProps: any, stateProps: {
selected: boolean;
open: boolean;
active: boolean;
disabled: boolean;
}) => React.ReactElement;
/**
* @private NEVER! EVER! USE IN PRODUCTION!!!
* This is a hack API for `antd` to fix `findDOMNode` issue.
* Not use it! Not accept any PR try to make it as normal API.
* By zombieJ
*/
_internalComponents?: Components;
}
declare const Menu: React.ForwardRefExoticComponent<MenuProps & React.RefAttributes<MenuRef>>;
export default Menu;

490
node_modules/rc-menu/lib/Menu.js generated vendored Normal file
View File

@@ -0,0 +1,490 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcOverflow = _interopRequireDefault(require("rc-overflow"));
var _useMergedState7 = _interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));
var _isEqual = _interopRequireDefault(require("rc-util/lib/isEqual"));
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
var _react = _interopRequireWildcard(require("react"));
var React = _react;
var _reactDom = require("react-dom");
var _IdContext = require("./context/IdContext");
var _MenuContext = _interopRequireDefault(require("./context/MenuContext"));
var _PathContext = require("./context/PathContext");
var _PrivateContext = _interopRequireDefault(require("./context/PrivateContext"));
var _useAccessibility = require("./hooks/useAccessibility");
var _useKeyRecords2 = _interopRequireWildcard(require("./hooks/useKeyRecords"));
var _useMemoCallback = _interopRequireDefault(require("./hooks/useMemoCallback"));
var _useUUID = _interopRequireDefault(require("./hooks/useUUID"));
var _MenuItem = _interopRequireDefault(require("./MenuItem"));
var _SubMenu = _interopRequireDefault(require("./SubMenu"));
var _nodeUtil = require("./utils/nodeUtil");
var _warnUtil = require("./utils/warnUtil");
var _excluded = ["prefixCls", "rootClassName", "style", "className", "tabIndex", "items", "children", "direction", "id", "mode", "inlineCollapsed", "disabled", "disabledOverflow", "subMenuOpenDelay", "subMenuCloseDelay", "forceSubMenuRender", "defaultOpenKeys", "openKeys", "activeKey", "defaultActiveFirst", "selectable", "multiple", "defaultSelectedKeys", "selectedKeys", "onSelect", "onDeselect", "inlineIndent", "motion", "defaultMotions", "triggerSubMenuAction", "builtinPlacements", "itemIcon", "expandIcon", "overflowedIndicator", "overflowedIndicatorPopupClassName", "getPopupContainer", "onClick", "onOpenChange", "onKeyDown", "openAnimation", "openTransitionName", "_internalRenderMenuItem", "_internalRenderSubMenuItem", "_internalComponents"];
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
/**
* Menu modify after refactor:
* ## Add
* - disabled
*
* ## Remove
* - openTransitionName
* - openAnimation
* - onDestroy
* - siderCollapsed: Seems antd do not use this prop (Need test in antd)
* - collapsedWidth: Seems this logic should be handle by antd Layout.Sider
*/
// optimize for render
var EMPTY_LIST = [];
var Menu = /*#__PURE__*/React.forwardRef(function (props, ref) {
var _childList$;
var _ref = props,
_ref$prefixCls = _ref.prefixCls,
prefixCls = _ref$prefixCls === void 0 ? 'rc-menu' : _ref$prefixCls,
rootClassName = _ref.rootClassName,
style = _ref.style,
className = _ref.className,
_ref$tabIndex = _ref.tabIndex,
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
items = _ref.items,
children = _ref.children,
direction = _ref.direction,
id = _ref.id,
_ref$mode = _ref.mode,
mode = _ref$mode === void 0 ? 'vertical' : _ref$mode,
inlineCollapsed = _ref.inlineCollapsed,
disabled = _ref.disabled,
disabledOverflow = _ref.disabledOverflow,
_ref$subMenuOpenDelay = _ref.subMenuOpenDelay,
subMenuOpenDelay = _ref$subMenuOpenDelay === void 0 ? 0.1 : _ref$subMenuOpenDelay,
_ref$subMenuCloseDela = _ref.subMenuCloseDelay,
subMenuCloseDelay = _ref$subMenuCloseDela === void 0 ? 0.1 : _ref$subMenuCloseDela,
forceSubMenuRender = _ref.forceSubMenuRender,
defaultOpenKeys = _ref.defaultOpenKeys,
openKeys = _ref.openKeys,
activeKey = _ref.activeKey,
defaultActiveFirst = _ref.defaultActiveFirst,
_ref$selectable = _ref.selectable,
selectable = _ref$selectable === void 0 ? true : _ref$selectable,
_ref$multiple = _ref.multiple,
multiple = _ref$multiple === void 0 ? false : _ref$multiple,
defaultSelectedKeys = _ref.defaultSelectedKeys,
selectedKeys = _ref.selectedKeys,
onSelect = _ref.onSelect,
onDeselect = _ref.onDeselect,
_ref$inlineIndent = _ref.inlineIndent,
inlineIndent = _ref$inlineIndent === void 0 ? 24 : _ref$inlineIndent,
motion = _ref.motion,
defaultMotions = _ref.defaultMotions,
_ref$triggerSubMenuAc = _ref.triggerSubMenuAction,
triggerSubMenuAction = _ref$triggerSubMenuAc === void 0 ? 'hover' : _ref$triggerSubMenuAc,
builtinPlacements = _ref.builtinPlacements,
itemIcon = _ref.itemIcon,
expandIcon = _ref.expandIcon,
_ref$overflowedIndica = _ref.overflowedIndicator,
overflowedIndicator = _ref$overflowedIndica === void 0 ? '...' : _ref$overflowedIndica,
overflowedIndicatorPopupClassName = _ref.overflowedIndicatorPopupClassName,
getPopupContainer = _ref.getPopupContainer,
onClick = _ref.onClick,
onOpenChange = _ref.onOpenChange,
onKeyDown = _ref.onKeyDown,
openAnimation = _ref.openAnimation,
openTransitionName = _ref.openTransitionName,
_internalRenderMenuItem = _ref._internalRenderMenuItem,
_internalRenderSubMenuItem = _ref._internalRenderSubMenuItem,
_internalComponents = _ref._internalComponents,
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var _React$useMemo = React.useMemo(function () {
return [(0, _nodeUtil.parseItems)(children, items, EMPTY_LIST, _internalComponents, prefixCls), (0, _nodeUtil.parseItems)(children, items, EMPTY_LIST, {}, prefixCls)];
}, [children, items, _internalComponents]),
_React$useMemo2 = (0, _slicedToArray2.default)(_React$useMemo, 2),
childList = _React$useMemo2[0],
measureChildList = _React$useMemo2[1];
var _React$useState = React.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
mounted = _React$useState2[0],
setMounted = _React$useState2[1];
var containerRef = React.useRef();
var uuid = (0, _useUUID.default)(id);
var isRtl = direction === 'rtl';
// ========================= Warn =========================
if (process.env.NODE_ENV !== 'production') {
(0, _warning.default)(!openAnimation && !openTransitionName, '`openAnimation` and `openTransitionName` is removed. Please use `motion` or `defaultMotion` instead.');
}
// ========================= Open =========================
var _useMergedState = (0, _useMergedState7.default)(defaultOpenKeys, {
value: openKeys,
postState: function postState(keys) {
return keys || EMPTY_LIST;
}
}),
_useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
mergedOpenKeys = _useMergedState2[0],
setMergedOpenKeys = _useMergedState2[1];
// React 18 will merge mouse event which means we open key will not sync
// ref: https://github.com/ant-design/ant-design/issues/38818
var triggerOpenKeys = function triggerOpenKeys(keys) {
var forceFlush = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
function doUpdate() {
setMergedOpenKeys(keys);
onOpenChange === null || onOpenChange === void 0 || onOpenChange(keys);
}
if (forceFlush) {
(0, _reactDom.flushSync)(doUpdate);
} else {
doUpdate();
}
};
// >>>>> Cache & Reset open keys when inlineCollapsed changed
var _React$useState3 = React.useState(mergedOpenKeys),
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
inlineCacheOpenKeys = _React$useState4[0],
setInlineCacheOpenKeys = _React$useState4[1];
var mountRef = React.useRef(false);
// ========================= Mode =========================
var _React$useMemo3 = React.useMemo(function () {
if ((mode === 'inline' || mode === 'vertical') && inlineCollapsed) {
return ['vertical', inlineCollapsed];
}
return [mode, false];
}, [mode, inlineCollapsed]),
_React$useMemo4 = (0, _slicedToArray2.default)(_React$useMemo3, 2),
mergedMode = _React$useMemo4[0],
mergedInlineCollapsed = _React$useMemo4[1];
var isInlineMode = mergedMode === 'inline';
var _React$useState5 = React.useState(mergedMode),
_React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),
internalMode = _React$useState6[0],
setInternalMode = _React$useState6[1];
var _React$useState7 = React.useState(mergedInlineCollapsed),
_React$useState8 = (0, _slicedToArray2.default)(_React$useState7, 2),
internalInlineCollapsed = _React$useState8[0],
setInternalInlineCollapsed = _React$useState8[1];
React.useEffect(function () {
setInternalMode(mergedMode);
setInternalInlineCollapsed(mergedInlineCollapsed);
if (!mountRef.current) {
return;
}
// Synchronously update MergedOpenKeys
if (isInlineMode) {
setMergedOpenKeys(inlineCacheOpenKeys);
} else {
// Trigger open event in case its in control
triggerOpenKeys(EMPTY_LIST);
}
}, [mergedMode, mergedInlineCollapsed]);
// ====================== Responsive ======================
var _React$useState9 = React.useState(0),
_React$useState10 = (0, _slicedToArray2.default)(_React$useState9, 2),
lastVisibleIndex = _React$useState10[0],
setLastVisibleIndex = _React$useState10[1];
var allVisible = lastVisibleIndex >= childList.length - 1 || internalMode !== 'horizontal' || disabledOverflow;
// Cache
React.useEffect(function () {
if (isInlineMode) {
setInlineCacheOpenKeys(mergedOpenKeys);
}
}, [mergedOpenKeys]);
React.useEffect(function () {
mountRef.current = true;
return function () {
mountRef.current = false;
};
}, []);
// ========================= Path =========================
var _useKeyRecords = (0, _useKeyRecords2.default)(),
registerPath = _useKeyRecords.registerPath,
unregisterPath = _useKeyRecords.unregisterPath,
refreshOverflowKeys = _useKeyRecords.refreshOverflowKeys,
isSubPathKey = _useKeyRecords.isSubPathKey,
getKeyPath = _useKeyRecords.getKeyPath,
getKeys = _useKeyRecords.getKeys,
getSubPathKeys = _useKeyRecords.getSubPathKeys;
var registerPathContext = React.useMemo(function () {
return {
registerPath: registerPath,
unregisterPath: unregisterPath
};
}, [registerPath, unregisterPath]);
var pathUserContext = React.useMemo(function () {
return {
isSubPathKey: isSubPathKey
};
}, [isSubPathKey]);
React.useEffect(function () {
refreshOverflowKeys(allVisible ? EMPTY_LIST : childList.slice(lastVisibleIndex + 1).map(function (child) {
return child.key;
}));
}, [lastVisibleIndex, allVisible]);
// ======================== Active ========================
var _useMergedState3 = (0, _useMergedState7.default)(activeKey || defaultActiveFirst && ((_childList$ = childList[0]) === null || _childList$ === void 0 ? void 0 : _childList$.key), {
value: activeKey
}),
_useMergedState4 = (0, _slicedToArray2.default)(_useMergedState3, 2),
mergedActiveKey = _useMergedState4[0],
setMergedActiveKey = _useMergedState4[1];
var onActive = (0, _useMemoCallback.default)(function (key) {
setMergedActiveKey(key);
});
var onInactive = (0, _useMemoCallback.default)(function () {
setMergedActiveKey(undefined);
});
(0, _react.useImperativeHandle)(ref, function () {
return {
list: containerRef.current,
focus: function focus(options) {
var _childList$find;
var keys = getKeys();
var _refreshElements = (0, _useAccessibility.refreshElements)(keys, uuid),
elements = _refreshElements.elements,
key2element = _refreshElements.key2element,
element2key = _refreshElements.element2key;
var focusableElements = (0, _useAccessibility.getFocusableElements)(containerRef.current, elements);
var shouldFocusKey = mergedActiveKey !== null && mergedActiveKey !== void 0 ? mergedActiveKey : focusableElements[0] ? element2key.get(focusableElements[0]) : (_childList$find = childList.find(function (node) {
return !node.props.disabled;
})) === null || _childList$find === void 0 ? void 0 : _childList$find.key;
var elementToFocus = key2element.get(shouldFocusKey);
if (shouldFocusKey && elementToFocus) {
var _elementToFocus$focus;
elementToFocus === null || elementToFocus === void 0 || (_elementToFocus$focus = elementToFocus.focus) === null || _elementToFocus$focus === void 0 || _elementToFocus$focus.call(elementToFocus, options);
}
}
};
});
// ======================== Select ========================
// >>>>> Select keys
var _useMergedState5 = (0, _useMergedState7.default)(defaultSelectedKeys || [], {
value: selectedKeys,
// Legacy convert key to array
postState: function postState(keys) {
if (Array.isArray(keys)) {
return keys;
}
if (keys === null || keys === undefined) {
return EMPTY_LIST;
}
return [keys];
}
}),
_useMergedState6 = (0, _slicedToArray2.default)(_useMergedState5, 2),
mergedSelectKeys = _useMergedState6[0],
setMergedSelectKeys = _useMergedState6[1];
// >>>>> Trigger select
var triggerSelection = function triggerSelection(info) {
if (selectable) {
// Insert or Remove
var targetKey = info.key;
var exist = mergedSelectKeys.includes(targetKey);
var newSelectKeys;
if (multiple) {
if (exist) {
newSelectKeys = mergedSelectKeys.filter(function (key) {
return key !== targetKey;
});
} else {
newSelectKeys = [].concat((0, _toConsumableArray2.default)(mergedSelectKeys), [targetKey]);
}
} else {
newSelectKeys = [targetKey];
}
setMergedSelectKeys(newSelectKeys);
// Trigger event
var selectInfo = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, info), {}, {
selectedKeys: newSelectKeys
});
if (exist) {
onDeselect === null || onDeselect === void 0 || onDeselect(selectInfo);
} else {
onSelect === null || onSelect === void 0 || onSelect(selectInfo);
}
}
// Whatever selectable, always close it
if (!multiple && mergedOpenKeys.length && internalMode !== 'inline') {
triggerOpenKeys(EMPTY_LIST);
}
};
// ========================= Open =========================
/**
* Click for item. SubMenu do not have selection status
*/
var onInternalClick = (0, _useMemoCallback.default)(function (info) {
onClick === null || onClick === void 0 || onClick((0, _warnUtil.warnItemProp)(info));
triggerSelection(info);
});
var onInternalOpenChange = (0, _useMemoCallback.default)(function (key, open) {
var newOpenKeys = mergedOpenKeys.filter(function (k) {
return k !== key;
});
if (open) {
newOpenKeys.push(key);
} else if (internalMode !== 'inline') {
// We need find all related popup to close
var subPathKeys = getSubPathKeys(key);
newOpenKeys = newOpenKeys.filter(function (k) {
return !subPathKeys.has(k);
});
}
if (!(0, _isEqual.default)(mergedOpenKeys, newOpenKeys, true)) {
triggerOpenKeys(newOpenKeys, true);
}
});
// ==================== Accessibility =====================
var triggerAccessibilityOpen = function triggerAccessibilityOpen(key, open) {
var nextOpen = open !== null && open !== void 0 ? open : !mergedOpenKeys.includes(key);
onInternalOpenChange(key, nextOpen);
};
var onInternalKeyDown = (0, _useAccessibility.useAccessibility)(internalMode, mergedActiveKey, isRtl, uuid, containerRef, getKeys, getKeyPath, setMergedActiveKey, triggerAccessibilityOpen, onKeyDown);
// ======================== Effect ========================
React.useEffect(function () {
setMounted(true);
}, []);
// ======================= Context ========================
var privateContext = React.useMemo(function () {
return {
_internalRenderMenuItem: _internalRenderMenuItem,
_internalRenderSubMenuItem: _internalRenderSubMenuItem
};
}, [_internalRenderMenuItem, _internalRenderSubMenuItem]);
// ======================== Render ========================
// >>>>> Children
var wrappedChildList = internalMode !== 'horizontal' || disabledOverflow ? childList :
// Need wrap for overflow dropdown that do not response for open
childList.map(function (child, index) {
return (
/*#__PURE__*/
// Always wrap provider to avoid sub node re-mount
React.createElement(_MenuContext.default, {
key: child.key,
overflowDisabled: index > lastVisibleIndex
}, child)
);
});
// >>>>> Container
var container = /*#__PURE__*/React.createElement(_rcOverflow.default, (0, _extends2.default)({
id: id,
ref: containerRef,
prefixCls: "".concat(prefixCls, "-overflow"),
component: "ul",
itemComponent: _MenuItem.default,
className: (0, _classnames.default)(prefixCls, "".concat(prefixCls, "-root"), "".concat(prefixCls, "-").concat(internalMode), className, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(prefixCls, "-inline-collapsed"), internalInlineCollapsed), "".concat(prefixCls, "-rtl"), isRtl), rootClassName),
dir: direction,
style: style,
role: "menu",
tabIndex: tabIndex,
data: wrappedChildList,
renderRawItem: function renderRawItem(node) {
return node;
},
renderRawRest: function renderRawRest(omitItems) {
// We use origin list since wrapped list use context to prevent open
var len = omitItems.length;
var originOmitItems = len ? childList.slice(-len) : null;
return /*#__PURE__*/React.createElement(_SubMenu.default, {
eventKey: _useKeyRecords2.OVERFLOW_KEY,
title: overflowedIndicator,
disabled: allVisible,
internalPopupClose: len === 0,
popupClassName: overflowedIndicatorPopupClassName
}, originOmitItems);
},
maxCount: internalMode !== 'horizontal' || disabledOverflow ? _rcOverflow.default.INVALIDATE : _rcOverflow.default.RESPONSIVE,
ssr: "full",
"data-menu-list": true,
onVisibleChange: function onVisibleChange(newLastIndex) {
setLastVisibleIndex(newLastIndex);
},
onKeyDown: onInternalKeyDown
}, restProps));
// >>>>> Render
return /*#__PURE__*/React.createElement(_PrivateContext.default.Provider, {
value: privateContext
}, /*#__PURE__*/React.createElement(_IdContext.IdContext.Provider, {
value: uuid
}, /*#__PURE__*/React.createElement(_MenuContext.default, {
prefixCls: prefixCls,
rootClassName: rootClassName,
mode: internalMode,
openKeys: mergedOpenKeys,
rtl: isRtl
// Disabled
,
disabled: disabled
// Motion
,
motion: mounted ? motion : null,
defaultMotions: mounted ? defaultMotions : null
// Active
,
activeKey: mergedActiveKey,
onActive: onActive,
onInactive: onInactive
// Selection
,
selectedKeys: mergedSelectKeys
// Level
,
inlineIndent: inlineIndent
// Popup
,
subMenuOpenDelay: subMenuOpenDelay,
subMenuCloseDelay: subMenuCloseDelay,
forceSubMenuRender: forceSubMenuRender,
builtinPlacements: builtinPlacements,
triggerSubMenuAction: triggerSubMenuAction,
getPopupContainer: getPopupContainer
// Icon
,
itemIcon: itemIcon,
expandIcon: expandIcon
// Events
,
onItemClick: onInternalClick,
onOpenChange: onInternalOpenChange
}, /*#__PURE__*/React.createElement(_PathContext.PathUserContext.Provider, {
value: pathUserContext
}, container), /*#__PURE__*/React.createElement("div", {
style: {
display: 'none'
},
"aria-hidden": true
}, /*#__PURE__*/React.createElement(_PathContext.PathRegisterContext.Provider, {
value: registerPathContext
}, measureChildList)))));
});
var _default = exports.default = Menu;

13
node_modules/rc-menu/lib/MenuItem.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import * as React from 'react';
import type { MenuItemType } from './interface';
export interface MenuItemProps extends Omit<MenuItemType, 'label' | 'key' | 'ref'>, Omit<React.HTMLAttributes<HTMLLIElement>, 'onClick' | 'onMouseEnter' | 'onMouseLeave' | 'onSelect'> {
children?: React.ReactNode;
/** @private Internal filled key. Do not set it directly */
eventKey?: string;
/** @private Do not use. Private warning empty usage */
warnKey?: boolean;
/** @deprecated No place to use this. Should remove */
attribute?: Record<string, string>;
}
declare const _default: React.ForwardRefExoticComponent<MenuItemProps & React.RefAttributes<HTMLElement>>;
export default _default;

224
node_modules/rc-menu/lib/MenuItem.js generated vendored Normal file
View File

@@ -0,0 +1,224 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
var _createSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/createSuper"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcOverflow = _interopRequireDefault(require("rc-overflow"));
var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
var _omit = _interopRequireDefault(require("rc-util/lib/omit"));
var _ref = require("rc-util/lib/ref");
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
var React = _interopRequireWildcard(require("react"));
var _IdContext = require("./context/IdContext");
var _MenuContext = require("./context/MenuContext");
var _PathContext = require("./context/PathContext");
var _PrivateContext = _interopRequireDefault(require("./context/PrivateContext"));
var _useActive2 = _interopRequireDefault(require("./hooks/useActive"));
var _useDirectionStyle = _interopRequireDefault(require("./hooks/useDirectionStyle"));
var _Icon = _interopRequireDefault(require("./Icon"));
var _warnUtil = require("./utils/warnUtil");
var _excluded = ["title", "attribute", "elementRef"],
_excluded2 = ["style", "className", "eventKey", "warnKey", "disabled", "itemIcon", "children", "role", "onMouseEnter", "onMouseLeave", "onClick", "onKeyDown", "onFocus"],
_excluded3 = ["active"];
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
// Since Menu event provide the `info.item` which point to the MenuItem node instance.
// We have to use class component here.
// This should be removed from doc & api in future.
var LegacyMenuItem = /*#__PURE__*/function (_React$Component) {
(0, _inherits2.default)(LegacyMenuItem, _React$Component);
var _super = (0, _createSuper2.default)(LegacyMenuItem);
function LegacyMenuItem() {
(0, _classCallCheck2.default)(this, LegacyMenuItem);
return _super.apply(this, arguments);
}
(0, _createClass2.default)(LegacyMenuItem, [{
key: "render",
value: function render() {
var _this$props = this.props,
title = _this$props.title,
attribute = _this$props.attribute,
elementRef = _this$props.elementRef,
restProps = (0, _objectWithoutProperties2.default)(_this$props, _excluded);
// Here the props are eventually passed to the DOM element.
// React does not recognize non-standard attributes.
// Therefore, remove the props that is not used here.
// ref: https://github.com/ant-design/ant-design/issues/41395
var passedProps = (0, _omit.default)(restProps, ['eventKey', 'popupClassName', 'popupOffset', 'onTitleClick']);
(0, _warning.default)(!attribute, '`attribute` of Menu.Item is deprecated. Please pass attribute directly.');
return /*#__PURE__*/React.createElement(_rcOverflow.default.Item, (0, _extends2.default)({}, attribute, {
title: typeof title === 'string' ? title : undefined
}, passedProps, {
ref: elementRef
}));
}
}]);
return LegacyMenuItem;
}(React.Component);
/**
* Real Menu Item component
*/
var InternalMenuItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
var style = props.style,
className = props.className,
eventKey = props.eventKey,
warnKey = props.warnKey,
disabled = props.disabled,
itemIcon = props.itemIcon,
children = props.children,
role = props.role,
onMouseEnter = props.onMouseEnter,
onMouseLeave = props.onMouseLeave,
onClick = props.onClick,
onKeyDown = props.onKeyDown,
onFocus = props.onFocus,
restProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
var domDataId = (0, _IdContext.useMenuId)(eventKey);
var _React$useContext = React.useContext(_MenuContext.MenuContext),
prefixCls = _React$useContext.prefixCls,
onItemClick = _React$useContext.onItemClick,
contextDisabled = _React$useContext.disabled,
overflowDisabled = _React$useContext.overflowDisabled,
contextItemIcon = _React$useContext.itemIcon,
selectedKeys = _React$useContext.selectedKeys,
onActive = _React$useContext.onActive;
var _React$useContext2 = React.useContext(_PrivateContext.default),
_internalRenderMenuItem = _React$useContext2._internalRenderMenuItem;
var itemCls = "".concat(prefixCls, "-item");
var legacyMenuItemRef = React.useRef();
var elementRef = React.useRef();
var mergedDisabled = contextDisabled || disabled;
var mergedEleRef = (0, _ref.useComposeRef)(ref, elementRef);
var connectedKeys = (0, _PathContext.useFullPath)(eventKey);
// ================================ Warn ================================
if (process.env.NODE_ENV !== 'production' && warnKey) {
(0, _warning.default)(false, 'MenuItem should not leave undefined `key`.');
}
// ============================= Info =============================
var getEventInfo = function getEventInfo(e) {
return {
key: eventKey,
// Note: For legacy code is reversed which not like other antd component
keyPath: (0, _toConsumableArray2.default)(connectedKeys).reverse(),
item: legacyMenuItemRef.current,
domEvent: e
};
};
// ============================= Icon =============================
var mergedItemIcon = itemIcon || contextItemIcon;
// ============================ Active ============================
var _useActive = (0, _useActive2.default)(eventKey, mergedDisabled, onMouseEnter, onMouseLeave),
active = _useActive.active,
activeProps = (0, _objectWithoutProperties2.default)(_useActive, _excluded3);
// ============================ Select ============================
var selected = selectedKeys.includes(eventKey);
// ======================== DirectionStyle ========================
var directionStyle = (0, _useDirectionStyle.default)(connectedKeys.length);
// ============================ Events ============================
var onInternalClick = function onInternalClick(e) {
if (mergedDisabled) {
return;
}
var info = getEventInfo(e);
onClick === null || onClick === void 0 || onClick((0, _warnUtil.warnItemProp)(info));
onItemClick(info);
};
var onInternalKeyDown = function onInternalKeyDown(e) {
onKeyDown === null || onKeyDown === void 0 || onKeyDown(e);
if (e.which === _KeyCode.default.ENTER) {
var info = getEventInfo(e);
// Legacy. Key will also trigger click event
onClick === null || onClick === void 0 || onClick((0, _warnUtil.warnItemProp)(info));
onItemClick(info);
}
};
/**
* Used for accessibility. Helper will focus element without key board.
* We should manually trigger an active
*/
var onInternalFocus = function onInternalFocus(e) {
onActive(eventKey);
onFocus === null || onFocus === void 0 || onFocus(e);
};
// ============================ Render ============================
var optionRoleProps = {};
if (props.role === 'option') {
optionRoleProps['aria-selected'] = selected;
}
var renderNode = /*#__PURE__*/React.createElement(LegacyMenuItem, (0, _extends2.default)({
ref: legacyMenuItemRef,
elementRef: mergedEleRef,
role: role === null ? 'none' : role || 'menuitem',
tabIndex: disabled ? null : -1,
"data-menu-id": overflowDisabled && domDataId ? null : domDataId
}, (0, _omit.default)(restProps, ['extra']), activeProps, optionRoleProps, {
component: "li",
"aria-disabled": disabled,
style: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, directionStyle), style),
className: (0, _classnames.default)(itemCls, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(itemCls, "-active"), active), "".concat(itemCls, "-selected"), selected), "".concat(itemCls, "-disabled"), mergedDisabled), className),
onClick: onInternalClick,
onKeyDown: onInternalKeyDown,
onFocus: onInternalFocus
}), children, /*#__PURE__*/React.createElement(_Icon.default, {
props: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
isSelected: selected
}),
icon: mergedItemIcon
}));
if (_internalRenderMenuItem) {
renderNode = _internalRenderMenuItem(renderNode, props, {
selected: selected
});
}
return renderNode;
});
function MenuItem(props, ref) {
var eventKey = props.eventKey;
// ==================== Record KeyPath ====================
var measure = (0, _PathContext.useMeasure)();
var connectedKeyPath = (0, _PathContext.useFullPath)(eventKey);
// eslint-disable-next-line consistent-return
React.useEffect(function () {
if (measure) {
measure.registerPath(eventKey, connectedKeyPath);
return function () {
measure.unregisterPath(eventKey, connectedKeyPath);
};
}
}, [connectedKeyPath]);
if (measure) {
return null;
}
// ======================== Render ========================
return /*#__PURE__*/React.createElement(InternalMenuItem, (0, _extends2.default)({}, props, {
ref: ref
}));
}
var _default = exports.default = /*#__PURE__*/React.forwardRef(MenuItem);

12
node_modules/rc-menu/lib/MenuItemGroup.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
import * as React from 'react';
import type { MenuItemGroupType } from './interface';
export interface MenuItemGroupProps extends Omit<MenuItemGroupType, 'type' | 'children' | 'label'> {
title?: React.ReactNode;
children?: React.ReactNode;
/** @private Internal filled key. Do not set it directly */
eventKey?: string;
/** @private Do not use. Private warning empty usage */
warnKey?: boolean;
}
declare const MenuItemGroup: React.ForwardRefExoticComponent<Omit<MenuItemGroupProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
export default MenuItemGroup;

62
node_modules/rc-menu/lib/MenuItemGroup.js generated vendored Normal file
View File

@@ -0,0 +1,62 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classnames = _interopRequireDefault(require("classnames"));
var _omit = _interopRequireDefault(require("rc-util/lib/omit"));
var React = _interopRequireWildcard(require("react"));
var _MenuContext = require("./context/MenuContext");
var _PathContext = require("./context/PathContext");
var _commonUtil = require("./utils/commonUtil");
var _excluded = ["className", "title", "eventKey", "children"];
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var InternalMenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
var className = props.className,
title = props.title,
eventKey = props.eventKey,
children = props.children,
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
var _React$useContext = React.useContext(_MenuContext.MenuContext),
prefixCls = _React$useContext.prefixCls;
var groupPrefixCls = "".concat(prefixCls, "-item-group");
return /*#__PURE__*/React.createElement("li", (0, _extends2.default)({
ref: ref,
role: "presentation"
}, restProps, {
onClick: function onClick(e) {
return e.stopPropagation();
},
className: (0, _classnames.default)(groupPrefixCls, className)
}), /*#__PURE__*/React.createElement("div", {
role: "presentation",
className: "".concat(groupPrefixCls, "-title"),
title: typeof title === 'string' ? title : undefined
}, title), /*#__PURE__*/React.createElement("ul", {
role: "group",
className: "".concat(groupPrefixCls, "-list")
}, children));
});
var MenuItemGroup = /*#__PURE__*/React.forwardRef(function (props, ref) {
var eventKey = props.eventKey,
children = props.children;
var connectedKeyPath = (0, _PathContext.useFullPath)(eventKey);
var childList = (0, _commonUtil.parseChildren)(children, connectedKeyPath);
var measure = (0, _PathContext.useMeasure)();
if (measure) {
return childList;
}
return /*#__PURE__*/React.createElement(InternalMenuItemGroup, (0, _extends2.default)({
ref: ref
}, (0, _omit.default)(props, ['warnKey'])), childList);
});
if (process.env.NODE_ENV !== 'production') {
MenuItemGroup.displayName = 'MenuItemGroup';
}
var _default = exports.default = MenuItemGroup;

View File

@@ -0,0 +1,8 @@
import * as React from 'react';
export interface InlineSubMenuListProps {
id?: string;
open: boolean;
keyPath: string[];
children: React.ReactNode;
}
export default function InlineSubMenuList({ id, open, keyPath, children, }: InlineSubMenuListProps): React.JSX.Element;

89
node_modules/rc-menu/lib/SubMenu/InlineSubMenuList.js generated vendored Normal file
View File

@@ -0,0 +1,89 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = InlineSubMenuList;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var React = _interopRequireWildcard(require("react"));
var _rcMotion = _interopRequireDefault(require("rc-motion"));
var _motionUtil = require("../utils/motionUtil");
var _MenuContext = _interopRequireWildcard(require("../context/MenuContext"));
var _SubMenuList = _interopRequireDefault(require("./SubMenuList"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function InlineSubMenuList(_ref) {
var id = _ref.id,
open = _ref.open,
keyPath = _ref.keyPath,
children = _ref.children;
var fixedMode = 'inline';
var _React$useContext = React.useContext(_MenuContext.MenuContext),
prefixCls = _React$useContext.prefixCls,
forceSubMenuRender = _React$useContext.forceSubMenuRender,
motion = _React$useContext.motion,
defaultMotions = _React$useContext.defaultMotions,
mode = _React$useContext.mode;
// Always use latest mode check
var sameModeRef = React.useRef(false);
sameModeRef.current = mode === fixedMode;
// We record `destroy` mark here since when mode change from `inline` to others.
// The inline list should remove when motion end.
var _React$useState = React.useState(!sameModeRef.current),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
destroy = _React$useState2[0],
setDestroy = _React$useState2[1];
var mergedOpen = sameModeRef.current ? open : false;
// ================================= Effect =================================
// Reset destroy state when mode change back
React.useEffect(function () {
if (sameModeRef.current) {
setDestroy(false);
}
}, [mode]);
// ================================= Render =================================
var mergedMotion = (0, _objectSpread2.default)({}, (0, _motionUtil.getMotion)(fixedMode, motion, defaultMotions));
// No need appear since nest inlineCollapse changed
if (keyPath.length > 1) {
mergedMotion.motionAppear = false;
}
// Hide inline list when mode changed and motion end
var originOnVisibleChanged = mergedMotion.onVisibleChanged;
mergedMotion.onVisibleChanged = function (newVisible) {
if (!sameModeRef.current && !newVisible) {
setDestroy(true);
}
return originOnVisibleChanged === null || originOnVisibleChanged === void 0 ? void 0 : originOnVisibleChanged(newVisible);
};
if (destroy) {
return null;
}
return /*#__PURE__*/React.createElement(_MenuContext.default, {
mode: fixedMode,
locked: !sameModeRef.current
}, /*#__PURE__*/React.createElement(_rcMotion.default, (0, _extends2.default)({
visible: mergedOpen
}, mergedMotion, {
forceRender: forceSubMenuRender,
removeOnLeave: false,
leavedClassName: "".concat(prefixCls, "-hidden")
}), function (_ref2) {
var motionClassName = _ref2.className,
motionStyle = _ref2.style;
return /*#__PURE__*/React.createElement(_SubMenuList.default, {
id: id,
className: motionClassName,
style: motionStyle
}, children);
}));
}

15
node_modules/rc-menu/lib/SubMenu/PopupTrigger.d.ts generated vendored Normal file
View File

@@ -0,0 +1,15 @@
import * as React from 'react';
import type { MenuMode } from '../interface';
export interface PopupTriggerProps {
prefixCls: string;
mode: MenuMode;
visible: boolean;
children: React.ReactElement;
popup: React.ReactNode;
popupStyle?: React.CSSProperties;
popupClassName?: string;
popupOffset?: number[];
disabled: boolean;
onVisibleChange: (visible: boolean) => void;
}
export default function PopupTrigger({ prefixCls, visible, children, popup, popupStyle, popupClassName, popupOffset, disabled, mode, onVisibleChange, }: PopupTriggerProps): React.JSX.Element;

101
node_modules/rc-menu/lib/SubMenu/PopupTrigger.js generated vendored Normal file
View File

@@ -0,0 +1,101 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = PopupTrigger;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var React = _interopRequireWildcard(require("react"));
var _trigger = _interopRequireDefault(require("@rc-component/trigger"));
var _classnames = _interopRequireDefault(require("classnames"));
var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
var _MenuContext = require("../context/MenuContext");
var _placements = require("../placements");
var _motionUtil = require("../utils/motionUtil");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var popupPlacementMap = {
horizontal: 'bottomLeft',
vertical: 'rightTop',
'vertical-left': 'rightTop',
'vertical-right': 'leftTop'
};
function PopupTrigger(_ref) {
var prefixCls = _ref.prefixCls,
visible = _ref.visible,
children = _ref.children,
popup = _ref.popup,
popupStyle = _ref.popupStyle,
popupClassName = _ref.popupClassName,
popupOffset = _ref.popupOffset,
disabled = _ref.disabled,
mode = _ref.mode,
onVisibleChange = _ref.onVisibleChange;
var _React$useContext = React.useContext(_MenuContext.MenuContext),
getPopupContainer = _React$useContext.getPopupContainer,
rtl = _React$useContext.rtl,
subMenuOpenDelay = _React$useContext.subMenuOpenDelay,
subMenuCloseDelay = _React$useContext.subMenuCloseDelay,
builtinPlacements = _React$useContext.builtinPlacements,
triggerSubMenuAction = _React$useContext.triggerSubMenuAction,
forceSubMenuRender = _React$useContext.forceSubMenuRender,
rootClassName = _React$useContext.rootClassName,
motion = _React$useContext.motion,
defaultMotions = _React$useContext.defaultMotions;
var _React$useState = React.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
innerVisible = _React$useState2[0],
setInnerVisible = _React$useState2[1];
var placement = rtl ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _placements.placementsRtl), builtinPlacements) : (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _placements.placements), builtinPlacements);
var popupPlacement = popupPlacementMap[mode];
var targetMotion = (0, _motionUtil.getMotion)(mode, motion, defaultMotions);
var targetMotionRef = React.useRef(targetMotion);
if (mode !== 'inline') {
/**
* PopupTrigger is only used for vertical and horizontal types.
* When collapsed is unfolded, the inline animation will destroy the vertical animation.
*/
targetMotionRef.current = targetMotion;
}
var mergedMotion = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, targetMotionRef.current), {}, {
leavedClassName: "".concat(prefixCls, "-hidden"),
removeOnLeave: false,
motionAppear: true
});
// Delay to change visible
var visibleRef = React.useRef();
React.useEffect(function () {
visibleRef.current = (0, _raf.default)(function () {
setInnerVisible(visible);
});
return function () {
_raf.default.cancel(visibleRef.current);
};
}, [visible]);
return /*#__PURE__*/React.createElement(_trigger.default, {
prefixCls: prefixCls,
popupClassName: (0, _classnames.default)("".concat(prefixCls, "-popup"), (0, _defineProperty2.default)({}, "".concat(prefixCls, "-rtl"), rtl), popupClassName, rootClassName),
stretch: mode === 'horizontal' ? 'minWidth' : null,
getPopupContainer: getPopupContainer,
builtinPlacements: placement,
popupPlacement: popupPlacement,
popupVisible: innerVisible,
popup: popup,
popupStyle: popupStyle,
popupAlign: popupOffset && {
offset: popupOffset
},
action: disabled ? [] : [triggerSubMenuAction],
mouseEnterDelay: subMenuOpenDelay,
mouseLeaveDelay: subMenuCloseDelay,
onPopupVisibleChange: onVisibleChange,
forceRender: forceSubMenuRender,
popupMotion: mergedMotion,
fresh: true
}, children);
}

6
node_modules/rc-menu/lib/SubMenu/SubMenuList.d.ts generated vendored Normal file
View File

@@ -0,0 +1,6 @@
import * as React from 'react';
export interface SubMenuListProps extends React.HTMLAttributes<HTMLUListElement> {
children?: React.ReactNode;
}
declare const SubMenuList: React.ForwardRefExoticComponent<SubMenuListProps & React.RefAttributes<HTMLUListElement>>;
export default SubMenuList;

35
node_modules/rc-menu/lib/SubMenu/SubMenuList.js generated vendored Normal file
View File

@@ -0,0 +1,35 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _MenuContext = require("../context/MenuContext");
var _excluded = ["className", "children"];
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var InternalSubMenuList = function InternalSubMenuList(_ref, ref) {
var className = _ref.className,
children = _ref.children,
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var _React$useContext = React.useContext(_MenuContext.MenuContext),
prefixCls = _React$useContext.prefixCls,
mode = _React$useContext.mode,
rtl = _React$useContext.rtl;
return /*#__PURE__*/React.createElement("ul", (0, _extends2.default)({
className: (0, _classnames.default)(prefixCls, rtl && "".concat(prefixCls, "-rtl"), "".concat(prefixCls, "-sub"), "".concat(prefixCls, "-").concat(mode === 'inline' ? 'inline' : 'vertical'), className),
role: "menu"
}, restProps, {
"data-menu-list": true,
ref: ref
}), children);
};
var SubMenuList = /*#__PURE__*/React.forwardRef(InternalSubMenuList);
SubMenuList.displayName = 'SubMenuList';
var _default = exports.default = SubMenuList;

14
node_modules/rc-menu/lib/SubMenu/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import * as React from 'react';
import type { SubMenuType } from '../interface';
export interface SubMenuProps extends Omit<SubMenuType, 'key' | 'children' | 'label'> {
title?: React.ReactNode;
children?: React.ReactNode;
/** @private Used for rest popup. Do not use in your prod */
internalPopupClose?: boolean;
/** @private Internal filled key. Do not set it directly */
eventKey?: string;
/** @private Do not use. Private warning empty usage */
warnKey?: boolean;
}
declare const SubMenu: React.ForwardRefExoticComponent<Omit<SubMenuProps, "ref"> & React.RefAttributes<HTMLLIElement>>;
export default SubMenu;

308
node_modules/rc-menu/lib/SubMenu/index.js generated vendored Normal file
View File

@@ -0,0 +1,308 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var React = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _rcOverflow = _interopRequireDefault(require("rc-overflow"));
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
var _SubMenuList = _interopRequireDefault(require("./SubMenuList"));
var _commonUtil = require("../utils/commonUtil");
var _MenuContext = _interopRequireWildcard(require("../context/MenuContext"));
var _useMemoCallback = _interopRequireDefault(require("../hooks/useMemoCallback"));
var _PopupTrigger = _interopRequireDefault(require("./PopupTrigger"));
var _Icon = _interopRequireDefault(require("../Icon"));
var _useActive2 = _interopRequireDefault(require("../hooks/useActive"));
var _warnUtil = require("../utils/warnUtil");
var _useDirectionStyle = _interopRequireDefault(require("../hooks/useDirectionStyle"));
var _InlineSubMenuList = _interopRequireDefault(require("./InlineSubMenuList"));
var _PathContext = require("../context/PathContext");
var _IdContext = require("../context/IdContext");
var _PrivateContext = _interopRequireDefault(require("../context/PrivateContext"));
var _excluded = ["style", "className", "title", "eventKey", "warnKey", "disabled", "internalPopupClose", "children", "itemIcon", "expandIcon", "popupClassName", "popupOffset", "popupStyle", "onClick", "onMouseEnter", "onMouseLeave", "onTitleClick", "onTitleMouseEnter", "onTitleMouseLeave"],
_excluded2 = ["active"];
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var InternalSubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
var style = props.style,
className = props.className,
title = props.title,
eventKey = props.eventKey,
warnKey = props.warnKey,
disabled = props.disabled,
internalPopupClose = props.internalPopupClose,
children = props.children,
itemIcon = props.itemIcon,
expandIcon = props.expandIcon,
popupClassName = props.popupClassName,
popupOffset = props.popupOffset,
popupStyle = props.popupStyle,
onClick = props.onClick,
onMouseEnter = props.onMouseEnter,
onMouseLeave = props.onMouseLeave,
onTitleClick = props.onTitleClick,
onTitleMouseEnter = props.onTitleMouseEnter,
onTitleMouseLeave = props.onTitleMouseLeave,
restProps = (0, _objectWithoutProperties2.default)(props, _excluded);
var domDataId = (0, _IdContext.useMenuId)(eventKey);
var _React$useContext = React.useContext(_MenuContext.MenuContext),
prefixCls = _React$useContext.prefixCls,
mode = _React$useContext.mode,
openKeys = _React$useContext.openKeys,
contextDisabled = _React$useContext.disabled,
overflowDisabled = _React$useContext.overflowDisabled,
activeKey = _React$useContext.activeKey,
selectedKeys = _React$useContext.selectedKeys,
contextItemIcon = _React$useContext.itemIcon,
contextExpandIcon = _React$useContext.expandIcon,
onItemClick = _React$useContext.onItemClick,
onOpenChange = _React$useContext.onOpenChange,
onActive = _React$useContext.onActive;
var _React$useContext2 = React.useContext(_PrivateContext.default),
_internalRenderSubMenuItem = _React$useContext2._internalRenderSubMenuItem;
var _React$useContext3 = React.useContext(_PathContext.PathUserContext),
isSubPathKey = _React$useContext3.isSubPathKey;
var connectedPath = (0, _PathContext.useFullPath)();
var subMenuPrefixCls = "".concat(prefixCls, "-submenu");
var mergedDisabled = contextDisabled || disabled;
var elementRef = React.useRef();
var popupRef = React.useRef();
// ================================ Warn ================================
if (process.env.NODE_ENV !== 'production' && warnKey) {
(0, _warning.default)(false, 'SubMenu should not leave undefined `key`.');
}
// ================================ Icon ================================
var mergedItemIcon = itemIcon !== null && itemIcon !== void 0 ? itemIcon : contextItemIcon;
var mergedExpandIcon = expandIcon !== null && expandIcon !== void 0 ? expandIcon : contextExpandIcon;
// ================================ Open ================================
var originOpen = openKeys.includes(eventKey);
var open = !overflowDisabled && originOpen;
// =============================== Select ===============================
var childrenSelected = isSubPathKey(selectedKeys, eventKey);
// =============================== Active ===============================
var _useActive = (0, _useActive2.default)(eventKey, mergedDisabled, onTitleMouseEnter, onTitleMouseLeave),
active = _useActive.active,
activeProps = (0, _objectWithoutProperties2.default)(_useActive, _excluded2);
// Fallback of active check to avoid hover on menu title or disabled item
var _React$useState = React.useState(false),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
childrenActive = _React$useState2[0],
setChildrenActive = _React$useState2[1];
var triggerChildrenActive = function triggerChildrenActive(newActive) {
if (!mergedDisabled) {
setChildrenActive(newActive);
}
};
var onInternalMouseEnter = function onInternalMouseEnter(domEvent) {
triggerChildrenActive(true);
onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({
key: eventKey,
domEvent: domEvent
});
};
var onInternalMouseLeave = function onInternalMouseLeave(domEvent) {
triggerChildrenActive(false);
onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({
key: eventKey,
domEvent: domEvent
});
};
var mergedActive = React.useMemo(function () {
if (active) {
return active;
}
if (mode !== 'inline') {
return childrenActive || isSubPathKey([activeKey], eventKey);
}
return false;
}, [mode, active, activeKey, childrenActive, eventKey, isSubPathKey]);
// ========================== DirectionStyle ==========================
var directionStyle = (0, _useDirectionStyle.default)(connectedPath.length);
// =============================== Events ===============================
// >>>> Title click
var onInternalTitleClick = function onInternalTitleClick(e) {
// Skip if disabled
if (mergedDisabled) {
return;
}
onTitleClick === null || onTitleClick === void 0 || onTitleClick({
key: eventKey,
domEvent: e
});
// Trigger open by click when mode is `inline`
if (mode === 'inline') {
onOpenChange(eventKey, !originOpen);
}
};
// >>>> Context for children click
var onMergedItemClick = (0, _useMemoCallback.default)(function (info) {
onClick === null || onClick === void 0 || onClick((0, _warnUtil.warnItemProp)(info));
onItemClick(info);
});
// >>>>> Visible change
var onPopupVisibleChange = function onPopupVisibleChange(newVisible) {
if (mode !== 'inline') {
onOpenChange(eventKey, newVisible);
}
};
/**
* Used for accessibility. Helper will focus element without key board.
* We should manually trigger an active
*/
var onInternalFocus = function onInternalFocus() {
onActive(eventKey);
};
// =============================== Render ===============================
var popupId = domDataId && "".concat(domDataId, "-popup");
var expandIconNode = React.useMemo(function () {
return /*#__PURE__*/React.createElement(_Icon.default, {
icon: mode !== 'horizontal' ? mergedExpandIcon : undefined,
props: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
isOpen: open,
// [Legacy] Not sure why need this mark
isSubMenu: true
})
}, /*#__PURE__*/React.createElement("i", {
className: "".concat(subMenuPrefixCls, "-arrow")
}));
}, [mode, mergedExpandIcon, props, open, subMenuPrefixCls]);
// >>>>> Title
var titleNode = /*#__PURE__*/React.createElement("div", (0, _extends2.default)({
role: "menuitem",
style: directionStyle,
className: "".concat(subMenuPrefixCls, "-title"),
tabIndex: mergedDisabled ? null : -1,
ref: elementRef,
title: typeof title === 'string' ? title : null,
"data-menu-id": overflowDisabled && domDataId ? null : domDataId,
"aria-expanded": open,
"aria-haspopup": true,
"aria-controls": popupId,
"aria-disabled": mergedDisabled,
onClick: onInternalTitleClick,
onFocus: onInternalFocus
}, activeProps), title, expandIconNode);
// Cache mode if it change to `inline` which do not have popup motion
var triggerModeRef = React.useRef(mode);
if (mode !== 'inline' && connectedPath.length > 1) {
triggerModeRef.current = 'vertical';
} else {
triggerModeRef.current = mode;
}
if (!overflowDisabled) {
var triggerMode = triggerModeRef.current;
// Still wrap with Trigger here since we need avoid react re-mount dom node
// Which makes motion failed
titleNode = /*#__PURE__*/React.createElement(_PopupTrigger.default, {
mode: triggerMode,
prefixCls: subMenuPrefixCls,
visible: !internalPopupClose && open && mode !== 'inline',
popupClassName: popupClassName,
popupOffset: popupOffset,
popupStyle: popupStyle,
popup: /*#__PURE__*/React.createElement(_MenuContext.default
// Special handle of horizontal mode
, {
mode: triggerMode === 'horizontal' ? 'vertical' : triggerMode
}, /*#__PURE__*/React.createElement(_SubMenuList.default, {
id: popupId,
ref: popupRef
}, children)),
disabled: mergedDisabled,
onVisibleChange: onPopupVisibleChange
}, titleNode);
}
// >>>>> List node
var listNode = /*#__PURE__*/React.createElement(_rcOverflow.default.Item, (0, _extends2.default)({
ref: ref,
role: "none"
}, restProps, {
component: "li",
style: style,
className: (0, _classnames.default)(subMenuPrefixCls, "".concat(subMenuPrefixCls, "-").concat(mode), className, (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, "".concat(subMenuPrefixCls, "-open"), open), "".concat(subMenuPrefixCls, "-active"), mergedActive), "".concat(subMenuPrefixCls, "-selected"), childrenSelected), "".concat(subMenuPrefixCls, "-disabled"), mergedDisabled)),
onMouseEnter: onInternalMouseEnter,
onMouseLeave: onInternalMouseLeave
}), titleNode, !overflowDisabled && /*#__PURE__*/React.createElement(_InlineSubMenuList.default, {
id: popupId,
open: open,
keyPath: connectedPath
}, children));
if (_internalRenderSubMenuItem) {
listNode = _internalRenderSubMenuItem(listNode, props, {
selected: childrenSelected,
active: mergedActive,
open: open,
disabled: mergedDisabled
});
}
// >>>>> Render
return /*#__PURE__*/React.createElement(_MenuContext.default, {
onItemClick: onMergedItemClick,
mode: mode === 'horizontal' ? 'vertical' : mode,
itemIcon: mergedItemIcon,
expandIcon: mergedExpandIcon
}, listNode);
});
var SubMenu = /*#__PURE__*/React.forwardRef(function (props, ref) {
var eventKey = props.eventKey,
children = props.children;
var connectedKeyPath = (0, _PathContext.useFullPath)(eventKey);
var childList = (0, _commonUtil.parseChildren)(children, connectedKeyPath);
// ==================== Record KeyPath ====================
var measure = (0, _PathContext.useMeasure)();
// eslint-disable-next-line consistent-return
React.useEffect(function () {
if (measure) {
measure.registerPath(eventKey, connectedKeyPath);
return function () {
measure.unregisterPath(eventKey, connectedKeyPath);
};
}
}, [connectedKeyPath]);
var renderNode;
// ======================== Render ========================
if (measure) {
renderNode = childList;
} else {
renderNode = /*#__PURE__*/React.createElement(InternalSubMenu, (0, _extends2.default)({
ref: ref
}, props), childList);
}
return /*#__PURE__*/React.createElement(_PathContext.PathTrackerContext.Provider, {
value: connectedKeyPath
}, renderNode);
});
if (process.env.NODE_ENV !== 'production') {
SubMenu.displayName = 'SubMenu';
}
var _default = exports.default = SubMenu;

7
node_modules/rc-menu/lib/context/IdContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,7 @@
import * as React from 'react';
export declare const IdContext: React.Context<string>;
export declare function getMenuId(uuid: string, eventKey: string): string;
/**
* Get `data-menu-id`
*/
export declare function useMenuId(eventKey: string): string;

27
node_modules/rc-menu/lib/context/IdContext.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.IdContext = void 0;
exports.getMenuId = getMenuId;
exports.useMenuId = useMenuId;
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var IdContext = exports.IdContext = /*#__PURE__*/React.createContext(null);
function getMenuId(uuid, eventKey) {
if (uuid === undefined) {
return null;
}
return "".concat(uuid, "-").concat(eventKey);
}
/**
* Get `data-menu-id`
*/
function useMenuId(eventKey) {
var id = React.useContext(IdContext);
return getMenuId(id, eventKey);
}

37
node_modules/rc-menu/lib/context/MenuContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,37 @@
import * as React from 'react';
import type { CSSMotionProps } from 'rc-motion';
import type { BuiltinPlacements, MenuClickEventHandler, MenuMode, RenderIconType, TriggerSubMenuAction } from '../interface';
export interface MenuContextProps {
prefixCls: string;
rootClassName?: string;
openKeys: string[];
rtl?: boolean;
mode: MenuMode;
disabled?: boolean;
overflowDisabled?: boolean;
activeKey: string;
onActive: (key: string) => void;
onInactive: (key: string) => void;
selectedKeys: string[];
inlineIndent: number;
motion?: CSSMotionProps;
defaultMotions?: Partial<{
[key in MenuMode | 'other']: CSSMotionProps;
}>;
subMenuOpenDelay: number;
subMenuCloseDelay: number;
forceSubMenuRender?: boolean;
builtinPlacements?: BuiltinPlacements;
triggerSubMenuAction?: TriggerSubMenuAction;
itemIcon?: RenderIconType;
expandIcon?: RenderIconType;
onItemClick: MenuClickEventHandler;
onOpenChange: (key: string, open: boolean) => void;
getPopupContainer: (node: HTMLElement) => HTMLElement;
}
export declare const MenuContext: React.Context<MenuContextProps>;
export interface InheritableContextProps extends Partial<MenuContextProps> {
children?: React.ReactNode;
locked?: boolean;
}
export default function InheritableContextProvider({ children, locked, ...restProps }: InheritableContextProps): React.JSX.Element;

42
node_modules/rc-menu/lib/context/MenuContext.js generated vendored Normal file
View File

@@ -0,0 +1,42 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.MenuContext = void 0;
exports.default = InheritableContextProvider;
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
var React = _interopRequireWildcard(require("react"));
var _useMemo = _interopRequireDefault(require("rc-util/lib/hooks/useMemo"));
var _isEqual = _interopRequireDefault(require("rc-util/lib/isEqual"));
var _excluded = ["children", "locked"];
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var MenuContext = exports.MenuContext = /*#__PURE__*/React.createContext(null);
function mergeProps(origin, target) {
var clone = (0, _objectSpread2.default)({}, origin);
Object.keys(target).forEach(function (key) {
var value = target[key];
if (value !== undefined) {
clone[key] = value;
}
});
return clone;
}
function InheritableContextProvider(_ref) {
var children = _ref.children,
locked = _ref.locked,
restProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
var context = React.useContext(MenuContext);
var inheritableContext = (0, _useMemo.default)(function () {
return mergeProps(context, restProps);
}, [context, restProps], function (prev, next) {
return !locked && (prev[0] !== next[0] || !(0, _isEqual.default)(prev[1], next[1], true));
});
return /*#__PURE__*/React.createElement(MenuContext.Provider, {
value: inheritableContext
}, children);
}

13
node_modules/rc-menu/lib/context/PathContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,13 @@
import * as React from 'react';
export interface PathRegisterContextProps {
registerPath: (key: string, keyPath: string[]) => void;
unregisterPath: (key: string, keyPath: string[]) => void;
}
export declare const PathRegisterContext: React.Context<PathRegisterContextProps>;
export declare function useMeasure(): PathRegisterContextProps;
export declare const PathTrackerContext: React.Context<string[]>;
export declare function useFullPath(eventKey?: string): string[];
export interface PathUserContextProps {
isSubPathKey: (pathKeys: string[], eventKey: string) => boolean;
}
export declare const PathUserContext: React.Context<PathUserContextProps>;

35
node_modules/rc-menu/lib/context/PathContext.js generated vendored Normal file
View File

@@ -0,0 +1,35 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PathUserContext = exports.PathTrackerContext = exports.PathRegisterContext = void 0;
exports.useFullPath = useFullPath;
exports.useMeasure = useMeasure;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var EmptyList = [];
// ========================= Path Register =========================
var PathRegisterContext = exports.PathRegisterContext = /*#__PURE__*/React.createContext(null);
function useMeasure() {
return React.useContext(PathRegisterContext);
}
// ========================= Path Tracker ==========================
var PathTrackerContext = exports.PathTrackerContext = /*#__PURE__*/React.createContext(EmptyList);
function useFullPath(eventKey) {
var parentKeyPath = React.useContext(PathTrackerContext);
return React.useMemo(function () {
return eventKey !== undefined ? [].concat((0, _toConsumableArray2.default)(parentKeyPath), [eventKey]) : parentKeyPath;
}, [parentKeyPath, eventKey]);
}
// =========================== Path User ===========================
var PathUserContext = exports.PathUserContext = /*#__PURE__*/React.createContext(null);

8
node_modules/rc-menu/lib/context/PrivateContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import * as React from 'react';
import type { MenuProps } from '../Menu';
export interface PrivateContextProps {
_internalRenderMenuItem?: MenuProps['_internalRenderMenuItem'];
_internalRenderSubMenuItem?: MenuProps['_internalRenderSubMenuItem'];
}
declare const PrivateContext: React.Context<PrivateContextProps>;
export default PrivateContext;

12
node_modules/rc-menu/lib/context/PrivateContext.js generated vendored Normal file
View File

@@ -0,0 +1,12 @@
"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var PrivateContext = /*#__PURE__*/React.createContext({});
var _default = exports.default = PrivateContext;

12
node_modules/rc-menu/lib/hooks/useAccessibility.d.ts generated vendored Normal file
View File

@@ -0,0 +1,12 @@
import * as React from 'react';
import type { MenuMode } from '../interface';
/**
* Get focusable elements from the element set under provided container
*/
export declare function getFocusableElements(container: HTMLElement, elements: Set<HTMLElement>): HTMLElement[];
export declare const refreshElements: (keys: string[], id: string) => {
elements: Set<HTMLElement>;
key2element: Map<string, HTMLElement>;
element2key: Map<HTMLElement, string>;
};
export declare function useAccessibility<T extends HTMLElement>(mode: MenuMode, activeKey: string, isRtl: boolean, id: string, containerRef: React.RefObject<HTMLUListElement>, getKeys: () => string[], getKeyPath: (key: string, includeOverflow?: boolean) => string[], triggerActiveKey: (key: string) => void, triggerAccessibilityOpen: (key: string, open?: boolean) => void, originOnKeyDown?: React.KeyboardEventHandler<T>): React.KeyboardEventHandler<T>;

282
node_modules/rc-menu/lib/hooks/useAccessibility.js generated vendored Normal file
View File

@@ -0,0 +1,282 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getFocusableElements = getFocusableElements;
exports.refreshElements = void 0;
exports.useAccessibility = useAccessibility;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _focus = require("rc-util/lib/Dom/focus");
var _KeyCode = _interopRequireDefault(require("rc-util/lib/KeyCode"));
var _raf = _interopRequireDefault(require("rc-util/lib/raf"));
var React = _interopRequireWildcard(require("react"));
var _IdContext = require("../context/IdContext");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
// destruct to reduce minify size
var LEFT = _KeyCode.default.LEFT,
RIGHT = _KeyCode.default.RIGHT,
UP = _KeyCode.default.UP,
DOWN = _KeyCode.default.DOWN,
ENTER = _KeyCode.default.ENTER,
ESC = _KeyCode.default.ESC,
HOME = _KeyCode.default.HOME,
END = _KeyCode.default.END;
var ArrowKeys = [UP, DOWN, LEFT, RIGHT];
function getOffset(mode, isRootLevel, isRtl, which) {
var _offsets;
var prev = 'prev';
var next = 'next';
var children = 'children';
var parent = 'parent';
// Inline enter is special that we use unique operation
if (mode === 'inline' && which === ENTER) {
return {
inlineTrigger: true
};
}
var inline = (0, _defineProperty2.default)((0, _defineProperty2.default)({}, UP, prev), DOWN, next);
var horizontal = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, LEFT, isRtl ? next : prev), RIGHT, isRtl ? prev : next), DOWN, children), ENTER, children);
var vertical = (0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)((0, _defineProperty2.default)({}, UP, prev), DOWN, next), ENTER, children), ESC, parent), LEFT, isRtl ? children : parent), RIGHT, isRtl ? parent : children);
var offsets = {
inline: inline,
horizontal: horizontal,
vertical: vertical,
inlineSub: inline,
horizontalSub: vertical,
verticalSub: vertical
};
var type = (_offsets = offsets["".concat(mode).concat(isRootLevel ? '' : 'Sub')]) === null || _offsets === void 0 ? void 0 : _offsets[which];
switch (type) {
case prev:
return {
offset: -1,
sibling: true
};
case next:
return {
offset: 1,
sibling: true
};
case parent:
return {
offset: -1,
sibling: false
};
case children:
return {
offset: 1,
sibling: false
};
default:
return null;
}
}
function findContainerUL(element) {
var current = element;
while (current) {
if (current.getAttribute('data-menu-list')) {
return current;
}
current = current.parentElement;
}
// Normally should not reach this line
/* istanbul ignore next */
return null;
}
/**
* Find focused element within element set provided
*/
function getFocusElement(activeElement, elements) {
var current = activeElement || document.activeElement;
while (current) {
if (elements.has(current)) {
return current;
}
current = current.parentElement;
}
return null;
}
/**
* Get focusable elements from the element set under provided container
*/
function getFocusableElements(container, elements) {
var list = (0, _focus.getFocusNodeList)(container, true);
return list.filter(function (ele) {
return elements.has(ele);
});
}
function getNextFocusElement(parentQueryContainer, elements, focusMenuElement) {
var offset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
// Key on the menu item will not get validate parent container
if (!parentQueryContainer) {
return null;
}
// List current level menu item elements
var sameLevelFocusableMenuElementList = getFocusableElements(parentQueryContainer, elements);
// Find next focus index
var count = sameLevelFocusableMenuElementList.length;
var focusIndex = sameLevelFocusableMenuElementList.findIndex(function (ele) {
return focusMenuElement === ele;
});
if (offset < 0) {
if (focusIndex === -1) {
focusIndex = count - 1;
} else {
focusIndex -= 1;
}
} else if (offset > 0) {
focusIndex += 1;
}
focusIndex = (focusIndex + count) % count;
// Focus menu item
return sameLevelFocusableMenuElementList[focusIndex];
}
var refreshElements = exports.refreshElements = function refreshElements(keys, id) {
var elements = new Set();
var key2element = new Map();
var element2key = new Map();
keys.forEach(function (key) {
var element = document.querySelector("[data-menu-id='".concat((0, _IdContext.getMenuId)(id, key), "']"));
if (element) {
elements.add(element);
element2key.set(element, key);
key2element.set(key, element);
}
});
return {
elements: elements,
key2element: key2element,
element2key: element2key
};
};
function useAccessibility(mode, activeKey, isRtl, id, containerRef, getKeys, getKeyPath, triggerActiveKey, triggerAccessibilityOpen, originOnKeyDown) {
var rafRef = React.useRef();
var activeRef = React.useRef();
activeRef.current = activeKey;
var cleanRaf = function cleanRaf() {
_raf.default.cancel(rafRef.current);
};
React.useEffect(function () {
return function () {
cleanRaf();
};
}, []);
return function (e) {
var which = e.which;
if ([].concat(ArrowKeys, [ENTER, ESC, HOME, END]).includes(which)) {
var keys = getKeys();
var refreshedElements = refreshElements(keys, id);
var _refreshedElements = refreshedElements,
elements = _refreshedElements.elements,
key2element = _refreshedElements.key2element,
element2key = _refreshedElements.element2key;
// First we should find current focused MenuItem/SubMenu element
var activeElement = key2element.get(activeKey);
var focusMenuElement = getFocusElement(activeElement, elements);
var focusMenuKey = element2key.get(focusMenuElement);
var offsetObj = getOffset(mode, getKeyPath(focusMenuKey, true).length === 1, isRtl, which);
// Some mode do not have fully arrow operation like inline
if (!offsetObj && which !== HOME && which !== END) {
return;
}
// Arrow prevent default to avoid page scroll
if (ArrowKeys.includes(which) || [HOME, END].includes(which)) {
e.preventDefault();
}
var tryFocus = function tryFocus(menuElement) {
if (menuElement) {
var focusTargetElement = menuElement;
// Focus to link instead of menu item if possible
var link = menuElement.querySelector('a');
if (link !== null && link !== void 0 && link.getAttribute('href')) {
focusTargetElement = link;
}
var targetKey = element2key.get(menuElement);
triggerActiveKey(targetKey);
/**
* Do not `useEffect` here since `tryFocus` may trigger async
* which makes React sync update the `activeKey`
* that force render before `useRef` set the next activeKey
*/
cleanRaf();
rafRef.current = (0, _raf.default)(function () {
if (activeRef.current === targetKey) {
focusTargetElement.focus();
}
});
}
};
if ([HOME, END].includes(which) || offsetObj.sibling || !focusMenuElement) {
// ========================== Sibling ==========================
// Find walkable focus menu element container
var parentQueryContainer;
if (!focusMenuElement || mode === 'inline') {
parentQueryContainer = containerRef.current;
} else {
parentQueryContainer = findContainerUL(focusMenuElement);
}
// Get next focus element
var targetElement;
var focusableElements = getFocusableElements(parentQueryContainer, elements);
if (which === HOME) {
targetElement = focusableElements[0];
} else if (which === END) {
targetElement = focusableElements[focusableElements.length - 1];
} else {
targetElement = getNextFocusElement(parentQueryContainer, elements, focusMenuElement, offsetObj.offset);
}
// Focus menu item
tryFocus(targetElement);
// ======================= InlineTrigger =======================
} else if (offsetObj.inlineTrigger) {
// Inline trigger no need switch to sub menu item
triggerAccessibilityOpen(focusMenuKey);
// =========================== Level ===========================
} else if (offsetObj.offset > 0) {
triggerAccessibilityOpen(focusMenuKey, true);
cleanRaf();
rafRef.current = (0, _raf.default)(function () {
// Async should resync elements
refreshedElements = refreshElements(keys, id);
var controlId = focusMenuElement.getAttribute('aria-controls');
var subQueryContainer = document.getElementById(controlId);
// Get sub focusable menu item
var targetElement = getNextFocusElement(subQueryContainer, refreshedElements.elements);
// Focus menu item
tryFocus(targetElement);
}, 5);
} else if (offsetObj.offset < 0) {
var keyPath = getKeyPath(focusMenuKey, true);
var parentKey = keyPath[keyPath.length - 2];
var parentMenuElement = key2element.get(parentKey);
// Focus menu item
triggerAccessibilityOpen(parentKey, false);
tryFocus(parentMenuElement);
}
}
// Pass origin key down event
originOnKeyDown === null || originOnKeyDown === void 0 || originOnKeyDown(e);
};
}

9
node_modules/rc-menu/lib/hooks/useActive.d.ts generated vendored Normal file
View File

@@ -0,0 +1,9 @@
import * as React from 'react';
import type { MenuHoverEventHandler } from '../interface';
interface ActiveObj {
active: boolean;
onMouseEnter?: React.MouseEventHandler<HTMLElement>;
onMouseLeave?: React.MouseEventHandler<HTMLElement>;
}
export default function useActive(eventKey: string, disabled: boolean, onMouseEnter?: MenuHoverEventHandler, onMouseLeave?: MenuHoverEventHandler): ActiveObj;
export {};

39
node_modules/rc-menu/lib/hooks/useActive.js generated vendored Normal file
View File

@@ -0,0 +1,39 @@
"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useActive;
var React = _interopRequireWildcard(require("react"));
var _MenuContext = require("../context/MenuContext");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function useActive(eventKey, disabled, onMouseEnter, onMouseLeave) {
var _React$useContext = React.useContext(_MenuContext.MenuContext),
activeKey = _React$useContext.activeKey,
onActive = _React$useContext.onActive,
onInactive = _React$useContext.onInactive;
var ret = {
active: activeKey === eventKey
};
// Skip when disabled
if (!disabled) {
ret.onMouseEnter = function (domEvent) {
onMouseEnter === null || onMouseEnter === void 0 || onMouseEnter({
key: eventKey,
domEvent: domEvent
});
onActive(eventKey);
};
ret.onMouseLeave = function (domEvent) {
onMouseLeave === null || onMouseLeave === void 0 || onMouseLeave({
key: eventKey,
domEvent: domEvent
});
onInactive(eventKey);
};
}
return ret;
}

View File

@@ -0,0 +1,2 @@
import * as React from 'react';
export default function useDirectionStyle(level: number): React.CSSProperties;

26
node_modules/rc-menu/lib/hooks/useDirectionStyle.js generated vendored Normal file
View File

@@ -0,0 +1,26 @@
"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useDirectionStyle;
var React = _interopRequireWildcard(require("react"));
var _MenuContext = require("../context/MenuContext");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function useDirectionStyle(level) {
var _React$useContext = React.useContext(_MenuContext.MenuContext),
mode = _React$useContext.mode,
rtl = _React$useContext.rtl,
inlineIndent = _React$useContext.inlineIndent;
if (mode !== 'inline') {
return null;
}
var len = level;
return rtl ? {
paddingRight: len * inlineIndent
} : {
paddingLeft: len * inlineIndent
};
}

10
node_modules/rc-menu/lib/hooks/useKeyRecords.d.ts generated vendored Normal file
View File

@@ -0,0 +1,10 @@
export declare const OVERFLOW_KEY = "rc-menu-more";
export default function useKeyRecords(): {
registerPath: (key: string, keyPath: string[]) => void;
unregisterPath: (key: string, keyPath: string[]) => void;
refreshOverflowKeys: (keys: string[]) => void;
isSubPathKey: (pathKeys: string[], eventKey: string) => boolean;
getKeyPath: (eventKey: string, includeOverflow?: boolean) => string[];
getKeys: () => string[];
getSubPathKeys: (key: string) => Set<string>;
};

122
node_modules/rc-menu/lib/hooks/useKeyRecords.js generated vendored Normal file
View File

@@ -0,0 +1,122 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.OVERFLOW_KEY = void 0;
exports.default = useKeyRecords;
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var React = _react;
var _warning = _interopRequireDefault(require("rc-util/lib/warning"));
var _timeUtil = require("../utils/timeUtil");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var PATH_SPLIT = '__RC_UTIL_PATH_SPLIT__';
var getPathStr = function getPathStr(keyPath) {
return keyPath.join(PATH_SPLIT);
};
var getPathKeys = function getPathKeys(keyPathStr) {
return keyPathStr.split(PATH_SPLIT);
};
var OVERFLOW_KEY = exports.OVERFLOW_KEY = 'rc-menu-more';
function useKeyRecords() {
var _React$useState = React.useState({}),
_React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),
internalForceUpdate = _React$useState2[1];
var key2pathRef = (0, _react.useRef)(new Map());
var path2keyRef = (0, _react.useRef)(new Map());
var _React$useState3 = React.useState([]),
_React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),
overflowKeys = _React$useState4[0],
setOverflowKeys = _React$useState4[1];
var updateRef = (0, _react.useRef)(0);
var destroyRef = (0, _react.useRef)(false);
var forceUpdate = function forceUpdate() {
if (!destroyRef.current) {
internalForceUpdate({});
}
};
var registerPath = (0, _react.useCallback)(function (key, keyPath) {
// Warning for invalidate or duplicated `key`
if (process.env.NODE_ENV !== 'production') {
(0, _warning.default)(!key2pathRef.current.has(key), "Duplicated key '".concat(key, "' used in Menu by path [").concat(keyPath.join(' > '), "]"));
}
// Fill map
var connectedPath = getPathStr(keyPath);
path2keyRef.current.set(connectedPath, key);
key2pathRef.current.set(key, connectedPath);
updateRef.current += 1;
var id = updateRef.current;
(0, _timeUtil.nextSlice)(function () {
if (id === updateRef.current) {
forceUpdate();
}
});
}, []);
var unregisterPath = (0, _react.useCallback)(function (key, keyPath) {
var connectedPath = getPathStr(keyPath);
path2keyRef.current.delete(connectedPath);
key2pathRef.current.delete(key);
}, []);
var refreshOverflowKeys = (0, _react.useCallback)(function (keys) {
setOverflowKeys(keys);
}, []);
var getKeyPath = (0, _react.useCallback)(function (eventKey, includeOverflow) {
var fullPath = key2pathRef.current.get(eventKey) || '';
var keys = getPathKeys(fullPath);
if (includeOverflow && overflowKeys.includes(keys[0])) {
keys.unshift(OVERFLOW_KEY);
}
return keys;
}, [overflowKeys]);
var isSubPathKey = (0, _react.useCallback)(function (pathKeys, eventKey) {
return pathKeys.filter(function (item) {
return item !== undefined;
}).some(function (pathKey) {
var pathKeyList = getKeyPath(pathKey, true);
return pathKeyList.includes(eventKey);
});
}, [getKeyPath]);
var getKeys = function getKeys() {
var keys = (0, _toConsumableArray2.default)(key2pathRef.current.keys());
if (overflowKeys.length) {
keys.push(OVERFLOW_KEY);
}
return keys;
};
/**
* Find current key related child path keys
*/
var getSubPathKeys = (0, _react.useCallback)(function (key) {
var connectedPath = "".concat(key2pathRef.current.get(key)).concat(PATH_SPLIT);
var pathKeys = new Set();
(0, _toConsumableArray2.default)(path2keyRef.current.keys()).forEach(function (pathKey) {
if (pathKey.startsWith(connectedPath)) {
pathKeys.add(path2keyRef.current.get(pathKey));
}
});
return pathKeys;
}, []);
React.useEffect(function () {
return function () {
destroyRef.current = true;
};
}, []);
return {
// Register
registerPath: registerPath,
unregisterPath: unregisterPath,
refreshOverflowKeys: refreshOverflowKeys,
// Util
isSubPathKey: isSubPathKey,
getKeyPath: getKeyPath,
getKeys: getKeys,
getSubPathKeys: getSubPathKeys
};
}

5
node_modules/rc-menu/lib/hooks/useMemoCallback.d.ts generated vendored Normal file
View File

@@ -0,0 +1,5 @@
/**
* Cache callback function that always return same ref instead.
* This is used for context optimization.
*/
export default function useMemoCallback<T extends (...args: any[]) => void>(func: T): T;

26
node_modules/rc-menu/lib/hooks/useMemoCallback.js generated vendored Normal file
View File

@@ -0,0 +1,26 @@
"use strict";
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useMemoCallback;
var React = _interopRequireWildcard(require("react"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
/**
* Cache callback function that always return same ref instead.
* This is used for context optimization.
*/
function useMemoCallback(func) {
var funRef = React.useRef(func);
funRef.current = func;
var callback = React.useCallback(function () {
var _funRef$current;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
return (_funRef$current = funRef.current) === null || _funRef$current === void 0 ? void 0 : _funRef$current.call.apply(_funRef$current, [funRef].concat(args));
}, []);
return func ? callback : undefined;
}

1
node_modules/rc-menu/lib/hooks/useUUID.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export default function useUUID(id?: string): string;

29
node_modules/rc-menu/lib/hooks/useUUID.js generated vendored Normal file
View File

@@ -0,0 +1,29 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useUUID;
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var React = _interopRequireWildcard(require("react"));
var _useMergedState3 = _interopRequireDefault(require("rc-util/lib/hooks/useMergedState"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
var uniquePrefix = Math.random().toFixed(5).toString().slice(2);
var internalId = 0;
function useUUID(id) {
var _useMergedState = (0, _useMergedState3.default)(id, {
value: id
}),
_useMergedState2 = (0, _slicedToArray2.default)(_useMergedState, 2),
uuid = _useMergedState2[0],
setUUID = _useMergedState2[1];
React.useEffect(function () {
internalId += 1;
var newId = process.env.NODE_ENV === 'test' ? 'test' : "".concat(uniquePrefix, "-").concat(internalId);
setUUID("rc-menu-uuid-".concat(newId));
}, []);
return uuid;
}

23
node_modules/rc-menu/lib/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,23 @@
import Menu from './Menu';
import MenuItem from './MenuItem';
import SubMenu from './SubMenu';
import MenuItemGroup from './MenuItemGroup';
import { useFullPath } from './context/PathContext';
import Divider from './Divider';
import type { MenuProps } from './Menu';
import type { MenuItemProps } from './MenuItem';
import type { SubMenuProps } from './SubMenu';
import type { MenuItemGroupProps } from './MenuItemGroup';
import type { MenuRef } from './interface';
export { SubMenu, MenuItem as Item, MenuItem, MenuItemGroup, MenuItemGroup as ItemGroup, Divider,
/** @private Only used for antd internal. Do not use in your production. */
useFullPath, };
export type { MenuProps, SubMenuProps, MenuItemProps, MenuItemGroupProps, MenuRef, };
type MenuType = typeof Menu & {
Item: typeof MenuItem;
SubMenu: typeof SubMenu;
ItemGroup: typeof MenuItemGroup;
Divider: typeof Divider;
};
declare const ExportMenu: MenuType;
export default ExportMenu;

61
node_modules/rc-menu/lib/index.js generated vendored Normal file
View File

@@ -0,0 +1,61 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "Divider", {
enumerable: true,
get: function get() {
return _Divider.default;
}
});
Object.defineProperty(exports, "Item", {
enumerable: true,
get: function get() {
return _MenuItem.default;
}
});
Object.defineProperty(exports, "ItemGroup", {
enumerable: true,
get: function get() {
return _MenuItemGroup.default;
}
});
Object.defineProperty(exports, "MenuItem", {
enumerable: true,
get: function get() {
return _MenuItem.default;
}
});
Object.defineProperty(exports, "MenuItemGroup", {
enumerable: true,
get: function get() {
return _MenuItemGroup.default;
}
});
Object.defineProperty(exports, "SubMenu", {
enumerable: true,
get: function get() {
return _SubMenu.default;
}
});
exports.default = void 0;
Object.defineProperty(exports, "useFullPath", {
enumerable: true,
get: function get() {
return _PathContext.useFullPath;
}
});
var _Menu = _interopRequireDefault(require("./Menu"));
var _MenuItem = _interopRequireDefault(require("./MenuItem"));
var _SubMenu = _interopRequireDefault(require("./SubMenu"));
var _MenuItemGroup = _interopRequireDefault(require("./MenuItemGroup"));
var _PathContext = require("./context/PathContext");
var _Divider = _interopRequireDefault(require("./Divider"));
var ExportMenu = _Menu.default;
ExportMenu.Item = _MenuItem.default;
ExportMenu.SubMenu = _SubMenu.default;
ExportMenu.ItemGroup = _MenuItemGroup.default;
ExportMenu.Divider = _Divider.default;
var _default = exports.default = ExportMenu;

86
node_modules/rc-menu/lib/interface.d.ts generated vendored Normal file
View File

@@ -0,0 +1,86 @@
import type * as React from 'react';
interface ItemSharedProps {
ref?: React.Ref<HTMLLIElement | null>;
style?: React.CSSProperties;
className?: string;
}
export interface SubMenuType extends ItemSharedProps {
type?: 'submenu';
label?: React.ReactNode;
children: ItemType[];
disabled?: boolean;
key: string;
rootClassName?: string;
itemIcon?: RenderIconType;
expandIcon?: RenderIconType;
onMouseEnter?: MenuHoverEventHandler;
onMouseLeave?: MenuHoverEventHandler;
popupClassName?: string;
popupOffset?: number[];
popupStyle?: React.CSSProperties;
onClick?: MenuClickEventHandler;
onTitleClick?: (info: MenuTitleInfo) => void;
onTitleMouseEnter?: MenuHoverEventHandler;
onTitleMouseLeave?: MenuHoverEventHandler;
}
export interface MenuItemType extends ItemSharedProps {
type?: 'item';
label?: React.ReactNode;
disabled?: boolean;
itemIcon?: RenderIconType;
extra?: React.ReactNode;
key: React.Key;
onMouseEnter?: MenuHoverEventHandler;
onMouseLeave?: MenuHoverEventHandler;
onClick?: MenuClickEventHandler;
}
export interface MenuItemGroupType extends ItemSharedProps {
type: 'group';
label?: React.ReactNode;
children?: ItemType[];
}
export interface MenuDividerType extends Omit<ItemSharedProps, 'ref'> {
type: 'divider';
}
export type ItemType = SubMenuType | MenuItemType | MenuItemGroupType | MenuDividerType | null;
export type MenuMode = 'horizontal' | 'vertical' | 'inline';
export type BuiltinPlacements = Record<string, any>;
export type TriggerSubMenuAction = 'click' | 'hover';
export interface RenderIconInfo {
isSelected?: boolean;
isOpen?: boolean;
isSubMenu?: boolean;
disabled?: boolean;
}
export type RenderIconType = React.ReactNode | ((props: RenderIconInfo) => React.ReactNode);
export interface MenuInfo {
key: string;
keyPath: string[];
/** @deprecated This will not support in future. You should avoid to use this */
item: React.ReactInstance;
domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
}
export interface MenuTitleInfo {
key: string;
domEvent: React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement>;
}
export type MenuHoverEventHandler = (info: {
key: string;
domEvent: React.MouseEvent<HTMLElement>;
}) => void;
export interface SelectInfo extends MenuInfo {
selectedKeys: string[];
}
export type SelectEventHandler = (info: SelectInfo) => void;
export type MenuClickEventHandler = (info: MenuInfo) => void;
export type MenuRef = {
/**
* Focus active child if any, or the first child which is not disabled will be focused.
* @param options
*/
focus: (options?: FocusOptions) => void;
list: HTMLUListElement;
};
export type ComponentType = 'submenu' | 'item' | 'group' | 'divider';
export type Components = Partial<Record<ComponentType, React.ComponentType<any>>>;
export {};

Some files were not shown because too many files have changed in this diff Show More