UNPKG

tinper-bee

Version:

React Components living for enterprise-class pc backend application

1,636 lines (1,186 loc) 256 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 = 1429); /******/ }) /************************************************************************/ /******/ ({ /***/ 0: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_0__; /***/ }), /***/ 1: /***/ (function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }), /***/ 110: /***/ (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; /***/ }), /***/ 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"]; /***/ }), /***/ 121: /***/ (function(module, exports, __webpack_require__) { "use strict"; exports.__esModule = true; exports.Align = exports.toArray = exports.cssAnimation = exports.addEventListener = exports.contains = exports.KeyCode = exports.createChainedFunction = exports.splitComponent = exports.isRequiredForA11y = exports.elementType = exports.deprecated = exports.componentOrElement = exports.all = undefined; var _all2 = __webpack_require__(225); var _all3 = _interopRequireDefault(_all2); var _componentOrElement2 = __webpack_require__(226); var _componentOrElement3 = _interopRequireDefault(_componentOrElement2); var _deprecated2 = __webpack_require__(227); var _deprecated3 = _interopRequireDefault(_deprecated2); var _elementType2 = __webpack_require__(228); var _elementType3 = _interopRequireDefault(_elementType2); var _isRequiredForA11y2 = __webpack_require__(229); var _isRequiredForA11y3 = _interopRequireDefault(_isRequiredForA11y2); var _splitComponent2 = __webpack_require__(230); var _splitComponent3 = _interopRequireDefault(_splitComponent2); var _createChainedFunction2 = __webpack_require__(231); var _createChainedFunction3 = _interopRequireDefault(_createChainedFunction2); var _keyCode = __webpack_require__(232); var _keyCode2 = _interopRequireDefault(_keyCode); var _contains2 = __webpack_require__(233); var _contains3 = _interopRequireDefault(_contains2); var _addEventListener2 = __webpack_require__(135); var _addEventListener3 = _interopRequireDefault(_addEventListener2); var _cssAnimation2 = __webpack_require__(234); var _cssAnimation3 = _interopRequireDefault(_cssAnimation2); var _toArray2 = __webpack_require__(236); var _toArray3 = _interopRequireDefault(_toArray2); var _Align2 = __webpack_require__(174); var _Align3 = _interopRequireDefault(_Align2); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } exports.all = _all3.default; exports.componentOrElement = _componentOrElement3.default; exports.deprecated = _deprecated3.default; exports.elementType = _elementType3.default; exports.isRequiredForA11y = _isRequiredForA11y3.default; exports.splitComponent = _splitComponent3.default; exports.createChainedFunction = _createChainedFunction3.default; exports.KeyCode = _keyCode2.default; exports.contains = _contains3.default; exports.addEventListener = _addEventListener3.default; exports.cssAnimation = _cssAnimation3.default; exports.toArray = _toArray3.default; //export getContainerRenderMixin from './getContainerRenderMixin'; exports.Align = _Align3.default; /***/ }), /***/ 135: /***/ (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); } /***/ }), /***/ 136: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = function (componentOrElement) { return (0, _ownerDocument2["default"])(_reactDom2["default"].findDOMNode(componentOrElement)); }; var _reactDom = __webpack_require__(3); var _reactDom2 = _interopRequireDefault(_reactDom); var _ownerDocument = __webpack_require__(49); var _ownerDocument2 = _interopRequireDefault(_ownerDocument); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = exports['default']; /***/ }), /***/ 137: /***/ (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]; } /***/ }), /***/ 1429: /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(1430); /***/ }), /***/ 1430: /***/ (function(module, exports, __webpack_require__) { __webpack_require__(1431); module.exports = __webpack_require__(1432); /***/ }), /***/ 1431: /***/ (function(module, exports) { // removed by extract-text-webpack-plugin /***/ }), /***/ 1432: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _Popconfirm = __webpack_require__(1433); var _Popconfirm2 = _interopRequireDefault(_Popconfirm); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } exports["default"] = _Popconfirm2["default"]; module.exports = exports['default']; /***/ }), /***/ 1433: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }(); 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 _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(3); var _reactDom2 = _interopRequireDefault(_reactDom); var _tinperBeeCore = __webpack_require__(41); var _createChainedFunction = __webpack_require__(110); var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction); var _splitComponent = __webpack_require__(137); var _splitComponent2 = _interopRequireDefault(_splitComponent); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _Overlay = __webpack_require__(1434); var _Overlay2 = _interopRequireDefault(_Overlay); var _Portal = __webpack_require__(491); var _Portal2 = _interopRequireDefault(_Portal); var _Confirm = __webpack_require__(1442); var _Confirm2 = _interopRequireDefault(_Confirm); 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 propTypes = _extends({}, _Overlay2["default"].propTypes, { // FIXME: This should be `defaultShow`. /** * 覆盖的初始可见性状态。对于更细微的可见性控制,请考虑直接使用覆盖组件。 */ defaultOverlayShown: _propTypes2["default"].bool, /** * 第二优先级位置方向 */ secondPlacement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']), /** * 要覆盖在目标旁边的元素或文本。 */ content: _propTypes2["default"].node.isRequired, /** * @private */ onClick: _propTypes2["default"].func, onClose: _propTypes2["default"].func, onCancel: _propTypes2["default"].func, /** * @private rootClose关闭时候的回调 */ onRootClose: _propTypes2["default"].func, /** * 关闭按钮 */ close_btn: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]), /** * 取消按钮 */ cancel_btn: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]), // Overridden props from `<Overlay>`. /** * @private */ target: _propTypes2["default"].oneOf([null]), /** * @private */ onHide: _propTypes2["default"].oneOf([null]), /** * @private */ // show: PropTypes.oneOf([null]), show: _propTypes2["default"].bool }); var defaultProps = { defaultOverlayShown: false }; var Popconfirm = function (_Component) { _inherits(Popconfirm, _Component); function Popconfirm(props, context) { _classCallCheck(this, Popconfirm); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.handleToggle = _this.handleToggle.bind(_this); _this.handleHide = _this.handleHide.bind(_this); _this.makeOverlay = _this.makeOverlay.bind(_this); _this.handleClose = _this.handleClose.bind(_this); _this.handleCancel = _this.handleCancel.bind(_this); _this._mountNode = null; _this.state = { show: props.defaultOverlayShown }; return _this; } Popconfirm.prototype.componentDidMount = function componentDidMount() { this._mountNode = document.createElement('div'); !isReact16 && this.renderOverlay(); if ('show' in this.props) { this.setState({ show: this.props.show }); } }; Popconfirm.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { var show = this.props.show; !isReact16 && this.renderOverlay(); if ("show" in this.props && prevProps.show !== show) { this.setState({ show: show }); } }; Popconfirm.prototype.componentWillUnmount = function componentWillUnmount() { !isReact16 && _reactDom2["default"].unmountComponentAtNode(this._mountNode); this._mountNode = null; }; Popconfirm.prototype.handleToggle = function handleToggle() { if (!this.state.show) { this.show(); } }; Popconfirm.prototype.handleClose = function handleClose(e) { var onClose = this.props.onClose; "show" in this.props ? void 0 : this.hide(); onClose && onClose(e); }; Popconfirm.prototype.handleCancel = function handleCancel(e) { var onCancel = this.props.onCancel; "show" in this.props ? void 0 : this.hide(); onCancel && onCancel(e); }; Popconfirm.prototype.handleHide = function handleHide() { var onRootClose = this.props.onRootClose; onRootClose && onRootClose(); if (!("show" in this.props)) { this.hide(); } }; Popconfirm.prototype.show = function show() { this.setState({ show: true }); }; Popconfirm.prototype.hide = function hide() { this.setState({ show: false }); }; Popconfirm.prototype.makeOverlay = function makeOverlay(overlay, props) { return _react2["default"].createElement( _Overlay2["default"], _extends({}, props, { show: this.state.show, onHide: this.handleHide, target: this }), overlay ); }; Popconfirm.prototype.renderOverlay = function renderOverlay() { _reactDom2["default"].unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode); }; Popconfirm.prototype.render = function render() { var _props = this.props, content = _props.content, children = _props.children, onClick = _props.onClick, stopbubble = _props.stopbubble, secondPlacement = _props.secondPlacement, onRootClose = _props.onRootClose, cancel_btn = _props.cancel_btn, close_btn = _props.close_btn, props = _objectWithoutProperties(_props, ['content', 'children', 'onClick', 'stopbubble', 'secondPlacement', 'onRootClose', 'cancel_btn', 'close_btn']); delete props.defaultOverlayShown; var _splitComponentProps = (0, _splitComponent2["default"])(props, _Overlay2["default"]), _splitComponentProps2 = _slicedToArray(_splitComponentProps, 2), overlayProps = _splitComponentProps2[0], confirmProps = _splitComponentProps2[1]; var child = _react2["default"].Children.only(children); var childProps = child.props; var overlay = _react2["default"].createElement( _Confirm2["default"], _extends({}, confirmProps, { cancel_btn: cancel_btn, close_btn: close_btn, onClose: this.handleClose, onCancel: this.handleCancel, stopbubble: stopbubble, secondPlacement: secondPlacement, placement: props.placement }), content ); var triggerProps = { 'aria-describedby': overlay.props.id }; // FIXME: 这里用于传递这个组件上的处理程序的逻辑是不一致的。我们不应该通过任何这些道具。 triggerProps.onClick = (0, _createChainedFunction2["default"])(childProps.onClick, onClick); if (!("show" in this.props)) { triggerProps.onClick = (0, _createChainedFunction2["default"])(triggerProps.onClick, this.handleToggle); } overlayProps.secondPlacement = secondPlacement; this._overlay = this.makeOverlay(overlay, overlayProps); 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 Popconfirm; }(_react.Component); Popconfirm.propTypes = propTypes; Popconfirm.defaultProps = defaultProps; exports["default"] = Popconfirm; module.exports = exports['default']; /***/ }), /***/ 1434: /***/ (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 _BaseOverlay = __webpack_require__(1435); var _BaseOverlay2 = _interopRequireDefault(_BaseOverlay); var _tinperBeeCore = __webpack_require__(121); var _Fade = __webpack_require__(1440); var _Fade2 = _interopRequireDefault(_Fade); 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 propTypes = _extends({}, _BaseOverlay2["default"].propTypes, { /** * 是否显示 */ show: _propTypes2["default"].bool, /** * 是 */ rootClose: _propTypes2["default"].bool, /** * 当点击rootClose触发close时的回调函数 */ onHide: _propTypes2["default"].func, /** * 使用动画 */ animation: _propTypes2["default"].oneOfType([_tinperBeeCore.elementType, _propTypes2["default"].func]), /** * Callback fired before the Overlay transitions in */ onEnter: _propTypes2["default"].func, /** * Callback fired as the Overlay begins to transition in */ onEntering: _propTypes2["default"].func, /** * Callback fired after the Overlay finishes transitioning in */ onEntered: _propTypes2["default"].func, /** * Callback fired right before the Overlay transitions out */ onExit: _propTypes2["default"].func, /** * Callback fired as the Overlay begins to transition out */ onExiting: _propTypes2["default"].func, /** * Callback fired after the Overlay finishes transitioning out */ onExited: _propTypes2["default"].func, /** * Sets the direction of the Overlay. */ placement: _propTypes2["default"].oneOf(["top", "right", "bottom", "left", "topLeft", "rightTop", "bottomLeft", "leftTop", "topRight", "rightBottom", "bottomRight", "leftBottom"]), /** * 当Overlay在placement方向放不下时的第二优先级方向 */ secondPlacement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']) }); var defaultProps = { animation: _Fade2["default"], rootClose: false, show: false, placement: 'right' }; var Overlay = function (_Component) { _inherits(Overlay, _Component); function Overlay() { _classCallCheck(this, Overlay); return _possibleConstructorReturn(this, _Component.apply(this, arguments)); } Overlay.prototype.render = function render() { var _props = this.props, animation = _props.animation, children = _props.children, props = _objectWithoutProperties(_props, ['animation', 'children']); var transition = animation === true ? _Fade2["default"] : animation || null; var child = void 0; if (!transition) { child = (0, _react.cloneElement)(children, { className: (0, _classnames2["default"])(children.props.className, 'in') }); } else { child = children; } return _react2["default"].createElement( _BaseOverlay2["default"], _extends({}, props, { transition: transition, onHide: props.onHide }), child ); }; return Overlay; }(_react.Component); Overlay.propTypes = propTypes; Overlay.defaultProps = defaultProps; exports["default"] = Overlay; module.exports = exports['default']; /***/ }), /***/ 1435: /***/ (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 _react = __webpack_require__(0); var _react2 = _interopRequireDefault(_react); var _reactDom = __webpack_require__(3); var _reactDom2 = _interopRequireDefault(_reactDom); var _propTypes = __webpack_require__(1); var _propTypes2 = _interopRequireDefault(_propTypes); var _Portal = __webpack_require__(491); var _Portal2 = _interopRequireDefault(_Portal); var _Position = __webpack_require__(1436); var _Position2 = _interopRequireDefault(_Position); var _RootCloseWrapper = __webpack_require__(1439); var _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper); var _tinperBeeCore = __webpack_require__(121); 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 propTypes = _extends({}, _Position2["default"].propTypes, { /** * 是否显示 */ show: _propTypes2["default"].bool, /** * 点击其他地方,是否隐藏overlay */ rootClose: _propTypes2["default"].bool, /** * 当rootClose为true的时候,触发的隐藏方法 * @type func */ onHide: function onHide(props) { var propType = _propTypes2["default"].func; if (props.rootClose) { propType = propType.isRequired; } for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { args[_key - 1] = arguments[_key]; } return propType.apply(undefined, [props].concat(args)); }, /** * 过渡动画组件 */ transition: _propTypes2["default"].oneOfType([_tinperBeeCore.elementType, _propTypes2["default"].func]), /** * overlay添加动画前的钩子函数 */ onEnter: _propTypes2["default"].func, /** * 开始动画的钩子函数 */ onEntering: _propTypes2["default"].func, /** * 渲染之后的钩子函数 */ onEntered: _propTypes2["default"].func, /** * 关闭开始时的钩子函数 */ onExit: _propTypes2["default"].func, /** * 关闭时的钩子函数 */ onExiting: _propTypes2["default"].func, /** * 关闭后的钩子函数 */ onExited: _propTypes2["default"].func }); function noop() {} var defaultProps = { show: false, rootClose: true }; /** * 悬浮组件 */ var BaseOverlay = function (_Component) { _inherits(BaseOverlay, _Component); function BaseOverlay(props, context) { _classCallCheck(this, BaseOverlay); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { exited: !props.show }; _this.onHiddenListener = _this.handleHidden.bind(_this); return _this; } BaseOverlay.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { if (nextProps.show) { this.setState({ exited: false }); } else if (!nextProps.transition) { // Otherwise let handleHidden take care of marking exited. this.setState({ exited: true }); } }; BaseOverlay.prototype.handleHidden = function handleHidden() { this.setState({ exited: true }); if (this.props.onExited) { var _props; (_props = this.props).onExited.apply(_props, arguments); } }; BaseOverlay.prototype.render = function render() { var _props2 = this.props, container = _props2.container, containerPadding = _props2.containerPadding, target = _props2.target, placement = _props2.placement, secondPlacement = _props2.secondPlacement, shouldUpdatePosition = _props2.shouldUpdatePosition, rootClose = _props2.rootClose, positionLeft = _props2.positionLeft, positionTop = _props2.positionTop, children = _props2.children, Transition = _props2.transition, props = _objectWithoutProperties(_props2, ['container', 'containerPadding', 'target', 'placement', 'secondPlacement', 'shouldUpdatePosition', 'rootClose', 'positionLeft', 'positionTop', 'children', 'transition']); // Don't un-render the overlay while it's transitioning out. var mountOverlay = props.show || Transition && !this.state.exited; if (!mountOverlay) { // Don't bother showing anything if we don't have to. return null; } var child = children; // Position is be inner-most because it adds inline styles into the child, // which the other wrappers don't forward correctly. child = _react2["default"].createElement( _Position2["default"], { container: container, containerPadding: containerPadding, target: target, positionLeft: positionLeft, positionTop: positionTop, placement: placement, secondPlacement: secondPlacement, shouldUpdatePosition: shouldUpdatePosition }, child ); if (Transition) { var onExit = props.onExit, onExiting = props.onExiting, onEnter = props.onEnter, onEntering = props.onEntering, onEntered = props.onEntered; // This animates the child node by injecting props, so it must precede // anything that adds a wrapping div. child = _react2["default"].createElement( Transition, { 'in': props.show, transitionAppear: true, onExit: onExit, onExiting: onExiting, onExited: this.onHiddenListener, onEnter: onEnter, onEntering: onEntering, onEntered: onEntered }, child ); } // This goes after everything else because it adds a wrapping div. if (rootClose) { child = _react2["default"].createElement( _RootCloseWrapper2["default"], { onRootClose: props.onHide }, child ); } if (isReact16) { return child; } else { return _react2["default"].createElement( _Portal2["default"], { container: container }, child ); } }; return BaseOverlay; }(_react.Component); BaseOverlay.propTypes = propTypes; BaseOverlay.defaultProps = defaultProps; exports["default"] = BaseOverlay; module.exports = exports['default']; /***/ }), /***/ 1436: /***/ (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 _reactDom = __webpack_require__(3); var _reactDom2 = _interopRequireDefault(_reactDom); var _tinperBeeCore = __webpack_require__(121); var _requestAnimationFrame = __webpack_require__(499); var _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame); var _calculatePosition = __webpack_require__(1437); var _calculatePosition2 = _interopRequireDefault(_calculatePosition); var _getContainer = __webpack_require__(492); var _getContainer2 = _interopRequireDefault(_getContainer); var _ownerDocument = __webpack_require__(136); var _ownerDocument2 = _interopRequireDefault(_ownerDocument); var _ownerWindow = __webpack_require__(1438); var _ownerWindow2 = _interopRequireDefault(_ownerWindow); var _addEventListener = __webpack_require__(200); var _addEventListener2 = _interopRequireDefault(_addEventListener); 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 propTypes = { /** * 要设置定位的元素 */ target: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]), /** * 存放的容器元素 */ container: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]), /** * 容器padding值 */ containerPadding: _propTypes2["default"].number, /** * 位置设置 */ placement: _propTypes2["default"].oneOf(["top", "right", "bottom", "left", "topLeft", "rightTop", "bottomLeft", "leftTop", "topRight", "rightBottom", "bottomRight", "leftBottom"]), /** * 第二优先级位置设置 */ secondPlacement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']), /** * 是否需要更新位置 */ shouldUpdatePosition: _propTypes2["default"].bool, /** * 弹出框向上偏移量 */ positionTop: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]), /** * 弹出框向左偏移量 */ positionLeft: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]) }; var defaultProps = { containerPadding: 0, placement: 'right', shouldUpdatePosition: false }; /** * 计算子组件的位置的组件 */ var Position = function (_Component) { _inherits(Position, _Component); function Position(props, context) { _classCallCheck(this, Position); var _this = _possibleConstructorReturn(this, _Component.call(this, props, context)); _this.state = { positionLeft: 0, positionTop: 0, arrowOffsetLeft: null, arrowOffsetTop: null }; _this.needsFlush = false; _this.lastTarget = null; _this.getTarget = _this.getTarget.bind(_this); _this.maybeUpdatePosition = _this.maybeUpdatePosition.bind(_this); _this.updatePosition = _this.updatePosition.bind(_this); _this.onWindowResize = _this.onWindowResize.bind(_this); return _this; } Position.prototype.componentDidMount = function componentDidMount() { var _this2 = this; this._isMounted = true; this._windowResizeListener = (0, _addEventListener2["default"])((0, _ownerWindow2["default"])(this), 'resize', function () { return _this2.onWindowResize(); }); this.updatePosition(this.getTarget()); }; Position.prototype.componentWillReceiveProps = function componentWillReceiveProps() { this.needsFlush = true; }; Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) { if (this.needsFlush) { this.needsFlush = false; this.maybeUpdatePosition(); } }; Position.prototype.componentWillUnmount = function componentWillUnmount() { this._isMounted = false; if (this._windowResizeListener) { this._windowResizeListener.remove(); } }; /** * 获取要设置位置的子元素 */ Position.prototype.getTarget = function getTarget() { var target = this.props.target; var targetElement = typeof target === 'function' ? target() : target; return targetElement && _reactDom2["default"].findDOMNode(targetElement) || null; }; /** * 验证是否需要更新位置 */ Position.prototype.maybeUpdatePosition = function maybeUpdatePosition(placementChanged) { var target = this.getTarget(); if (!this.props.shouldUpdatePosition && target === this.lastTarget && !placementChanged) { return; } this.updatePosition(target); }; Position.prototype.onWindowResize = function onWindowResize() { var _this3 = this; (0, _requestAnimationFrame2["default"])(function () { return _this3.updatePosition(_this3.getTarget()); }); }; /** * 更新位置 */ Position.prototype.updatePosition = function updatePosition(target) { var _props = this.props, placement = _props.placement, secondPlacement = _props.secondPlacement, positionLeft = _props.positionLeft, positionTop = _props.positionTop; if (!this._isMounted) { return; } this.lastTarget = target; if (!target) { this.setState({ positionLeft: 0, positionTop: 0, arrowOffsetLeft: null, arrowOffsetTop: null }); return; } var overlay = _reactDom2["default"].findDOMNode(this); var container = (0, _getContainer2["default"])(this.props.container, (0, _ownerDocument2["default"])(this).body); var initPosition = (0, _calculatePosition2["default"])(placement, overlay, target, container, this.props.containerPadding); // 若设置了第二渲染位置,placement的优先级是: placement > secondPlacement > placement的反方向 if ("secondPlacement" in this.props && secondPlacement) { if (initPosition.inverseArrow) { var secondPosition = (0, _calculatePosition2["default"])(secondPlacement, overlay, target, container, this.props.containerPadding); if (secondPosition.inverseArrow) { this.setState(_extends({}, initPosition, { renderPlacement: placement })); } else { this.setState(_extends({}, secondPosition, { renderPlacement: secondPlacement })); } } else { this.setState(_extends({}, initPosition, { renderPlacement: placement })); } } else if ("positionLeft" in this.props && positionLeft) { if ("positionTop" in this.props && positionTop) { this.setState(_extends({}, initPosition, { positionLeft: positionLeft, positionTop: positionTop })); } else { this.setState(_extends({}, initPosition, { positionLeft: positionLeft })); } } else if ("positionTop" in this.props && positionTop) { this.setState(_extends({}, initPosition, { positionTop: positionTop })); } else { this.setState((0, _calculatePosition2["default"])(placement, overlay, target, container, this.props.containerPadding)); } }; Position.prototype.render = function render() { var _props2 = this.props, children = _props2.children, className = _props2.className, props = _objectWithoutProperties(_props2, ['children', 'className']); var _state = this.state, positionLeft = _state.positionLeft, positionTop = _state.positionTop, inverseArrow = _state.inverseArrow, width = _state.width, arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop', 'inverseArrow', 'width']); // These should not be forwarded to the child. delete props.target; delete props.container; delete props.containerPadding; delete props.shouldUpdatePosition; var child = _react2["default"].Children.only(children); return (0, _react.cloneElement)(child, _extends({ className: (0, _classnames2["default"])(className, child.props.className, { 'inverse-arrow': inverseArrow }) }, arrowPosition, { style: _extends({}, child.props.style, { width: width, left: positionLeft, top: positionTop }) })); }; return Position; }(_react.Component); Position.propTypes = propTypes; Position.defaultProps = defaultProps; exports["default"] = Position; module.exports = exports['default']; /***/ }), /***/ 1437: /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = calculatePosition; var _offset = __webpack_require__(387); var _offset2 = _interopRequireDefault(_offset); var _position = __webpack_require__(500); var _position2 = _interopRequireDefault(_position); var _scrollTop = __webpack_require__(190); var _scrollTop2 = _interopRequireDefault(_scrollTop); var _ownerDocument = __webpack_require__(136); var _ownerDocument2 = _interopRequireDefault(_ownerDocument); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function getContainerDimensions(containerNode) { var width = void 0, height = void 0, scroll = void 0; if (containerNode.tagName === 'BODY') { width = document.body.scrollWidth; height = document.body.scrollHeight; scroll = (0, _scrollTop2["def