1 | import { oneOfType, func, node, string, bool, oneOf } from 'prop-types';
|
2 | import { animatePropTypes, restrictHidePropTypes, animateDefaultProps, restrictDefaultProps } from './types/props.js';
|
3 | import { a as _objectSpread, c as _objectWithoutPropertiesLoose, g as _extends } from './chunk-1f79df9b.js';
|
4 | import { createElement, Fragment } from 'react';
|
5 | import Portal from './Portal/index.js';
|
6 | import Backdrop from './Backdrop/index.js';
|
7 | import { a as isFunction } from './chunk-5c9bbccf.js';
|
8 | import { a as TrapFocus } from './chunk-df6ef69d.js';
|
9 | import ModalContainer from './Modal/ModalContainer.js';
|
10 | import _Modal from './Modal/styled.js';
|
11 | import ModalHide from './Modal/ModalHide.js';
|
12 | import ModalShow from './Modal/ModalShow.js';
|
13 |
|
14 | var Modal = function Modal(_ref) {
|
15 | var children = _ref.children,
|
16 | delay = _ref.delay,
|
17 | duration = _ref.duration,
|
18 | fade = _ref.fade,
|
19 | hide = _ref.hide,
|
20 | hideOnEsc = _ref.hideOnEsc,
|
21 | hideOnClickOutside = _ref.hideOnClickOutside,
|
22 | isVisible = _ref.isVisible,
|
23 | kind = _ref.kind,
|
24 | _ref$renderWrapper = _ref.renderWrapper,
|
25 | renderWrapper = _ref$renderWrapper === void 0 ? function (children) {
|
26 | return children;
|
27 | } : _ref$renderWrapper,
|
28 | showActionButtons = _ref.showActionButtons,
|
29 | showCloseButton = _ref.showCloseButton,
|
30 | props = _objectWithoutPropertiesLoose(_ref, ["children", "delay", "duration", "fade", "hide", "hideOnEsc", "hideOnClickOutside", "isVisible", "kind", "renderWrapper", "showActionButtons", "showCloseButton"]);
|
31 |
|
32 | return createElement(Portal, null, createElement(TrapFocus, {
|
33 | isActive: isVisible,
|
34 | usesPortal: true
|
35 | }, function (_ref2) {
|
36 | var fallbackFocusRef = _ref2.fallbackFocusRef,
|
37 | initialFocusRef = _ref2.initialFocusRef;
|
38 | return createElement(Fragment, null, createElement(Backdrop, {
|
39 | delay: delay,
|
40 | duration: duration,
|
41 | expand: undefined,
|
42 | hide: hideOnClickOutside && kind !== 'alert' ? hide : undefined,
|
43 | fade: fade,
|
44 | hideOnEsc: kind === 'alert' ? false : hideOnEsc,
|
45 | isVisible: isVisible,
|
46 | slide: undefined,
|
47 | use: hideOnClickOutside && kind !== 'alert' ? ModalHide : undefined
|
48 | }), createElement(_Modal, _extends({
|
49 | "aria-modal": "true",
|
50 | delay: delay,
|
51 | duration: duration,
|
52 | fade: fade,
|
53 | hideOnEsc: kind === 'alert' ? false : hideOnEsc,
|
54 | hideOnClickOutside: kind === 'alert' ? false : hideOnClickOutside,
|
55 | isVisible: isVisible
|
56 | }, props), renderWrapper(isFunction(children) ? children({
|
57 | fallbackFocusRef: fallbackFocusRef,
|
58 | initialFocusRef: initialFocusRef
|
59 | }) : children)));
|
60 | }));
|
61 | };
|
62 | var modalPropTypes = _objectSpread({}, animatePropTypes, restrictHidePropTypes, {
|
63 | children: oneOfType([func, node]).isRequired,
|
64 | className: string,
|
65 | isVisible: bool,
|
66 | hide: func,
|
67 | kind: oneOf(['alert']),
|
68 | showActionButtons: bool,
|
69 | showCloseButton: bool,
|
70 | renderWrapper: func
|
71 | });
|
72 | Modal.propTypes = modalPropTypes;
|
73 | var modalDefaultProps = _objectSpread({}, animateDefaultProps, restrictDefaultProps, {
|
74 | className: undefined,
|
75 | isVisible: false,
|
76 | kind: undefined,
|
77 | showActionButtons: false,
|
78 | showCloseButton: false,
|
79 | hideOnClickOutside: true,
|
80 | hideOnEsc: true,
|
81 | renderWrapper: function renderWrapper(children) {
|
82 | return children;
|
83 | }
|
84 | });
|
85 | Modal.defaultProps = modalDefaultProps;
|
86 | Modal.Container = ModalContainer;
|
87 | Modal.Hide = ModalHide;
|
88 | Modal.Show = ModalShow;
|
89 | var C = Modal;
|
90 |
|
91 | export { modalPropTypes as a, modalDefaultProps as b, C as c };
|