Latest repo

This commit is contained in:
Marc
2025-06-02 16:42:16 +00:00
parent 53ddf1a329
commit cde5fae175
27907 changed files with 3875388 additions and 1 deletions

7
node_modules/react-overlays/Dropdown/package.json generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/Dropdown",
"private": true,
"main": "../cjs/Dropdown.js",
"module": "../esm/Dropdown.js",
"types": "../esm/Dropdown.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/DropdownContext",
"private": true,
"main": "../cjs/DropdownContext.js",
"module": "../esm/DropdownContext.js",
"types": "../esm/DropdownContext.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/DropdownMenu",
"private": true,
"main": "../cjs/DropdownMenu.js",
"module": "../esm/DropdownMenu.js",
"types": "../esm/DropdownMenu.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/DropdownToggle",
"private": true,
"main": "../cjs/DropdownToggle.js",
"module": "../esm/DropdownToggle.js",
"types": "../esm/DropdownToggle.d.ts"
}

22
node_modules/react-overlays/LICENSE generated vendored Normal file
View File

@@ -0,0 +1,22 @@
The MIT License (MIT)
Copyright (c) 2015 react-bootstrap
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.

7
node_modules/react-overlays/Modal/package.json generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/Modal",
"private": true,
"main": "../cjs/Modal.js",
"module": "../esm/Modal.js",
"types": "../esm/Modal.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/ModalManager",
"private": true,
"main": "../cjs/ModalManager.js",
"module": "../esm/ModalManager.js",
"types": "../esm/ModalManager.d.ts"
}

7
node_modules/react-overlays/Overlay/package.json generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/Overlay",
"private": true,
"main": "../cjs/Overlay.js",
"module": "../esm/Overlay.js",
"types": "../esm/Overlay.d.ts"
}

7
node_modules/react-overlays/Portal/package.json generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/Portal",
"private": true,
"main": "../cjs/Portal.js",
"module": "../esm/Portal.js",
"types": "../esm/Portal.d.ts"
}

30
node_modules/react-overlays/README.md generated vendored Normal file
View File

@@ -0,0 +1,30 @@
# react-overlays
[![CI status][ci-badge]][actions]
[![Deploy docs status][deploy-docs-badge]][actions]
[![Codecov][codecov-badge]][codecov]
[![Netlify Status](https://api.netlify.com/api/v1/badges/e86fa356-4480-409e-9c24-52ea0660a923/deploy-status)](https://app.netlify.com/sites/react-overlays/deploys)
Utilities for creating robust overlay components.
## Documentation
https://react-bootstrap.github.io/react-overlays
## Installation
```sh
npm install --save react-overlays
```
## Notes
All of these utilities have been abstracted out of [React-Bootstrap](https://github.com/react-bootstrap/react-bootstrap) in order to provide better access to the generic implementations of these commonly-needed components. The included components are building blocks for creating more polished components. Everything is bring-your-own-styles, CSS or otherwise.
If you are looking for more complete overlays, modals, or tooltips something you can use out-of-the-box check out React-Bootstrap, which is built using these components.
[actions]: https://github.com/react-bootstrap/react-overlays/actions
[codecov]: https://codecov.io/gh/react-bootstrap/react-overlays
[codecov-badge]: https://codecov.io/gh/react-bootstrap/react-overlays/branch/master/graph/badge.svg
[ci-badge]: https://github.com/react-bootstrap/react-overlays/workflows/CI/badge.svg
[deploy-docs-badge]: https://github.com/react-bootstrap/react-overlays/workflows/Deploy%20Documentation/badge.svg

90
node_modules/react-overlays/cjs/Dropdown.d.ts generated vendored Normal file
View File

@@ -0,0 +1,90 @@
import React from 'react';
import PropTypes from 'prop-types';
import { DropDirection } from './DropdownContext';
import DropdownMenu from './DropdownMenu';
import DropdownToggle from './DropdownToggle';
export interface DropdownInjectedProps {
onKeyDown: React.KeyboardEventHandler;
}
export interface DropdownProps {
drop?: DropDirection;
alignEnd?: boolean;
defaultShow?: boolean;
show?: boolean;
onToggle: (nextShow: boolean, event?: React.SyntheticEvent | Event) => void;
itemSelector?: string;
focusFirstItemOnShow?: false | true | 'keyboard';
children: React.ReactNode;
}
/**
* @displayName Dropdown
* @public
*/
declare function Dropdown({ drop, alignEnd, defaultShow, show: rawShow, onToggle: rawOnToggle, itemSelector, focusFirstItemOnShow, children, }: DropdownProps): JSX.Element;
declare namespace Dropdown {
var displayName: string;
var propTypes: {
/**
* A render prop that returns the root dropdown element. The `props`
* argument should spread through to an element containing _both_ the
* menu and toggle in order to handle keyboard events for focus management.
*
* @type {Function ({
* props: {
* onKeyDown: (SyntheticEvent) => void,
* },
* }) => React.Element}
*/
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
/**
* Determines the direction and location of the Menu in relation to it's Toggle.
*/
drop: PropTypes.Requireable<string>;
/**
* Controls the focus behavior for when the Dropdown is opened. Set to
* `true` to always focus the first menu item, `keyboard` to focus only when
* navigating via the keyboard, or `false` to disable completely
*
* The Default behavior is `false` **unless** the Menu has a `role="menu"`
* where it will default to `keyboard` to match the recommended [ARIA Authoring practices](https://www.w3.org/TR/wai-aria-practices-1.1/#menubutton).
*/
focusFirstItemOnShow: PropTypes.Requireable<string | boolean>;
/**
* A css slector string that will return __focusable__ menu items.
* Selectors should be relative to the menu component:
* e.g. ` > li:not('.disabled')`
*/
itemSelector: PropTypes.Requireable<string>;
/**
* Align the menu to the 'end' side of the placement side of the Dropdown toggle. The default placement is `top-start` or `bottom-start`.
*/
alignEnd: PropTypes.Requireable<boolean>;
/**
* Whether or not the Dropdown is visible.
*
* @controllable onToggle
*/
show: PropTypes.Requireable<boolean>;
/**
* Sets the initial show position of the Dropdown.
*/
defaultShow: PropTypes.Requireable<boolean>;
/**
* A callback fired when the Dropdown wishes to change visibility. Called with the requested
* `show` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`.
*
* ```ts static
* function(
* isOpen: boolean,
* event: SyntheticEvent,
* ): void
* ```
*
* @controllable show
*/
onToggle: PropTypes.Requireable<(...args: any[]) => any>;
};
var Menu: typeof DropdownMenu;
var Toggle: typeof DropdownToggle;
}
export default Dropdown;

294
node_modules/react-overlays/cjs/Dropdown.js generated vendored Normal file
View File

@@ -0,0 +1,294 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _matches = _interopRequireDefault(require("dom-helpers/matches"));
var _querySelectorAll = _interopRequireDefault(require("dom-helpers/querySelectorAll"));
var _addEventListener = _interopRequireDefault(require("dom-helpers/addEventListener"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _uncontrollable = require("uncontrollable");
var _usePrevious = _interopRequireDefault(require("@restart/hooks/usePrevious"));
var _useForceUpdate = _interopRequireDefault(require("@restart/hooks/useForceUpdate"));
var _useGlobalListener = _interopRequireDefault(require("@restart/hooks/useGlobalListener"));
var _useEventCallback = _interopRequireDefault(require("@restart/hooks/useEventCallback"));
var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
var _DropdownToggle = _interopRequireDefault(require("./DropdownToggle"));
var propTypes = {
/**
* A render prop that returns the root dropdown element. The `props`
* argument should spread through to an element containing _both_ the
* menu and toggle in order to handle keyboard events for focus management.
*
* @type {Function ({
* props: {
* onKeyDown: (SyntheticEvent) => void,
* },
* }) => React.Element}
*/
children: _propTypes["default"].node,
/**
* Determines the direction and location of the Menu in relation to it's Toggle.
*/
drop: _propTypes["default"].oneOf(['up', 'left', 'right', 'down']),
/**
* Controls the focus behavior for when the Dropdown is opened. Set to
* `true` to always focus the first menu item, `keyboard` to focus only when
* navigating via the keyboard, or `false` to disable completely
*
* The Default behavior is `false` **unless** the Menu has a `role="menu"`
* where it will default to `keyboard` to match the recommended [ARIA Authoring practices](https://www.w3.org/TR/wai-aria-practices-1.1/#menubutton).
*/
focusFirstItemOnShow: _propTypes["default"].oneOf([false, true, 'keyboard']),
/**
* A css slector string that will return __focusable__ menu items.
* Selectors should be relative to the menu component:
* e.g. ` > li:not('.disabled')`
*/
itemSelector: _propTypes["default"].string,
/**
* Align the menu to the 'end' side of the placement side of the Dropdown toggle. The default placement is `top-start` or `bottom-start`.
*/
alignEnd: _propTypes["default"].bool,
/**
* Whether or not the Dropdown is visible.
*
* @controllable onToggle
*/
show: _propTypes["default"].bool,
/**
* Sets the initial show position of the Dropdown.
*/
defaultShow: _propTypes["default"].bool,
/**
* A callback fired when the Dropdown wishes to change visibility. Called with the requested
* `show` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`.
*
* ```ts static
* function(
* isOpen: boolean,
* event: SyntheticEvent,
* ): void
* ```
*
* @controllable show
*/
onToggle: _propTypes["default"].func
};
function useRefWithUpdate() {
var forceUpdate = (0, _useForceUpdate["default"])();
var ref = (0, _react.useRef)(null);
var attachRef = (0, _react.useCallback)(function (element) {
ref.current = element; // ensure that a menu set triggers an update for consumers
forceUpdate();
}, [forceUpdate]);
return [ref, attachRef];
}
/**
* @displayName Dropdown
* @public
*/
function Dropdown(_ref) {
var drop = _ref.drop,
alignEnd = _ref.alignEnd,
defaultShow = _ref.defaultShow,
rawShow = _ref.show,
rawOnToggle = _ref.onToggle,
_ref$itemSelector = _ref.itemSelector,
itemSelector = _ref$itemSelector === void 0 ? '* > *' : _ref$itemSelector,
focusFirstItemOnShow = _ref.focusFirstItemOnShow,
children = _ref.children;
var _useUncontrolledProp = (0, _uncontrollable.useUncontrolledProp)(rawShow, defaultShow, rawOnToggle),
show = _useUncontrolledProp[0],
onToggle = _useUncontrolledProp[1]; // We use normal refs instead of useCallbackRef in order to populate the
// the value as quickly as possible, otherwise the effect to focus the element
// may run before the state value is set
var _useRefWithUpdate = useRefWithUpdate(),
menuRef = _useRefWithUpdate[0],
setMenu = _useRefWithUpdate[1];
var menuElement = menuRef.current;
var _useRefWithUpdate2 = useRefWithUpdate(),
toggleRef = _useRefWithUpdate2[0],
setToggle = _useRefWithUpdate2[1];
var toggleElement = toggleRef.current;
var lastShow = (0, _usePrevious["default"])(show);
var lastSourceEvent = (0, _react.useRef)(null);
var focusInDropdown = (0, _react.useRef)(false);
var toggle = (0, _react.useCallback)(function (nextShow, event) {
onToggle(nextShow, event);
}, [onToggle]);
var context = (0, _react.useMemo)(function () {
return {
toggle: toggle,
drop: drop,
show: show,
alignEnd: alignEnd,
menuElement: menuElement,
toggleElement: toggleElement,
setMenu: setMenu,
setToggle: setToggle
};
}, [toggle, drop, show, alignEnd, menuElement, toggleElement, setMenu, setToggle]);
if (menuElement && lastShow && !show) {
focusInDropdown.current = menuElement.contains(document.activeElement);
}
var focusToggle = (0, _useEventCallback["default"])(function () {
if (toggleElement && toggleElement.focus) {
toggleElement.focus();
}
});
var maybeFocusFirst = (0, _useEventCallback["default"])(function () {
var type = lastSourceEvent.current;
var focusType = focusFirstItemOnShow;
if (focusType == null) {
focusType = menuRef.current && (0, _matches["default"])(menuRef.current, '[role=menu]') ? 'keyboard' : false;
}
if (focusType === false || focusType === 'keyboard' && !/^key.+$/.test(type)) {
return;
}
var first = (0, _querySelectorAll["default"])(menuRef.current, itemSelector)[0];
if (first && first.focus) first.focus();
});
(0, _react.useEffect)(function () {
if (show) maybeFocusFirst();else if (focusInDropdown.current) {
focusInDropdown.current = false;
focusToggle();
} // only `show` should be changing
}, [show, focusInDropdown, focusToggle, maybeFocusFirst]);
(0, _react.useEffect)(function () {
lastSourceEvent.current = null;
});
var getNextFocusedChild = function getNextFocusedChild(current, offset) {
if (!menuRef.current) return null;
var items = (0, _querySelectorAll["default"])(menuRef.current, itemSelector);
var index = items.indexOf(current) + offset;
index = Math.max(0, Math.min(index, items.length));
return items[index];
};
(0, _useGlobalListener["default"])('keydown', function (event) {
var _menuRef$current, _toggleRef$current;
var key = event.key;
var target = event.target;
var fromMenu = (_menuRef$current = menuRef.current) == null ? void 0 : _menuRef$current.contains(target);
var fromToggle = (_toggleRef$current = toggleRef.current) == null ? void 0 : _toggleRef$current.contains(target); // Second only to https://github.com/twbs/bootstrap/blob/8cfbf6933b8a0146ac3fbc369f19e520bd1ebdac/js/src/dropdown.js#L400
// in inscrutability
var isInput = /input|textarea/i.test(target.tagName);
if (isInput && (key === ' ' || key !== 'Escape' && fromMenu)) {
return;
}
if (!fromMenu && !fromToggle) {
return;
}
if (!menuRef.current && key === 'Tab') {
return;
}
lastSourceEvent.current = event.type;
switch (key) {
case 'ArrowUp':
{
var next = getNextFocusedChild(target, -1);
if (next && next.focus) next.focus();
event.preventDefault();
return;
}
case 'ArrowDown':
event.preventDefault();
if (!show) {
onToggle(true, event);
} else {
var _next = getNextFocusedChild(target, 1);
if (_next && _next.focus) _next.focus();
}
return;
case 'Tab':
// on keydown the target is the element being tabbed FROM, we need that
// to know if this event is relevant to this dropdown (e.g. in this menu).
// On `keyup` the target is the element being tagged TO which we use to check
// if focus has left the menu
(0, _addEventListener["default"])(document, 'keyup', function (e) {
var _menuRef$current2;
if (e.key === 'Tab' && !e.target || !((_menuRef$current2 = menuRef.current) != null && _menuRef$current2.contains(e.target))) {
onToggle(false, event);
}
}, {
once: true
});
break;
case 'Escape':
event.preventDefault();
event.stopPropagation();
onToggle(false, event);
break;
default:
}
});
return /*#__PURE__*/_react["default"].createElement(_DropdownContext["default"].Provider, {
value: context
}, children);
}
Dropdown.displayName = 'ReactOverlaysDropdown';
Dropdown.propTypes = propTypes;
Dropdown.Menu = _DropdownMenu["default"];
Dropdown.Toggle = _DropdownToggle["default"];
var _default = Dropdown;
exports["default"] = _default;
module.exports = exports.default;

14
node_modules/react-overlays/cjs/DropdownContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import React from 'react';
export declare type DropDirection = 'up' | 'down' | 'left' | 'right';
export declare type DropdownContextValue = {
toggle: (nextShow: boolean, event?: React.SyntheticEvent | Event) => void;
menuElement: HTMLElement | null;
toggleElement: HTMLElement | null;
setMenu: (ref: HTMLElement | null) => void;
setToggle: (ref: HTMLElement | null) => void;
show: boolean;
alignEnd?: boolean;
drop?: DropDirection;
};
declare const DropdownContext: React.Context<DropdownContextValue | null>;
export default DropdownContext;

14
node_modules/react-overlays/cjs/DropdownContext.js generated vendored Normal file
View File

@@ -0,0 +1,14 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _react = _interopRequireDefault(require("react"));
var DropdownContext = /*#__PURE__*/_react["default"].createContext(null);
var _default = DropdownContext;
exports["default"] = _default;
module.exports = exports.default;

113
node_modules/react-overlays/cjs/DropdownMenu.d.ts generated vendored Normal file
View File

@@ -0,0 +1,113 @@
import PropTypes from 'prop-types';
import React from 'react';
import { DropdownContextValue } from './DropdownContext';
import { UsePopperOptions, Offset, UsePopperState } from './usePopper';
import { RootCloseOptions } from './useRootClose';
export interface UseDropdownMenuOptions {
flip?: boolean;
show?: boolean;
fixed?: boolean;
alignEnd?: boolean;
usePopper?: boolean;
offset?: Offset;
rootCloseEvent?: RootCloseOptions['clickTrigger'];
popperConfig?: Omit<UsePopperOptions, 'enabled' | 'placement'>;
}
export declare type UserDropdownMenuProps = Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style?: React.CSSProperties;
'aria-labelledby'?: string;
};
export declare type UserDropdownMenuArrowProps = Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style: React.CSSProperties;
};
export interface UseDropdownMenuMetadata {
show: boolean;
alignEnd?: boolean;
hasShown: boolean;
toggle?: DropdownContextValue['toggle'];
popper: UsePopperState | null;
arrowProps: Partial<UserDropdownMenuArrowProps>;
}
/**
* @memberOf Dropdown
* @param {object} options
* @param {boolean} options.flip Automatically adjust the menu `drop` position based on viewport edge detection
* @param {[number, number]} options.offset Define an offset distance between the Menu and the Toggle
* @param {boolean} options.show Display the menu manually, ignored in the context of a `Dropdown`
* @param {boolean} options.usePopper opt in/out of using PopperJS to position menus. When disabled you must position it yourself.
* @param {string} options.rootCloseEvent The pointer event to listen for when determining "clicks outside" the menu for triggering a close.
* @param {object} options.popperConfig Options passed to the [`usePopper`](/api/usePopper) hook.
*/
export declare function useDropdownMenu(options?: UseDropdownMenuOptions): readonly [UserDropdownMenuProps, UseDropdownMenuMetadata];
export interface DropdownMenuProps extends UseDropdownMenuOptions {
children: (props: UserDropdownMenuProps, meta: UseDropdownMenuMetadata) => React.ReactNode;
}
/**
* Also exported as `<Dropdown.Menu>` from `Dropdown`.
*
* @displayName DropdownMenu
* @memberOf Dropdown
*/
declare function DropdownMenu({ children, ...options }: DropdownMenuProps): JSX.Element;
declare namespace DropdownMenu {
var displayName: string;
var propTypes: {
/**
* A render prop that returns a Menu element. The `props`
* argument should spread through to **a component that can accept a ref**.
*
* @type {Function ({
* show: boolean,
* alignEnd: boolean,
* close: (?SyntheticEvent) => void,
* placement: Placement,
* update: () => void,
* forceUpdate: () => void,
* props: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* aria-labelledby: ?string
* },
* arrowProps: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* },
* }) => React.Element}
*/
children: PropTypes.Validator<(...args: any[]) => any>;
/**
* Controls the visible state of the menu, generally this is
* provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
show: PropTypes.Requireable<boolean>;
/**
* Aligns the dropdown menu to the 'end' of it's placement position.
* Generally this is provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
alignEnd: PropTypes.Requireable<boolean>;
/**
* Enables the Popper.js `flip` modifier, allowing the Dropdown to
* automatically adjust it's placement in case of overlap with the viewport or toggle.
* Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info
*/
flip: PropTypes.Requireable<boolean>;
usePopper: PropTypes.Requireable<boolean>;
/**
* A set of popper options and props passed directly to react-popper's Popper component.
*/
popperConfig: PropTypes.Requireable<object>;
/**
* Override the default event used by RootCloseWrapper.
*/
rootCloseEvent: PropTypes.Requireable<string>;
};
var defaultProps: {
usePopper: boolean;
};
}
/** @component */
export default DropdownMenu;

202
node_modules/react-overlays/cjs/DropdownMenu.js generated vendored Normal file
View File

@@ -0,0 +1,202 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.useDropdownMenu = useDropdownMenu;
exports["default"] = void 0;
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _useCallbackRef2 = _interopRequireDefault(require("@restart/hooks/useCallbackRef"));
var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
var _usePopper = _interopRequireDefault(require("./usePopper"));
var _useRootClose = _interopRequireDefault(require("./useRootClose"));
var _mergeOptionsWithPopperConfig = _interopRequireDefault(require("./mergeOptionsWithPopperConfig"));
var noop = function noop() {};
/**
* @memberOf Dropdown
* @param {object} options
* @param {boolean} options.flip Automatically adjust the menu `drop` position based on viewport edge detection
* @param {[number, number]} options.offset Define an offset distance between the Menu and the Toggle
* @param {boolean} options.show Display the menu manually, ignored in the context of a `Dropdown`
* @param {boolean} options.usePopper opt in/out of using PopperJS to position menus. When disabled you must position it yourself.
* @param {string} options.rootCloseEvent The pointer event to listen for when determining "clicks outside" the menu for triggering a close.
* @param {object} options.popperConfig Options passed to the [`usePopper`](/api/usePopper) hook.
*/
function useDropdownMenu(options) {
if (options === void 0) {
options = {};
}
var context = (0, _react.useContext)(_DropdownContext["default"]);
var _useCallbackRef = (0, _useCallbackRef2["default"])(),
arrowElement = _useCallbackRef[0],
attachArrowRef = _useCallbackRef[1];
var hasShownRef = (0, _react.useRef)(false);
var _options = options,
flip = _options.flip,
offset = _options.offset,
rootCloseEvent = _options.rootCloseEvent,
_options$fixed = _options.fixed,
fixed = _options$fixed === void 0 ? false : _options$fixed,
_options$popperConfig = _options.popperConfig,
popperConfig = _options$popperConfig === void 0 ? {} : _options$popperConfig,
_options$usePopper = _options.usePopper,
shouldUsePopper = _options$usePopper === void 0 ? !!context : _options$usePopper;
var show = (context == null ? void 0 : context.show) == null ? !!options.show : context.show;
var alignEnd = (context == null ? void 0 : context.alignEnd) == null ? options.alignEnd : context.alignEnd;
if (show && !hasShownRef.current) {
hasShownRef.current = true;
}
var handleClose = function handleClose(e) {
context == null ? void 0 : context.toggle(false, e);
};
var _ref = context || {},
drop = _ref.drop,
setMenu = _ref.setMenu,
menuElement = _ref.menuElement,
toggleElement = _ref.toggleElement;
var placement = alignEnd ? 'bottom-end' : 'bottom-start';
if (drop === 'up') placement = alignEnd ? 'top-end' : 'top-start';else if (drop === 'right') placement = alignEnd ? 'right-end' : 'right-start';else if (drop === 'left') placement = alignEnd ? 'left-end' : 'left-start';
var popper = (0, _usePopper["default"])(toggleElement, menuElement, (0, _mergeOptionsWithPopperConfig["default"])({
placement: placement,
enabled: !!(shouldUsePopper && show),
enableEvents: show,
offset: offset,
flip: flip,
fixed: fixed,
arrowElement: arrowElement,
popperConfig: popperConfig
}));
var menuProps = (0, _extends2["default"])({
ref: setMenu || noop,
'aria-labelledby': toggleElement == null ? void 0 : toggleElement.id
}, popper.attributes.popper, {
style: popper.styles.popper
});
var metadata = {
show: show,
alignEnd: alignEnd,
hasShown: hasShownRef.current,
toggle: context == null ? void 0 : context.toggle,
popper: shouldUsePopper ? popper : null,
arrowProps: shouldUsePopper ? (0, _extends2["default"])({
ref: attachArrowRef
}, popper.attributes.arrow, {
style: popper.styles.arrow
}) : {}
};
(0, _useRootClose["default"])(menuElement, handleClose, {
clickTrigger: rootCloseEvent,
disabled: !show
});
return [menuProps, metadata];
}
var propTypes = {
/**
* A render prop that returns a Menu element. The `props`
* argument should spread through to **a component that can accept a ref**.
*
* @type {Function ({
* show: boolean,
* alignEnd: boolean,
* close: (?SyntheticEvent) => void,
* placement: Placement,
* update: () => void,
* forceUpdate: () => void,
* props: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* aria-labelledby: ?string
* },
* arrowProps: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* },
* }) => React.Element}
*/
children: _propTypes["default"].func.isRequired,
/**
* Controls the visible state of the menu, generally this is
* provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
show: _propTypes["default"].bool,
/**
* Aligns the dropdown menu to the 'end' of it's placement position.
* Generally this is provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
alignEnd: _propTypes["default"].bool,
/**
* Enables the Popper.js `flip` modifier, allowing the Dropdown to
* automatically adjust it's placement in case of overlap with the viewport or toggle.
* Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info
*/
flip: _propTypes["default"].bool,
usePopper: _propTypes["default"].oneOf([true, false]),
/**
* A set of popper options and props passed directly to react-popper's Popper component.
*/
popperConfig: _propTypes["default"].object,
/**
* Override the default event used by RootCloseWrapper.
*/
rootCloseEvent: _propTypes["default"].string
};
var defaultProps = {
usePopper: true
};
/**
* Also exported as `<Dropdown.Menu>` from `Dropdown`.
*
* @displayName DropdownMenu
* @memberOf Dropdown
*/
function DropdownMenu(_ref2) {
var children = _ref2.children,
options = (0, _objectWithoutPropertiesLoose2["default"])(_ref2, ["children"]);
var _useDropdownMenu = useDropdownMenu(options),
props = _useDropdownMenu[0],
meta = _useDropdownMenu[1];
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, meta.hasShown ? children(props, meta) : null);
}
DropdownMenu.displayName = 'ReactOverlaysDropdownMenu';
DropdownMenu.propTypes = propTypes;
DropdownMenu.defaultProps = defaultProps;
/** @component */
var _default = DropdownMenu;
exports["default"] = _default;

56
node_modules/react-overlays/cjs/DropdownToggle.d.ts generated vendored Normal file
View File

@@ -0,0 +1,56 @@
import PropTypes from 'prop-types';
import React from 'react';
import { DropdownContextValue } from './DropdownContext';
export interface UseDropdownToggleProps {
ref: DropdownContextValue['setToggle'];
onClick: React.MouseEventHandler;
'aria-haspopup': boolean;
'aria-expanded': boolean;
}
export interface UseDropdownToggleMetadata {
show: DropdownContextValue['show'];
toggle: DropdownContextValue['toggle'];
}
/**
* Wires up Dropdown toggle functionality, returning a set a props to attach
* to the element that functions as the dropdown toggle (generally a button).
*
* @memberOf Dropdown
*/
export declare function useDropdownToggle(): [
UseDropdownToggleProps,
UseDropdownToggleMetadata
];
export interface DropdownToggleProps {
children: (props: UseDropdownToggleProps, meta: UseDropdownToggleMetadata) => React.ReactNode;
}
/**
* Also exported as `<Dropdown.Toggle>` from `Dropdown`.
*
* @displayName DropdownToggle
* @memberOf Dropdown
*/
declare function DropdownToggle({ children }: DropdownToggleProps): JSX.Element;
declare namespace DropdownToggle {
var displayName: string;
var propTypes: {
/**
* A render prop that returns a Toggle element. The `props`
* argument should spread through to **a component that can accept a ref**. Use
* the `onToggle` argument to toggle the menu open or closed
*
* @type {Function ({
* show: boolean,
* toggle: (show: boolean) => void,
* props: {
* ref: (?HTMLElement) => void,
* aria-haspopup: true
* aria-expanded: boolean
* },
* }) => React.Element}
*/
children: PropTypes.Validator<(...args: any[]) => any>;
};
}
/** @component */
export default DropdownToggle;

88
node_modules/react-overlays/cjs/DropdownToggle.js generated vendored Normal file
View File

@@ -0,0 +1,88 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.useDropdownToggle = useDropdownToggle;
exports["default"] = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _DropdownContext = _interopRequireDefault(require("./DropdownContext"));
var noop = function noop() {};
/**
* Wires up Dropdown toggle functionality, returning a set a props to attach
* to the element that functions as the dropdown toggle (generally a button).
*
* @memberOf Dropdown
*/
function useDropdownToggle() {
var _ref = (0, _react.useContext)(_DropdownContext["default"]) || {},
_ref$show = _ref.show,
show = _ref$show === void 0 ? false : _ref$show,
_ref$toggle = _ref.toggle,
toggle = _ref$toggle === void 0 ? noop : _ref$toggle,
setToggle = _ref.setToggle;
var handleClick = (0, _react.useCallback)(function (e) {
toggle(!show, e);
}, [show, toggle]);
return [{
ref: setToggle || noop,
onClick: handleClick,
'aria-haspopup': true,
'aria-expanded': !!show
}, {
show: show,
toggle: toggle
}];
}
var propTypes = {
/**
* A render prop that returns a Toggle element. The `props`
* argument should spread through to **a component that can accept a ref**. Use
* the `onToggle` argument to toggle the menu open or closed
*
* @type {Function ({
* show: boolean,
* toggle: (show: boolean) => void,
* props: {
* ref: (?HTMLElement) => void,
* aria-haspopup: true
* aria-expanded: boolean
* },
* }) => React.Element}
*/
children: _propTypes["default"].func.isRequired
};
/**
* Also exported as `<Dropdown.Toggle>` from `Dropdown`.
*
* @displayName DropdownToggle
* @memberOf Dropdown
*/
function DropdownToggle(_ref2) {
var children = _ref2.children;
var _useDropdownToggle = useDropdownToggle(),
props = _useDropdownToggle[0],
meta = _useDropdownToggle[1];
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, children(props, meta));
}
DropdownToggle.displayName = 'ReactOverlaysDropdownToggle';
DropdownToggle.propTypes = propTypes;
/** @component */
var _default = DropdownToggle;
exports["default"] = _default;

58
node_modules/react-overlays/cjs/Modal.d.ts generated vendored Normal file
View File

@@ -0,0 +1,58 @@
import React from 'react';
import ModalManager from './ModalManager';
import { DOMContainer } from './useWaitForDOMRef';
import { TransitionCallbacks } from './types';
export declare type ModalTransitionComponent = React.ComponentType<{
in: boolean;
appear?: boolean;
unmountOnExit?: boolean;
} & TransitionCallbacks>;
export interface RenderModalDialogProps {
style: React.CSSProperties | undefined;
className: string | undefined;
tabIndex: number;
role: string;
ref: React.RefCallback<Element>;
'aria-modal': boolean | undefined;
}
export interface RenderModalBackdropProps {
ref: React.RefCallback<Element>;
onClick: (event: React.SyntheticEvent) => void;
}
export interface BaseModalProps extends TransitionCallbacks {
children?: React.ReactElement;
role?: string;
style?: React.CSSProperties;
className?: string;
show?: boolean;
container?: DOMContainer;
onShow?: () => void;
onHide?: () => void;
manager?: ModalManager;
backdrop?: true | false | 'static';
renderDialog?: (props: RenderModalDialogProps) => React.ReactNode;
renderBackdrop?: (props: RenderModalBackdropProps) => React.ReactNode;
onEscapeKeyDown?: (e: KeyboardEvent) => void;
onBackdropClick?: (e: React.SyntheticEvent) => void;
containerClassName?: string;
keyboard?: boolean;
transition?: ModalTransitionComponent;
backdropTransition?: ModalTransitionComponent;
autoFocus?: boolean;
enforceFocus?: boolean;
restoreFocus?: boolean;
restoreFocusOptions?: {
preventScroll: boolean;
};
}
export interface ModalProps extends BaseModalProps {
[other: string]: any;
}
export interface ModalHandle {
dialog: HTMLElement | null;
backdrop: HTMLElement | null;
}
declare const _default: React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<ModalHandle>> & {
Manager: typeof ModalManager;
};
export default _default;

456
node_modules/react-overlays/cjs/Modal.js generated vendored Normal file
View File

@@ -0,0 +1,456 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _activeElement = _interopRequireDefault(require("dom-helpers/activeElement"));
var _contains = _interopRequireDefault(require("dom-helpers/contains"));
var _canUseDOM = _interopRequireDefault(require("dom-helpers/canUseDOM"));
var _listen = _interopRequireDefault(require("dom-helpers/listen"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _reactDom = _interopRequireDefault(require("react-dom"));
var _useMounted = _interopRequireDefault(require("@restart/hooks/useMounted"));
var _useWillUnmount = _interopRequireDefault(require("@restart/hooks/useWillUnmount"));
var _usePrevious = _interopRequireDefault(require("@restart/hooks/usePrevious"));
var _useEventCallback = _interopRequireDefault(require("@restart/hooks/useEventCallback"));
var _ModalManager = _interopRequireDefault(require("./ModalManager"));
var _useWaitForDOMRef = _interopRequireDefault(require("./useWaitForDOMRef"));
/* eslint-disable @typescript-eslint/no-use-before-define, react/prop-types */
var manager;
function getManager() {
if (!manager) manager = new _ModalManager["default"]();
return manager;
}
function useModalManager(provided) {
var modalManager = provided || getManager();
var modal = (0, _react.useRef)({
dialog: null,
backdrop: null
});
return Object.assign(modal.current, {
add: function add(container, className) {
return modalManager.add(modal.current, container, className);
},
remove: function remove() {
return modalManager.remove(modal.current);
},
isTopModal: function isTopModal() {
return modalManager.isTopModal(modal.current);
},
setDialogRef: (0, _react.useCallback)(function (ref) {
modal.current.dialog = ref;
}, []),
setBackdropRef: (0, _react.useCallback)(function (ref) {
modal.current.backdrop = ref;
}, [])
});
}
var Modal = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
var _ref$show = _ref.show,
show = _ref$show === void 0 ? false : _ref$show,
_ref$role = _ref.role,
role = _ref$role === void 0 ? 'dialog' : _ref$role,
className = _ref.className,
style = _ref.style,
children = _ref.children,
_ref$backdrop = _ref.backdrop,
backdrop = _ref$backdrop === void 0 ? true : _ref$backdrop,
_ref$keyboard = _ref.keyboard,
keyboard = _ref$keyboard === void 0 ? true : _ref$keyboard,
onBackdropClick = _ref.onBackdropClick,
onEscapeKeyDown = _ref.onEscapeKeyDown,
transition = _ref.transition,
backdropTransition = _ref.backdropTransition,
_ref$autoFocus = _ref.autoFocus,
autoFocus = _ref$autoFocus === void 0 ? true : _ref$autoFocus,
_ref$enforceFocus = _ref.enforceFocus,
enforceFocus = _ref$enforceFocus === void 0 ? true : _ref$enforceFocus,
_ref$restoreFocus = _ref.restoreFocus,
restoreFocus = _ref$restoreFocus === void 0 ? true : _ref$restoreFocus,
restoreFocusOptions = _ref.restoreFocusOptions,
renderDialog = _ref.renderDialog,
_ref$renderBackdrop = _ref.renderBackdrop,
renderBackdrop = _ref$renderBackdrop === void 0 ? function (props) {
return /*#__PURE__*/_react["default"].createElement("div", props);
} : _ref$renderBackdrop,
providedManager = _ref.manager,
containerRef = _ref.container,
containerClassName = _ref.containerClassName,
onShow = _ref.onShow,
_ref$onHide = _ref.onHide,
onHide = _ref$onHide === void 0 ? function () {} : _ref$onHide,
onExit = _ref.onExit,
onExited = _ref.onExited,
onExiting = _ref.onExiting,
onEnter = _ref.onEnter,
onEntering = _ref.onEntering,
onEntered = _ref.onEntered,
rest = (0, _objectWithoutPropertiesLoose2["default"])(_ref, ["show", "role", "className", "style", "children", "backdrop", "keyboard", "onBackdropClick", "onEscapeKeyDown", "transition", "backdropTransition", "autoFocus", "enforceFocus", "restoreFocus", "restoreFocusOptions", "renderDialog", "renderBackdrop", "manager", "container", "containerClassName", "onShow", "onHide", "onExit", "onExited", "onExiting", "onEnter", "onEntering", "onEntered"]);
var container = (0, _useWaitForDOMRef["default"])(containerRef);
var modal = useModalManager(providedManager);
var isMounted = (0, _useMounted["default"])();
var prevShow = (0, _usePrevious["default"])(show);
var _useState = (0, _react.useState)(!show),
exited = _useState[0],
setExited = _useState[1];
var lastFocusRef = (0, _react.useRef)(null);
(0, _react.useImperativeHandle)(ref, function () {
return modal;
}, [modal]);
if (_canUseDOM["default"] && !prevShow && show) {
lastFocusRef.current = (0, _activeElement["default"])();
}
if (!transition && !show && !exited) {
setExited(true);
} else if (show && exited) {
setExited(false);
}
var handleShow = (0, _useEventCallback["default"])(function () {
modal.add(container, containerClassName);
removeKeydownListenerRef.current = (0, _listen["default"])(document, 'keydown', handleDocumentKeyDown);
removeFocusListenerRef.current = (0, _listen["default"])(document, 'focus', // the timeout is necessary b/c this will run before the new modal is mounted
// and so steals focus from it
function () {
return setTimeout(handleEnforceFocus);
}, true);
if (onShow) {
onShow();
} // autofocus after onShow to not trigger a focus event for previous
// modals before this one is shown.
if (autoFocus) {
var currentActiveElement = (0, _activeElement["default"])(document);
if (modal.dialog && currentActiveElement && !(0, _contains["default"])(modal.dialog, currentActiveElement)) {
lastFocusRef.current = currentActiveElement;
modal.dialog.focus();
}
}
});
var handleHide = (0, _useEventCallback["default"])(function () {
modal.remove();
removeKeydownListenerRef.current == null ? void 0 : removeKeydownListenerRef.current();
removeFocusListenerRef.current == null ? void 0 : removeFocusListenerRef.current();
if (restoreFocus) {
var _lastFocusRef$current;
// Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)
(_lastFocusRef$current = lastFocusRef.current) == null ? void 0 : _lastFocusRef$current.focus == null ? void 0 : _lastFocusRef$current.focus(restoreFocusOptions);
lastFocusRef.current = null;
}
}); // TODO: try and combine these effects: https://github.com/react-bootstrap/react-overlays/pull/794#discussion_r409954120
// Show logic when:
// - show is `true` _and_ `container` has resolved
(0, _react.useEffect)(function () {
if (!show || !container) return;
handleShow();
}, [show, container,
/* should never change: */
handleShow]); // Hide cleanup logic when:
// - `exited` switches to true
// - component unmounts;
(0, _react.useEffect)(function () {
if (!exited) return;
handleHide();
}, [exited, handleHide]);
(0, _useWillUnmount["default"])(function () {
handleHide();
}); // --------------------------------
var handleEnforceFocus = (0, _useEventCallback["default"])(function () {
if (!enforceFocus || !isMounted() || !modal.isTopModal()) {
return;
}
var currentActiveElement = (0, _activeElement["default"])();
if (modal.dialog && currentActiveElement && !(0, _contains["default"])(modal.dialog, currentActiveElement)) {
modal.dialog.focus();
}
});
var handleBackdropClick = (0, _useEventCallback["default"])(function (e) {
if (e.target !== e.currentTarget) {
return;
}
onBackdropClick == null ? void 0 : onBackdropClick(e);
if (backdrop === true) {
onHide();
}
});
var handleDocumentKeyDown = (0, _useEventCallback["default"])(function (e) {
if (keyboard && e.keyCode === 27 && modal.isTopModal()) {
onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(e);
if (!e.defaultPrevented) {
onHide();
}
}
});
var removeFocusListenerRef = (0, _react.useRef)();
var removeKeydownListenerRef = (0, _react.useRef)();
var handleHidden = function handleHidden() {
setExited(true);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
onExited == null ? void 0 : onExited.apply(void 0, args);
};
var Transition = transition;
if (!container || !(show || Transition && !exited)) {
return null;
}
var dialogProps = (0, _extends2["default"])({
role: role,
ref: modal.setDialogRef,
// apparently only works on the dialog role element
'aria-modal': role === 'dialog' ? true : undefined
}, rest, {
style: style,
className: className,
tabIndex: -1
});
var dialog = renderDialog ? renderDialog(dialogProps) : /*#__PURE__*/_react["default"].createElement("div", dialogProps, /*#__PURE__*/_react["default"].cloneElement(children, {
role: 'document'
}));
if (Transition) {
dialog = /*#__PURE__*/_react["default"].createElement(Transition, {
appear: true,
unmountOnExit: true,
"in": !!show,
onExit: onExit,
onExiting: onExiting,
onExited: handleHidden,
onEnter: onEnter,
onEntering: onEntering,
onEntered: onEntered
}, dialog);
}
var backdropElement = null;
if (backdrop) {
var BackdropTransition = backdropTransition;
backdropElement = renderBackdrop({
ref: modal.setBackdropRef,
onClick: handleBackdropClick
});
if (BackdropTransition) {
backdropElement = /*#__PURE__*/_react["default"].createElement(BackdropTransition, {
appear: true,
"in": !!show
}, backdropElement);
}
}
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_reactDom["default"].createPortal( /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, backdropElement, dialog), container));
});
var propTypes = {
/**
* Set the visibility of the Modal
*/
show: _propTypes["default"].bool,
/**
* A DOM element, a `ref` to an element, or function that returns either. The Modal is appended to it's `container` element.
*
* For the sake of assistive technologies, the container should usually be the document body, so that the rest of the
* page content can be placed behind a virtual backdrop as well as a visual one.
*/
container: _propTypes["default"].any,
/**
* A callback fired when the Modal is opening.
*/
onShow: _propTypes["default"].func,
/**
* A callback fired when either the backdrop is clicked, or the escape key is pressed.
*
* The `onHide` callback only signals intent from the Modal,
* you must actually set the `show` prop to `false` for the Modal to close.
*/
onHide: _propTypes["default"].func,
/**
* Include a backdrop component.
*/
backdrop: _propTypes["default"].oneOfType([_propTypes["default"].bool, _propTypes["default"].oneOf(['static'])]),
/**
* A function that returns the dialog component. Useful for custom
* rendering. **Note:** the component should make sure to apply the provided ref.
*
* ```js static
* renderDialog={props => <MyDialog {...props} />}
* ```
*/
renderDialog: _propTypes["default"].func,
/**
* A function that returns a backdrop component. Useful for custom
* backdrop rendering.
*
* ```js
* renderBackdrop={props => <MyBackdrop {...props} />}
* ```
*/
renderBackdrop: _propTypes["default"].func,
/**
* A callback fired when the escape key, if specified in `keyboard`, is pressed.
*
* If preventDefault() is called on the keyboard event, closing the modal will be cancelled.
*/
onEscapeKeyDown: _propTypes["default"].func,
/**
* A callback fired when the backdrop, if specified, is clicked.
*/
onBackdropClick: _propTypes["default"].func,
/**
* A css class or set of classes applied to the modal container when the modal is open,
* and removed when it is closed.
*/
containerClassName: _propTypes["default"].string,
/**
* Close the modal when escape key is pressed
*/
keyboard: _propTypes["default"].bool,
/**
* A `react-transition-group@2.0.0` `<Transition/>` component used
* to control animations for the dialog component.
*/
transition: _propTypes["default"].elementType,
/**
* A `react-transition-group@2.0.0` `<Transition/>` component used
* to control animations for the backdrop components.
*/
backdropTransition: _propTypes["default"].elementType,
/**
* When `true` The modal will automatically shift focus to itself when it opens, and
* replace it to the last focused element when it closes. This also
* works correctly with any Modal children that have the `autoFocus` prop.
*
* Generally this should never be set to `false` as it makes the Modal less
* accessible to assistive technologies, like screen readers.
*/
autoFocus: _propTypes["default"].bool,
/**
* When `true` The modal will prevent focus from leaving the Modal while open.
*
* Generally this should never be set to `false` as it makes the Modal less
* accessible to assistive technologies, like screen readers.
*/
enforceFocus: _propTypes["default"].bool,
/**
* When `true` The modal will restore focus to previously focused element once
* modal is hidden
*/
restoreFocus: _propTypes["default"].bool,
/**
* Options passed to focus function when `restoreFocus` is set to `true`
*
* @link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Parameters
*/
restoreFocusOptions: _propTypes["default"].shape({
preventScroll: _propTypes["default"].bool
}),
/**
* Callback fired before the Modal transitions in
*/
onEnter: _propTypes["default"].func,
/**
* Callback fired as the Modal begins to transition in
*/
onEntering: _propTypes["default"].func,
/**
* Callback fired after the Modal finishes transitioning in
*/
onEntered: _propTypes["default"].func,
/**
* Callback fired right before the Modal transitions out
*/
onExit: _propTypes["default"].func,
/**
* Callback fired as the Modal begins to transition out
*/
onExiting: _propTypes["default"].func,
/**
* Callback fired after the Modal finishes transitioning out
*/
onExited: _propTypes["default"].func,
/**
* A ModalManager instance used to track and manage the state of open
* Modals. Useful when customizing how modals interact within a container
*/
manager: _propTypes["default"].instanceOf(_ModalManager["default"])
};
Modal.displayName = 'Modal';
Modal.propTypes = propTypes;
var _default = Object.assign(Modal, {
Manager: _ModalManager["default"]
});
exports["default"] = _default;
module.exports = exports.default;

34
node_modules/react-overlays/cjs/ModalManager.d.ts generated vendored Normal file
View File

@@ -0,0 +1,34 @@
export interface ModalInstance {
dialog: Element;
backdrop: Element;
}
export declare type ContainerState = Record<string, any> & {
isOverflowing?: boolean;
style?: Partial<CSSStyleDeclaration>;
modals: ModalInstance[];
};
/**
* Proper state management for containers and the modals in those containers.
*
* @internal Used by the Modal to ensure proper styling of containers.
*/
declare class ModalManager {
readonly hideSiblingNodes: boolean;
readonly handleContainerOverflow: boolean;
readonly modals: ModalInstance[];
readonly containers: HTMLElement[];
readonly data: ContainerState[];
readonly scrollbarSize: number;
constructor({ hideSiblingNodes, handleContainerOverflow, }?: {
hideSiblingNodes?: boolean | undefined;
handleContainerOverflow?: boolean | undefined;
});
isContainerOverflowing(modal: ModalInstance): any;
containerIndexFromModal(modal: ModalInstance): number;
setContainerStyle(containerState: ContainerState, container: HTMLElement): void;
removeContainerStyle(containerState: ContainerState, container: HTMLElement): void;
add(modal: ModalInstance, container: HTMLElement, className?: string): number;
remove(modal: ModalInstance): void;
isTopModal(modal: ModalInstance): boolean;
}
export default ModalManager;

180
node_modules/react-overlays/cjs/ModalManager.js generated vendored Normal file
View File

@@ -0,0 +1,180 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _addClass = _interopRequireDefault(require("dom-helpers/addClass"));
var _removeClass = _interopRequireDefault(require("dom-helpers/removeClass"));
var _css = _interopRequireDefault(require("dom-helpers/css"));
var _scrollbarSize = _interopRequireDefault(require("dom-helpers/scrollbarSize"));
var _isOverflowing = _interopRequireDefault(require("./isOverflowing"));
var _manageAriaHidden = require("./manageAriaHidden");
function findIndexOf(arr, cb) {
var idx = -1;
arr.some(function (d, i) {
if (cb(d, i)) {
idx = i;
return true;
}
return false;
});
return idx;
}
/**
* Proper state management for containers and the modals in those containers.
*
* @internal Used by the Modal to ensure proper styling of containers.
*/
var ModalManager = /*#__PURE__*/function () {
function ModalManager(_temp) {
var _ref = _temp === void 0 ? {} : _temp,
_ref$hideSiblingNodes = _ref.hideSiblingNodes,
hideSiblingNodes = _ref$hideSiblingNodes === void 0 ? true : _ref$hideSiblingNodes,
_ref$handleContainerO = _ref.handleContainerOverflow,
handleContainerOverflow = _ref$handleContainerO === void 0 ? true : _ref$handleContainerO;
this.hideSiblingNodes = void 0;
this.handleContainerOverflow = void 0;
this.modals = void 0;
this.containers = void 0;
this.data = void 0;
this.scrollbarSize = void 0;
this.hideSiblingNodes = hideSiblingNodes;
this.handleContainerOverflow = handleContainerOverflow;
this.modals = [];
this.containers = [];
this.data = [];
this.scrollbarSize = (0, _scrollbarSize["default"])();
}
var _proto = ModalManager.prototype;
_proto.isContainerOverflowing = function isContainerOverflowing(modal) {
var data = this.data[this.containerIndexFromModal(modal)];
return data && data.overflowing;
};
_proto.containerIndexFromModal = function containerIndexFromModal(modal) {
return findIndexOf(this.data, function (d) {
return d.modals.indexOf(modal) !== -1;
});
};
_proto.setContainerStyle = function setContainerStyle(containerState, container) {
var style = {
overflow: 'hidden'
}; // we are only interested in the actual `style` here
// because we will override it
containerState.style = {
overflow: container.style.overflow,
paddingRight: container.style.paddingRight
};
if (containerState.overflowing) {
// use computed style, here to get the real padding
// to add our scrollbar width
style.paddingRight = parseInt((0, _css["default"])(container, 'paddingRight') || '0', 10) + this.scrollbarSize + "px";
}
(0, _css["default"])(container, style);
};
_proto.removeContainerStyle = function removeContainerStyle(containerState, container) {
Object.assign(container.style, containerState.style);
};
_proto.add = function add(modal, container, className) {
var modalIdx = this.modals.indexOf(modal);
var containerIdx = this.containers.indexOf(container);
if (modalIdx !== -1) {
return modalIdx;
}
modalIdx = this.modals.length;
this.modals.push(modal);
if (this.hideSiblingNodes) {
(0, _manageAriaHidden.hideSiblings)(container, modal);
}
if (containerIdx !== -1) {
this.data[containerIdx].modals.push(modal);
return modalIdx;
}
var data = {
modals: [modal],
// right now only the first modal of a container will have its classes applied
classes: className ? className.split(/\s+/) : [],
overflowing: (0, _isOverflowing["default"])(container)
};
if (this.handleContainerOverflow) {
this.setContainerStyle(data, container);
}
data.classes.forEach(_addClass["default"].bind(null, container));
this.containers.push(container);
this.data.push(data);
return modalIdx;
};
_proto.remove = function remove(modal) {
var modalIdx = this.modals.indexOf(modal);
if (modalIdx === -1) {
return;
}
var containerIdx = this.containerIndexFromModal(modal);
var data = this.data[containerIdx];
var container = this.containers[containerIdx];
data.modals.splice(data.modals.indexOf(modal), 1);
this.modals.splice(modalIdx, 1); // if that was the last modal in a container,
// clean up the container
if (data.modals.length === 0) {
data.classes.forEach(_removeClass["default"].bind(null, container));
if (this.handleContainerOverflow) {
this.removeContainerStyle(data, container);
}
if (this.hideSiblingNodes) {
(0, _manageAriaHidden.showSiblings)(container, modal);
}
this.containers.splice(containerIdx, 1);
this.data.splice(containerIdx, 1);
} else if (this.hideSiblingNodes) {
// otherwise make sure the next top modal is visible to a SR
var _data$modals = data.modals[data.modals.length - 1],
backdrop = _data$modals.backdrop,
dialog = _data$modals.dialog;
(0, _manageAriaHidden.ariaHidden)(false, dialog);
(0, _manageAriaHidden.ariaHidden)(false, backdrop);
}
};
_proto.isTopModal = function isTopModal(modal) {
return !!this.modals.length && this.modals[this.modals.length - 1] === modal;
};
return ModalManager;
}();
var _default = ModalManager;
exports["default"] = _default;
module.exports = exports.default;

45
node_modules/react-overlays/cjs/Overlay.d.ts generated vendored Normal file
View File

@@ -0,0 +1,45 @@
import React from 'react';
import { Placement, UsePopperOptions, Offset, State } from './usePopper';
import { RootCloseOptions } from './useRootClose';
import { DOMContainer } from './useWaitForDOMRef';
import { TransitionCallbacks } from './types';
export interface OverlayProps extends TransitionCallbacks {
flip?: boolean;
placement?: Placement;
offset?: Offset;
containerPadding?: number;
popperConfig?: Omit<UsePopperOptions, 'placement'>;
container?: DOMContainer;
target: DOMContainer;
show?: boolean;
transition?: React.ComponentType<{
in?: boolean;
appear?: boolean;
} & TransitionCallbacks>;
onHide?: (e: Event) => void;
rootClose?: boolean;
rootCloseDisabled?: boolean;
rootCloseEvent?: RootCloseOptions['clickTrigger'];
children: (value: {
show: boolean;
placement: Placement;
update: () => void;
forceUpdate: () => void;
state?: State;
props: Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style: React.CSSProperties;
'aria-labelledby'?: string;
};
arrowProps: Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style: React.CSSProperties;
};
}) => React.ReactNode;
}
/**
* Built on top of `Popper.js`, the overlay component is
* great for custom tooltip overlays.
*/
declare const Overlay: React.ForwardRefExoticComponent<OverlayProps & React.RefAttributes<HTMLElement>>;
export default Overlay;

275
node_modules/react-overlays/cjs/Overlay.js generated vendored Normal file
View File

@@ -0,0 +1,275 @@
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _reactDom = _interopRequireDefault(require("react-dom"));
var _useCallbackRef3 = _interopRequireDefault(require("@restart/hooks/useCallbackRef"));
var _useMergedRefs = _interopRequireDefault(require("@restart/hooks/useMergedRefs"));
var _popper = require("./popper");
var _usePopper2 = _interopRequireDefault(require("./usePopper"));
var _useRootClose = _interopRequireDefault(require("./useRootClose"));
var _useWaitForDOMRef = _interopRequireDefault(require("./useWaitForDOMRef"));
var _mergeOptionsWithPopperConfig = _interopRequireDefault(require("./mergeOptionsWithPopperConfig"));
/**
* Built on top of `Popper.js`, the overlay component is
* great for custom tooltip overlays.
*/
var Overlay = /*#__PURE__*/_react["default"].forwardRef(function (props, outerRef) {
var flip = props.flip,
offset = props.offset,
placement = props.placement,
_props$containerPaddi = props.containerPadding,
containerPadding = _props$containerPaddi === void 0 ? 5 : _props$containerPaddi,
_props$popperConfig = props.popperConfig,
popperConfig = _props$popperConfig === void 0 ? {} : _props$popperConfig,
Transition = props.transition;
var _useCallbackRef = (0, _useCallbackRef3["default"])(),
rootElement = _useCallbackRef[0],
attachRef = _useCallbackRef[1];
var _useCallbackRef2 = (0, _useCallbackRef3["default"])(),
arrowElement = _useCallbackRef2[0],
attachArrowRef = _useCallbackRef2[1];
var mergedRef = (0, _useMergedRefs["default"])(attachRef, outerRef);
var container = (0, _useWaitForDOMRef["default"])(props.container);
var target = (0, _useWaitForDOMRef["default"])(props.target);
var _useState = (0, _react.useState)(!props.show),
exited = _useState[0],
setExited = _useState[1];
var _usePopper = (0, _usePopper2["default"])(target, rootElement, (0, _mergeOptionsWithPopperConfig["default"])({
placement: placement,
enableEvents: !!props.show,
containerPadding: containerPadding || 5,
flip: flip,
offset: offset,
arrowElement: arrowElement,
popperConfig: popperConfig
})),
styles = _usePopper.styles,
attributes = _usePopper.attributes,
popper = (0, _objectWithoutPropertiesLoose2["default"])(_usePopper, ["styles", "attributes"]);
if (props.show) {
if (exited) setExited(false);
} else if (!props.transition && !exited) {
setExited(true);
}
var handleHidden = function handleHidden() {
setExited(true);
if (props.onExited) {
props.onExited.apply(props, arguments);
}
}; // Don't un-render the overlay while it's transitioning out.
var mountOverlay = props.show || Transition && !exited;
(0, _useRootClose["default"])(rootElement, props.onHide, {
disabled: !props.rootClose || props.rootCloseDisabled,
clickTrigger: props.rootCloseEvent
});
if (!mountOverlay) {
// Don't bother showing anything if we don't have to.
return null;
}
var child = props.children((0, _extends2["default"])({}, popper, {
show: !!props.show,
props: (0, _extends2["default"])({}, attributes.popper, {
style: styles.popper,
ref: mergedRef
}),
arrowProps: (0, _extends2["default"])({}, attributes.arrow, {
style: styles.arrow,
ref: attachArrowRef
})
}));
if (Transition) {
var onExit = props.onExit,
onExiting = props.onExiting,
onEnter = props.onEnter,
onEntering = props.onEntering,
onEntered = props.onEntered;
child = /*#__PURE__*/_react["default"].createElement(Transition, {
"in": props.show,
appear: true,
onExit: onExit,
onExiting: onExiting,
onExited: handleHidden,
onEnter: onEnter,
onEntering: onEntering,
onEntered: onEntered
}, child);
}
return container ? /*#__PURE__*/_reactDom["default"].createPortal(child, container) : null;
});
Overlay.displayName = 'Overlay';
Overlay.propTypes = {
/**
* Set the visibility of the Overlay
*/
show: _propTypes["default"].bool,
/** Specify where the overlay element is positioned in relation to the target element */
placement: _propTypes["default"].oneOf(_popper.placements),
/**
* A DOM Element, Ref to an element, or function that returns either. The `target` element is where
* the overlay is positioned relative to.
*/
target: _propTypes["default"].any,
/**
* A DOM Element, Ref to an element, or function that returns either. The `container` will have the Portal children
* appended to it.
*/
container: _propTypes["default"].any,
/**
* Enables the Popper.js `flip` modifier, allowing the Overlay to
* automatically adjust it's placement in case of overlap with the viewport or toggle.
* Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info
*/
flip: _propTypes["default"].bool,
/**
* A render prop that returns an element to overlay and position. See
* the [react-popper documentation](https://github.com/FezVrasta/react-popper#children) for more info.
*
* @type {Function ({
* show: boolean,
* placement: Placement,
* update: () => void,
* forceUpdate: () => void,
* props: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* aria-labelledby: ?string
* [string]: string | number,
* },
* arrowProps: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* [string]: string | number,
* },
* }) => React.Element}
*/
children: _propTypes["default"].func.isRequired,
/**
* Control how much space there is between the edge of the boundary element and overlay.
* A convenience shortcut to setting `popperConfig.modfiers.preventOverflow.padding`
*/
containerPadding: _propTypes["default"].number,
/**
* A set of popper options and props passed directly to react-popper's Popper component.
*/
popperConfig: _propTypes["default"].object,
/**
* Specify whether the overlay should trigger `onHide` when the user clicks outside the overlay
*/
rootClose: _propTypes["default"].bool,
/**
* Specify event for toggling overlay
*/
rootCloseEvent: _propTypes["default"].oneOf(['click', 'mousedown']),
/**
* Specify disabled for disable RootCloseWrapper
*/
rootCloseDisabled: _propTypes["default"].bool,
/**
* A Callback fired by the Overlay when it wishes to be hidden.
*
* __required__ when `rootClose` is `true`.
*
* @type func
*/
onHide: function onHide(props) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
if (props.rootClose) {
var _PropTypes$func;
return (_PropTypes$func = _propTypes["default"].func).isRequired.apply(_PropTypes$func, [props].concat(args));
}
return _propTypes["default"].func.apply(_propTypes["default"], [props].concat(args));
},
/**
* A `react-transition-group@2.0.0` `<Transition/>` component
* used to animate the overlay as it changes visibility.
*/
// @ts-ignore
transition: _propTypes["default"].elementType,
/**
* Callback fired before the Overlay transitions in
*/
onEnter: _propTypes["default"].func,
/**
* Callback fired as the Overlay begins to transition in
*/
onEntering: _propTypes["default"].func,
/**
* Callback fired after the Overlay finishes transitioning in
*/
onEntered: _propTypes["default"].func,
/**
* Callback fired right before the Overlay transitions out
*/
onExit: _propTypes["default"].func,
/**
* Callback fired as the Overlay begins to transition out
*/
onExiting: _propTypes["default"].func,
/**
* Callback fired after the Overlay finishes transitioning out
*/
onExited: _propTypes["default"].func
};
var _default = Overlay;
exports["default"] = _default;
module.exports = exports.default;

24
node_modules/react-overlays/cjs/Portal.d.ts generated vendored Normal file
View File

@@ -0,0 +1,24 @@
import PropTypes from 'prop-types';
import React from 'react';
import { DOMContainer } from './useWaitForDOMRef';
export interface PortalProps {
children: React.ReactElement;
container: DOMContainer;
onRendered?: (element: any) => void;
}
/**
* @public
*/
declare const Portal: {
({ container, children, onRendered }: PortalProps): JSX.Element | null;
displayName: string;
propTypes: {
/**
* A DOM element, Ref to an element, or function that returns either. The `container` will have the Portal children
* appended to it.
*/
container: PropTypes.Requireable<any>;
onRendered: PropTypes.Requireable<(...args: any[]) => any>;
};
};
export default Portal;

40
node_modules/react-overlays/cjs/Portal.js generated vendored Normal file
View File

@@ -0,0 +1,40 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactDom = _interopRequireDefault(require("react-dom"));
var _react = _interopRequireDefault(require("react"));
var _useWaitForDOMRef = _interopRequireDefault(require("./useWaitForDOMRef"));
var propTypes = {
/**
* A DOM element, Ref to an element, or function that returns either. The `container` will have the Portal children
* appended to it.
*/
container: _propTypes["default"].any,
onRendered: _propTypes["default"].func
};
/**
* @public
*/
var Portal = function Portal(_ref) {
var container = _ref.container,
children = _ref.children,
onRendered = _ref.onRendered;
var resolvedContainer = (0, _useWaitForDOMRef["default"])(container, onRendered);
return resolvedContainer ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_reactDom["default"].createPortal(children, resolvedContainer)) : null;
};
Portal.displayName = 'Portal';
Portal.propTypes = propTypes;
var _default = Portal;
exports["default"] = _default;
module.exports = exports.default;

8
node_modules/react-overlays/cjs/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import Dropdown from './Dropdown';
import { useDropdownMenu } from './DropdownMenu';
import { useDropdownToggle } from './DropdownToggle';
import Modal from './Modal';
import Overlay from './Overlay';
import Portal from './Portal';
import useRootClose from './useRootClose';
export { Dropdown, useDropdownMenu, useDropdownToggle, Modal, Overlay, Portal, useRootClose, };

33
node_modules/react-overlays/cjs/index.js generated vendored Normal file
View File

@@ -0,0 +1,33 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
var _Dropdown = _interopRequireDefault(require("./Dropdown"));
exports.Dropdown = _Dropdown["default"];
var _DropdownMenu = require("./DropdownMenu");
exports.useDropdownMenu = _DropdownMenu.useDropdownMenu;
var _DropdownToggle = require("./DropdownToggle");
exports.useDropdownToggle = _DropdownToggle.useDropdownToggle;
var _Modal = _interopRequireDefault(require("./Modal"));
exports.Modal = _Modal["default"];
var _Overlay = _interopRequireDefault(require("./Overlay"));
exports.Overlay = _Overlay["default"];
var _Portal = _interopRequireDefault(require("./Portal"));
exports.Portal = _Portal["default"];
var _useRootClose = _interopRequireDefault(require("./useRootClose"));
exports.useRootClose = _useRootClose["default"];

1
node_modules/react-overlays/cjs/isOverflowing.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export default function isOverflowing(container: Element): boolean;

27
node_modules/react-overlays/cjs/isOverflowing.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = isOverflowing;
var _isWindow = _interopRequireDefault(require("dom-helpers/isWindow"));
var _ownerDocument = _interopRequireDefault(require("dom-helpers/ownerDocument"));
function isBody(node) {
return node && node.tagName.toLowerCase() === 'body';
}
function bodyIsOverflowing(node) {
var doc = (0, _isWindow["default"])(node) ? (0, _ownerDocument["default"])() : (0, _ownerDocument["default"])(node);
var win = (0, _isWindow["default"])(node) || doc.defaultView;
return doc.body.clientWidth < win.innerWidth;
}
function isOverflowing(container) {
var win = (0, _isWindow["default"])(container);
return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;
}
module.exports = exports.default;

View File

@@ -0,0 +1,8 @@
export declare function ariaHidden(hide: boolean, node: Element | null | undefined): void;
interface SiblingExclusions {
dialog: Element;
backdrop: Element;
}
export declare function hideSiblings(container: Element, { dialog, backdrop }: SiblingExclusions): void;
export declare function showSiblings(container: Element, { dialog, backdrop }: SiblingExclusions): void;
export {};

47
node_modules/react-overlays/cjs/manageAriaHidden.js generated vendored Normal file
View File

@@ -0,0 +1,47 @@
"use strict";
exports.__esModule = true;
exports.ariaHidden = ariaHidden;
exports.hideSiblings = hideSiblings;
exports.showSiblings = showSiblings;
var BLACKLIST = ['template', 'script', 'style'];
var isHidable = function isHidable(_ref) {
var nodeType = _ref.nodeType,
tagName = _ref.tagName;
return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;
};
var siblings = function siblings(container, exclude, cb) {
[].forEach.call(container.children, function (node) {
if (exclude.indexOf(node) === -1 && isHidable(node)) {
cb(node);
}
});
};
function ariaHidden(hide, node) {
if (!node) return;
if (hide) {
node.setAttribute('aria-hidden', 'true');
} else {
node.removeAttribute('aria-hidden');
}
}
function hideSiblings(container, _ref2) {
var dialog = _ref2.dialog,
backdrop = _ref2.backdrop;
siblings(container, [dialog, backdrop], function (node) {
return ariaHidden(true, node);
});
}
function showSiblings(container, _ref3) {
var dialog = _ref3.dialog,
backdrop = _ref3.backdrop;
siblings(container, [dialog, backdrop], function (node) {
return ariaHidden(false, node);
});
}

View File

@@ -0,0 +1,16 @@
import { UsePopperOptions, Offset, Placement, Modifiers } from './usePopper';
export declare type Config = {
flip?: boolean;
fixed?: boolean;
alignEnd?: boolean;
enabled?: boolean;
containerPadding?: number;
arrowElement?: Element | null;
enableEvents?: boolean;
offset?: Offset;
placement?: Placement;
popperConfig?: UsePopperOptions;
};
export declare function toModifierMap(modifiers: Modifiers | undefined): Record<string, Partial<import("./usePopper").Modifier<any, any>>>;
export declare function toModifierArray(map?: Modifiers | undefined): Partial<import("@popperjs/core").Modifier<any, any>>[];
export default function mergeOptionsWithPopperConfig({ enabled, enableEvents, placement, flip, offset, fixed, containerPadding, arrowElement, popperConfig, }: Config): UsePopperOptions;

View File

@@ -0,0 +1,81 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.toModifierMap = toModifierMap;
exports.toModifierArray = toModifierArray;
exports["default"] = mergeOptionsWithPopperConfig;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
function toModifierMap(modifiers) {
var result = {};
if (!Array.isArray(modifiers)) {
return modifiers || result;
} // eslint-disable-next-line no-unused-expressions
modifiers == null ? void 0 : modifiers.forEach(function (m) {
result[m.name] = m;
});
return result;
}
function toModifierArray(map) {
if (map === void 0) {
map = {};
}
if (Array.isArray(map)) return map;
return Object.keys(map).map(function (k) {
map[k].name = k;
return map[k];
});
}
function mergeOptionsWithPopperConfig(_ref) {
var _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;
var enabled = _ref.enabled,
enableEvents = _ref.enableEvents,
placement = _ref.placement,
flip = _ref.flip,
offset = _ref.offset,
fixed = _ref.fixed,
containerPadding = _ref.containerPadding,
arrowElement = _ref.arrowElement,
_ref$popperConfig = _ref.popperConfig,
popperConfig = _ref$popperConfig === void 0 ? {} : _ref$popperConfig;
var modifiers = toModifierMap(popperConfig.modifiers);
return (0, _extends2["default"])({}, popperConfig, {
placement: placement,
enabled: enabled,
strategy: fixed ? 'fixed' : popperConfig.strategy,
modifiers: toModifierArray((0, _extends2["default"])({}, modifiers, {
eventListeners: {
enabled: enableEvents
},
preventOverflow: (0, _extends2["default"])({}, modifiers.preventOverflow, {
options: containerPadding ? (0, _extends2["default"])({
padding: containerPadding
}, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options
}),
offset: {
options: (0, _extends2["default"])({
offset: offset
}, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)
},
arrow: (0, _extends2["default"])({}, modifiers.arrow, {
enabled: !!arrowElement,
options: (0, _extends2["default"])({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {
element: arrowElement
})
}),
flip: (0, _extends2["default"])({
enabled: !!flip
}, modifiers.flip)
}))
});
}

2
node_modules/react-overlays/cjs/ownerDocument.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
declare const _default: (componentOrElement: React.ComponentClass | Element | null | undefined) => Document;
export default _default;

17
node_modules/react-overlays/cjs/ownerDocument.js generated vendored Normal file
View File

@@ -0,0 +1,17 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _ownerDocument = _interopRequireDefault(require("dom-helpers/ownerDocument"));
var _safeFindDOMNode = _interopRequireDefault(require("./safeFindDOMNode"));
var _default = function _default(componentOrElement) {
return (0, _ownerDocument["default"])((0, _safeFindDOMNode["default"])(componentOrElement));
};
exports["default"] = _default;
module.exports = exports.default;

3
node_modules/react-overlays/cjs/popper.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import { placements } from '@popperjs/core/lib/enums';
export declare const createPopper: <TModifier extends Partial<import("@popperjs/core/lib/types").Modifier<any, any>>>(reference: Element | import("@popperjs/core/lib/types").VirtualElement, popper: HTMLElement, options?: Partial<import("@popperjs/core/lib/types").OptionsGeneric<TModifier>> | undefined) => import("@popperjs/core/lib/types").Instance;
export { placements };

1907
node_modules/react-overlays/cjs/popper.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

2
node_modules/react-overlays/cjs/safeFindDOMNode.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
/// <reference types="react" />
export default function safeFindDOMNode(componentOrElement: React.ComponentClass | Element | null | undefined): Element | Text | null;

18
node_modules/react-overlays/cjs/safeFindDOMNode.js generated vendored Normal file
View File

@@ -0,0 +1,18 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = safeFindDOMNode;
var _reactDom = _interopRequireDefault(require("react-dom"));
function safeFindDOMNode(componentOrElement) {
if (componentOrElement && 'setState' in componentOrElement) {
return _reactDom["default"].findDOMNode(componentOrElement);
}
return componentOrElement != null ? componentOrElement : null;
}
module.exports = exports.default;

8
node_modules/react-overlays/cjs/types.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
export interface TransitionCallbacks {
onEnter?(node: HTMLElement, isAppearing: boolean): any;
onEntered?(node: HTMLElement, isAppearing: boolean): any;
onEntering?(node: HTMLElement, isAppearing: boolean): any;
onExit?(node: HTMLElement): any;
onExited?(node: HTMLElement): any;
onExiting?(node: HTMLElement): any;
}

52
node_modules/react-overlays/cjs/usePopper.d.ts generated vendored Normal file
View File

@@ -0,0 +1,52 @@
import * as Popper from '@popperjs/core';
declare type OptionsWithUndefined<T extends Popper.Obj | undefined> = T extends Popper.Obj ? T : Popper.Obj;
export declare type Modifier<Name, Options extends Popper.Obj | undefined> = Popper.Modifier<Name, OptionsWithUndefined<Options>>;
export declare type Options = Popper.Options;
export declare type Instance = Popper.Instance;
export declare type Placement = Popper.Placement;
export declare type VirtualElement = Popper.VirtualElement;
export declare type State = Popper.State;
export declare type OffsetValue = [
number | null | undefined,
number | null | undefined
];
export declare type OffsetFunction = (details: {
popper: Popper.Rect;
reference: Popper.Rect;
placement: Placement;
}) => OffsetValue;
export declare type Offset = OffsetFunction | OffsetValue;
export declare type ModifierMap = Record<string, Partial<Modifier<any, any>>>;
export declare type Modifiers = Popper.Options['modifiers'] | Record<string, Partial<Modifier<any, any>>>;
export declare type UsePopperOptions = Omit<Options, 'modifiers' | 'placement' | 'strategy'> & {
enabled?: boolean;
placement?: Options['placement'];
strategy?: Options['strategy'];
modifiers?: Options['modifiers'];
};
export interface UsePopperState {
placement: Placement;
update: () => void;
forceUpdate: () => void;
attributes: Record<string, Record<string, any>>;
styles: Record<string, Partial<CSSStyleDeclaration>>;
state?: State;
}
/**
* Position an element relative some reference element using Popper.js
*
* @param referenceElement
* @param popperElement
* @param {object} options
* @param {object=} options.modifiers Popper.js modifiers
* @param {boolean=} options.enabled toggle the popper functionality on/off
* @param {string=} options.placement The popper element placement relative to the reference element
* @param {string=} options.strategy the positioning strategy
* @param {boolean=} options.eventsEnabled have Popper listen on window resize events to reposition the element
* @param {function=} options.onCreate called when the popper is created
* @param {function=} options.onUpdate called when the popper is updated
*
* @returns {UsePopperState} The popper state
*/
declare function usePopper(referenceElement: VirtualElement | null | undefined, popperElement: HTMLElement | null | undefined, { enabled, placement, strategy, modifiers, ...config }?: UsePopperOptions): UsePopperState;
export default usePopper;

192
node_modules/react-overlays/cjs/usePopper.js generated vendored Normal file
View File

@@ -0,0 +1,192 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
var _react = require("react");
var _useSafeState2 = _interopRequireDefault(require("@restart/hooks/useSafeState"));
var _popper = require("./popper");
var initialPopperStyles = function initialPopperStyles(position) {
return {
position: position,
top: '0',
left: '0',
opacity: '0',
pointerEvents: 'none'
};
};
var disabledApplyStylesModifier = {
name: 'applyStyles',
enabled: false
}; // In order to satisfy the current usage of options, including undefined
var ariaDescribedByModifier = {
name: 'ariaDescribedBy',
enabled: true,
phase: 'afterWrite',
effect: function effect(_ref) {
var state = _ref.state;
return function () {
var _state$elements = state.elements,
reference = _state$elements.reference,
popper = _state$elements.popper;
if ('removeAttribute' in reference) {
var ids = (reference.getAttribute('aria-describedby') || '').split(',').filter(function (id) {
return id.trim() !== popper.id;
});
if (!ids.length) reference.removeAttribute('aria-describedby');else reference.setAttribute('aria-describedby', ids.join(','));
}
};
},
fn: function fn(_ref2) {
var _popper$getAttribute;
var state = _ref2.state;
var _state$elements2 = state.elements,
popper = _state$elements2.popper,
reference = _state$elements2.reference;
var role = (_popper$getAttribute = popper.getAttribute('role')) == null ? void 0 : _popper$getAttribute.toLowerCase();
if (popper.id && role === 'tooltip' && 'setAttribute' in reference) {
var ids = reference.getAttribute('aria-describedby');
if (ids && ids.split(',').indexOf(popper.id) !== -1) {
return;
}
reference.setAttribute('aria-describedby', ids ? ids + "," + popper.id : popper.id);
}
}
};
var EMPTY_MODIFIERS = [];
/**
* Position an element relative some reference element using Popper.js
*
* @param referenceElement
* @param popperElement
* @param {object} options
* @param {object=} options.modifiers Popper.js modifiers
* @param {boolean=} options.enabled toggle the popper functionality on/off
* @param {string=} options.placement The popper element placement relative to the reference element
* @param {string=} options.strategy the positioning strategy
* @param {boolean=} options.eventsEnabled have Popper listen on window resize events to reposition the element
* @param {function=} options.onCreate called when the popper is created
* @param {function=} options.onUpdate called when the popper is updated
*
* @returns {UsePopperState} The popper state
*/
function usePopper(referenceElement, popperElement, _temp) {
var _ref3 = _temp === void 0 ? {} : _temp,
_ref3$enabled = _ref3.enabled,
enabled = _ref3$enabled === void 0 ? true : _ref3$enabled,
_ref3$placement = _ref3.placement,
placement = _ref3$placement === void 0 ? 'bottom' : _ref3$placement,
_ref3$strategy = _ref3.strategy,
strategy = _ref3$strategy === void 0 ? 'absolute' : _ref3$strategy,
_ref3$modifiers = _ref3.modifiers,
modifiers = _ref3$modifiers === void 0 ? EMPTY_MODIFIERS : _ref3$modifiers,
config = (0, _objectWithoutPropertiesLoose2["default"])(_ref3, ["enabled", "placement", "strategy", "modifiers"]);
var popperInstanceRef = (0, _react.useRef)();
var update = (0, _react.useCallback)(function () {
var _popperInstanceRef$cu;
(_popperInstanceRef$cu = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu.update();
}, []);
var forceUpdate = (0, _react.useCallback)(function () {
var _popperInstanceRef$cu2;
(_popperInstanceRef$cu2 = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu2.forceUpdate();
}, []);
var _useSafeState = (0, _useSafeState2["default"])((0, _react.useState)({
placement: placement,
update: update,
forceUpdate: forceUpdate,
attributes: {},
styles: {
popper: initialPopperStyles(strategy),
arrow: {}
}
})),
popperState = _useSafeState[0],
setState = _useSafeState[1];
var updateModifier = (0, _react.useMemo)(function () {
return {
name: 'updateStateModifier',
enabled: true,
phase: 'write',
requires: ['computeStyles'],
fn: function fn(_ref4) {
var state = _ref4.state;
var styles = {};
var attributes = {};
Object.keys(state.elements).forEach(function (element) {
styles[element] = state.styles[element];
attributes[element] = state.attributes[element];
});
setState({
state: state,
styles: styles,
attributes: attributes,
update: update,
forceUpdate: forceUpdate,
placement: state.placement
});
}
};
}, [update, forceUpdate, setState]);
(0, _react.useEffect)(function () {
if (!popperInstanceRef.current || !enabled) return;
popperInstanceRef.current.setOptions({
placement: placement,
strategy: strategy,
modifiers: [].concat(modifiers, [updateModifier, disabledApplyStylesModifier])
}); // intentionally NOT re-running on new modifiers
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [strategy, placement, updateModifier, enabled]);
(0, _react.useEffect)(function () {
if (!enabled || referenceElement == null || popperElement == null) {
return undefined;
}
popperInstanceRef.current = (0, _popper.createPopper)(referenceElement, popperElement, (0, _extends2["default"])({}, config, {
placement: placement,
strategy: strategy,
modifiers: [].concat(modifiers, [ariaDescribedByModifier, updateModifier])
}));
return function () {
if (popperInstanceRef.current != null) {
popperInstanceRef.current.destroy();
popperInstanceRef.current = undefined;
setState(function (s) {
return (0, _extends2["default"])({}, s, {
attributes: {},
styles: {
popper: initialPopperStyles(strategy)
}
});
});
}
}; // This is only run once to _create_ the popper
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [enabled, referenceElement, popperElement]);
return popperState;
}
var _default = usePopper;
exports["default"] = _default;
module.exports = exports.default;

22
node_modules/react-overlays/cjs/useRootClose.d.ts generated vendored Normal file
View File

@@ -0,0 +1,22 @@
/// <reference types="react" />
export declare type MouseEvents = {
[K in keyof GlobalEventHandlersEventMap]: GlobalEventHandlersEventMap[K] extends MouseEvent ? K : never;
}[keyof GlobalEventHandlersEventMap];
export interface RootCloseOptions {
disabled?: boolean;
clickTrigger?: MouseEvents;
}
/**
* The `useRootClose` hook registers your callback on the document
* when rendered. Powers the `<Overlay/>` component. This is used achieve modal
* style behavior where your callback is triggered when the user tries to
* interact with the rest of the document or hits the `esc` key.
*
* @param {Ref<HTMLElement>| HTMLElement} ref The element boundary
* @param {function} onRootClose
* @param {object=} options
* @param {boolean=} options.disabled
* @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on
*/
declare function useRootClose(ref: React.RefObject<Element> | Element | null | undefined, onRootClose: (e: Event) => void, { disabled, clickTrigger }?: RootCloseOptions): void;
export default useRootClose;

122
node_modules/react-overlays/cjs/useRootClose.js generated vendored Normal file
View File

@@ -0,0 +1,122 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = void 0;
var _contains = _interopRequireDefault(require("dom-helpers/contains"));
var _listen = _interopRequireDefault(require("dom-helpers/listen"));
var _react = require("react");
var _useEventCallback = _interopRequireDefault(require("@restart/hooks/useEventCallback"));
var _warning = _interopRequireDefault(require("warning"));
var _ownerDocument = _interopRequireDefault(require("./ownerDocument"));
var escapeKeyCode = 27;
var noop = function noop() {};
function isLeftClickEvent(event) {
return event.button === 0;
}
function isModifiedEvent(event) {
return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
}
var getRefTarget = function getRefTarget(ref) {
return ref && ('current' in ref ? ref.current : ref);
};
/**
* The `useRootClose` hook registers your callback on the document
* when rendered. Powers the `<Overlay/>` component. This is used achieve modal
* style behavior where your callback is triggered when the user tries to
* interact with the rest of the document or hits the `esc` key.
*
* @param {Ref<HTMLElement>| HTMLElement} ref The element boundary
* @param {function} onRootClose
* @param {object=} options
* @param {boolean=} options.disabled
* @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on
*/
function useRootClose(ref, onRootClose, _temp) {
var _ref = _temp === void 0 ? {} : _temp,
disabled = _ref.disabled,
_ref$clickTrigger = _ref.clickTrigger,
clickTrigger = _ref$clickTrigger === void 0 ? 'click' : _ref$clickTrigger;
var preventMouseRootCloseRef = (0, _react.useRef)(false);
var onClose = onRootClose || noop;
var handleMouseCapture = (0, _react.useCallback)(function (e) {
var _e$composedPath$;
var currentTarget = getRefTarget(ref);
(0, _warning["default"])(!!currentTarget, 'RootClose captured a close event but does not have a ref to compare it to. ' + 'useRootClose(), should be passed a ref that resolves to a DOM node');
preventMouseRootCloseRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!(0, _contains["default"])(currentTarget, (_e$composedPath$ = e.composedPath == null ? void 0 : e.composedPath()[0]) != null ? _e$composedPath$ : e.target);
}, [ref]);
var handleMouse = (0, _useEventCallback["default"])(function (e) {
if (!preventMouseRootCloseRef.current) {
onClose(e);
}
});
var handleKeyUp = (0, _useEventCallback["default"])(function (e) {
if (e.keyCode === escapeKeyCode) {
onClose(e);
}
});
(0, _react.useEffect)(function () {
if (disabled || ref == null) return undefined; // Store the current event to avoid triggering handlers immediately
// https://github.com/facebook/react/issues/20074
var currentEvent = window.event;
var doc = (0, _ownerDocument["default"])(getRefTarget(ref)); // Use capture for this listener so it fires before React's listener, to
// avoid false positives in the contains() check below if the target DOM
// element is removed in the React mouse callback.
var removeMouseCaptureListener = (0, _listen["default"])(doc, clickTrigger, handleMouseCapture, true);
var removeMouseListener = (0, _listen["default"])(doc, clickTrigger, function (e) {
// skip if this event is the same as the one running when we added the handlers
if (e === currentEvent) {
currentEvent = undefined;
return;
}
handleMouse(e);
});
var removeKeyupListener = (0, _listen["default"])(doc, 'keyup', function (e) {
// skip if this event is the same as the one running when we added the handlers
if (e === currentEvent) {
currentEvent = undefined;
return;
}
handleKeyUp(e);
});
var mobileSafariHackListeners = [];
if ('ontouchstart' in doc.documentElement) {
mobileSafariHackListeners = [].slice.call(doc.body.children).map(function (el) {
return (0, _listen["default"])(el, 'mousemove', noop);
});
}
return function () {
removeMouseCaptureListener();
removeMouseListener();
removeKeyupListener();
mobileSafariHackListeners.forEach(function (remove) {
return remove();
});
};
}, [ref, disabled, clickTrigger, handleMouseCapture, handleMouse, handleKeyUp]);
}
var _default = useRootClose;
exports["default"] = _default;
module.exports = exports.default;

View File

@@ -0,0 +1,4 @@
/// <reference types="react" />
export declare type DOMContainer<T extends HTMLElement = HTMLElement> = T | React.RefObject<T> | null | (() => T | React.RefObject<T> | null);
export declare const resolveContainerRef: <T extends HTMLElement>(ref: DOMContainer<T> | undefined) => HTMLBodyElement | T | null;
export default function useWaitForDOMRef<T extends HTMLElement = HTMLElement>(ref: DOMContainer<T> | undefined, onResolved?: (element: T | HTMLBodyElement) => void): HTMLBodyElement | T | null;

51
node_modules/react-overlays/cjs/useWaitForDOMRef.js generated vendored Normal file
View File

@@ -0,0 +1,51 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = useWaitForDOMRef;
exports.resolveContainerRef = void 0;
var _ownerDocument = _interopRequireDefault(require("dom-helpers/ownerDocument"));
var _react = require("react");
var resolveContainerRef = function resolveContainerRef(ref) {
var _ref;
if (typeof document === 'undefined') return null;
if (ref == null) return (0, _ownerDocument["default"])().body;
if (typeof ref === 'function') ref = ref();
if (ref && 'current' in ref) ref = ref.current;
if ((_ref = ref) != null && _ref.nodeType) return ref || null;
return null;
};
exports.resolveContainerRef = resolveContainerRef;
function useWaitForDOMRef(ref, onResolved) {
var _useState = (0, _react.useState)(function () {
return resolveContainerRef(ref);
}),
resolvedRef = _useState[0],
setRef = _useState[1];
if (!resolvedRef) {
var earlyRef = resolveContainerRef(ref);
if (earlyRef) setRef(earlyRef);
}
(0, _react.useEffect)(function () {
if (onResolved && resolvedRef) {
onResolved(resolvedRef);
}
}, [onResolved, resolvedRef]);
(0, _react.useEffect)(function () {
var nextRef = resolveContainerRef(ref);
if (nextRef !== resolvedRef) {
setRef(nextRef);
}
}, [ref, resolvedRef]);
return resolvedRef;
}

90
node_modules/react-overlays/esm/Dropdown.d.ts generated vendored Normal file
View File

@@ -0,0 +1,90 @@
import React from 'react';
import PropTypes from 'prop-types';
import { DropDirection } from './DropdownContext';
import DropdownMenu from './DropdownMenu';
import DropdownToggle from './DropdownToggle';
export interface DropdownInjectedProps {
onKeyDown: React.KeyboardEventHandler;
}
export interface DropdownProps {
drop?: DropDirection;
alignEnd?: boolean;
defaultShow?: boolean;
show?: boolean;
onToggle: (nextShow: boolean, event?: React.SyntheticEvent | Event) => void;
itemSelector?: string;
focusFirstItemOnShow?: false | true | 'keyboard';
children: React.ReactNode;
}
/**
* @displayName Dropdown
* @public
*/
declare function Dropdown({ drop, alignEnd, defaultShow, show: rawShow, onToggle: rawOnToggle, itemSelector, focusFirstItemOnShow, children, }: DropdownProps): JSX.Element;
declare namespace Dropdown {
var displayName: string;
var propTypes: {
/**
* A render prop that returns the root dropdown element. The `props`
* argument should spread through to an element containing _both_ the
* menu and toggle in order to handle keyboard events for focus management.
*
* @type {Function ({
* props: {
* onKeyDown: (SyntheticEvent) => void,
* },
* }) => React.Element}
*/
children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
/**
* Determines the direction and location of the Menu in relation to it's Toggle.
*/
drop: PropTypes.Requireable<string>;
/**
* Controls the focus behavior for when the Dropdown is opened. Set to
* `true` to always focus the first menu item, `keyboard` to focus only when
* navigating via the keyboard, or `false` to disable completely
*
* The Default behavior is `false` **unless** the Menu has a `role="menu"`
* where it will default to `keyboard` to match the recommended [ARIA Authoring practices](https://www.w3.org/TR/wai-aria-practices-1.1/#menubutton).
*/
focusFirstItemOnShow: PropTypes.Requireable<string | boolean>;
/**
* A css slector string that will return __focusable__ menu items.
* Selectors should be relative to the menu component:
* e.g. ` > li:not('.disabled')`
*/
itemSelector: PropTypes.Requireable<string>;
/**
* Align the menu to the 'end' side of the placement side of the Dropdown toggle. The default placement is `top-start` or `bottom-start`.
*/
alignEnd: PropTypes.Requireable<boolean>;
/**
* Whether or not the Dropdown is visible.
*
* @controllable onToggle
*/
show: PropTypes.Requireable<boolean>;
/**
* Sets the initial show position of the Dropdown.
*/
defaultShow: PropTypes.Requireable<boolean>;
/**
* A callback fired when the Dropdown wishes to change visibility. Called with the requested
* `show` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`.
*
* ```ts static
* function(
* isOpen: boolean,
* event: SyntheticEvent,
* ): void
* ```
*
* @controllable show
*/
onToggle: PropTypes.Requireable<(...args: any[]) => any>;
};
var Menu: typeof DropdownMenu;
var Toggle: typeof DropdownToggle;
}
export default Dropdown;

270
node_modules/react-overlays/esm/Dropdown.js generated vendored Normal file
View File

@@ -0,0 +1,270 @@
import matches from 'dom-helpers/matches';
import qsa from 'dom-helpers/querySelectorAll';
import addEventListener from 'dom-helpers/addEventListener';
import React, { useCallback, useRef, useEffect, useMemo } from 'react';
import PropTypes from 'prop-types';
import { useUncontrolledProp } from 'uncontrollable';
import usePrevious from '@restart/hooks/usePrevious';
import useForceUpdate from '@restart/hooks/useForceUpdate';
import useGlobalListener from '@restart/hooks/useGlobalListener';
import useEventCallback from '@restart/hooks/useEventCallback';
import DropdownContext from './DropdownContext';
import DropdownMenu from './DropdownMenu';
import DropdownToggle from './DropdownToggle';
var propTypes = {
/**
* A render prop that returns the root dropdown element. The `props`
* argument should spread through to an element containing _both_ the
* menu and toggle in order to handle keyboard events for focus management.
*
* @type {Function ({
* props: {
* onKeyDown: (SyntheticEvent) => void,
* },
* }) => React.Element}
*/
children: PropTypes.node,
/**
* Determines the direction and location of the Menu in relation to it's Toggle.
*/
drop: PropTypes.oneOf(['up', 'left', 'right', 'down']),
/**
* Controls the focus behavior for when the Dropdown is opened. Set to
* `true` to always focus the first menu item, `keyboard` to focus only when
* navigating via the keyboard, or `false` to disable completely
*
* The Default behavior is `false` **unless** the Menu has a `role="menu"`
* where it will default to `keyboard` to match the recommended [ARIA Authoring practices](https://www.w3.org/TR/wai-aria-practices-1.1/#menubutton).
*/
focusFirstItemOnShow: PropTypes.oneOf([false, true, 'keyboard']),
/**
* A css slector string that will return __focusable__ menu items.
* Selectors should be relative to the menu component:
* e.g. ` > li:not('.disabled')`
*/
itemSelector: PropTypes.string,
/**
* Align the menu to the 'end' side of the placement side of the Dropdown toggle. The default placement is `top-start` or `bottom-start`.
*/
alignEnd: PropTypes.bool,
/**
* Whether or not the Dropdown is visible.
*
* @controllable onToggle
*/
show: PropTypes.bool,
/**
* Sets the initial show position of the Dropdown.
*/
defaultShow: PropTypes.bool,
/**
* A callback fired when the Dropdown wishes to change visibility. Called with the requested
* `show` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`.
*
* ```ts static
* function(
* isOpen: boolean,
* event: SyntheticEvent,
* ): void
* ```
*
* @controllable show
*/
onToggle: PropTypes.func
};
function useRefWithUpdate() {
var forceUpdate = useForceUpdate();
var ref = useRef(null);
var attachRef = useCallback(function (element) {
ref.current = element; // ensure that a menu set triggers an update for consumers
forceUpdate();
}, [forceUpdate]);
return [ref, attachRef];
}
/**
* @displayName Dropdown
* @public
*/
function Dropdown(_ref) {
var drop = _ref.drop,
alignEnd = _ref.alignEnd,
defaultShow = _ref.defaultShow,
rawShow = _ref.show,
rawOnToggle = _ref.onToggle,
_ref$itemSelector = _ref.itemSelector,
itemSelector = _ref$itemSelector === void 0 ? '* > *' : _ref$itemSelector,
focusFirstItemOnShow = _ref.focusFirstItemOnShow,
children = _ref.children;
var _useUncontrolledProp = useUncontrolledProp(rawShow, defaultShow, rawOnToggle),
show = _useUncontrolledProp[0],
onToggle = _useUncontrolledProp[1]; // We use normal refs instead of useCallbackRef in order to populate the
// the value as quickly as possible, otherwise the effect to focus the element
// may run before the state value is set
var _useRefWithUpdate = useRefWithUpdate(),
menuRef = _useRefWithUpdate[0],
setMenu = _useRefWithUpdate[1];
var menuElement = menuRef.current;
var _useRefWithUpdate2 = useRefWithUpdate(),
toggleRef = _useRefWithUpdate2[0],
setToggle = _useRefWithUpdate2[1];
var toggleElement = toggleRef.current;
var lastShow = usePrevious(show);
var lastSourceEvent = useRef(null);
var focusInDropdown = useRef(false);
var toggle = useCallback(function (nextShow, event) {
onToggle(nextShow, event);
}, [onToggle]);
var context = useMemo(function () {
return {
toggle: toggle,
drop: drop,
show: show,
alignEnd: alignEnd,
menuElement: menuElement,
toggleElement: toggleElement,
setMenu: setMenu,
setToggle: setToggle
};
}, [toggle, drop, show, alignEnd, menuElement, toggleElement, setMenu, setToggle]);
if (menuElement && lastShow && !show) {
focusInDropdown.current = menuElement.contains(document.activeElement);
}
var focusToggle = useEventCallback(function () {
if (toggleElement && toggleElement.focus) {
toggleElement.focus();
}
});
var maybeFocusFirst = useEventCallback(function () {
var type = lastSourceEvent.current;
var focusType = focusFirstItemOnShow;
if (focusType == null) {
focusType = menuRef.current && matches(menuRef.current, '[role=menu]') ? 'keyboard' : false;
}
if (focusType === false || focusType === 'keyboard' && !/^key.+$/.test(type)) {
return;
}
var first = qsa(menuRef.current, itemSelector)[0];
if (first && first.focus) first.focus();
});
useEffect(function () {
if (show) maybeFocusFirst();else if (focusInDropdown.current) {
focusInDropdown.current = false;
focusToggle();
} // only `show` should be changing
}, [show, focusInDropdown, focusToggle, maybeFocusFirst]);
useEffect(function () {
lastSourceEvent.current = null;
});
var getNextFocusedChild = function getNextFocusedChild(current, offset) {
if (!menuRef.current) return null;
var items = qsa(menuRef.current, itemSelector);
var index = items.indexOf(current) + offset;
index = Math.max(0, Math.min(index, items.length));
return items[index];
};
useGlobalListener('keydown', function (event) {
var _menuRef$current, _toggleRef$current;
var key = event.key;
var target = event.target;
var fromMenu = (_menuRef$current = menuRef.current) == null ? void 0 : _menuRef$current.contains(target);
var fromToggle = (_toggleRef$current = toggleRef.current) == null ? void 0 : _toggleRef$current.contains(target); // Second only to https://github.com/twbs/bootstrap/blob/8cfbf6933b8a0146ac3fbc369f19e520bd1ebdac/js/src/dropdown.js#L400
// in inscrutability
var isInput = /input|textarea/i.test(target.tagName);
if (isInput && (key === ' ' || key !== 'Escape' && fromMenu)) {
return;
}
if (!fromMenu && !fromToggle) {
return;
}
if (!menuRef.current && key === 'Tab') {
return;
}
lastSourceEvent.current = event.type;
switch (key) {
case 'ArrowUp':
{
var next = getNextFocusedChild(target, -1);
if (next && next.focus) next.focus();
event.preventDefault();
return;
}
case 'ArrowDown':
event.preventDefault();
if (!show) {
onToggle(true, event);
} else {
var _next = getNextFocusedChild(target, 1);
if (_next && _next.focus) _next.focus();
}
return;
case 'Tab':
// on keydown the target is the element being tabbed FROM, we need that
// to know if this event is relevant to this dropdown (e.g. in this menu).
// On `keyup` the target is the element being tagged TO which we use to check
// if focus has left the menu
addEventListener(document, 'keyup', function (e) {
var _menuRef$current2;
if (e.key === 'Tab' && !e.target || !((_menuRef$current2 = menuRef.current) != null && _menuRef$current2.contains(e.target))) {
onToggle(false, event);
}
}, {
once: true
});
break;
case 'Escape':
event.preventDefault();
event.stopPropagation();
onToggle(false, event);
break;
default:
}
});
return /*#__PURE__*/React.createElement(DropdownContext.Provider, {
value: context
}, children);
}
Dropdown.displayName = 'ReactOverlaysDropdown';
Dropdown.propTypes = propTypes;
Dropdown.Menu = DropdownMenu;
Dropdown.Toggle = DropdownToggle;
export default Dropdown;

14
node_modules/react-overlays/esm/DropdownContext.d.ts generated vendored Normal file
View File

@@ -0,0 +1,14 @@
import React from 'react';
export declare type DropDirection = 'up' | 'down' | 'left' | 'right';
export declare type DropdownContextValue = {
toggle: (nextShow: boolean, event?: React.SyntheticEvent | Event) => void;
menuElement: HTMLElement | null;
toggleElement: HTMLElement | null;
setMenu: (ref: HTMLElement | null) => void;
setToggle: (ref: HTMLElement | null) => void;
show: boolean;
alignEnd?: boolean;
drop?: DropDirection;
};
declare const DropdownContext: React.Context<DropdownContextValue | null>;
export default DropdownContext;

3
node_modules/react-overlays/esm/DropdownContext.js generated vendored Normal file
View File

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

113
node_modules/react-overlays/esm/DropdownMenu.d.ts generated vendored Normal file
View File

@@ -0,0 +1,113 @@
import PropTypes from 'prop-types';
import React from 'react';
import { DropdownContextValue } from './DropdownContext';
import { UsePopperOptions, Offset, UsePopperState } from './usePopper';
import { RootCloseOptions } from './useRootClose';
export interface UseDropdownMenuOptions {
flip?: boolean;
show?: boolean;
fixed?: boolean;
alignEnd?: boolean;
usePopper?: boolean;
offset?: Offset;
rootCloseEvent?: RootCloseOptions['clickTrigger'];
popperConfig?: Omit<UsePopperOptions, 'enabled' | 'placement'>;
}
export declare type UserDropdownMenuProps = Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style?: React.CSSProperties;
'aria-labelledby'?: string;
};
export declare type UserDropdownMenuArrowProps = Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style: React.CSSProperties;
};
export interface UseDropdownMenuMetadata {
show: boolean;
alignEnd?: boolean;
hasShown: boolean;
toggle?: DropdownContextValue['toggle'];
popper: UsePopperState | null;
arrowProps: Partial<UserDropdownMenuArrowProps>;
}
/**
* @memberOf Dropdown
* @param {object} options
* @param {boolean} options.flip Automatically adjust the menu `drop` position based on viewport edge detection
* @param {[number, number]} options.offset Define an offset distance between the Menu and the Toggle
* @param {boolean} options.show Display the menu manually, ignored in the context of a `Dropdown`
* @param {boolean} options.usePopper opt in/out of using PopperJS to position menus. When disabled you must position it yourself.
* @param {string} options.rootCloseEvent The pointer event to listen for when determining "clicks outside" the menu for triggering a close.
* @param {object} options.popperConfig Options passed to the [`usePopper`](/api/usePopper) hook.
*/
export declare function useDropdownMenu(options?: UseDropdownMenuOptions): readonly [UserDropdownMenuProps, UseDropdownMenuMetadata];
export interface DropdownMenuProps extends UseDropdownMenuOptions {
children: (props: UserDropdownMenuProps, meta: UseDropdownMenuMetadata) => React.ReactNode;
}
/**
* Also exported as `<Dropdown.Menu>` from `Dropdown`.
*
* @displayName DropdownMenu
* @memberOf Dropdown
*/
declare function DropdownMenu({ children, ...options }: DropdownMenuProps): JSX.Element;
declare namespace DropdownMenu {
var displayName: string;
var propTypes: {
/**
* A render prop that returns a Menu element. The `props`
* argument should spread through to **a component that can accept a ref**.
*
* @type {Function ({
* show: boolean,
* alignEnd: boolean,
* close: (?SyntheticEvent) => void,
* placement: Placement,
* update: () => void,
* forceUpdate: () => void,
* props: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* aria-labelledby: ?string
* },
* arrowProps: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* },
* }) => React.Element}
*/
children: PropTypes.Validator<(...args: any[]) => any>;
/**
* Controls the visible state of the menu, generally this is
* provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
show: PropTypes.Requireable<boolean>;
/**
* Aligns the dropdown menu to the 'end' of it's placement position.
* Generally this is provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
alignEnd: PropTypes.Requireable<boolean>;
/**
* Enables the Popper.js `flip` modifier, allowing the Dropdown to
* automatically adjust it's placement in case of overlap with the viewport or toggle.
* Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info
*/
flip: PropTypes.Requireable<boolean>;
usePopper: PropTypes.Requireable<boolean>;
/**
* A set of popper options and props passed directly to react-popper's Popper component.
*/
popperConfig: PropTypes.Requireable<object>;
/**
* Override the default event used by RootCloseWrapper.
*/
rootCloseEvent: PropTypes.Requireable<string>;
};
var defaultProps: {
usePopper: boolean;
};
}
/** @component */
export default DropdownMenu;

184
node_modules/react-overlays/esm/DropdownMenu.js generated vendored Normal file
View File

@@ -0,0 +1,184 @@
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
import _extends from "@babel/runtime/helpers/esm/extends";
import PropTypes from 'prop-types';
import React, { useContext, useRef } from 'react';
import useCallbackRef from '@restart/hooks/useCallbackRef';
import DropdownContext from './DropdownContext';
import usePopper from './usePopper';
import useRootClose from './useRootClose';
import mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';
var noop = function noop() {};
/**
* @memberOf Dropdown
* @param {object} options
* @param {boolean} options.flip Automatically adjust the menu `drop` position based on viewport edge detection
* @param {[number, number]} options.offset Define an offset distance between the Menu and the Toggle
* @param {boolean} options.show Display the menu manually, ignored in the context of a `Dropdown`
* @param {boolean} options.usePopper opt in/out of using PopperJS to position menus. When disabled you must position it yourself.
* @param {string} options.rootCloseEvent The pointer event to listen for when determining "clicks outside" the menu for triggering a close.
* @param {object} options.popperConfig Options passed to the [`usePopper`](/api/usePopper) hook.
*/
export function useDropdownMenu(options) {
if (options === void 0) {
options = {};
}
var context = useContext(DropdownContext);
var _useCallbackRef = useCallbackRef(),
arrowElement = _useCallbackRef[0],
attachArrowRef = _useCallbackRef[1];
var hasShownRef = useRef(false);
var _options = options,
flip = _options.flip,
offset = _options.offset,
rootCloseEvent = _options.rootCloseEvent,
_options$fixed = _options.fixed,
fixed = _options$fixed === void 0 ? false : _options$fixed,
_options$popperConfig = _options.popperConfig,
popperConfig = _options$popperConfig === void 0 ? {} : _options$popperConfig,
_options$usePopper = _options.usePopper,
shouldUsePopper = _options$usePopper === void 0 ? !!context : _options$usePopper;
var show = (context == null ? void 0 : context.show) == null ? !!options.show : context.show;
var alignEnd = (context == null ? void 0 : context.alignEnd) == null ? options.alignEnd : context.alignEnd;
if (show && !hasShownRef.current) {
hasShownRef.current = true;
}
var handleClose = function handleClose(e) {
context == null ? void 0 : context.toggle(false, e);
};
var _ref = context || {},
drop = _ref.drop,
setMenu = _ref.setMenu,
menuElement = _ref.menuElement,
toggleElement = _ref.toggleElement;
var placement = alignEnd ? 'bottom-end' : 'bottom-start';
if (drop === 'up') placement = alignEnd ? 'top-end' : 'top-start';else if (drop === 'right') placement = alignEnd ? 'right-end' : 'right-start';else if (drop === 'left') placement = alignEnd ? 'left-end' : 'left-start';
var popper = usePopper(toggleElement, menuElement, mergeOptionsWithPopperConfig({
placement: placement,
enabled: !!(shouldUsePopper && show),
enableEvents: show,
offset: offset,
flip: flip,
fixed: fixed,
arrowElement: arrowElement,
popperConfig: popperConfig
}));
var menuProps = _extends({
ref: setMenu || noop,
'aria-labelledby': toggleElement == null ? void 0 : toggleElement.id
}, popper.attributes.popper, {
style: popper.styles.popper
});
var metadata = {
show: show,
alignEnd: alignEnd,
hasShown: hasShownRef.current,
toggle: context == null ? void 0 : context.toggle,
popper: shouldUsePopper ? popper : null,
arrowProps: shouldUsePopper ? _extends({
ref: attachArrowRef
}, popper.attributes.arrow, {
style: popper.styles.arrow
}) : {}
};
useRootClose(menuElement, handleClose, {
clickTrigger: rootCloseEvent,
disabled: !show
});
return [menuProps, metadata];
}
var propTypes = {
/**
* A render prop that returns a Menu element. The `props`
* argument should spread through to **a component that can accept a ref**.
*
* @type {Function ({
* show: boolean,
* alignEnd: boolean,
* close: (?SyntheticEvent) => void,
* placement: Placement,
* update: () => void,
* forceUpdate: () => void,
* props: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* aria-labelledby: ?string
* },
* arrowProps: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* },
* }) => React.Element}
*/
children: PropTypes.func.isRequired,
/**
* Controls the visible state of the menu, generally this is
* provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
show: PropTypes.bool,
/**
* Aligns the dropdown menu to the 'end' of it's placement position.
* Generally this is provided by the parent `Dropdown` component,
* but may also be specified as a prop directly.
*/
alignEnd: PropTypes.bool,
/**
* Enables the Popper.js `flip` modifier, allowing the Dropdown to
* automatically adjust it's placement in case of overlap with the viewport or toggle.
* Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info
*/
flip: PropTypes.bool,
usePopper: PropTypes.oneOf([true, false]),
/**
* A set of popper options and props passed directly to react-popper's Popper component.
*/
popperConfig: PropTypes.object,
/**
* Override the default event used by RootCloseWrapper.
*/
rootCloseEvent: PropTypes.string
};
var defaultProps = {
usePopper: true
};
/**
* Also exported as `<Dropdown.Menu>` from `Dropdown`.
*
* @displayName DropdownMenu
* @memberOf Dropdown
*/
function DropdownMenu(_ref2) {
var children = _ref2.children,
options = _objectWithoutPropertiesLoose(_ref2, ["children"]);
var _useDropdownMenu = useDropdownMenu(options),
props = _useDropdownMenu[0],
meta = _useDropdownMenu[1];
return /*#__PURE__*/React.createElement(React.Fragment, null, meta.hasShown ? children(props, meta) : null);
}
DropdownMenu.displayName = 'ReactOverlaysDropdownMenu';
DropdownMenu.propTypes = propTypes;
DropdownMenu.defaultProps = defaultProps;
/** @component */
export default DropdownMenu;

56
node_modules/react-overlays/esm/DropdownToggle.d.ts generated vendored Normal file
View File

@@ -0,0 +1,56 @@
import PropTypes from 'prop-types';
import React from 'react';
import { DropdownContextValue } from './DropdownContext';
export interface UseDropdownToggleProps {
ref: DropdownContextValue['setToggle'];
onClick: React.MouseEventHandler;
'aria-haspopup': boolean;
'aria-expanded': boolean;
}
export interface UseDropdownToggleMetadata {
show: DropdownContextValue['show'];
toggle: DropdownContextValue['toggle'];
}
/**
* Wires up Dropdown toggle functionality, returning a set a props to attach
* to the element that functions as the dropdown toggle (generally a button).
*
* @memberOf Dropdown
*/
export declare function useDropdownToggle(): [
UseDropdownToggleProps,
UseDropdownToggleMetadata
];
export interface DropdownToggleProps {
children: (props: UseDropdownToggleProps, meta: UseDropdownToggleMetadata) => React.ReactNode;
}
/**
* Also exported as `<Dropdown.Toggle>` from `Dropdown`.
*
* @displayName DropdownToggle
* @memberOf Dropdown
*/
declare function DropdownToggle({ children }: DropdownToggleProps): JSX.Element;
declare namespace DropdownToggle {
var displayName: string;
var propTypes: {
/**
* A render prop that returns a Toggle element. The `props`
* argument should spread through to **a component that can accept a ref**. Use
* the `onToggle` argument to toggle the menu open or closed
*
* @type {Function ({
* show: boolean,
* toggle: (show: boolean) => void,
* props: {
* ref: (?HTMLElement) => void,
* aria-haspopup: true
* aria-expanded: boolean
* },
* }) => React.Element}
*/
children: PropTypes.Validator<(...args: any[]) => any>;
};
}
/** @component */
export default DropdownToggle;

74
node_modules/react-overlays/esm/DropdownToggle.js generated vendored Normal file
View File

@@ -0,0 +1,74 @@
import PropTypes from 'prop-types';
import React, { useContext, useCallback } from 'react';
import DropdownContext from './DropdownContext';
var noop = function noop() {};
/**
* Wires up Dropdown toggle functionality, returning a set a props to attach
* to the element that functions as the dropdown toggle (generally a button).
*
* @memberOf Dropdown
*/
export function useDropdownToggle() {
var _ref = useContext(DropdownContext) || {},
_ref$show = _ref.show,
show = _ref$show === void 0 ? false : _ref$show,
_ref$toggle = _ref.toggle,
toggle = _ref$toggle === void 0 ? noop : _ref$toggle,
setToggle = _ref.setToggle;
var handleClick = useCallback(function (e) {
toggle(!show, e);
}, [show, toggle]);
return [{
ref: setToggle || noop,
onClick: handleClick,
'aria-haspopup': true,
'aria-expanded': !!show
}, {
show: show,
toggle: toggle
}];
}
var propTypes = {
/**
* A render prop that returns a Toggle element. The `props`
* argument should spread through to **a component that can accept a ref**. Use
* the `onToggle` argument to toggle the menu open or closed
*
* @type {Function ({
* show: boolean,
* toggle: (show: boolean) => void,
* props: {
* ref: (?HTMLElement) => void,
* aria-haspopup: true
* aria-expanded: boolean
* },
* }) => React.Element}
*/
children: PropTypes.func.isRequired
};
/**
* Also exported as `<Dropdown.Toggle>` from `Dropdown`.
*
* @displayName DropdownToggle
* @memberOf Dropdown
*/
function DropdownToggle(_ref2) {
var children = _ref2.children;
var _useDropdownToggle = useDropdownToggle(),
props = _useDropdownToggle[0],
meta = _useDropdownToggle[1];
return /*#__PURE__*/React.createElement(React.Fragment, null, children(props, meta));
}
DropdownToggle.displayName = 'ReactOverlaysDropdownToggle';
DropdownToggle.propTypes = propTypes;
/** @component */
export default DropdownToggle;

58
node_modules/react-overlays/esm/Modal.d.ts generated vendored Normal file
View File

@@ -0,0 +1,58 @@
import React from 'react';
import ModalManager from './ModalManager';
import { DOMContainer } from './useWaitForDOMRef';
import { TransitionCallbacks } from './types';
export declare type ModalTransitionComponent = React.ComponentType<{
in: boolean;
appear?: boolean;
unmountOnExit?: boolean;
} & TransitionCallbacks>;
export interface RenderModalDialogProps {
style: React.CSSProperties | undefined;
className: string | undefined;
tabIndex: number;
role: string;
ref: React.RefCallback<Element>;
'aria-modal': boolean | undefined;
}
export interface RenderModalBackdropProps {
ref: React.RefCallback<Element>;
onClick: (event: React.SyntheticEvent) => void;
}
export interface BaseModalProps extends TransitionCallbacks {
children?: React.ReactElement;
role?: string;
style?: React.CSSProperties;
className?: string;
show?: boolean;
container?: DOMContainer;
onShow?: () => void;
onHide?: () => void;
manager?: ModalManager;
backdrop?: true | false | 'static';
renderDialog?: (props: RenderModalDialogProps) => React.ReactNode;
renderBackdrop?: (props: RenderModalBackdropProps) => React.ReactNode;
onEscapeKeyDown?: (e: KeyboardEvent) => void;
onBackdropClick?: (e: React.SyntheticEvent) => void;
containerClassName?: string;
keyboard?: boolean;
transition?: ModalTransitionComponent;
backdropTransition?: ModalTransitionComponent;
autoFocus?: boolean;
enforceFocus?: boolean;
restoreFocus?: boolean;
restoreFocusOptions?: {
preventScroll: boolean;
};
}
export interface ModalProps extends BaseModalProps {
[other: string]: any;
}
export interface ModalHandle {
dialog: HTMLElement | null;
backdrop: HTMLElement | null;
}
declare const _default: React.ForwardRefExoticComponent<ModalProps & React.RefAttributes<ModalHandle>> & {
Manager: typeof ModalManager;
};
export default _default;

431
node_modules/react-overlays/esm/Modal.js generated vendored Normal file
View File

@@ -0,0 +1,431 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
/* eslint-disable @typescript-eslint/no-use-before-define, react/prop-types */
import activeElement from 'dom-helpers/activeElement';
import contains from 'dom-helpers/contains';
import canUseDOM from 'dom-helpers/canUseDOM';
import listen from 'dom-helpers/listen';
import PropTypes from 'prop-types';
import React, { useState, useRef, useCallback, useImperativeHandle, forwardRef, useEffect } from 'react';
import ReactDOM from 'react-dom';
import useMounted from '@restart/hooks/useMounted';
import useWillUnmount from '@restart/hooks/useWillUnmount';
import usePrevious from '@restart/hooks/usePrevious';
import useEventCallback from '@restart/hooks/useEventCallback';
import ModalManager from './ModalManager';
import useWaitForDOMRef from './useWaitForDOMRef';
var manager;
function getManager() {
if (!manager) manager = new ModalManager();
return manager;
}
function useModalManager(provided) {
var modalManager = provided || getManager();
var modal = useRef({
dialog: null,
backdrop: null
});
return Object.assign(modal.current, {
add: function add(container, className) {
return modalManager.add(modal.current, container, className);
},
remove: function remove() {
return modalManager.remove(modal.current);
},
isTopModal: function isTopModal() {
return modalManager.isTopModal(modal.current);
},
setDialogRef: useCallback(function (ref) {
modal.current.dialog = ref;
}, []),
setBackdropRef: useCallback(function (ref) {
modal.current.backdrop = ref;
}, [])
});
}
var Modal = /*#__PURE__*/forwardRef(function (_ref, ref) {
var _ref$show = _ref.show,
show = _ref$show === void 0 ? false : _ref$show,
_ref$role = _ref.role,
role = _ref$role === void 0 ? 'dialog' : _ref$role,
className = _ref.className,
style = _ref.style,
children = _ref.children,
_ref$backdrop = _ref.backdrop,
backdrop = _ref$backdrop === void 0 ? true : _ref$backdrop,
_ref$keyboard = _ref.keyboard,
keyboard = _ref$keyboard === void 0 ? true : _ref$keyboard,
onBackdropClick = _ref.onBackdropClick,
onEscapeKeyDown = _ref.onEscapeKeyDown,
transition = _ref.transition,
backdropTransition = _ref.backdropTransition,
_ref$autoFocus = _ref.autoFocus,
autoFocus = _ref$autoFocus === void 0 ? true : _ref$autoFocus,
_ref$enforceFocus = _ref.enforceFocus,
enforceFocus = _ref$enforceFocus === void 0 ? true : _ref$enforceFocus,
_ref$restoreFocus = _ref.restoreFocus,
restoreFocus = _ref$restoreFocus === void 0 ? true : _ref$restoreFocus,
restoreFocusOptions = _ref.restoreFocusOptions,
renderDialog = _ref.renderDialog,
_ref$renderBackdrop = _ref.renderBackdrop,
renderBackdrop = _ref$renderBackdrop === void 0 ? function (props) {
return /*#__PURE__*/React.createElement("div", props);
} : _ref$renderBackdrop,
providedManager = _ref.manager,
containerRef = _ref.container,
containerClassName = _ref.containerClassName,
onShow = _ref.onShow,
_ref$onHide = _ref.onHide,
onHide = _ref$onHide === void 0 ? function () {} : _ref$onHide,
onExit = _ref.onExit,
onExited = _ref.onExited,
onExiting = _ref.onExiting,
onEnter = _ref.onEnter,
onEntering = _ref.onEntering,
onEntered = _ref.onEntered,
rest = _objectWithoutPropertiesLoose(_ref, ["show", "role", "className", "style", "children", "backdrop", "keyboard", "onBackdropClick", "onEscapeKeyDown", "transition", "backdropTransition", "autoFocus", "enforceFocus", "restoreFocus", "restoreFocusOptions", "renderDialog", "renderBackdrop", "manager", "container", "containerClassName", "onShow", "onHide", "onExit", "onExited", "onExiting", "onEnter", "onEntering", "onEntered"]);
var container = useWaitForDOMRef(containerRef);
var modal = useModalManager(providedManager);
var isMounted = useMounted();
var prevShow = usePrevious(show);
var _useState = useState(!show),
exited = _useState[0],
setExited = _useState[1];
var lastFocusRef = useRef(null);
useImperativeHandle(ref, function () {
return modal;
}, [modal]);
if (canUseDOM && !prevShow && show) {
lastFocusRef.current = activeElement();
}
if (!transition && !show && !exited) {
setExited(true);
} else if (show && exited) {
setExited(false);
}
var handleShow = useEventCallback(function () {
modal.add(container, containerClassName);
removeKeydownListenerRef.current = listen(document, 'keydown', handleDocumentKeyDown);
removeFocusListenerRef.current = listen(document, 'focus', // the timeout is necessary b/c this will run before the new modal is mounted
// and so steals focus from it
function () {
return setTimeout(handleEnforceFocus);
}, true);
if (onShow) {
onShow();
} // autofocus after onShow to not trigger a focus event for previous
// modals before this one is shown.
if (autoFocus) {
var currentActiveElement = activeElement(document);
if (modal.dialog && currentActiveElement && !contains(modal.dialog, currentActiveElement)) {
lastFocusRef.current = currentActiveElement;
modal.dialog.focus();
}
}
});
var handleHide = useEventCallback(function () {
modal.remove();
removeKeydownListenerRef.current == null ? void 0 : removeKeydownListenerRef.current();
removeFocusListenerRef.current == null ? void 0 : removeFocusListenerRef.current();
if (restoreFocus) {
var _lastFocusRef$current;
// Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)
(_lastFocusRef$current = lastFocusRef.current) == null ? void 0 : _lastFocusRef$current.focus == null ? void 0 : _lastFocusRef$current.focus(restoreFocusOptions);
lastFocusRef.current = null;
}
}); // TODO: try and combine these effects: https://github.com/react-bootstrap/react-overlays/pull/794#discussion_r409954120
// Show logic when:
// - show is `true` _and_ `container` has resolved
useEffect(function () {
if (!show || !container) return;
handleShow();
}, [show, container,
/* should never change: */
handleShow]); // Hide cleanup logic when:
// - `exited` switches to true
// - component unmounts;
useEffect(function () {
if (!exited) return;
handleHide();
}, [exited, handleHide]);
useWillUnmount(function () {
handleHide();
}); // --------------------------------
var handleEnforceFocus = useEventCallback(function () {
if (!enforceFocus || !isMounted() || !modal.isTopModal()) {
return;
}
var currentActiveElement = activeElement();
if (modal.dialog && currentActiveElement && !contains(modal.dialog, currentActiveElement)) {
modal.dialog.focus();
}
});
var handleBackdropClick = useEventCallback(function (e) {
if (e.target !== e.currentTarget) {
return;
}
onBackdropClick == null ? void 0 : onBackdropClick(e);
if (backdrop === true) {
onHide();
}
});
var handleDocumentKeyDown = useEventCallback(function (e) {
if (keyboard && e.keyCode === 27 && modal.isTopModal()) {
onEscapeKeyDown == null ? void 0 : onEscapeKeyDown(e);
if (!e.defaultPrevented) {
onHide();
}
}
});
var removeFocusListenerRef = useRef();
var removeKeydownListenerRef = useRef();
var handleHidden = function handleHidden() {
setExited(true);
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
onExited == null ? void 0 : onExited.apply(void 0, args);
};
var Transition = transition;
if (!container || !(show || Transition && !exited)) {
return null;
}
var dialogProps = _extends({
role: role,
ref: modal.setDialogRef,
// apparently only works on the dialog role element
'aria-modal': role === 'dialog' ? true : undefined
}, rest, {
style: style,
className: className,
tabIndex: -1
});
var dialog = renderDialog ? renderDialog(dialogProps) : /*#__PURE__*/React.createElement("div", dialogProps, /*#__PURE__*/React.cloneElement(children, {
role: 'document'
}));
if (Transition) {
dialog = /*#__PURE__*/React.createElement(Transition, {
appear: true,
unmountOnExit: true,
"in": !!show,
onExit: onExit,
onExiting: onExiting,
onExited: handleHidden,
onEnter: onEnter,
onEntering: onEntering,
onEntered: onEntered
}, dialog);
}
var backdropElement = null;
if (backdrop) {
var BackdropTransition = backdropTransition;
backdropElement = renderBackdrop({
ref: modal.setBackdropRef,
onClick: handleBackdropClick
});
if (BackdropTransition) {
backdropElement = /*#__PURE__*/React.createElement(BackdropTransition, {
appear: true,
"in": !!show
}, backdropElement);
}
}
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React.createElement(React.Fragment, null, backdropElement, dialog), container));
});
var propTypes = {
/**
* Set the visibility of the Modal
*/
show: PropTypes.bool,
/**
* A DOM element, a `ref` to an element, or function that returns either. The Modal is appended to it's `container` element.
*
* For the sake of assistive technologies, the container should usually be the document body, so that the rest of the
* page content can be placed behind a virtual backdrop as well as a visual one.
*/
container: PropTypes.any,
/**
* A callback fired when the Modal is opening.
*/
onShow: PropTypes.func,
/**
* A callback fired when either the backdrop is clicked, or the escape key is pressed.
*
* The `onHide` callback only signals intent from the Modal,
* you must actually set the `show` prop to `false` for the Modal to close.
*/
onHide: PropTypes.func,
/**
* Include a backdrop component.
*/
backdrop: PropTypes.oneOfType([PropTypes.bool, PropTypes.oneOf(['static'])]),
/**
* A function that returns the dialog component. Useful for custom
* rendering. **Note:** the component should make sure to apply the provided ref.
*
* ```js static
* renderDialog={props => <MyDialog {...props} />}
* ```
*/
renderDialog: PropTypes.func,
/**
* A function that returns a backdrop component. Useful for custom
* backdrop rendering.
*
* ```js
* renderBackdrop={props => <MyBackdrop {...props} />}
* ```
*/
renderBackdrop: PropTypes.func,
/**
* A callback fired when the escape key, if specified in `keyboard`, is pressed.
*
* If preventDefault() is called on the keyboard event, closing the modal will be cancelled.
*/
onEscapeKeyDown: PropTypes.func,
/**
* A callback fired when the backdrop, if specified, is clicked.
*/
onBackdropClick: PropTypes.func,
/**
* A css class or set of classes applied to the modal container when the modal is open,
* and removed when it is closed.
*/
containerClassName: PropTypes.string,
/**
* Close the modal when escape key is pressed
*/
keyboard: PropTypes.bool,
/**
* A `react-transition-group@2.0.0` `<Transition/>` component used
* to control animations for the dialog component.
*/
transition: PropTypes.elementType,
/**
* A `react-transition-group@2.0.0` `<Transition/>` component used
* to control animations for the backdrop components.
*/
backdropTransition: PropTypes.elementType,
/**
* When `true` The modal will automatically shift focus to itself when it opens, and
* replace it to the last focused element when it closes. This also
* works correctly with any Modal children that have the `autoFocus` prop.
*
* Generally this should never be set to `false` as it makes the Modal less
* accessible to assistive technologies, like screen readers.
*/
autoFocus: PropTypes.bool,
/**
* When `true` The modal will prevent focus from leaving the Modal while open.
*
* Generally this should never be set to `false` as it makes the Modal less
* accessible to assistive technologies, like screen readers.
*/
enforceFocus: PropTypes.bool,
/**
* When `true` The modal will restore focus to previously focused element once
* modal is hidden
*/
restoreFocus: PropTypes.bool,
/**
* Options passed to focus function when `restoreFocus` is set to `true`
*
* @link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus#Parameters
*/
restoreFocusOptions: PropTypes.shape({
preventScroll: PropTypes.bool
}),
/**
* Callback fired before the Modal transitions in
*/
onEnter: PropTypes.func,
/**
* Callback fired as the Modal begins to transition in
*/
onEntering: PropTypes.func,
/**
* Callback fired after the Modal finishes transitioning in
*/
onEntered: PropTypes.func,
/**
* Callback fired right before the Modal transitions out
*/
onExit: PropTypes.func,
/**
* Callback fired as the Modal begins to transition out
*/
onExiting: PropTypes.func,
/**
* Callback fired after the Modal finishes transitioning out
*/
onExited: PropTypes.func,
/**
* A ModalManager instance used to track and manage the state of open
* Modals. Useful when customizing how modals interact within a container
*/
manager: PropTypes.instanceOf(ModalManager)
};
Modal.displayName = 'Modal';
Modal.propTypes = propTypes;
export default Object.assign(Modal, {
Manager: ModalManager
});

34
node_modules/react-overlays/esm/ModalManager.d.ts generated vendored Normal file
View File

@@ -0,0 +1,34 @@
export interface ModalInstance {
dialog: Element;
backdrop: Element;
}
export declare type ContainerState = Record<string, any> & {
isOverflowing?: boolean;
style?: Partial<CSSStyleDeclaration>;
modals: ModalInstance[];
};
/**
* Proper state management for containers and the modals in those containers.
*
* @internal Used by the Modal to ensure proper styling of containers.
*/
declare class ModalManager {
readonly hideSiblingNodes: boolean;
readonly handleContainerOverflow: boolean;
readonly modals: ModalInstance[];
readonly containers: HTMLElement[];
readonly data: ContainerState[];
readonly scrollbarSize: number;
constructor({ hideSiblingNodes, handleContainerOverflow, }?: {
hideSiblingNodes?: boolean | undefined;
handleContainerOverflow?: boolean | undefined;
});
isContainerOverflowing(modal: ModalInstance): any;
containerIndexFromModal(modal: ModalInstance): number;
setContainerStyle(containerState: ContainerState, container: HTMLElement): void;
removeContainerStyle(containerState: ContainerState, container: HTMLElement): void;
add(modal: ModalInstance, container: HTMLElement, className?: string): number;
remove(modal: ModalInstance): void;
isTopModal(modal: ModalInstance): boolean;
}
export default ModalManager;

166
node_modules/react-overlays/esm/ModalManager.js generated vendored Normal file
View File

@@ -0,0 +1,166 @@
import addClass from 'dom-helpers/addClass';
import removeClass from 'dom-helpers/removeClass';
import css from 'dom-helpers/css';
import getScrollbarSize from 'dom-helpers/scrollbarSize';
import isOverflowing from './isOverflowing';
import { ariaHidden, hideSiblings, showSiblings } from './manageAriaHidden';
function findIndexOf(arr, cb) {
var idx = -1;
arr.some(function (d, i) {
if (cb(d, i)) {
idx = i;
return true;
}
return false;
});
return idx;
}
/**
* Proper state management for containers and the modals in those containers.
*
* @internal Used by the Modal to ensure proper styling of containers.
*/
var ModalManager = /*#__PURE__*/function () {
function ModalManager(_temp) {
var _ref = _temp === void 0 ? {} : _temp,
_ref$hideSiblingNodes = _ref.hideSiblingNodes,
hideSiblingNodes = _ref$hideSiblingNodes === void 0 ? true : _ref$hideSiblingNodes,
_ref$handleContainerO = _ref.handleContainerOverflow,
handleContainerOverflow = _ref$handleContainerO === void 0 ? true : _ref$handleContainerO;
this.hideSiblingNodes = void 0;
this.handleContainerOverflow = void 0;
this.modals = void 0;
this.containers = void 0;
this.data = void 0;
this.scrollbarSize = void 0;
this.hideSiblingNodes = hideSiblingNodes;
this.handleContainerOverflow = handleContainerOverflow;
this.modals = [];
this.containers = [];
this.data = [];
this.scrollbarSize = getScrollbarSize();
}
var _proto = ModalManager.prototype;
_proto.isContainerOverflowing = function isContainerOverflowing(modal) {
var data = this.data[this.containerIndexFromModal(modal)];
return data && data.overflowing;
};
_proto.containerIndexFromModal = function containerIndexFromModal(modal) {
return findIndexOf(this.data, function (d) {
return d.modals.indexOf(modal) !== -1;
});
};
_proto.setContainerStyle = function setContainerStyle(containerState, container) {
var style = {
overflow: 'hidden'
}; // we are only interested in the actual `style` here
// because we will override it
containerState.style = {
overflow: container.style.overflow,
paddingRight: container.style.paddingRight
};
if (containerState.overflowing) {
// use computed style, here to get the real padding
// to add our scrollbar width
style.paddingRight = parseInt(css(container, 'paddingRight') || '0', 10) + this.scrollbarSize + "px";
}
css(container, style);
};
_proto.removeContainerStyle = function removeContainerStyle(containerState, container) {
Object.assign(container.style, containerState.style);
};
_proto.add = function add(modal, container, className) {
var modalIdx = this.modals.indexOf(modal);
var containerIdx = this.containers.indexOf(container);
if (modalIdx !== -1) {
return modalIdx;
}
modalIdx = this.modals.length;
this.modals.push(modal);
if (this.hideSiblingNodes) {
hideSiblings(container, modal);
}
if (containerIdx !== -1) {
this.data[containerIdx].modals.push(modal);
return modalIdx;
}
var data = {
modals: [modal],
// right now only the first modal of a container will have its classes applied
classes: className ? className.split(/\s+/) : [],
overflowing: isOverflowing(container)
};
if (this.handleContainerOverflow) {
this.setContainerStyle(data, container);
}
data.classes.forEach(addClass.bind(null, container));
this.containers.push(container);
this.data.push(data);
return modalIdx;
};
_proto.remove = function remove(modal) {
var modalIdx = this.modals.indexOf(modal);
if (modalIdx === -1) {
return;
}
var containerIdx = this.containerIndexFromModal(modal);
var data = this.data[containerIdx];
var container = this.containers[containerIdx];
data.modals.splice(data.modals.indexOf(modal), 1);
this.modals.splice(modalIdx, 1); // if that was the last modal in a container,
// clean up the container
if (data.modals.length === 0) {
data.classes.forEach(removeClass.bind(null, container));
if (this.handleContainerOverflow) {
this.removeContainerStyle(data, container);
}
if (this.hideSiblingNodes) {
showSiblings(container, modal);
}
this.containers.splice(containerIdx, 1);
this.data.splice(containerIdx, 1);
} else if (this.hideSiblingNodes) {
// otherwise make sure the next top modal is visible to a SR
var _data$modals = data.modals[data.modals.length - 1],
backdrop = _data$modals.backdrop,
dialog = _data$modals.dialog;
ariaHidden(false, dialog);
ariaHidden(false, backdrop);
}
};
_proto.isTopModal = function isTopModal(modal) {
return !!this.modals.length && this.modals[this.modals.length - 1] === modal;
};
return ModalManager;
}();
export default ModalManager;

45
node_modules/react-overlays/esm/Overlay.d.ts generated vendored Normal file
View File

@@ -0,0 +1,45 @@
import React from 'react';
import { Placement, UsePopperOptions, Offset, State } from './usePopper';
import { RootCloseOptions } from './useRootClose';
import { DOMContainer } from './useWaitForDOMRef';
import { TransitionCallbacks } from './types';
export interface OverlayProps extends TransitionCallbacks {
flip?: boolean;
placement?: Placement;
offset?: Offset;
containerPadding?: number;
popperConfig?: Omit<UsePopperOptions, 'placement'>;
container?: DOMContainer;
target: DOMContainer;
show?: boolean;
transition?: React.ComponentType<{
in?: boolean;
appear?: boolean;
} & TransitionCallbacks>;
onHide?: (e: Event) => void;
rootClose?: boolean;
rootCloseDisabled?: boolean;
rootCloseEvent?: RootCloseOptions['clickTrigger'];
children: (value: {
show: boolean;
placement: Placement;
update: () => void;
forceUpdate: () => void;
state?: State;
props: Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style: React.CSSProperties;
'aria-labelledby'?: string;
};
arrowProps: Record<string, any> & {
ref: React.RefCallback<HTMLElement>;
style: React.CSSProperties;
};
}) => React.ReactNode;
}
/**
* Built on top of `Popper.js`, the overlay component is
* great for custom tooltip overlays.
*/
declare const Overlay: React.ForwardRefExoticComponent<OverlayProps & React.RefAttributes<HTMLElement>>;
export default Overlay;

252
node_modules/react-overlays/esm/Overlay.js generated vendored Normal file
View File

@@ -0,0 +1,252 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
import PropTypes from 'prop-types';
import React, { useState } from 'react';
import ReactDOM from 'react-dom';
import useCallbackRef from '@restart/hooks/useCallbackRef';
import useMergedRefs from '@restart/hooks/useMergedRefs';
import { placements } from './popper';
import usePopper from './usePopper';
import useRootClose from './useRootClose';
import useWaitForDOMRef from './useWaitForDOMRef';
import mergeOptionsWithPopperConfig from './mergeOptionsWithPopperConfig';
/**
* Built on top of `Popper.js`, the overlay component is
* great for custom tooltip overlays.
*/
var Overlay = /*#__PURE__*/React.forwardRef(function (props, outerRef) {
var flip = props.flip,
offset = props.offset,
placement = props.placement,
_props$containerPaddi = props.containerPadding,
containerPadding = _props$containerPaddi === void 0 ? 5 : _props$containerPaddi,
_props$popperConfig = props.popperConfig,
popperConfig = _props$popperConfig === void 0 ? {} : _props$popperConfig,
Transition = props.transition;
var _useCallbackRef = useCallbackRef(),
rootElement = _useCallbackRef[0],
attachRef = _useCallbackRef[1];
var _useCallbackRef2 = useCallbackRef(),
arrowElement = _useCallbackRef2[0],
attachArrowRef = _useCallbackRef2[1];
var mergedRef = useMergedRefs(attachRef, outerRef);
var container = useWaitForDOMRef(props.container);
var target = useWaitForDOMRef(props.target);
var _useState = useState(!props.show),
exited = _useState[0],
setExited = _useState[1];
var _usePopper = usePopper(target, rootElement, mergeOptionsWithPopperConfig({
placement: placement,
enableEvents: !!props.show,
containerPadding: containerPadding || 5,
flip: flip,
offset: offset,
arrowElement: arrowElement,
popperConfig: popperConfig
})),
styles = _usePopper.styles,
attributes = _usePopper.attributes,
popper = _objectWithoutPropertiesLoose(_usePopper, ["styles", "attributes"]);
if (props.show) {
if (exited) setExited(false);
} else if (!props.transition && !exited) {
setExited(true);
}
var handleHidden = function handleHidden() {
setExited(true);
if (props.onExited) {
props.onExited.apply(props, arguments);
}
}; // Don't un-render the overlay while it's transitioning out.
var mountOverlay = props.show || Transition && !exited;
useRootClose(rootElement, props.onHide, {
disabled: !props.rootClose || props.rootCloseDisabled,
clickTrigger: props.rootCloseEvent
});
if (!mountOverlay) {
// Don't bother showing anything if we don't have to.
return null;
}
var child = props.children(_extends({}, popper, {
show: !!props.show,
props: _extends({}, attributes.popper, {
style: styles.popper,
ref: mergedRef
}),
arrowProps: _extends({}, attributes.arrow, {
style: styles.arrow,
ref: attachArrowRef
})
}));
if (Transition) {
var onExit = props.onExit,
onExiting = props.onExiting,
onEnter = props.onEnter,
onEntering = props.onEntering,
onEntered = props.onEntered;
child = /*#__PURE__*/React.createElement(Transition, {
"in": props.show,
appear: true,
onExit: onExit,
onExiting: onExiting,
onExited: handleHidden,
onEnter: onEnter,
onEntering: onEntering,
onEntered: onEntered
}, child);
}
return container ? /*#__PURE__*/ReactDOM.createPortal(child, container) : null;
});
Overlay.displayName = 'Overlay';
Overlay.propTypes = {
/**
* Set the visibility of the Overlay
*/
show: PropTypes.bool,
/** Specify where the overlay element is positioned in relation to the target element */
placement: PropTypes.oneOf(placements),
/**
* A DOM Element, Ref to an element, or function that returns either. The `target` element is where
* the overlay is positioned relative to.
*/
target: PropTypes.any,
/**
* A DOM Element, Ref to an element, or function that returns either. The `container` will have the Portal children
* appended to it.
*/
container: PropTypes.any,
/**
* Enables the Popper.js `flip` modifier, allowing the Overlay to
* automatically adjust it's placement in case of overlap with the viewport or toggle.
* Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info
*/
flip: PropTypes.bool,
/**
* A render prop that returns an element to overlay and position. See
* the [react-popper documentation](https://github.com/FezVrasta/react-popper#children) for more info.
*
* @type {Function ({
* show: boolean,
* placement: Placement,
* update: () => void,
* forceUpdate: () => void,
* props: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* aria-labelledby: ?string
* [string]: string | number,
* },
* arrowProps: {
* ref: (?HTMLElement) => void,
* style: { [string]: string | number },
* [string]: string | number,
* },
* }) => React.Element}
*/
children: PropTypes.func.isRequired,
/**
* Control how much space there is between the edge of the boundary element and overlay.
* A convenience shortcut to setting `popperConfig.modfiers.preventOverflow.padding`
*/
containerPadding: PropTypes.number,
/**
* A set of popper options and props passed directly to react-popper's Popper component.
*/
popperConfig: PropTypes.object,
/**
* Specify whether the overlay should trigger `onHide` when the user clicks outside the overlay
*/
rootClose: PropTypes.bool,
/**
* Specify event for toggling overlay
*/
rootCloseEvent: PropTypes.oneOf(['click', 'mousedown']),
/**
* Specify disabled for disable RootCloseWrapper
*/
rootCloseDisabled: PropTypes.bool,
/**
* A Callback fired by the Overlay when it wishes to be hidden.
*
* __required__ when `rootClose` is `true`.
*
* @type func
*/
onHide: function onHide(props) {
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
if (props.rootClose) {
var _PropTypes$func;
return (_PropTypes$func = PropTypes.func).isRequired.apply(_PropTypes$func, [props].concat(args));
}
return PropTypes.func.apply(PropTypes, [props].concat(args));
},
/**
* A `react-transition-group@2.0.0` `<Transition/>` component
* used to animate the overlay as it changes visibility.
*/
// @ts-ignore
transition: PropTypes.elementType,
/**
* Callback fired before the Overlay transitions in
*/
onEnter: PropTypes.func,
/**
* Callback fired as the Overlay begins to transition in
*/
onEntering: PropTypes.func,
/**
* Callback fired after the Overlay finishes transitioning in
*/
onEntered: PropTypes.func,
/**
* Callback fired right before the Overlay transitions out
*/
onExit: PropTypes.func,
/**
* Callback fired as the Overlay begins to transition out
*/
onExiting: PropTypes.func,
/**
* Callback fired after the Overlay finishes transitioning out
*/
onExited: PropTypes.func
};
export default Overlay;

24
node_modules/react-overlays/esm/Portal.d.ts generated vendored Normal file
View File

@@ -0,0 +1,24 @@
import PropTypes from 'prop-types';
import React from 'react';
import { DOMContainer } from './useWaitForDOMRef';
export interface PortalProps {
children: React.ReactElement;
container: DOMContainer;
onRendered?: (element: any) => void;
}
/**
* @public
*/
declare const Portal: {
({ container, children, onRendered }: PortalProps): JSX.Element | null;
displayName: string;
propTypes: {
/**
* A DOM element, Ref to an element, or function that returns either. The `container` will have the Portal children
* appended to it.
*/
container: PropTypes.Requireable<any>;
onRendered: PropTypes.Requireable<(...args: any[]) => any>;
};
};
export default Portal;

27
node_modules/react-overlays/esm/Portal.js generated vendored Normal file
View File

@@ -0,0 +1,27 @@
import PropTypes from 'prop-types';
import ReactDOM from 'react-dom';
import React from 'react';
import useWaitForDOMRef from './useWaitForDOMRef';
var propTypes = {
/**
* A DOM element, Ref to an element, or function that returns either. The `container` will have the Portal children
* appended to it.
*/
container: PropTypes.any,
onRendered: PropTypes.func
};
/**
* @public
*/
var Portal = function Portal(_ref) {
var container = _ref.container,
children = _ref.children,
onRendered = _ref.onRendered;
var resolvedContainer = useWaitForDOMRef(container, onRendered);
return resolvedContainer ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/ReactDOM.createPortal(children, resolvedContainer)) : null;
};
Portal.displayName = 'Portal';
Portal.propTypes = propTypes;
export default Portal;

8
node_modules/react-overlays/esm/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import Dropdown from './Dropdown';
import { useDropdownMenu } from './DropdownMenu';
import { useDropdownToggle } from './DropdownToggle';
import Modal from './Modal';
import Overlay from './Overlay';
import Portal from './Portal';
import useRootClose from './useRootClose';
export { Dropdown, useDropdownMenu, useDropdownToggle, Modal, Overlay, Portal, useRootClose, };

8
node_modules/react-overlays/esm/index.js generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import Dropdown from './Dropdown';
import { useDropdownMenu } from './DropdownMenu';
import { useDropdownToggle } from './DropdownToggle';
import Modal from './Modal';
import Overlay from './Overlay';
import Portal from './Portal';
import useRootClose from './useRootClose';
export { Dropdown, useDropdownMenu, useDropdownToggle, Modal, Overlay, Portal, useRootClose };

1
node_modules/react-overlays/esm/isOverflowing.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export default function isOverflowing(container: Element): boolean;

17
node_modules/react-overlays/esm/isOverflowing.js generated vendored Normal file
View File

@@ -0,0 +1,17 @@
import isWindow from 'dom-helpers/isWindow';
import ownerDocument from 'dom-helpers/ownerDocument';
function isBody(node) {
return node && node.tagName.toLowerCase() === 'body';
}
function bodyIsOverflowing(node) {
var doc = isWindow(node) ? ownerDocument() : ownerDocument(node);
var win = isWindow(node) || doc.defaultView;
return doc.body.clientWidth < win.innerWidth;
}
export default function isOverflowing(container) {
var win = isWindow(container);
return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;
}

View File

@@ -0,0 +1,8 @@
export declare function ariaHidden(hide: boolean, node: Element | null | undefined): void;
interface SiblingExclusions {
dialog: Element;
backdrop: Element;
}
export declare function hideSiblings(container: Element, { dialog, backdrop }: SiblingExclusions): void;
export declare function showSiblings(container: Element, { dialog, backdrop }: SiblingExclusions): void;
export {};

39
node_modules/react-overlays/esm/manageAriaHidden.js generated vendored Normal file
View File

@@ -0,0 +1,39 @@
var BLACKLIST = ['template', 'script', 'style'];
var isHidable = function isHidable(_ref) {
var nodeType = _ref.nodeType,
tagName = _ref.tagName;
return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;
};
var siblings = function siblings(container, exclude, cb) {
[].forEach.call(container.children, function (node) {
if (exclude.indexOf(node) === -1 && isHidable(node)) {
cb(node);
}
});
};
export function ariaHidden(hide, node) {
if (!node) return;
if (hide) {
node.setAttribute('aria-hidden', 'true');
} else {
node.removeAttribute('aria-hidden');
}
}
export function hideSiblings(container, _ref2) {
var dialog = _ref2.dialog,
backdrop = _ref2.backdrop;
siblings(container, [dialog, backdrop], function (node) {
return ariaHidden(true, node);
});
}
export function showSiblings(container, _ref3) {
var dialog = _ref3.dialog,
backdrop = _ref3.backdrop;
siblings(container, [dialog, backdrop], function (node) {
return ariaHidden(false, node);
});
}

View File

@@ -0,0 +1,16 @@
import { UsePopperOptions, Offset, Placement, Modifiers } from './usePopper';
export declare type Config = {
flip?: boolean;
fixed?: boolean;
alignEnd?: boolean;
enabled?: boolean;
containerPadding?: number;
arrowElement?: Element | null;
enableEvents?: boolean;
offset?: Offset;
placement?: Placement;
popperConfig?: UsePopperOptions;
};
export declare function toModifierMap(modifiers: Modifiers | undefined): Record<string, Partial<import("./usePopper").Modifier<any, any>>>;
export declare function toModifierArray(map?: Modifiers | undefined): Partial<import("@popperjs/core").Modifier<any, any>>[];
export default function mergeOptionsWithPopperConfig({ enabled, enableEvents, placement, flip, offset, fixed, containerPadding, arrowElement, popperConfig, }: Config): UsePopperOptions;

View File

@@ -0,0 +1,69 @@
import _extends from "@babel/runtime/helpers/esm/extends";
export function toModifierMap(modifiers) {
var result = {};
if (!Array.isArray(modifiers)) {
return modifiers || result;
} // eslint-disable-next-line no-unused-expressions
modifiers == null ? void 0 : modifiers.forEach(function (m) {
result[m.name] = m;
});
return result;
}
export function toModifierArray(map) {
if (map === void 0) {
map = {};
}
if (Array.isArray(map)) return map;
return Object.keys(map).map(function (k) {
map[k].name = k;
return map[k];
});
}
export default function mergeOptionsWithPopperConfig(_ref) {
var _modifiers$preventOve, _modifiers$preventOve2, _modifiers$offset, _modifiers$arrow;
var enabled = _ref.enabled,
enableEvents = _ref.enableEvents,
placement = _ref.placement,
flip = _ref.flip,
offset = _ref.offset,
fixed = _ref.fixed,
containerPadding = _ref.containerPadding,
arrowElement = _ref.arrowElement,
_ref$popperConfig = _ref.popperConfig,
popperConfig = _ref$popperConfig === void 0 ? {} : _ref$popperConfig;
var modifiers = toModifierMap(popperConfig.modifiers);
return _extends({}, popperConfig, {
placement: placement,
enabled: enabled,
strategy: fixed ? 'fixed' : popperConfig.strategy,
modifiers: toModifierArray(_extends({}, modifiers, {
eventListeners: {
enabled: enableEvents
},
preventOverflow: _extends({}, modifiers.preventOverflow, {
options: containerPadding ? _extends({
padding: containerPadding
}, (_modifiers$preventOve = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve.options) : (_modifiers$preventOve2 = modifiers.preventOverflow) == null ? void 0 : _modifiers$preventOve2.options
}),
offset: {
options: _extends({
offset: offset
}, (_modifiers$offset = modifiers.offset) == null ? void 0 : _modifiers$offset.options)
},
arrow: _extends({}, modifiers.arrow, {
enabled: !!arrowElement,
options: _extends({}, (_modifiers$arrow = modifiers.arrow) == null ? void 0 : _modifiers$arrow.options, {
element: arrowElement
})
}),
flip: _extends({
enabled: !!flip
}, modifiers.flip)
}))
});
}

2
node_modules/react-overlays/esm/ownerDocument.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
declare const _default: (componentOrElement: React.ComponentClass | Element | null | undefined) => Document;
export default _default;

5
node_modules/react-overlays/esm/ownerDocument.js generated vendored Normal file
View File

@@ -0,0 +1,5 @@
import ownerDocument from 'dom-helpers/ownerDocument';
import safeFindDOMNode from './safeFindDOMNode';
export default (function (componentOrElement) {
return ownerDocument(safeFindDOMNode(componentOrElement));
});

3
node_modules/react-overlays/esm/popper.d.ts generated vendored Normal file
View File

@@ -0,0 +1,3 @@
import { placements } from '@popperjs/core/lib/enums';
export declare const createPopper: <TModifier extends Partial<import("@popperjs/core/lib/types").Modifier<any, any>>>(reference: Element | import("@popperjs/core/lib/types").VirtualElement, popper: HTMLElement, options?: Partial<import("@popperjs/core/lib/types").OptionsGeneric<TModifier>> | undefined) => import("@popperjs/core/lib/types").Instance;
export { placements };

16
node_modules/react-overlays/esm/popper.js generated vendored Normal file
View File

@@ -0,0 +1,16 @@
import arrow from '@popperjs/core/lib/modifiers/arrow';
import computeStyles from '@popperjs/core/lib/modifiers/computeStyles';
import eventListeners from '@popperjs/core/lib/modifiers/eventListeners';
import flip from '@popperjs/core/lib/modifiers/flip';
import hide from '@popperjs/core/lib/modifiers/hide';
import offset from '@popperjs/core/lib/modifiers/offset';
import popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets';
import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow';
import { placements } from '@popperjs/core/lib/enums';
import { popperGenerator } from '@popperjs/core/lib/popper-base'; // For the common JS build we will turn this file into a bundle with no imports.
// This is b/c the Popper lib is all esm files, and would break in a common js only environment
export var createPopper = popperGenerator({
defaultModifiers: [hide, popperOffsets, computeStyles, eventListeners, offset, flip, preventOverflow, arrow]
});
export { placements };

2
node_modules/react-overlays/esm/safeFindDOMNode.d.ts generated vendored Normal file
View File

@@ -0,0 +1,2 @@
/// <reference types="react" />
export default function safeFindDOMNode(componentOrElement: React.ComponentClass | Element | null | undefined): Element | Text | null;

8
node_modules/react-overlays/esm/safeFindDOMNode.js generated vendored Normal file
View File

@@ -0,0 +1,8 @@
import ReactDOM from 'react-dom';
export default function safeFindDOMNode(componentOrElement) {
if (componentOrElement && 'setState' in componentOrElement) {
return ReactDOM.findDOMNode(componentOrElement);
}
return componentOrElement != null ? componentOrElement : null;
}

8
node_modules/react-overlays/esm/types.d.ts generated vendored Normal file
View File

@@ -0,0 +1,8 @@
export interface TransitionCallbacks {
onEnter?(node: HTMLElement, isAppearing: boolean): any;
onEntered?(node: HTMLElement, isAppearing: boolean): any;
onEntering?(node: HTMLElement, isAppearing: boolean): any;
onExit?(node: HTMLElement): any;
onExited?(node: HTMLElement): any;
onExiting?(node: HTMLElement): any;
}

52
node_modules/react-overlays/esm/usePopper.d.ts generated vendored Normal file
View File

@@ -0,0 +1,52 @@
import * as Popper from '@popperjs/core';
declare type OptionsWithUndefined<T extends Popper.Obj | undefined> = T extends Popper.Obj ? T : Popper.Obj;
export declare type Modifier<Name, Options extends Popper.Obj | undefined> = Popper.Modifier<Name, OptionsWithUndefined<Options>>;
export declare type Options = Popper.Options;
export declare type Instance = Popper.Instance;
export declare type Placement = Popper.Placement;
export declare type VirtualElement = Popper.VirtualElement;
export declare type State = Popper.State;
export declare type OffsetValue = [
number | null | undefined,
number | null | undefined
];
export declare type OffsetFunction = (details: {
popper: Popper.Rect;
reference: Popper.Rect;
placement: Placement;
}) => OffsetValue;
export declare type Offset = OffsetFunction | OffsetValue;
export declare type ModifierMap = Record<string, Partial<Modifier<any, any>>>;
export declare type Modifiers = Popper.Options['modifiers'] | Record<string, Partial<Modifier<any, any>>>;
export declare type UsePopperOptions = Omit<Options, 'modifiers' | 'placement' | 'strategy'> & {
enabled?: boolean;
placement?: Options['placement'];
strategy?: Options['strategy'];
modifiers?: Options['modifiers'];
};
export interface UsePopperState {
placement: Placement;
update: () => void;
forceUpdate: () => void;
attributes: Record<string, Record<string, any>>;
styles: Record<string, Partial<CSSStyleDeclaration>>;
state?: State;
}
/**
* Position an element relative some reference element using Popper.js
*
* @param referenceElement
* @param popperElement
* @param {object} options
* @param {object=} options.modifiers Popper.js modifiers
* @param {boolean=} options.enabled toggle the popper functionality on/off
* @param {string=} options.placement The popper element placement relative to the reference element
* @param {string=} options.strategy the positioning strategy
* @param {boolean=} options.eventsEnabled have Popper listen on window resize events to reposition the element
* @param {function=} options.onCreate called when the popper is created
* @param {function=} options.onUpdate called when the popper is updated
*
* @returns {UsePopperState} The popper state
*/
declare function usePopper(referenceElement: VirtualElement | null | undefined, popperElement: HTMLElement | null | undefined, { enabled, placement, strategy, modifiers, ...config }?: UsePopperOptions): UsePopperState;
export default usePopper;

179
node_modules/react-overlays/esm/usePopper.js generated vendored Normal file
View File

@@ -0,0 +1,179 @@
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
import useSafeState from '@restart/hooks/useSafeState';
import { createPopper } from './popper';
var initialPopperStyles = function initialPopperStyles(position) {
return {
position: position,
top: '0',
left: '0',
opacity: '0',
pointerEvents: 'none'
};
};
var disabledApplyStylesModifier = {
name: 'applyStyles',
enabled: false
}; // In order to satisfy the current usage of options, including undefined
var ariaDescribedByModifier = {
name: 'ariaDescribedBy',
enabled: true,
phase: 'afterWrite',
effect: function effect(_ref) {
var state = _ref.state;
return function () {
var _state$elements = state.elements,
reference = _state$elements.reference,
popper = _state$elements.popper;
if ('removeAttribute' in reference) {
var ids = (reference.getAttribute('aria-describedby') || '').split(',').filter(function (id) {
return id.trim() !== popper.id;
});
if (!ids.length) reference.removeAttribute('aria-describedby');else reference.setAttribute('aria-describedby', ids.join(','));
}
};
},
fn: function fn(_ref2) {
var _popper$getAttribute;
var state = _ref2.state;
var _state$elements2 = state.elements,
popper = _state$elements2.popper,
reference = _state$elements2.reference;
var role = (_popper$getAttribute = popper.getAttribute('role')) == null ? void 0 : _popper$getAttribute.toLowerCase();
if (popper.id && role === 'tooltip' && 'setAttribute' in reference) {
var ids = reference.getAttribute('aria-describedby');
if (ids && ids.split(',').indexOf(popper.id) !== -1) {
return;
}
reference.setAttribute('aria-describedby', ids ? ids + "," + popper.id : popper.id);
}
}
};
var EMPTY_MODIFIERS = [];
/**
* Position an element relative some reference element using Popper.js
*
* @param referenceElement
* @param popperElement
* @param {object} options
* @param {object=} options.modifiers Popper.js modifiers
* @param {boolean=} options.enabled toggle the popper functionality on/off
* @param {string=} options.placement The popper element placement relative to the reference element
* @param {string=} options.strategy the positioning strategy
* @param {boolean=} options.eventsEnabled have Popper listen on window resize events to reposition the element
* @param {function=} options.onCreate called when the popper is created
* @param {function=} options.onUpdate called when the popper is updated
*
* @returns {UsePopperState} The popper state
*/
function usePopper(referenceElement, popperElement, _temp) {
var _ref3 = _temp === void 0 ? {} : _temp,
_ref3$enabled = _ref3.enabled,
enabled = _ref3$enabled === void 0 ? true : _ref3$enabled,
_ref3$placement = _ref3.placement,
placement = _ref3$placement === void 0 ? 'bottom' : _ref3$placement,
_ref3$strategy = _ref3.strategy,
strategy = _ref3$strategy === void 0 ? 'absolute' : _ref3$strategy,
_ref3$modifiers = _ref3.modifiers,
modifiers = _ref3$modifiers === void 0 ? EMPTY_MODIFIERS : _ref3$modifiers,
config = _objectWithoutPropertiesLoose(_ref3, ["enabled", "placement", "strategy", "modifiers"]);
var popperInstanceRef = useRef();
var update = useCallback(function () {
var _popperInstanceRef$cu;
(_popperInstanceRef$cu = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu.update();
}, []);
var forceUpdate = useCallback(function () {
var _popperInstanceRef$cu2;
(_popperInstanceRef$cu2 = popperInstanceRef.current) == null ? void 0 : _popperInstanceRef$cu2.forceUpdate();
}, []);
var _useSafeState = useSafeState(useState({
placement: placement,
update: update,
forceUpdate: forceUpdate,
attributes: {},
styles: {
popper: initialPopperStyles(strategy),
arrow: {}
}
})),
popperState = _useSafeState[0],
setState = _useSafeState[1];
var updateModifier = useMemo(function () {
return {
name: 'updateStateModifier',
enabled: true,
phase: 'write',
requires: ['computeStyles'],
fn: function fn(_ref4) {
var state = _ref4.state;
var styles = {};
var attributes = {};
Object.keys(state.elements).forEach(function (element) {
styles[element] = state.styles[element];
attributes[element] = state.attributes[element];
});
setState({
state: state,
styles: styles,
attributes: attributes,
update: update,
forceUpdate: forceUpdate,
placement: state.placement
});
}
};
}, [update, forceUpdate, setState]);
useEffect(function () {
if (!popperInstanceRef.current || !enabled) return;
popperInstanceRef.current.setOptions({
placement: placement,
strategy: strategy,
modifiers: [].concat(modifiers, [updateModifier, disabledApplyStylesModifier])
}); // intentionally NOT re-running on new modifiers
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [strategy, placement, updateModifier, enabled]);
useEffect(function () {
if (!enabled || referenceElement == null || popperElement == null) {
return undefined;
}
popperInstanceRef.current = createPopper(referenceElement, popperElement, _extends({}, config, {
placement: placement,
strategy: strategy,
modifiers: [].concat(modifiers, [ariaDescribedByModifier, updateModifier])
}));
return function () {
if (popperInstanceRef.current != null) {
popperInstanceRef.current.destroy();
popperInstanceRef.current = undefined;
setState(function (s) {
return _extends({}, s, {
attributes: {},
styles: {
popper: initialPopperStyles(strategy)
}
});
});
}
}; // This is only run once to _create_ the popper
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [enabled, referenceElement, popperElement]);
return popperState;
}
export default usePopper;

22
node_modules/react-overlays/esm/useRootClose.d.ts generated vendored Normal file
View File

@@ -0,0 +1,22 @@
/// <reference types="react" />
export declare type MouseEvents = {
[K in keyof GlobalEventHandlersEventMap]: GlobalEventHandlersEventMap[K] extends MouseEvent ? K : never;
}[keyof GlobalEventHandlersEventMap];
export interface RootCloseOptions {
disabled?: boolean;
clickTrigger?: MouseEvents;
}
/**
* The `useRootClose` hook registers your callback on the document
* when rendered. Powers the `<Overlay/>` component. This is used achieve modal
* style behavior where your callback is triggered when the user tries to
* interact with the rest of the document or hits the `esc` key.
*
* @param {Ref<HTMLElement>| HTMLElement} ref The element boundary
* @param {function} onRootClose
* @param {object=} options
* @param {boolean=} options.disabled
* @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on
*/
declare function useRootClose(ref: React.RefObject<Element> | Element | null | undefined, onRootClose: (e: Event) => void, { disabled, clickTrigger }?: RootCloseOptions): void;
export default useRootClose;

107
node_modules/react-overlays/esm/useRootClose.js generated vendored Normal file
View File

@@ -0,0 +1,107 @@
import contains from 'dom-helpers/contains';
import listen from 'dom-helpers/listen';
import { useCallback, useEffect, useRef } from 'react';
import useEventCallback from '@restart/hooks/useEventCallback';
import warning from 'warning';
import ownerDocument from './ownerDocument';
var escapeKeyCode = 27;
var noop = function noop() {};
function isLeftClickEvent(event) {
return event.button === 0;
}
function isModifiedEvent(event) {
return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
}
var getRefTarget = function getRefTarget(ref) {
return ref && ('current' in ref ? ref.current : ref);
};
/**
* The `useRootClose` hook registers your callback on the document
* when rendered. Powers the `<Overlay/>` component. This is used achieve modal
* style behavior where your callback is triggered when the user tries to
* interact with the rest of the document or hits the `esc` key.
*
* @param {Ref<HTMLElement>| HTMLElement} ref The element boundary
* @param {function} onRootClose
* @param {object=} options
* @param {boolean=} options.disabled
* @param {string=} options.clickTrigger The DOM event name (click, mousedown, etc) to attach listeners on
*/
function useRootClose(ref, onRootClose, _temp) {
var _ref = _temp === void 0 ? {} : _temp,
disabled = _ref.disabled,
_ref$clickTrigger = _ref.clickTrigger,
clickTrigger = _ref$clickTrigger === void 0 ? 'click' : _ref$clickTrigger;
var preventMouseRootCloseRef = useRef(false);
var onClose = onRootClose || noop;
var handleMouseCapture = useCallback(function (e) {
var _e$composedPath$;
var currentTarget = getRefTarget(ref);
warning(!!currentTarget, 'RootClose captured a close event but does not have a ref to compare it to. ' + 'useRootClose(), should be passed a ref that resolves to a DOM node');
preventMouseRootCloseRef.current = !currentTarget || isModifiedEvent(e) || !isLeftClickEvent(e) || !!contains(currentTarget, (_e$composedPath$ = e.composedPath == null ? void 0 : e.composedPath()[0]) != null ? _e$composedPath$ : e.target);
}, [ref]);
var handleMouse = useEventCallback(function (e) {
if (!preventMouseRootCloseRef.current) {
onClose(e);
}
});
var handleKeyUp = useEventCallback(function (e) {
if (e.keyCode === escapeKeyCode) {
onClose(e);
}
});
useEffect(function () {
if (disabled || ref == null) return undefined; // Store the current event to avoid triggering handlers immediately
// https://github.com/facebook/react/issues/20074
var currentEvent = window.event;
var doc = ownerDocument(getRefTarget(ref)); // Use capture for this listener so it fires before React's listener, to
// avoid false positives in the contains() check below if the target DOM
// element is removed in the React mouse callback.
var removeMouseCaptureListener = listen(doc, clickTrigger, handleMouseCapture, true);
var removeMouseListener = listen(doc, clickTrigger, function (e) {
// skip if this event is the same as the one running when we added the handlers
if (e === currentEvent) {
currentEvent = undefined;
return;
}
handleMouse(e);
});
var removeKeyupListener = listen(doc, 'keyup', function (e) {
// skip if this event is the same as the one running when we added the handlers
if (e === currentEvent) {
currentEvent = undefined;
return;
}
handleKeyUp(e);
});
var mobileSafariHackListeners = [];
if ('ontouchstart' in doc.documentElement) {
mobileSafariHackListeners = [].slice.call(doc.body.children).map(function (el) {
return listen(el, 'mousemove', noop);
});
}
return function () {
removeMouseCaptureListener();
removeMouseListener();
removeKeyupListener();
mobileSafariHackListeners.forEach(function (remove) {
return remove();
});
};
}, [ref, disabled, clickTrigger, handleMouseCapture, handleMouse, handleKeyUp]);
}
export default useRootClose;

View File

@@ -0,0 +1,4 @@
/// <reference types="react" />
export declare type DOMContainer<T extends HTMLElement = HTMLElement> = T | React.RefObject<T> | null | (() => T | React.RefObject<T> | null);
export declare const resolveContainerRef: <T extends HTMLElement>(ref: DOMContainer<T> | undefined) => HTMLBodyElement | T | null;
export default function useWaitForDOMRef<T extends HTMLElement = HTMLElement>(ref: DOMContainer<T> | undefined, onResolved?: (element: T | HTMLBodyElement) => void): HTMLBodyElement | T | null;

38
node_modules/react-overlays/esm/useWaitForDOMRef.js generated vendored Normal file
View File

@@ -0,0 +1,38 @@
import ownerDocument from 'dom-helpers/ownerDocument';
import { useState, useEffect } from 'react';
export var resolveContainerRef = function resolveContainerRef(ref) {
var _ref;
if (typeof document === 'undefined') return null;
if (ref == null) return ownerDocument().body;
if (typeof ref === 'function') ref = ref();
if (ref && 'current' in ref) ref = ref.current;
if ((_ref = ref) != null && _ref.nodeType) return ref || null;
return null;
};
export default function useWaitForDOMRef(ref, onResolved) {
var _useState = useState(function () {
return resolveContainerRef(ref);
}),
resolvedRef = _useState[0],
setRef = _useState[1];
if (!resolvedRef) {
var earlyRef = resolveContainerRef(ref);
if (earlyRef) setRef(earlyRef);
}
useEffect(function () {
if (onResolved && resolvedRef) {
onResolved(resolvedRef);
}
}, [onResolved, resolvedRef]);
useEffect(function () {
var nextRef = resolveContainerRef(ref);
if (nextRef !== resolvedRef) {
setRef(nextRef);
}
}, [ref, resolvedRef]);
return resolvedRef;
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/isOverflowing",
"private": true,
"main": "../cjs/isOverflowing.js",
"module": "../esm/isOverflowing.js",
"types": "../esm/isOverflowing.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/manageAriaHidden",
"private": true,
"main": "../cjs/manageAriaHidden.js",
"module": "../esm/manageAriaHidden.js",
"types": "../esm/manageAriaHidden.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/mergeOptionsWithPopperConfig",
"private": true,
"main": "../cjs/mergeOptionsWithPopperConfig.js",
"module": "../esm/mergeOptionsWithPopperConfig.js",
"types": "../esm/mergeOptionsWithPopperConfig.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/ownerDocument",
"private": true,
"main": "../cjs/ownerDocument.js",
"module": "../esm/ownerDocument.js",
"types": "../esm/ownerDocument.d.ts"
}

58
node_modules/react-overlays/package.json generated vendored Normal file
View File

@@ -0,0 +1,58 @@
{
"name": "react-overlays",
"version": "5.2.1",
"description": "Utilities for creating robust overlay components",
"author": {
"name": "Jason Quense",
"email": "monastic.panic@gmail.com"
},
"repository": {
"type": "git",
"url": "git+https://github.com/react-bootstrap/react-overlays.git"
},
"license": "MIT",
"main": "cjs/index.js",
"module": "esm/index.js",
"sideEffects": false,
"keywords": [
"react-overlays",
"react-component",
"react",
"overlay",
"react-component",
"tooltip",
"bootstrap",
"popover",
"modal"
],
"lint-staged": {
"*.js,*.tsx": "eslint --fix --ext .js,.ts,.tsx"
},
"prettier": {
"singleQuote": true,
"trailingComma": "all"
},
"publishConfig": {
"directory": "lib"
},
"release": {
"conventionalCommits": true
},
"dependencies": {
"@babel/runtime": "^7.13.8",
"@popperjs/core": "^2.11.6",
"@restart/hooks": "^0.4.7",
"@types/warning": "^3.0.0",
"dom-helpers": "^5.2.0",
"prop-types": "^15.7.2",
"uncontrollable": "^7.2.1",
"warning": "^4.0.3"
},
"peerDependencies": {
"react": ">=16.3.0",
"react-dom": ">=16.3.0"
},
"bugs": {
"url": "https://github.com/react-bootstrap/react-overlays/issues"
}
}

7
node_modules/react-overlays/popper/package.json generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/popper",
"private": true,
"main": "../cjs/popper.js",
"module": "../esm/popper.js",
"types": "../esm/popper.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/safeFindDOMNode",
"private": true,
"main": "../cjs/safeFindDOMNode.js",
"module": "../esm/safeFindDOMNode.js",
"types": "../esm/safeFindDOMNode.d.ts"
}

7
node_modules/react-overlays/usePopper/package.json generated vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/usePopper",
"private": true,
"main": "../cjs/usePopper.js",
"module": "../esm/usePopper.js",
"types": "../esm/usePopper.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/useRootClose",
"private": true,
"main": "../cjs/useRootClose.js",
"module": "../esm/useRootClose.js",
"types": "../esm/useRootClose.d.ts"
}

View File

@@ -0,0 +1,7 @@
{
"name": "react-overlays/useWaitForDOMRef",
"private": true,
"main": "../cjs/useWaitForDOMRef.js",
"module": "../esm/useWaitForDOMRef.js",
"types": "../esm/useWaitForDOMRef.d.ts"
}