UNPKG

chowa

Version:

UI component library based on React

78 lines (77 loc) 3.16 kB
/** * @license chowa v1.1.3 * * Copyright (c) Chowa Techonlogies Co.,Ltd.(http://www.chowa.cn). * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const React = require("react"); const PropTypes = require("prop-types"); const classnames_1 = require("classnames"); const utils_1 = require("../utils"); const overlay_1 = require("../overlay"); const Popover = (props) => { const { children, className, style, visible, defaultVisible, content, placement, onVisibleChange, title, withArrow, trigger, fixSpace, offsetX, offsetY, disabled, externalWheelHide, delay, onShow, onHide, onEnter, onLeave } = props; const componentClass = classnames_1.default({ [utils_1.preClass('popover')]: true, [utils_1.preClass('popover-with-arrow')]: withArrow, [utils_1.preClass(`popover-${placement}`)]: withArrow, [className]: utils_1.isExist(className) }); return (React.createElement(overlay_1.default, { role: 'popover', trigger: children, enter: utils_1.preClass('zoom-center-enter'), appear: utils_1.preClass('zoom-appear'), leave: utils_1.preClass('zoom-center-leave'), className: componentClass, style: style, visible: visible, defaultVisible: defaultVisible, externalWheelHide: externalWheelHide, onVisibleChange: onVisibleChange, placement: placement, action: trigger, fixSpace: fixSpace, offsetX: offsetX, offsetY: offsetY, disabled: disabled, delay: delay, onShow: onShow, onHide: onHide, onEnter: onEnter, onLeave: onLeave }, React.createElement("div", { className: utils_1.preClass('popover-body') }, title && React.createElement("div", { className: utils_1.preClass('popover-title') }, title), React.createElement("div", { className: utils_1.preClass('popover-content') }, content)))); }; Popover.propTypes = { className: PropTypes.string, style: PropTypes.object, visible: PropTypes.bool, defaultVisible: PropTypes.bool, externalWheelHide: PropTypes.bool, trigger: PropTypes.oneOf(['click', 'hover', 'focus', 'contextMenu']), placement: PropTypes.oneOf([ 'top', 'left', 'bottom', 'right', 'left-top', 'left-bottom', 'right-top', 'right-bottom', 'top-left', 'top-right', 'bottom-left', 'bottom-right' ]), onVisibleChange: PropTypes.func, fixSpace: PropTypes.number, offsetX: PropTypes.number, offsetY: PropTypes.number, disabled: PropTypes.bool, title: PropTypes.string, content: PropTypes.node.isRequired, withArrow: PropTypes.bool, delay: PropTypes.number, onShow: PropTypes.func, onHide: PropTypes.func, onEnter: PropTypes.func, onLeave: PropTypes.func }; Popover.defaultProps = { visible: false, defaultVisible: false, externalWheelHide: true, fixSpace: 2, offsetX: 0, offsetY: 0, withArrow: true, disabled: false, trigger: 'hover', placement: 'top', delay: 200 }; exports.default = Popover;