UNPKG

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