UNPKG

zent

Version:

一套前端设计语言和基于React的实现

1,699 lines (1,333 loc) 296 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof define === 'function' && define.amd) define(["react", "react-dom"], factory); else if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react"), require("react-dom")); else if(typeof exports === 'object') exports["zent-pop"] = factory(require("react"), require("react-dom")); else root["zent-pop"] = factory(root["React"], root["ReactDOM"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_6__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { module.exports = __webpack_require__(1); /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _Pop = __webpack_require__(2); var _Pop2 = _interopRequireDefault(_Pop); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = _Pop2['default']; module.exports = exports['default']; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _class2, _temp3; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _zentPopover = __webpack_require__(4); var _zentPopover2 = _interopRequireDefault(_zentPopover); var _zentButton = __webpack_require__(228); var _zentButton2 = _interopRequireDefault(_zentButton); var _classnames = __webpack_require__(7); var _classnames2 = _interopRequireDefault(_classnames); var _noop = __webpack_require__(10); var _noop2 = _interopRequireDefault(_noop); var _isFunction = __webpack_require__(26); var _isFunction2 = _interopRequireDefault(_isFunction); var _isPromise = __webpack_require__(31); var _isPromise2 = _interopRequireDefault(_isPromise); var _NoneTrigger = __webpack_require__(230); var _NoneTrigger2 = _interopRequireDefault(_NoneTrigger); var _position = __webpack_require__(231); var _position2 = _interopRequireDefault(_position); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var Trigger = _zentPopover2['default'].Trigger, withPopover = _zentPopover2['default'].withPopover; var stateMap = { onConfirm: 'confirmPending', onCancel: 'cancelPending' }; var PopAction = function (_Component) { _inherits(PopAction, _Component); function PopAction() { var _ref; var _temp, _this, _ret; _classCallCheck(this, PopAction); for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = PopAction.__proto__ || Object.getPrototypeOf(PopAction)).call.apply(_ref, [this].concat(args))), _this), _this.handleConfirm = function () { _this.handleClick('onConfirm'); }, _this.handleCancel = function () { _this.handleClick('onCancel'); }, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(PopAction, [{ key: 'handleClick', // 支持异步的回调函数 // onConfirm/onCancel异步等待的时候要禁用用户关闭 value: function handleClick(callbackName) { var callback = this.props[callbackName]; var popover = this.props.popover; if (!(0, _isFunction2['default'])(callback)) { return popover.close(); } var changePending = this.props.changePending; var stateKey = stateMap[callbackName]; var startClose = function startClose() { changePending(stateKey, true); }; var finishClose = function finishClose() { changePending(stateKey, false, popover.close); }; if (callback.length >= 1) { startClose(); return callback(finishClose); } var maybePromise = callback(); if ((0, _isPromise2['default'])(maybePromise)) { startClose(); maybePromise.then(finishClose)['catch'](function () { return changePending(stateKey, false, popover.close); }); } else { popover.close(); } } }, { key: 'render', value: function render() { var _props = this.props, prefix = _props.prefix, type = _props.type, onConfirm = _props.onConfirm, onCancel = _props.onCancel, confirmText = _props.confirmText, cancelText = _props.cancelText, confirmPending = _props.confirmPending, cancelPending = _props.cancelPending; if (!onConfirm && !onCancel) { return null; } return _react2['default'].createElement( 'div', { className: prefix + '-pop-buttons' }, _react2['default'].createElement( _zentButton2['default'], { loading: confirmPending, disabled: cancelPending, size: 'small', type: type, onClick: this.handleConfirm }, confirmText ), _react2['default'].createElement( _zentButton2['default'], { loading: cancelPending, disabled: confirmPending, size: 'small', onClick: this.handleCancel }, cancelText ) ); } }]); return PopAction; }(_react.Component); var BoundPopAction = withPopover(PopAction); var Pop = (_temp3 = _class2 = function (_Component2) { _inherits(Pop, _Component2); function Pop() { var _ref2; var _temp2, _this2, _ret2; _classCallCheck(this, Pop); for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, (_ref2 = Pop.__proto__ || Object.getPrototypeOf(Pop)).call.apply(_ref2, [this].concat(args))), _this2), _this2.state = { confirmPending: false, cancelPending: false }, _this2.changePending = function (key, pending, callback) { if (_this2.isUnmounted) { return; } _this2.setState(_defineProperty({}, key, pending), callback); }, _temp2), _possibleConstructorReturn(_this2, _ret2); } _createClass(Pop, [{ key: 'renderContent', value: function renderContent() { var _props2 = this.props, prefix = _props2.prefix, content = _props2.content, header = _props2.header, onConfirm = _props2.onConfirm, onCancel = _props2.onCancel, confirmText = _props2.confirmText, cancelText = _props2.cancelText, type = _props2.type; var _state = this.state, confirmPending = _state.confirmPending, cancelPending = _state.cancelPending; return _react2['default'].createElement( _zentPopover2['default'].Content, null, header && _react2['default'].createElement( 'div', { className: prefix + '-pop-header' }, header ), _react2['default'].createElement( 'div', { className: prefix + '-pop-inner' }, content, _react2['default'].createElement(BoundPopAction, { prefix: prefix, onConfirm: onConfirm, onCancel: onCancel, confirmText: confirmText, cancelText: cancelText, confirmPending: confirmPending, cancelPending: cancelPending, changePending: this.changePending, type: type }) ), _react2['default'].createElement('i', { className: prefix + '-pop-arrow' }) ); } }, { key: 'renderTrigger', value: function renderTrigger() { var _props3 = this.props, trigger = _props3.trigger, visible = _props3.visible, onVisibleChange = _props3.onVisibleChange, closeOnClickOutside = _props3.closeOnClickOutside, isOutside = _props3.isOutside, mouseLeaveDelay = _props3.mouseLeaveDelay, mouseEnterDelay = _props3.mouseEnterDelay, children = _props3.children; if (trigger === 'click') { return _react2['default'].createElement( Trigger.Click, { autoClose: closeOnClickOutside, isOutside: isOutside }, children ); } if (trigger === 'hover') { return _react2['default'].createElement( Trigger.Hover, { showDelay: mouseEnterDelay, hideDelay: mouseLeaveDelay, isOutside: isOutside }, children ); } if (trigger === 'focus') { return _react2['default'].createElement( Trigger.Focus, null, children ); } if (trigger === 'none') { return _react2['default'].createElement( _NoneTrigger2['default'], { visible: visible, onVisibleChange: onVisibleChange }, children ); } return null; } }, { key: 'componentWillUnmount', value: function componentWillUnmount() { this.isUnmounted = true; } }, { key: 'render', value: function render() { var _props4 = this.props, className = _props4.className, wrapperClassName = _props4.wrapperClassName, trigger = _props4.trigger, visible = _props4.visible, prefix = _props4.prefix, block = _props4.block, onShow = _props4.onShow, onClose = _props4.onClose, position = _props4.position, centerArrow = _props4.centerArrow, onBeforeClose = _props4.onBeforeClose, onBeforeShow = _props4.onBeforeShow; var onVisibleChange = this.props.onVisibleChange; if (trigger === 'none') { onVisibleChange = onVisibleChange || _noop2['default']; } var _state2 = this.state, confirmPending = _state2.confirmPending, cancelPending = _state2.cancelPending; var closePending = confirmPending || cancelPending; return _react2['default'].createElement( _zentPopover2['default'], { visible: closePending ? true : visible, onVisibleChange: closePending ? _noop2['default'] : onVisibleChange, prefix: prefix, wrapperClassName: (0, _classnames2['default'])(prefix + '-pop-wrapper', wrapperClassName), className: (0, _classnames2['default'])(prefix + '-pop', className), cushion: 10, position: (0, _position2['default'])(position, centerArrow), display: block ? 'block' : 'inline-block', onShow: onShow, onClose: onClose, onBeforeClose: onBeforeClose, onBeforeShow: onBeforeShow }, this.renderTrigger(), this.renderContent() ); } }]); return Pop; }(_react.Component), _class2.propTypes = { trigger: _react.PropTypes.oneOf(['click', 'hover', 'focus', 'none']), position: _react.PropTypes.oneOf(['left-top', 'left-center', 'left-bottom', 'right-top', 'right-center', 'right-bottom', 'top-left', 'top-center', 'top-right', 'bottom-left', 'bottom-center', 'bottom-right']), // 是否按小箭头居中对齐trigger来定位 centerArrow: _react.PropTypes.bool, // trigger是否块级显示 block: _react.PropTypes.bool, content: _react.PropTypes.node, header: _react.PropTypes.node, // confirm形式相关 onConfirm: _react.PropTypes.func, onCancel: _react.PropTypes.func, confirmText: _react.PropTypes.string, cancelText: _react.PropTypes.string, type: _react.PropTypes.oneOf(['primary', 'default', 'danger', 'success']), // 打开之后的回调函数 onShow: _react.PropTypes.func, // 关闭之后的回调函数 onClose: _react.PropTypes.func, // 打开/关闭前的回调函数,只有用户触发的操作才会调用;通过外部改变`visible`不会触发 onBeforeShow: _react.PropTypes.func, onBeforeClose: _react.PropTypes.func, visible: _react.PropTypes.bool, onVisibleChange: _react.PropTypes.func, // 只有trigger为hover时才有效 mouseLeaveDelay: _react.PropTypes.number, mouseEnterDelay: _react.PropTypes.number, // 只有trigger为click时才有效 closeOnClickOutside: _react.PropTypes.bool, isClickOutside: _react.PropTypes.func, prefix: _react.PropTypes.string, className: _react.PropTypes.string, wrapperClassName: _react.PropTypes.string }, _class2.defaultProps = { trigger: 'none', position: 'top-center', centerArrow: false, block: false, confirmText: '确定', cancelText: '取消', type: 'primary', closeOnClickOutside: true, mouseLeaveDelay: 200, mouseEnterDelay: 200, className: '', wrapperClassName: '', prefix: 'zent' }, _temp3); exports['default'] = Pop; module.exports = exports['default']; /***/ }, /* 3 */ /***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_3__; /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _Popover = __webpack_require__(5); var _Popover2 = _interopRequireDefault(_Popover); var _withPopover = __webpack_require__(190); var _withPopover2 = _interopRequireDefault(_withPopover); var _trigger = __webpack_require__(191); var _trigger2 = _interopRequireDefault(_trigger); var _Content = __webpack_require__(32); var _Content2 = _interopRequireDefault(_Content); var _placement = __webpack_require__(215); var _placement2 = _interopRequireDefault(_placement); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _Popover2['default'].Content = _Content2['default']; _Popover2['default'].Trigger = _trigger2['default']; _Popover2['default'].Position = _placement2['default']; _Popover2['default'].withPopover = _withPopover2['default']; exports['default'] = _Popover2['default']; module.exports = exports['default']; /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = exports.PopoverContextType = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); } }return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; }; }(); var _class, _temp, _initialiseProps; /** * 设计: * * Popover组件只是一个壳子,负责组装Trigger和Content。 * * 弹层实际的打开/关闭都是Content完成的,而什么情况打开弹层是Trigger控制的。 */ var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(6); var _reactDom2 = _interopRequireDefault(_reactDom); var _classnames = __webpack_require__(7); var _classnames2 = _interopRequireDefault(_classnames); var _noop = __webpack_require__(10); var _noop2 = _interopRequireDefault(_noop); var _uniqueId = __webpack_require__(12); var _uniqueId2 = _interopRequireDefault(_uniqueId); var _isFunction = __webpack_require__(26); var _isFunction2 = _interopRequireDefault(_isFunction); var _isBoolean = __webpack_require__(29); var _isBoolean2 = _interopRequireDefault(_isBoolean); var _isPromise = __webpack_require__(31); var _isPromise2 = _interopRequireDefault(_isPromise); var _Content = __webpack_require__(32); var _Content2 = _interopRequireDefault(_Content); var _Trigger = __webpack_require__(189); var _Trigger2 = _interopRequireDefault(_Trigger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); }return call && ((typeof call === 'undefined' ? 'undefined' : _typeof(call)) === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === 'undefined' ? 'undefined' : _typeof(superClass))); }subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } });if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } var SKIPPED = function SKIPPED() {}; function instanceOf(MaybeDerive, Base) { return MaybeDerive === Base || MaybeDerive.prototype instanceof Base; } function handleBeforeHook(beforeFn, arity, continuation) { // 有参数,传入continuation,由外部去控制何时调用 if (arity >= 1) { return beforeFn(continuation); } // 无参数,如果返回Promise那么resolve后调用continuation;如果返回不是Promise,直接调用Promise var mayBePromise = beforeFn(); if (!(0, _isPromise2['default'])(mayBePromise) && mayBePromise !== SKIPPED) { return continuation(); } mayBePromise.then(continuation); } var PopoverContextType = exports.PopoverContextType = { popover: _react.PropTypes.shape({ close: _react.PropTypes.func.isRequired, open: _react.PropTypes.func.isRequired, getContentNode: _react.PropTypes.func.isRequired, getTriggerNode: _react.PropTypes.func.isRequired }) }; var Popover = (_temp = _class = function (_Component) { _inherits(Popover, _Component); _createClass(Popover, [{ key: 'getChildContext', value: function getChildContext() { return { popover: { close: this.close, open: this.open, getContentNode: this.getPopoverNode, getTriggerNode: this.getTriggerNode } }; } }]); function Popover(props) { _classCallCheck(this, Popover); // id用来唯一标识popover实例 var _this = _possibleConstructorReturn(this, (Popover.__proto__ || Object.getPrototypeOf(Popover)).call(this, props)); _initialiseProps.call(_this); _this.id = (0, _uniqueId2['default'])(props.prefix + '-popover-internal-id-'); if (!_this.isVisibilityControlled(props)) { _this.state = { visible: false }; } return _this; } _createClass(Popover, [{ key: 'isVisibilityControlled', value: function isVisibilityControlled(props) { var _ref = props || this.props, visible = _ref.visible, onVisibleChange = _ref.onVisibleChange; var hasOnChange = (0, _isFunction2['default'])(onVisibleChange); var hasVisible = (0, _isBoolean2['default'])(visible); if (hasVisible && !hasOnChange || hasOnChange && !hasVisible) { throw new Error('visible and onVisibleChange must be used together'); } return hasVisible && hasOnChange; } }, { key: 'validateChildren', value: function validateChildren() { var children = this.props.children; var childArray = _react.Children.toArray(children); if (childArray.length !== 2) { throw new Error('There must be one and only one trigger and content in Popover'); } var _childArray$reduce = childArray.reduce(function (state, c) { var type = c.type; if (instanceOf(type, _Trigger2['default'])) { state.trigger = c; } else if (instanceOf(type, _Content2['default'])) { state.content = c; } return state; }, { trigger: null, content: null }), trigger = _childArray$reduce.trigger, content = _childArray$reduce.content; if (!trigger) { throw new Error('Missing trigger in Popover'); } if (!content) { throw new Error('Missing content in Popover'); } return { trigger: trigger, content: content }; } }, { key: 'componentDidMount', value: function componentDidMount() { if (this.isVisibilityControlled() && this.props.visible) { this.props.onShow(); } } }, { key: 'componentDidUpdate', value: function componentDidUpdate(prevProps, prevState) { var visible = this.getVisible(); if (visible !== this.getVisible(prevProps, prevState)) { var afterHook = visible ? this.props.onShow : this.props.onClose; afterHook(); } } }, { key: 'render', value: function render() { var _validateChildren = this.validateChildren(), trigger = _validateChildren.trigger, content = _validateChildren.content; var _props = this.props, display = _props.display, prefix = _props.prefix, className = _props.className, wrapperClassName = _props.wrapperClassName, containerSelector = _props.containerSelector, position = _props.position, cushion = _props.cushion; var visible = this.getVisible(); return _react2['default'].createElement('div', { style: { display: display }, className: (0, _classnames2['default'])(prefix + '-popover-wrapper', wrapperClassName) }, _react2['default'].cloneElement(trigger, { prefix: prefix, contentVisible: visible, onTriggerRefChange: this.onTriggerRefChange, getTriggerNode: this.getTriggerNode, getContentNode: this.getPopoverNode, open: this.open, close: this.close }), _react2['default'].cloneElement(content, { prefix: prefix, className: className, id: this.id, getContentNode: this.getPopoverNode, getAnchor: this.getTriggerNode, visible: visible, cushion: cushion, containerSelector: containerSelector, placement: position })); } }]); return Popover; }(_react.Component), _class.propTypes = { prefix: _react.PropTypes.string, className: _react.PropTypes.string, // custom classname for trigger wrapper wrapperClassName: _react.PropTypes.string, // container的display属性 display: _react.PropTypes.string, // position strategy position: _react.PropTypes.func.isRequired, // 定位时的偏移量 cushion: _react.PropTypes.number, // 只有用户触发的打开/关闭才会触发这两个毁掉 onBeforeClose: _react.PropTypes.func, onBeforeShow: _react.PropTypes.func, // 不管打开/关闭时如何触发的都会被调用 onClose: _react.PropTypes.func, onShow: _react.PropTypes.func, // defaults to body containerSelector: _react.PropTypes.string, children: _react.PropTypes.node.isRequired, // 两个必须一起出现 visible: _react.PropTypes.bool, onVisibleChange: _react.PropTypes.func }, _class.defaultProps = { prefix: 'zent', className: '', wrapperClassName: '', display: 'block', onBeforeClose: _noop2['default'], onBeforeShow: _noop2['default'], onClose: _noop2['default'], onShow: _noop2['default'], cushion: 0, containerSelector: 'body' }, _class.childContextTypes = PopoverContextType, _initialiseProps = function _initialiseProps() { var _this2 = this; this.getVisible = function (props, state) { if (_this2.isVisibilityControlled(props)) { props = props || _this2.props; return props.visible; } state = state || _this2.state; return state.visible; }; this.setVisible = function (visible, props, state) { props = props || _this2.props; state = state || _this2.state; var beforeHook = visible ? props.onBeforeShow : props.onBeforeClose; var onBefore = function onBefore() { // 确保pending的时候不会触发多次beforeHook if (_this2.pendingOnBeforeHook) { return SKIPPED; } _this2.pendingOnBeforeHook = true; return beforeHook.apply(undefined, arguments); }; if (_this2.isVisibilityControlled(props)) { if (_this2.pendingOnBeforeHook || props.visible === visible) { return; } handleBeforeHook(onBefore, beforeHook.length, function () { props.onVisibleChange(visible); _this2.pendingOnBeforeHook = false; }); } else { if (_this2.pendingOnBeforeHook || state.visible === visible) { return; } handleBeforeHook(onBefore, beforeHook.length, function () { _this2.setState({ visible: visible }); _this2.pendingOnBeforeHook = false; }); } }; this.getPopoverNode = function () { return document.querySelector('.' + _this2.id); }; this.onTriggerRefChange = function (triggerInstance) { _this2.triggerNode = _reactDom2['default'].findDOMNode(triggerInstance); }; this.getTriggerNode = function () { return _this2.triggerNode; }; this.open = function () { _this2.setVisible(true); }; this.close = function () { _this2.setVisible(false); }; }, _temp); exports['default'] = Popover; /***/ }, /* 6 */ /***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_6__; /***/ }, /* 7 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _classnames = __webpack_require__(8); Object.defineProperty(exports, 'default', { enumerable: true, get: function get() { return _interopRequireDefault(_classnames)['default']; } }); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } module.exports = exports['default']; /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /*! Copyright (c) 2016 Jed Watson. Licensed under the MIT License (MIT), see http://jedwatson.github.io/classnames */ /* global define */ (function () { 'use strict'; var hasOwn = {}.hasOwnProperty; function classNames() { var classes = []; for (var i = 0; i < arguments.length; i++) { var arg = arguments[i]; if (!arg) continue; var argType = typeof arg === 'undefined' ? 'undefined' : _typeof(arg); if (argType === 'string' || argType === 'number') { classes.push(arg); } else if (Array.isArray(arg)) { classes.push(classNames.apply(null, arg)); } else if (argType === 'object') { for (var key in arg) { if (hasOwn.call(arg, key) && arg[key]) { classes.push(key); } } } } return classes.join(' '); } if (typeof module !== 'undefined' && module.exports) { module.exports = classNames; } else if ("function" === 'function' && _typeof(__webpack_require__(9)) === 'object' && __webpack_require__(9)) { // register as 'classnames', consistent with npm package name !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () { return classNames; }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); } else { window.classNames = classNames; } })(); /***/ }, /* 9 */ /***/ function(module, exports) { /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__; /* WEBPACK VAR INJECTION */}.call(exports, {})) /***/ }, /* 10 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; /* DO NOT EDIT!! Auto genetated wrapper for lodash/noop. */ var noop = __webpack_require__(11); module.exports = noop; /***/ }, /* 11 */ /***/ function(module, exports) { "use strict"; /** * This method returns `undefined`. * * @static * @memberOf _ * @since 2.3.0 * @category Util * @example * * _.times(2, _.noop); * // => [undefined, undefined] */ function noop() { // No operation performed. } module.exports = noop; /***/ }, /* 12 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; /* DO NOT EDIT!! Auto genetated wrapper for lodash/uniqueId. */ var uniqueId = __webpack_require__(13); module.exports = uniqueId; /***/ }, /* 13 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var toString = __webpack_require__(14); /** Used to generate unique IDs. */ var idCounter = 0; /** * Generates a unique ID. If `prefix` is given, the ID is appended to it. * * @static * @since 0.1.0 * @memberOf _ * @category Util * @param {string} [prefix=''] The value to prefix the ID with. * @returns {string} Returns the unique ID. * @example * * _.uniqueId('contact_'); * // => 'contact_104' * * _.uniqueId(); * // => '105' */ function uniqueId(prefix) { var id = ++idCounter; return toString(prefix) + id; } module.exports = uniqueId; /***/ }, /* 14 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var baseToString = __webpack_require__(15); /** * Converts `value` to a string. An empty string is returned for `null` * and `undefined` values. The sign of `-0` is preserved. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {string} Returns the converted string. * @example * * _.toString(null); * // => '' * * _.toString(-0); * // => '-0' * * _.toString([1, 2, 3]); * // => '1,2,3' */ function toString(value) { return value == null ? '' : baseToString(value); } module.exports = toString; /***/ }, /* 15 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _Symbol = __webpack_require__(16), arrayMap = __webpack_require__(19), isArray = __webpack_require__(20), isSymbol = __webpack_require__(21); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0; /** Used to convert symbols to primitives and strings. */ var symbolProto = _Symbol ? _Symbol.prototype : undefined, symbolToString = symbolProto ? symbolProto.toString : undefined; /** * The base implementation of `_.toString` which doesn't convert nullish * values to empty strings. * * @private * @param {*} value The value to process. * @returns {string} Returns the string. */ function baseToString(value) { // Exit early for strings to avoid a performance hit in some environments. if (typeof value == 'string') { return value; } if (isArray(value)) { // Recursively convert values (susceptible to call stack limits). return arrayMap(value, baseToString) + ''; } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ''; } var result = value + ''; return result == '0' && 1 / value == -INFINITY ? '-0' : result; } module.exports = baseToString; /***/ }, /* 16 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var root = __webpack_require__(17); /** Built-in value references. */ var _Symbol = root.Symbol; module.exports = _Symbol; /***/ }, /* 17 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var freeGlobal = __webpack_require__(18); /** Detect free variable `self`. */ var freeSelf = (typeof self === 'undefined' ? 'undefined' : _typeof(self)) == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root = freeGlobal || freeSelf || Function('return this')(); module.exports = root; /***/ }, /* 18 */ /***/ function(module, exports) { /* WEBPACK VAR INJECTION */(function(global) {'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** Detect free variable `global` from Node.js. */ var freeGlobal = (typeof global === 'undefined' ? 'undefined' : _typeof(global)) == 'object' && global && global.Object === Object && global; module.exports = freeGlobal; /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()))) /***/ }, /* 19 */ /***/ function(module, exports) { "use strict"; /** * A specialized version of `_.map` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function arrayMap(array, iteratee) { var index = -1, length = array == null ? 0 : array.length, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } module.exports = arrayMap; /***/ }, /* 20 */ /***/ function(module, exports) { "use strict"; /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(document.body.children); * // => false * * _.isArray('abc'); * // => false * * _.isArray(_.noop); * // => false */ var isArray = Array.isArray; module.exports = isArray; /***/ }, /* 21 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; var baseGetTag = __webpack_require__(22), isObjectLike = __webpack_require__(25); /** `Object#toString` result references. */ var symbolTag = '[object Symbol]'; /** * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. * @example * * _.isSymbol(Symbol.iterator); * // => true * * _.isSymbol('abc'); * // => false */ function isSymbol(value) { return (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag; } module.exports = isSymbol; /***/ }, /* 22 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _Symbol = __webpack_require__(16), getRawTag = __webpack_require__(23), objectToString = __webpack_require__(24); /** `Object#toString` result references. */ var nullTag = '[object Null]', undefinedTag = '[object Undefined]'; /** Built-in value references. */ var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; /** * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value); } module.exports = baseGetTag; /***/ }, /* 23 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _Symbol = __webpack_require__(16); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** Built-in value references. */ var symToStringTag = _Symbol ? _Symbol.toStringTag : undefined; /** * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. * @returns {string} Returns the raw `toStringTag`. */ function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } module.exports = getRawTag; /***/ }, /* 24 */ /***/ function(module, exports) { "use strict"; /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** * Converts `value` to a string using `Object.prototype.toString`. * * @private * @param {*} value The value to convert. * @returns {string} Returns the converted string. */ function objectToString(value) { return nativeObjectToString.call(value); } module.exports = objectToString; /***/ }, /* 25 */ /***/ function(module, exports) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return value != null && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) == 'object'; } module.exports = isObjectLike; /***/ }, /* 26 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; /* DO NOT EDIT!! Auto genetated wrapper for lodash/isFunction. */ var isFunction = __webpack_require__(27); module.exports = isFunction; /***/ }, /* 27 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var baseGetTag = __webpack_require__(22), isObject = __webpack_require__(28); /** `Object#toString` result references. */ var asyncTag = '[object AsyncFunction]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', proxyTag = '[object Proxy]'; /** * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a function, else `false`. * @example * * _.isFunction(_); * // => true * * _.isFunction(/abc/); * // => false */ function isFunction(value) { if (!isObject(value)) { return false; } // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 9 which returns 'object' for typed arrays and other constructors. var tag = baseGetTag(value); return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } module.exports = isFunction; /***/ }, /* 28 */ /***/ function(module, exports) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(_.noop); * // => true * * _.isObject(null); * // => false */ function isObject(value) { var type = typeof value === 'undefined' ? 'undefined' : _typeof(value); return value != null && (type == 'object' || type == 'function'); } module.exports = isObject; /***/ }, /* 29 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; /* DO NOT EDIT!! Auto genetated wrapper for lodash/isBoolean. */ var isBoolean = __webpack_require__(30); module.exports = isBoolean; /***/ }, /* 30 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var baseGetTag = __webpack_require__(22), isObjectLike = __webpack_require__(25); /** `Object#toString` result references. */ var boolTag = '[object Boolean]'; /** * Checks if `value` is classified as a boolean primitive or object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a boolean, else `false`. * @example * * _.isBoolean(false); * // => true * * _.isBoolean(null); * // => false */ function isBoolean(value) { return value === true || value === false || isObjectLike(value) && baseGetTag(value) == boolTag; } module.exports = isBoolean; /***/ }, /* 31 */ /***/ function(module, exports) { 'use strict'; var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { return typeof obj === "undefined" ? "undefined" : _typeof2(obj); } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj); }; exports['default'] = isPromise; /** * Test whether an object looks like a promise * * @export * @param {any} obj * @returns {bool} */ function isPromise(obj) { return !!obj && ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object' || typeof obj === 'function') && typeof obj.then === 'function'; } module.exports = exports['default']; /***/ }, /* 32 */ /***/ function(module, exports, __webpack_require__) { 'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = undefined; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ("value" in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor); } }return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor; }; }(); var _class, _temp2; var _react = __webpack_require__(3); var _react2 = _interopRequireDefault(_react); var _classnames = __webpack_require__(7); var _classnames2 = _interopRequireDefault(_classnames); var _zentPortal = __webpack_require__(33); var _zentPortal2 = _interopRequireDefault(_zentPortal); var _WindowResizeHandler = __webpack_require__(178); var _WindowResizeHandler2 = _interopRequireDefault(_WindowResizeHandler); var _findPositionedParent = __webpack_require__(181); var _findPositionedParent2 = _interopRequireDefault(_findPositionedParent); var _throttle = __webpack_require__(182); var _throttle2 = _interopRequireDefault(_throttle); var _invisible = __webpack_require__(187); var _invisible2 = _interopRequireDefault(_invisible); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); }return call && ((typeof call === 'u