1 line
7.6 KiB
JSON
1 line
7.6 KiB
JSON
|
{"ast":null,"code":"import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport PopperJS from 'popper.js';\nimport PropTypes from 'prop-types';\nimport React, { useState } from 'react';\nimport ReactDOM from 'react-dom';\nimport useCallbackRef from '@restart/hooks/useCallbackRef';\nimport useMergedRefs from '@restart/hooks/useMergedRefs';\nimport usePopper from './usePopper';\nimport useRootClose from './useRootClose';\nimport useWaitForDOMRef from './utils/useWaitForDOMRef';\n/**\n * Built on top of `Popper.js`, the overlay component is\n * great for custom tooltip overlays.\n */\n\nvar Overlay = React.forwardRef(function (props, outerRef) {\n var flip = props.flip,\n placement = props.placement,\n containerPadding = props.containerPadding,\n _props$popperConfig = props.popperConfig,\n popperConfig = _props$popperConfig === void 0 ? {} : _props$popperConfig,\n Transition = props.transition;\n\n var _useCallbackRef = useCallbackRef(),\n rootElement = _useCallbackRef[0],\n attachRef = _useCallbackRef[1];\n\n var _useCallbackRef2 = useCallbackRef(),\n arrowElement = _useCallbackRef2[0],\n attachArrowRef = _useCallbackRef2[1];\n\n var mergedRef = useMergedRefs(attachRef, outerRef);\n var container = useWaitForDOMRef(props.container);\n var target = useWaitForDOMRef(props.target);\n\n var _useState = useState(!props.show),\n exited = _useState[0],\n setExited = _useState[1];\n\n var _popperConfig$modifie = popperConfig.modifiers,\n modifiers = _popperConfig$modifie === void 0 ? {} : _popperConfig$modifie;\n\n var _usePopper = usePopper(target, rootElement, _extends({}, popperConfig, {\n placement: placement || 'bottom',\n enableEvents: props.show,\n modifiers: _extends({}, modifiers, {\n preventOverflow: _extends({\n padding: containerPadding || 5\n }, modifiers.preventOverflow),\n arrow: _extends({}, modifiers.arrow, {\n enabled: !!arrowElement,\n element: arrowElement\n }),\n flip: _extends({\n enabled: !!flip\n }, modifiers.preventOverflow)\n })\n })),\n styles = _usePopper.styles,\n arrowStyles = _usePopper.arrowStyles,\n popper = _objectWithoutPropertiesLoose(_usePopper, [\"styles\", \"arrowStyles\"]);\n\n if (props.show) {\n if (exited) setExited(false);\n } else if (!props.transition && !exited) {\n setExited(true);\n }\n\n var handleHidden = function handleHidden() {\n setExited(true);\n\n if (props.onExited) {\n props.onExited.apply(props, arguments);\n }\n }; // Don't un-render the overlay while it's transitioning out.\n\n\n var mountOverlay = props.show || Transition && !exited;\n useRootClose(rootElement, props.onHide, {\n disabled: !props.rootClose || props.rootCloseDisabled,\n clickTrigger: props.rootCloseEvent\n });\n\n if (!mountOverlay) {\n // Don't bother showing anything if we don't have to.\n return null;\n }\n\n var child = props.children(_extends({}, popper, {\n show: props.show,\n props: {\n style: styles,\n ref: mergedRef\n },\n arrowProps: {\n style: arrowStyles,\n ref: attachArrowRef\n }\n }));\n\n if (Transition) {\n var onExit = props.onExit,\n onExiting = props.onExiting,\n onEnter = props.onEnter,\n onEntering = props.onEntering,\n onEntered = props.onEntered;\n child = React.createElement(Transition, {\n \"in\": props.show,\n appear: true,\n onExit: onExit,\n onExiting: onExiting,\n onExited: handleHidden,\n onEnter: onEnter,\n onEntering: onEntering,\n onEntered: onEntered\n }, child);\n }\n\n return container ? ReactDOM.createPortal(child, container) : null;\n});\nOverlay.displayName = 'Overlay';\nOverlay.propTypes = {\n /**\n * Set the visibility of the Overlay\n */\n show: PropTypes.bool,\n\n /** Specify where the overlay element is positioned in relation to the t
|