UNPKG

tinper-bee

Version:

React Components living for enterprise-class pc backend application

1,830 lines (1,470 loc) 214 kB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react"), require("prop-types"), require("react-dom")); else if(typeof define === 'function' && define.amd) define(["react", "prop-types", "react-dom"], factory); else { var a = typeof exports === 'object' ? factory(require("react"), require("prop-types"), require("react-dom")) : factory(root["React"], root["PropTypes"], root["ReactDOM"]); for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i]; } })(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_3__) { 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] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = 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; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { /******/ configurable: false, /******/ enumerable: true, /******/ get: getter /******/ }); /******/ } /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 1675); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), /***/ 1: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }), /***/ 1000: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = getContainer; var _reactDom = __webpack_require__(3); var _reactDom2 = _interopRequireDefault(_reactDom); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } /** * 获取容器组件 * @param {[type]} container [description] * @param {[type]} defaultContainer [description] * @return {[type]} [description] */ function getContainer(container, defaultContainer) { container = typeof container === 'function' ? container() : container; return _reactDom2["default"].findDOMNode(container) || defaultContainer; } module.exports = exports['default']; /***/ }), /***/ 1001: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = addEventListenerWrap; var _addDomEventListener = __webpack_require__(24); var _addDomEventListener2 = _interopRequireDefault(_addDomEventListener); var _reactDom = __webpack_require__(3); var _reactDom2 = _interopRequireDefault(_reactDom); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ function addEventListenerWrap(target, eventType, cb) { /* eslint camelcase: 2 */ var callback = _reactDom2.default.unstable_batchedUpdates ? function run(e) { _reactDom2.default.unstable_batchedUpdates(cb, e); } : cb; return (0, _addDomEventListener2.default)(target, eventType, callback); } /***/ }), /***/ 1002: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = function (node, event, handler, capture) { (0, _on2["default"])(node, event, handler, capture); return { remove: function remove() { (0, _off2["default"])(node, event, handler, capture); } }; }; var _on = __webpack_require__(52); var _on2 = _interopRequireDefault(_on); var _off = __webpack_require__(77); var _off2 = _interopRequireDefault(_off); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = exports['default']; /***/ }), /***/ 111: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = getWindow; function getWindow(node) { return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; } module.exports = exports["default"]; /***/ }), /***/ 112: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = camelize; var rHyphen = /-(.)/g; function camelize(string) { return string.replace(rHyphen, function (_, chr) { return chr.toUpperCase(); }); } module.exports = exports["default"]; /***/ }), /***/ 113: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = hyphenateStyleName; var _hyphenate = __webpack_require__(114); var _hyphenate2 = _interopRequireDefault(_hyphenate); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var msPattern = /^ms-/; /** * Copyright 2013-2014, Facebook, Inc. * All rights reserved. * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js */ function hyphenateStyleName(string) { return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-'); } module.exports = exports['default']; /***/ }), /***/ 114: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = hyphenate; var rUpper = /([A-Z])/g; function hyphenate(string) { return string.replace(rUpper, '-$1').toLowerCase(); } module.exports = exports['default']; /***/ }), /***/ 115: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _getComputedStyle; var _camelizeStyle = __webpack_require__(70); var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var rposition = /^(top|right|bottom|left)$/; var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i; function _getComputedStyle(node) { if (!node) throw new TypeError('No Element passed to `getComputedStyle()`'); var doc = node.ownerDocument; return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : { //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72 getPropertyValue: function getPropertyValue(prop) { var style = node.style; prop = (0, _camelizeStyle2.default)(prop); if (prop == 'float') prop = 'styleFloat'; var current = node.currentStyle[prop] || null; if (current == null && style && style[prop]) current = style[prop]; if (rnumnonpx.test(current) && !rposition.test(prop)) { // Remember the original values var left = style.left; var runStyle = node.runtimeStyle; var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out if (rsLeft) runStyle.left = node.currentStyle.left; style.left = prop === 'fontSize' ? '1em' : current; current = style.pixelLeft + 'px'; // Revert the changed values style.left = left; if (rsLeft) runStyle.left = rsLeft; } return current; } }; } module.exports = exports['default']; /***/ }), /***/ 116: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = removeStyle; function removeStyle(node, key) { return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key); } module.exports = exports['default']; /***/ }), /***/ 117: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = isTransform; var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i; function isTransform(property) { return !!(property && supportedTransforms.test(property)); } module.exports = exports["default"]; /***/ }), /***/ 1675: /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(1676); /***/ }), /***/ 1676: /***/ (function(module, exports, __webpack_require__) { __webpack_require__(1677); module.exports = __webpack_require__(1678); /***/ }), /***/ 1677: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 1678: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _Tooltip = __webpack_require__(1679); var _Tooltip2 = _interopRequireDefault(_Tooltip); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } exports["default"] = _Tooltip2["default"]; module.exports = exports['default']; /***/ }), /***/ 1679: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _classnames = __webpack_require__(4); var _classnames2 = _interopRequireDefault(_classnames); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _OverlayTrigger = __webpack_require__(1680); var _OverlayTrigger2 = _interopRequireDefault(_OverlayTrigger); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return 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 _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } 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) : _defaults(subClass, superClass); } var propTypes = { /** * @required */ id: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]), inverse: _propTypes2["default"].bool, visible: _propTypes2["default"].bool, onVisibleChange: _propTypes2["default"].func, /** * 相对目标元素显示上下左右的位置 */ placement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left', 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom']), /** * 绝对定位上边距. */ positionTop: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]), /** * 绝对定位左边距 */ positionLeft: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]), /** * 与目标Top的距离 */ arrowOffsetTop: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]), /** * 与目标Left的距离 */ arrowOffsetLeft: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]) }; var defaultProps = { placement: 'right', clsPrefix: 'u-tooltip' }; function OverlayNode(props) { var id = props.id, className = props.className, classNames = props.classNames, style = props.style, overlay = props.overlay, overlayStyle = props.overlayStyle, otherProps = props.otherProps; // style 包含用户传入的自定义样式,以及 bee-overlay 计算返回的样式。 // overlayStyle 是用户传入的自定义样式。 if (overlayStyle && overlayStyle.width) { style.width = overlayStyle.width; } else { delete style.width; } return _react2["default"].createElement( 'div', _extends({ id: id, role: 'tooltip', className: (0, _classnames2["default"])(className, classNames), onMouseEnter: props.onMouseEnter, onMouseLeave: props.onMouseLeave, style: style }, otherProps), overlay ? _react2["default"].createElement('div', { className: 'tooltip-arrow' }) : '', overlay ? _react2["default"].createElement( 'div', { className: 'tooltip-inner' }, overlay ) : '' ); } var Tooltip = function (_React$Component) { _inherits(Tooltip, _React$Component); function Tooltip(props) { _classCallCheck(this, Tooltip); var _this = _possibleConstructorReturn(this, _React$Component.call(this, props)); _this.onMouseEnter = function () { var trigger = _this.props.trigger; if (trigger === 'click') return; _this.setState({ isHoverShow: true }); }; _this.onMouseLeave = function () { var trigger = _this.props.trigger; if (trigger === 'click') return; _this.setState({ isHoverShow: false }); }; _this.handleOnHide = function () { var onHide = _this.props.onHide; onHide && onHide(false); }; var initState = { isHoverShow: false }; if ('visible' in props) { _extends(initState, { visible: props.visible }); } _this.state = initState; return _this; } Tooltip.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { var visible = this.props.visible; if ('visible' in this.props && prevProps.visible !== visible) { this.setState({ visible: visible }); } }; /** * @desc 鼠标划入时候的事件 */ /** * @desc 鼠标划出时候的事件 */ Tooltip.prototype.render = function render() { var _classes, _this2 = this; var _props = this.props, placement = _props.placement, id = _props.id, arrowOffsetTop = _props.arrowOffsetTop, arrowOffsetLeft = _props.arrowOffsetLeft, className = _props.className, style = _props.style, children = _props.children, clsPrefix = _props.clsPrefix, overlay = _props.overlay, inverse = _props.inverse, trigger = _props.trigger, onVisibleChange = _props.onVisibleChange, onHide = _props.onHide, rootClose = _props.rootClose, visible = _props.visible, defaultOverlayShown = _props.defaultOverlayShown, positionTop = _props.positionTop, positionLeft = _props.positionLeft, others = _objectWithoutProperties(_props, ['placement', 'id', 'arrowOffsetTop', 'arrowOffsetLeft', 'className', 'style', 'children', 'clsPrefix', 'overlay', 'inverse', 'trigger', 'onVisibleChange', 'onHide', 'rootClose', 'visible', 'defaultOverlayShown', 'positionTop', 'positionLeft']); var classes = (_classes = {}, _defineProperty(_classes, placement, true), _defineProperty(_classes, 'inverse', inverse), _classes); var arrowStyle = { top: arrowOffsetTop, left: arrowOffsetLeft }; var classNames = (0, _classnames2["default"])(clsPrefix, classes); var overlayNode = _react2["default"].createElement(OverlayNode, { id: id, className: className, classNames: classNames, overlay: overlay, onMouseEnter: this.onMouseEnter, onMouseLeave: this.onMouseLeave, style: style, overlayStyle: style // 用户自定义样式 , arrowOffsetTop: arrowOffsetTop, arrowOffsetLeft: arrowOffsetLeft, otherProps: others }); return 'visible' in this.props ? _react2["default"].createElement( _OverlayTrigger2["default"], _extends({}, others, { visible: this.state.visible, onVisibleChange: onVisibleChange, ref: function ref(_ref) { return _this2.trigger = _ref; }, shouldUpdatePosition: true, placement: placement, overlay: overlayNode, onHide: this.handleOnHide, rootClose: rootClose, defaultOverlayShown: defaultOverlayShown, positionTop: positionTop, positionLeft: positionLeft, trigger: trigger }), children ) : _react2["default"].createElement( _OverlayTrigger2["default"], _extends({}, others, { isHoverShow: this.state.isHoverShow, onVisibleChange: onVisibleChange, ref: function ref(_ref2) { return _this2.trigger = _ref2; }, shouldUpdatePosition: true, placement: placement, overlay: overlayNode, onHide: this.handleOnHide, rootClose: rootClose, defaultOverlayShown: defaultOverlayShown, positionTop: positionTop, positionLeft: positionLeft, trigger: trigger }), children ); }; return Tooltip; }(_react2["default"].Component); Tooltip.propTypes = propTypes; Tooltip.defaultProps = defaultProps; exports["default"] = Tooltip; module.exports = exports['default']; /***/ }), /***/ 1680: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _contains = __webpack_require__(83); var _contains2 = _interopRequireDefault(_contains); var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _reactDom = __webpack_require__(3); var _reactDom2 = _interopRequireDefault(_reactDom); var _warning = __webpack_require__(27); var _warning2 = _interopRequireDefault(_warning); var _Portal = __webpack_require__(999); var _Portal2 = _interopRequireDefault(_Portal); var _Overlay = __webpack_require__(1694); var _Overlay2 = _interopRequireDefault(_Overlay); var _createChainedFunction = __webpack_require__(1702); var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function _defaults(obj, defaults) { var keys = Object.getOwnPropertyNames(defaults); for (var i = 0; i < keys.length; i++) { var key = keys[i]; var value = Object.getOwnPropertyDescriptor(defaults, key); if (value && value.configurable && obj[key] === undefined) { Object.defineProperty(obj, key, value); } } return obj; } function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } 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) : _defaults(subClass, superClass); } var isReact16 = _reactDom2["default"].createPortal !== undefined; var createPortal = isReact16 ? _reactDom2["default"].createPortal : _reactDom2["default"].unstable_renderSubtreeIntoContainer; /** * 检查值是属于这个值,还是等于这个值 * * @param {string} one * @param {string|array} of * @returns {boolean} */ function isOneOf(one, of) { if (Array.isArray(of)) { return of.indexOf(one) >= 0; } return one === of; } var triggerType = _propTypes2["default"].oneOf(['click', 'hover', 'focus']); var propTypes = _extends({}, _Portal2["default"].propTypes, _Overlay2["default"].propTypes, { /** * 指定哪些操作或操作触发叠加层可见性 */ trigger: _propTypes2["default"].oneOfType([triggerType, _propTypes2["default"].arrayOf(triggerType)]), /** * 显示和隐藏覆盖一旦触发的毫秒延迟量 */ delay: _propTypes2["default"].number, /** * 触发后显示叠加层之前的延迟毫秒 */ delayShow: _propTypes2["default"].number, /** * 触发后隐藏叠加层的延迟毫秒 */ delayHide: _propTypes2["default"].number, // FIXME: This should be `defaultShow`. /** * 覆盖的初始可见性状态。对于更细微的可见性控制,请考虑直接使用覆盖组件。 */ defaultOverlayShown: _propTypes2["default"].bool, visible: _propTypes2["default"].bool, /** * 要覆盖在目标旁边的元素或文本。 */ overlay: _propTypes2["default"].node.isRequired, /** * @private */ onBlur: _propTypes2["default"].func, /** * @private */ onClick: _propTypes2["default"].func, /** * @private */ onFocus: _propTypes2["default"].func, /** * @private */ onMouseOut: _propTypes2["default"].func, /** * @private */ onMouseOver: _propTypes2["default"].func, // Overridden props from `<Overlay>`. /** * @private */ target: _propTypes2["default"].oneOf([null]), /** * @private */ onHide: _propTypes2["default"].func, /** * @private */ show: _propTypes2["default"].bool }); var defaultProps = { defaultOverlayShown: false, trigger: ['hover', 'focus'] }; var OverlayTrigger = function (_Component) { _inherits(OverlayTrigger, _Component); function OverlayTrigger(props, context) { _classCallCheck(this, OverlayTrigger); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _initialiseProps.call(_this); _this.handleToggle = _this.handleToggle.bind(_this); _this.handleDelayedShow = _this.handleDelayedShow.bind(_this); _this.handleDelayedHide = _this.handleDelayedHide.bind(_this); _this.handleHide = _this.handleHide.bind(_this); _this.makeOverlay = _this.makeOverlay.bind(_this); _this.handleMouseOver = function (e) { return _this.handleMouseOverOut(_this.handleDelayedShow, e); }; _this.handleMouseOut = function (e) { return _this.handleMouseOverOut(_this.handleDelayedHide, e); }; _this._mountNode = null; var visible = void 0; if ('visible' in props) { visible = !!props.visible; } else { visible = !!props.defaultOverlayShown; } _this.state = { show: visible }; return _this; } OverlayTrigger.prototype.componentDidMount = function componentDidMount() { this._mountNode = document.createElement('div'); !isReact16 && this.renderOverlay(); }; OverlayTrigger.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { !isReact16 && this.renderOverlay(); if ('visible' in this.props && prevProps.visible !== this.props.visible) { this.setState({ show: this.props.visible }); } if ('isHoverShow' in this.props && prevProps.isHoverShow !== this.props.isHoverShow) { this.setState({ show: this.props.isHoverShow }); } }; OverlayTrigger.prototype.componentWillUnmount = function componentWillUnmount() { !isReact16 && _reactDom2["default"].unmountComponentAtNode(this._mountNode); this._mountNode = null; // 加判断去掉 clearTimeout this._hoverShowDelay && clearTimeout(this._hoverShowDelay); this._hoverShowDelay && clearTimeout(this._hoverHideDelay); }; OverlayTrigger.prototype.handleToggle = function handleToggle() { if (this.state.show) { this.hide(); } else { this.show(); } }; OverlayTrigger.prototype.handleDelayedShow = function handleDelayedShow() { var _this2 = this; if (this._hoverHideDelay != null) { clearTimeout(this._hoverHideDelay); this._hoverHideDelay = null; return; } if (this.state.show || this._hoverShowDelay != null) { return; } var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay; if (!delay) { this.show(); return; } this._hoverShowDelay = setTimeout(function () { _this2._hoverShowDelay = null; _this2.show(); }, delay); }; OverlayTrigger.prototype.handleDelayedHide = function handleDelayedHide() { var _this3 = this; if (this._hoverShowDelay != null) { clearTimeout(this._hoverShowDelay); this._hoverShowDelay = null; return; } if (!this.state.show || this._hoverHideDelay != null) { return; } var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay; if (!delay) { this.hide(); return; } this._hoverHideDelay = setTimeout(function () { _this3._hoverHideDelay = null; _this3.hide(); }, delay); }; // 简单实现mouseEnter和mouseLeave。 // React的内置版本是有问题的:https://github.com/facebook/react/issues/4251 //在触发器被禁用的情况下,mouseOut / Over可能导致闪烁 //从一个子元素移动到另一个子元素。 OverlayTrigger.prototype.handleMouseOverOut = function handleMouseOverOut(handler, e) { var target = e.currentTarget; var related = e.relatedTarget || e.nativeEvent.toElement; if (!related || related !== target && !(0, _contains2["default"])(target, related)) { handler(e); } }; OverlayTrigger.prototype.handleHide = function handleHide() { this.hide(); }; OverlayTrigger.prototype.show = function show() { this.setState({ show: true }); }; OverlayTrigger.prototype.hide = function hide() { this.setState({ show: false }); this.props.onHide && this.props.onHide(); }; OverlayTrigger.prototype.makeOverlay = function makeOverlay(overlay, props) { var _this4 = this; return _react2["default"].createElement( _Overlay2["default"], _extends({}, props, { show: this.state.show, onHide: this.handleHide, onEntered: function onEntered() { return _this4.handleVisibleChange(true); }, onExited: function onExited() { return _this4.handleVisibleChange(false); }, target: this }), overlay ); }; OverlayTrigger.prototype.renderOverlay = function renderOverlay() { _reactDom2["default"].unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode); }; OverlayTrigger.prototype.render = function render() { var _props = this.props, trigger = _props.trigger, overlay = _props.overlay, children = _props.children, onBlur = _props.onBlur, onClick = _props.onClick, onFocus = _props.onFocus, onMouseOut = _props.onMouseOut, onMouseOver = _props.onMouseOver, props = _objectWithoutProperties(_props, ['trigger', 'overlay', 'children', 'onBlur', 'onClick', 'onFocus', 'onMouseOut', 'onMouseOver']); delete props.delay; delete props.delayShow; delete props.delayHide; delete props.defaultOverlayShown; var child = _react2["default"].Children.only(children); var childProps = child.props; var triggerProps = { 'aria-describedby': overlay.props.id }; // FIXME: 这里用于传递这个组件上的处理程序的逻辑是不一致的。我们不应该通过任何这些道具。 triggerProps.onClick = (0, _createChainedFunction2["default"])(childProps.onClick, onClick); if (isOneOf('click', trigger) && !('visible' in this.props)) { triggerProps.onClick = (0, _createChainedFunction2["default"])(triggerProps.onClick, this.handleToggle); } if (isOneOf('hover', trigger) && !('visible' in this.props)) { // warning(!(trigger === 'hover'), // '[react-bootstrap] Specifying only the `"hover"` trigger limits the ' + // 'visibility of the overlay to just mouse users. Consider also ' + // 'including the `"focus"` trigger so that touch and keyboard only ' + // 'users can see the overlay as well.' // ); triggerProps.onMouseOver = (0, _createChainedFunction2["default"])(childProps.onMouseOver, onMouseOver, this.handleMouseOver); triggerProps.onMouseOut = (0, _createChainedFunction2["default"])(childProps.onMouseOut, onMouseOut, this.handleMouseOut); } if (isOneOf('focus', trigger) && !('visible' in this.props)) { triggerProps.onFocus = (0, _createChainedFunction2["default"])(childProps.onFocus, onFocus, this.handleDelayedShow); triggerProps.onBlur = (0, _createChainedFunction2["default"])(childProps.onBlur, onBlur, this.handleDelayedHide); } this._overlay = this.makeOverlay(overlay, props); if (!isReact16) { return (0, _react.cloneElement)(child, triggerProps); } triggerProps.key = 'overlay'; var portal = _react2["default"].createElement( _Portal2["default"], { key: 'portal', container: props.container }, this._overlay ); return [(0, _react.cloneElement)(child, triggerProps), portal]; }; return OverlayTrigger; }(_react.Component); var _initialiseProps = function _initialiseProps() { var _this5 = this; this.handleVisibleChange = function (visible) { _this5.props.onVisibleChange && _this5.props.onVisibleChange(visible); }; }; OverlayTrigger.propTypes = propTypes; OverlayTrigger.defaultProps = defaultProps; exports["default"] = OverlayTrigger; module.exports = exports['default']; /***/ }), /***/ 1681: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = all; var _createChainableTypeChecker = __webpack_require__(929); var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function all() { for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) { validators[_key] = arguments[_key]; } function allPropTypes() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } var error = null; validators.forEach(function (validator) { if (error != null) { return; } var result = validator.apply(undefined, args); if (result != null) { error = result; } }); return error; } return (0, _createChainableTypeChecker2.default)(allPropTypes); } /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ /***/ }), /***/ 1682: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; 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; }; /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _createChainableTypeChecker = __webpack_require__(929); var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function validate(props, propName, componentName, location, propFullName) { var propValue = props[propName]; var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue); if (_react2.default.isValidElement(propValue)) { return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.'); } if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) { return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.'); } return null; } exports.default = (0, _createChainableTypeChecker2.default)(validate); /***/ }), /***/ 1683: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = deprecated; var _warning = __webpack_require__(27); var _warning2 = _interopRequireDefault(_warning); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var warned = {}; /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ function deprecated(validator, reason) { return function validate(props, propName, componentName, location, propFullName) { var componentNameSafe = componentName || '<<anonymous>>'; var propFullNameSafe = propFullName || propName; if (props[propName] != null) { var messageKey = componentName + '.' + propName; (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.')); warned[messageKey] = true; } for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { args[_key - 5] = arguments[_key]; } return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args)); }; } /* eslint-disable no-underscore-dangle */ function _resetWarned() { warned = {}; } deprecated._resetWarned = _resetWarned; /* eslint-enable no-underscore-dangle */ /***/ }), /***/ 1684: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; 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; }; /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ var _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _createChainableTypeChecker = __webpack_require__(929); var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function elementType(props, propName, componentName, location, propFullName) { var propValue = props[propName]; var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue); if (_react2.default.isValidElement(propValue)) { return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).'); } if (propType !== 'function' && propType !== 'string') { return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).'); } return null; } exports.default = (0, _createChainableTypeChecker2.default)(elementType); /***/ }), /***/ 1685: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = isRequiredForA11y; /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ function isRequiredForA11y(validator) { return function validate(props, propName, componentName, location, propFullName) { var componentNameSafe = componentName || '<<anonymous>>'; var propFullNameSafe = propFullName || propName; if (props[propName] == null) { return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.'); } for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { args[_key - 5] = arguments[_key]; } return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args)); }; } /***/ }), /***/ 1686: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.default = splitComponentProps; /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ function _objectEntries(obj) { var entries = []; var keys = Object.keys(obj); for (var k = 0; k < keys.length; ++k) { entries.push([keys[k], obj[keys[k]]]); }return entries; } /** * 分割要传入父元素和子元素的props * @param {[object]} props 传入的属性 * @param {[reactElement]} Component 组件 * @return {[array]} 返回数组,第一个元素为父元素props对象,第二个子元素props对象 */ function splitComponentProps(props, Component) { var componentPropTypes = Component.propTypes; var parentProps = {}; var childProps = {}; _objectEntries(props).forEach(function (_ref) { var propName = _ref[0], propValue = _ref[1]; if (componentPropTypes[propName]) { parentProps[propName] = propValue; } else { childProps[propName] = propValue; } }); return [parentProps, childProps]; } /***/ }), /***/ 1687: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ function createChainedFunction() { for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } return funcs.filter(function (f) { return f != null; }).reduce(function (acc, f) { if (typeof f !== 'function') { throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.'); } if (acc === null) { return f; } return function chainedFunction() { for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { args[_key2] = arguments[_key2]; } acc.apply(this, args); f.apply(this, args); }; }, null); } exports.default = createChainedFunction; /***/ }), /***/ 1688: /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * This source code is quoted from rc-util. * homepage: https://github.com/react-component/util */ /** * @ignore * some key-codes definition and utils from closure-library * @author yiminghe@gmail.com */ var KeyCode = { /** * MAC_ENTER */ MAC_ENTER: 3, /** * BACKSPACE */ BACKSPACE: 8, /** * TAB */ TAB: 9, /** * NUMLOCK on FF/Safari Mac */ NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac /** * ENTER */ ENTER: 13, /** * SHIFT */ SHIFT: 16, /** * CTRL */ CTRL: 17, /** * ALT */ ALT: 18, /** * PAUSE */ PAUSE: 19, /** * CAPS_LOCK */ CAPS_LOCK: 20, /** * ESC */ ESC: 27, /** * SPACE */ SPACE: 32, /** * PAGE_UP */ PAGE_UP: 33, // also NUM_NORTH_EAST /** * PAGE_DOWN */ PAGE_DOWN: 34, // also NUM_SOUTH_EAST /** * END */ END: 35, // also NUM_SOUTH_WEST /** * HOME */ HOME: 36, // also NUM_NORTH_WEST /** * LEFT */ LEFT: 37, // also NUM_WEST /** * UP */ UP: 38, // also NUM_NORTH /** * RIGHT */ RIGHT: 39, // also NUM_EAST /** * DOWN */ DOWN: 40, // also NUM_SOUTH /** * PRINT_SCREEN */ PRINT_SCREEN: 44, /** * INSERT */ INSERT: 45, // also NUM_INSERT /** * DELETE */ DELETE: 46, // also NUM_DELETE /** * ZERO */ ZERO: 48, /** * ONE */ ONE: 49, /** * TWO */ TWO: 50, /** * THREE */ THREE: 51, /** * FOUR */ FOUR: 52, /** * FIVE */ FIVE: 53, /** * SIX */ SIX: 54, /** * SEVEN */ SEVEN: 55, /** * EIGHT */ EIGHT: 56, /** * NINE */ NINE: 57, /** * QUESTION_MARK */ QUESTION_MARK: 63, // needs localization /** * A */ A: 65, /** * B */ B: 66, /** * C */ C: 67, /** * D */ D: 68, /** * E */ E: 69, /** * F */ F: 70, /** * G */ G: 71, /** * H */ H: 72, /** * I */ I: 73, /** * J */ J: 74, /** * K */ K: 75, /** * L */ L: 76, /** * M */ M: 77, /** * N */ N: 78, /** * O */ O: 79, /** * P */ P: 80, /** * Q */ Q: 81, /** * R */ R: 82, /** * S */ S: 83, /** * T */ T: 84, /** * U */ U: 85, /** * V */ V: 86, /** * W */ W: 87, /** * X */ X: 88, /** * Y */ Y: 89, /** * Z */ Z: 90, /** * META */ META: 91, // WIN_KEY_LEFT /** * WIN_KEY_RIGHT */ WIN_KEY_RIGHT: 92, /** * CONTEXT_MENU */ CONTEXT_MENU: 93, /** * NUM_ZERO */ NUM_ZERO: 96, /** * NUM_ONE */ NUM_ONE: 97, /** * NUM_TWO */ NUM_TWO: 98, /** * NUM_THREE */ NUM_THREE: 99, /** * NUM_FOUR */ NUM_FOUR: 100, /** * NUM_FIVE */ NUM_FIVE: 101, /** * NUM_SIX */ NUM_SIX: 102, /** * NUM_SEVEN */ NUM_SEVEN: 103, /** * NUM_EIGHT */ NUM_EIGHT: 104, /** * NUM_NINE */ NUM_NINE: 105, /** * NUM_MULTIPLY */ NUM_MULTIPLY: 106, /** * NUM_PLUS */ NUM_PLUS: 107, /** * NUM_MINUS */ NUM_MINUS: 109, /** * NUM_PERIOD */ NUM_PERIOD: 110, /** * NUM_DIVISION */ NUM_DIVISION: 111, /** * F1 */ F1: 112, /** * F2 */ F2: 113, /** * F3 */ F3: 114, /** * F4 */ F4: 115, /** * F5 */ F5: 116, /** * F6 */ F6: 117, /** * F7 */ F7: 118, /** * F8 */ F8: 119, /** * F9 */ F9: 120, /** * F10 */ F10: 121, /** * F11 */ F11: 122, /** * F12 */ F12: 123, /** * NUMLOCK */ NUMLOCK: 144, /** * SEMICOLON */ SEMICOLON: 186, // needs localization /** * DASH */ DASH: 189, // needs localization /** * EQUALS */ EQUALS: 187, // needs localization /** * COMMA */ COMMA: 188, // needs localization /** * PERIOD */ PERIOD: 190, // needs localization /** * SLASH */ SLASH: 191, // needs localization /** * APOSTROPHE */ APOSTROPHE: 192, // needs localization /** * SINGLE_QUOTE */ SINGLE_QUOTE: 222, // needs localization /** * OPEN_SQUARE_BRACKET */ OPEN_SQUARE_BRACKET: 219, // needs localiza