UNPKG

348 kBJavaScriptView Raw
1/******/ (function(modules) { // webpackBootstrap
2/******/ // The module cache
3/******/ var installedModules = {};
4/******/
5/******/ // The require function
6/******/ function __webpack_require__(moduleId) {
7/******/
8/******/ // Check if module is in cache
9/******/ if(installedModules[moduleId])
10/******/ return installedModules[moduleId].exports;
11/******/
12/******/ // Create a new module (and put it into the cache)
13/******/ var module = installedModules[moduleId] = {
14/******/ exports: {},
15/******/ id: moduleId,
16/******/ loaded: false
17/******/ };
18/******/
19/******/ // Execute the module function
20/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ // Flag the module as loaded
23/******/ module.loaded = true;
24/******/
25/******/ // Return the exports of the module
26/******/ return module.exports;
27/******/ }
28/******/
29/******/
30/******/ // expose the modules object (__webpack_modules__)
31/******/ __webpack_require__.m = modules;
32/******/
33/******/ // expose the module cache
34/******/ __webpack_require__.c = installedModules;
35/******/
36/******/ // __webpack_public_path__
37/******/ __webpack_require__.p = "";
38/******/
39/******/ // Load entry module and return exports
40/******/ return __webpack_require__(0);
41/******/ })
42/************************************************************************/
43/******/ ([
44/* 0 */
45/***/ (function(module, exports, __webpack_require__) {
46
47 'use strict';
48
49 var _beeLayout = __webpack_require__(1);
50
51 var _beePanel = __webpack_require__(8);
52
53 var _beeButton = __webpack_require__(103);
54
55 var _beeButton2 = _interopRequireDefault(_beeButton);
56
57 var _react = __webpack_require__(4);
58
59 var _react2 = _interopRequireDefault(_react);
60
61 var _reactDom = __webpack_require__(12);
62
63 var _reactDom2 = _interopRequireDefault(_reactDom);
64
65 var _src = __webpack_require__(105);
66
67 var _src2 = _interopRequireDefault(_src);
68
69 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
70
71 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; }
72
73 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
74
75 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; }
76
77 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); }
78
79 var CARET = _react2['default'].createElement('i', { className: 'uf uf-arrow-down' });
80
81 var CARETUP = _react2['default'].createElement('i', { className: 'uf uf-arrow-up' });
82
83 var Demo1 = __webpack_require__(139);var Demo2 = __webpack_require__(140);var DemoArray = [{ "example": _react2['default'].createElement(Demo1, null), "title": " 默认复制", "code": "/**\n *\n * @title 默认复制\n * @description 在复制按钮中定义内容,点击复制到剪切板\n *\n */\n\nimport React, { Component } from 'react';\nimport Clipboard from 'bee-clipboard';\n\nclass Demo1 extends Component {\n render() {\n function success() {\n console.log('success');\n }\n\n function error() {\n console.log('error');\n }\n\n return (\n <Clipboard action=\"copy\" text=\"默认复制-我将被复制到剪切板\" success={success} error={error}>\n\n </Clipboard>\n )\n }\n}\n\n", "desc": " 在复制按钮中定义内容,点击复制到剪切板" }, { "example": _react2['default'].createElement(Demo2, null), "title": " 目标复制", "code": "/**\n *\n * @title 目标复制\n * @description 复制目标元素的内容到剪切板\n *\n */\n\nimport React, { Component } from 'react';\nimport Clipboard from 'bee-clipboard';\n\nclass Demo2 extends Component {\n render() {\n function success(){\n console.log('success');\n }\n function error(){\n console.log('error');\n }\n return (\n <div>\n <div id=\"copyContent\" >目标复制-我将被复制到剪切板</div>\n <Clipboard action=\"copy\" target='#copyContent' success={success} error={error}>\n </Clipboard>\n </div>\n )\n }\n}\n\n", "desc": " 复制目标元素的内容到剪切板" }];
84
85 var Demo = function (_Component) {
86 _inherits(Demo, _Component);
87
88 function Demo(props) {
89 _classCallCheck(this, Demo);
90
91 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
92
93 _this.state = {
94 open: false
95 };
96 _this.handleClick = _this.handleClick.bind(_this);
97 return _this;
98 }
99
100 Demo.prototype.handleClick = function handleClick() {
101 this.setState({ open: !this.state.open });
102 };
103
104 Demo.prototype.render = function render() {
105 var _props = this.props,
106 title = _props.title,
107 example = _props.example,
108 code = _props.code,
109 desc = _props.desc;
110
111 var caret = this.state.open ? CARETUP : CARET;
112 var text = this.state.open ? "隐藏代码" : "查看代码";
113
114 var footer = _react2['default'].createElement(
115 _beeButton2['default'],
116 { shape: 'block', onClick: this.handleClick },
117 caret,
118 text
119 );
120 return _react2['default'].createElement(
121 _beeLayout.Col,
122 { md: 12 },
123 _react2['default'].createElement(
124 'h3',
125 null,
126 title
127 ),
128 _react2['default'].createElement(
129 'p',
130 null,
131 desc
132 ),
133 _react2['default'].createElement(
134 _beePanel.Panel,
135 { collapsible: true, headerContent: true, expanded: this.state.open, colors: 'bordered', header: example, footer: footer, footerStyle: { padding: 0 } },
136 _react2['default'].createElement(
137 'pre',
138 null,
139 _react2['default'].createElement(
140 'code',
141 { className: 'hljs javascript' },
142 code
143 )
144 )
145 )
146 );
147 };
148
149 return Demo;
150 }(_react.Component);
151
152 var DemoGroup = function (_Component2) {
153 _inherits(DemoGroup, _Component2);
154
155 function DemoGroup(props) {
156 _classCallCheck(this, DemoGroup);
157
158 return _possibleConstructorReturn(this, _Component2.call(this, props));
159 }
160
161 DemoGroup.prototype.render = function render() {
162 return _react2['default'].createElement(
163 _beeLayout.Row,
164 null,
165 DemoArray.map(function (child, index) {
166
167 return _react2['default'].createElement(Demo, { example: child.example, title: child.title, code: child.code, desc: child.desc, key: index });
168 })
169 );
170 };
171
172 return DemoGroup;
173 }(_react.Component);
174
175 _reactDom2['default'].render(_react2['default'].createElement(DemoGroup, null), document.getElementById('tinperBeeDemo'));
176
177/***/ }),
178/* 1 */
179/***/ (function(module, exports, __webpack_require__) {
180
181 'use strict';
182
183 Object.defineProperty(exports, "__esModule", {
184 value: true
185 });
186 exports.Con = exports.Row = exports.Col = undefined;
187
188 var _Col2 = __webpack_require__(2);
189
190 var _Col3 = _interopRequireDefault(_Col2);
191
192 var _Row2 = __webpack_require__(6);
193
194 var _Row3 = _interopRequireDefault(_Row2);
195
196 var _Layout = __webpack_require__(7);
197
198 var _Layout2 = _interopRequireDefault(_Layout);
199
200 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
201
202 exports.Col = _Col3["default"];
203 exports.Row = _Row3["default"];
204 exports.Con = _Layout2["default"];
205
206/***/ }),
207/* 2 */
208/***/ (function(module, exports, __webpack_require__) {
209
210 'use strict';
211
212 Object.defineProperty(exports, "__esModule", {
213 value: true
214 });
215
216 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; };
217
218 var _classnames = __webpack_require__(3);
219
220 var _classnames2 = _interopRequireDefault(_classnames);
221
222 var _react = __webpack_require__(4);
223
224 var _react2 = _interopRequireDefault(_react);
225
226 var _propTypes = __webpack_require__(5);
227
228 var _propTypes2 = _interopRequireDefault(_propTypes);
229
230 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
231
232 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; }
233
234 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; }
235
236 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
237
238 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; }
239
240 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); }
241
242 var propTypes = {
243 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string]),
244
245 /**
246 * xs显示列数
247 */
248 xs: _propTypes2["default"].number,
249 /**
250 * sm显示列数
251 */
252 sm: _propTypes2["default"].number,
253 /**
254 * md显示列数
255 */
256 md: _propTypes2["default"].number,
257 /**
258 * lg显示列数
259 */
260 lg: _propTypes2["default"].number,
261 /**
262 * xs偏移列数
263 */
264 xsOffset: _propTypes2["default"].number,
265 /**
266 * sm偏移列数
267 */
268 smOffset: _propTypes2["default"].number,
269 /**
270 * md偏移列数
271 */
272 mdOffset: _propTypes2["default"].number,
273 /**
274 * lg偏移列数
275 */
276 lgOffset: _propTypes2["default"].number,
277 /**
278 * xs右偏移列数
279 */
280 xsPush: _propTypes2["default"].number,
281 /**
282 * sm右偏移列数
283 */
284 smPush: _propTypes2["default"].number,
285 /**
286 * md右偏移列数
287 */
288 mdPush: _propTypes2["default"].number,
289 /**
290 * lg右偏移列数
291 */
292 lgPush: _propTypes2["default"].number,
293 /**
294 * xs左偏移列数
295 */
296 xsPull: _propTypes2["default"].number,
297 /**
298 * sm左偏移列数
299 */
300 smPull: _propTypes2["default"].number,
301 /**
302 * md左偏移列数
303 */
304 mdPull: _propTypes2["default"].number,
305 /**
306 * lg左偏移列数
307 */
308 lgPull: _propTypes2["default"].number
309 };
310
311 var defaultProps = {
312 componentClass: 'div',
313 clsPrefix: 'u-col'
314 };
315
316 var DEVICE_SIZES = ['lg', 'md', 'sm', 'xs'];
317
318 var Col = function (_Component) {
319 _inherits(Col, _Component);
320
321 function Col() {
322 _classCallCheck(this, Col);
323
324 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
325 }
326
327 Col.prototype.render = function render() {
328 var _props = this.props,
329 Component = _props.componentClass,
330 className = _props.className,
331 clsPrefix = _props.clsPrefix,
332 others = _objectWithoutProperties(_props, ['componentClass', 'className', 'clsPrefix']);
333
334 var tbClass = [];
335 /**
336 * 对传入props做样式转化
337 * @type {[type]}
338 */
339 DEVICE_SIZES.forEach(function (size) {
340 function popProp(propSuffix, modifier) {
341 var propName = '' + size + propSuffix;
342 var propValue = others[propName];
343
344 if (propValue != undefined && propValue != null) {
345 tbClass.push(clsPrefix + '-' + size + modifier + '-' + propValue);
346 }
347
348 delete others[propName];
349 }
350
351 popProp('', '');
352 popProp('Offset', '-offset');
353 popProp('Push', '-push');
354 popProp('Pull', '-pull');
355 });
356
357 return _react2["default"].createElement(
358 Component,
359 _extends({
360 className: (0, _classnames2["default"])(tbClass, className)
361 }, others),
362 this.props.children
363 );
364 };
365
366 return Col;
367 }(_react.Component);
368
369 Col.defaultProps = defaultProps;
370 Col.propTypes = propTypes;
371
372 exports["default"] = Col;
373 module.exports = exports['default'];
374
375/***/ }),
376/* 3 */
377/***/ (function(module, exports, __webpack_require__) {
378
379 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
380 Copyright (c) 2016 Jed Watson.
381 Licensed under the MIT License (MIT), see
382 http://jedwatson.github.io/classnames
383 */
384 /* global define */
385
386 (function () {
387 'use strict';
388
389 var hasOwn = {}.hasOwnProperty;
390
391 function classNames () {
392 var classes = [];
393
394 for (var i = 0; i < arguments.length; i++) {
395 var arg = arguments[i];
396 if (!arg) continue;
397
398 var argType = typeof arg;
399
400 if (argType === 'string' || argType === 'number') {
401 classes.push(arg);
402 } else if (Array.isArray(arg)) {
403 classes.push(classNames.apply(null, arg));
404 } else if (argType === 'object') {
405 for (var key in arg) {
406 if (hasOwn.call(arg, key) && arg[key]) {
407 classes.push(key);
408 }
409 }
410 }
411 }
412
413 return classes.join(' ');
414 }
415
416 if (typeof module !== 'undefined' && module.exports) {
417 module.exports = classNames;
418 } else if (true) {
419 // register as 'classnames', consistent with npm package name
420 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
421 return classNames;
422 }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
423 } else {
424 window.classNames = classNames;
425 }
426 }());
427
428
429/***/ }),
430/* 4 */
431/***/ (function(module, exports) {
432
433 module.exports = React;
434
435/***/ }),
436/* 5 */
437/***/ (function(module, exports) {
438
439 module.exports = PropTypes;
440
441/***/ }),
442/* 6 */
443/***/ (function(module, exports, __webpack_require__) {
444
445 'use strict';
446
447 Object.defineProperty(exports, "__esModule", {
448 value: true
449 });
450
451 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; };
452
453 var _classnames = __webpack_require__(3);
454
455 var _classnames2 = _interopRequireDefault(_classnames);
456
457 var _react = __webpack_require__(4);
458
459 var _react2 = _interopRequireDefault(_react);
460
461 var _propTypes = __webpack_require__(5);
462
463 var _propTypes2 = _interopRequireDefault(_propTypes);
464
465 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
466
467 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; }
468
469 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; }
470
471 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
472
473 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; }
474
475 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); }
476
477 var propTypes = {
478 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string])
479 };
480
481 var defaultProps = {
482 componentClass: 'div',
483 clsPrefix: 'u-row'
484 };
485
486 var Row = function (_Component) {
487 _inherits(Row, _Component);
488
489 function Row() {
490 _classCallCheck(this, Row);
491
492 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
493 }
494
495 Row.prototype.render = function render() {
496 var _props = this.props,
497 Component = _props.componentClass,
498 clsPrefix = _props.clsPrefix,
499 className = _props.className,
500 others = _objectWithoutProperties(_props, ['componentClass', 'clsPrefix', 'className']);
501
502 var bsclass = '' + clsPrefix;
503
504 return _react2["default"].createElement(
505 Component,
506 _extends({}, others, {
507 className: (0, _classnames2["default"])(bsclass, className)
508 }),
509 this.props.children
510 );
511 };
512
513 return Row;
514 }(_react.Component);
515
516 Row.propTypes = propTypes;
517 Row.defaultProps = defaultProps;
518
519 exports["default"] = Row;
520 module.exports = exports['default'];
521
522/***/ }),
523/* 7 */
524/***/ (function(module, exports, __webpack_require__) {
525
526 'use strict';
527
528 Object.defineProperty(exports, "__esModule", {
529 value: true
530 });
531
532 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; };
533
534 var _classnames = __webpack_require__(3);
535
536 var _classnames2 = _interopRequireDefault(_classnames);
537
538 var _react = __webpack_require__(4);
539
540 var _react2 = _interopRequireDefault(_react);
541
542 var _propTypes = __webpack_require__(5);
543
544 var _propTypes2 = _interopRequireDefault(_propTypes);
545
546 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
547
548 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; }
549
550 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; }
551
552 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; }
553
554 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
555
556 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; }
557
558 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); }
559
560 var propTypes = {
561 /**
562 * Adds `container-fluid` class.
563 */
564 fluid: _propTypes2["default"].bool,
565 /**
566 * You can use a custom element for this component
567 */
568 componentClass: _propTypes2["default"].oneOf([_propTypes2["default"].element, _propTypes2["default"].string])
569 };
570
571 var defaultProps = {
572 componentClass: 'div',
573 fluid: false,
574 clsPrefix: 'u-container'
575 };
576
577 var Con = function (_React$Component) {
578 _inherits(Con, _React$Component);
579
580 function Con() {
581 _classCallCheck(this, Con);
582
583 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
584 }
585
586 Con.prototype.render = function render() {
587 var _tbclass;
588
589 var _props = this.props,
590 fluid = _props.fluid,
591 Component = _props.componentClass,
592 clsPrefix = _props.clsPrefix,
593 className = _props.className,
594 others = _objectWithoutProperties(_props, ['fluid', 'componentClass', 'clsPrefix', 'className']);
595
596 var tbclass = (_tbclass = {}, _defineProperty(_tbclass, '' + clsPrefix, !fluid), _defineProperty(_tbclass, clsPrefix + '-fluid', fluid), _tbclass);
597
598 return _react2["default"].createElement(
599 Component,
600 _extends({}, others, {
601 className: (0, _classnames2["default"])(tbclass, className)
602 }),
603 this.props.children
604 );
605 };
606
607 return Con;
608 }(_react2["default"].Component);
609
610 Con.propTypes = propTypes;
611 Con.defaultProps = defaultProps;
612
613 exports["default"] = Con;
614 module.exports = exports['default'];
615
616/***/ }),
617/* 8 */
618/***/ (function(module, exports, __webpack_require__) {
619
620 'use strict';
621
622 Object.defineProperty(exports, "__esModule", {
623 value: true
624 });
625 exports.PanelGroup = exports.Panel = undefined;
626
627 var _Panel2 = __webpack_require__(9);
628
629 var _Panel3 = _interopRequireDefault(_Panel2);
630
631 var _PanelGroup2 = __webpack_require__(102);
632
633 var _PanelGroup3 = _interopRequireDefault(_PanelGroup2);
634
635 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
636
637 exports.Panel = _Panel3["default"];
638 exports.PanelGroup = _PanelGroup3["default"];
639
640/***/ }),
641/* 9 */
642/***/ (function(module, exports, __webpack_require__) {
643
644 'use strict';
645
646 Object.defineProperty(exports, "__esModule", {
647 value: true
648 });
649
650 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; };
651
652 var _classnames = __webpack_require__(3);
653
654 var _classnames2 = _interopRequireDefault(_classnames);
655
656 var _react = __webpack_require__(4);
657
658 var _react2 = _interopRequireDefault(_react);
659
660 var _beeTransition = __webpack_require__(10);
661
662 var _propTypes = __webpack_require__(5);
663
664 var _propTypes2 = _interopRequireDefault(_propTypes);
665
666 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
667
668 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; }
669
670 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; }
671
672 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; }
673
674 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
675
676 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; }
677
678 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); }
679
680 var propTypes = {
681 //是否添加折叠
682 collapsible: _propTypes2["default"].bool,
683 onSelect: _propTypes2["default"].func,
684 //头部组件
685 header: _propTypes2["default"].node,
686 headerStyle: _propTypes2["default"].object,
687 id: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]),
688 headerContent: _propTypes2["default"].bool,
689 //footer组件
690 footer: _propTypes2["default"].node,
691 footerStyle: _propTypes2["default"].object,
692 //默认是否打开
693 defaultExpanded: _propTypes2["default"].bool,
694 //是否打开
695 expanded: _propTypes2["default"].bool,
696 //每个panel的标记
697 eventKey: _propTypes2["default"].any,
698 headerRole: _propTypes2["default"].string,
699 panelRole: _propTypes2["default"].string,
700 //颜色
701 colors: _propTypes2["default"].oneOf(['primary', 'accent', 'success', 'info', 'warning', 'danger', 'default', 'bordered']),
702
703 // From Collapse.的扩展动画
704 onEnter: _propTypes2["default"].func,
705 onEntering: _propTypes2["default"].func,
706 onEntered: _propTypes2["default"].func,
707 onExit: _propTypes2["default"].func,
708 onExiting: _propTypes2["default"].func,
709 onExited: _propTypes2["default"].func
710 };
711
712 var defaultProps = {
713 defaultExpanded: false,
714 clsPrefix: "u-panel",
715 colors: "default"
716 };
717
718 var Panel = function (_React$Component) {
719 _inherits(Panel, _React$Component);
720
721 function Panel(props, context) {
722 _classCallCheck(this, Panel);
723
724 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
725
726 _this.handleClickTitle = _this.handleClickTitle.bind(_this);
727
728 _this.state = {
729 expanded: _this.props.defaultExpanded
730 };
731 return _this;
732 }
733
734 //头部点击事件
735
736
737 Panel.prototype.handleClickTitle = function handleClickTitle(e) {
738 // 不让事件进入事件池
739 e.persist();
740 e.selected = true;
741
742 if (this.props.onSelect) {
743 this.props.onSelect(this.props.eventKey, e);
744 } else {
745 e.preventDefault();
746 }
747
748 if (e.selected) {
749 this.setState({ expanded: !this.state.expanded });
750 }
751 };
752
753 //渲染panelheader
754
755
756 Panel.prototype.renderHeader = function renderHeader(collapsible, header, id, role, expanded, clsPrefix) {
757 var titleClassName = clsPrefix + '-title';
758
759 if (!collapsible) {
760 if (!_react2["default"].isValidElement(header)) {
761 return header;
762 }
763
764 return (0, _react.cloneElement)(header, {
765 className: (0, _classnames2["default"])(header.props.className, titleClassName)
766 });
767 }
768
769 if (!_react2["default"].isValidElement(header)) {
770 return _react2["default"].createElement(
771 'h4',
772 { role: 'presentation', className: titleClassName },
773 this.renderAnchor(header, id, role, expanded)
774 );
775 }
776 if (this.props.headerContent) {
777 return (0, _react.cloneElement)(header, {
778 className: (0, _classnames2["default"])(header.props.className, titleClassName)
779 });
780 }
781
782 return (0, _react.cloneElement)(header, {
783 className: (0, _classnames2["default"])(header.props.className, titleClassName),
784 children: this.renderAnchor(header.props.children, id, role, expanded)
785 });
786 };
787
788 //如果使用链接,渲染为a标签
789
790
791 Panel.prototype.renderAnchor = function renderAnchor(header, id, role, expanded) {
792 return _react2["default"].createElement(
793 'a',
794 {
795 role: role,
796 href: id && '#' + id,
797 'aria-controls': id,
798 'aria-expanded': expanded,
799 'aria-selected': expanded,
800 className: expanded ? null : 'collapsed'
801 },
802 header
803 );
804 };
805
806 //如果有折叠动画,渲染折叠动画
807
808
809 Panel.prototype.renderCollapsibleBody = function renderCollapsibleBody(id, expanded, role, children, clsPrefix, animationHooks) {
810 return _react2["default"].createElement(
811 _beeTransition.Collapse,
812 _extends({ 'in': expanded }, animationHooks),
813 _react2["default"].createElement(
814 'div',
815 {
816 id: id,
817 role: role,
818 className: clsPrefix + '-collapse',
819 'aria-hidden': !expanded
820 },
821 this.renderBody(children, clsPrefix)
822 )
823 );
824 };
825
826 //渲染panelbody
827
828
829 Panel.prototype.renderBody = function renderBody(rawChildren, clsPrefix) {
830 var children = [];
831 var bodyChildren = [];
832
833 var bodyClassName = clsPrefix + '-body';
834
835 //添加到body的children中
836 function maybeAddBody() {
837 if (!bodyChildren.length) {
838 return;
839 }
840
841 // 给子组件添加key,为了之后触发事件时使用
842 children.push(_react2["default"].createElement(
843 'div',
844 { key: children.length, className: bodyClassName },
845 bodyChildren
846 ));
847
848 bodyChildren = [];
849 }
850
851 //转换为数组,方便复用
852 _react2["default"].Children.toArray(rawChildren).forEach(function (child) {
853 if (_react2["default"].isValidElement(child) && child.props.fill) {
854 maybeAddBody();
855
856 //将标示fill设置为undefined
857 children.push((0, _react.cloneElement)(child, { fill: undefined }));
858
859 return;
860 }
861
862 bodyChildren.push(child);
863 });
864
865 maybeAddBody();
866
867 return children;
868 };
869
870 Panel.prototype.render = function render() {
871 var _props = this.props,
872 collapsible = _props.collapsible,
873 header = _props.header,
874 id = _props.id,
875 footer = _props.footer,
876 propsExpanded = _props.expanded,
877 footerStyle = _props.footerStyle,
878 headerStyle = _props.headerStyle,
879 headerRole = _props.headerRole,
880 panelRole = _props.panelRole,
881 className = _props.className,
882 colors = _props.colors,
883 children = _props.children,
884 onEnter = _props.onEnter,
885 onEntering = _props.onEntering,
886 onEntered = _props.onEntered,
887 clsPrefix = _props.clsPrefix,
888 onExit = _props.onExit,
889 headerContent = _props.headerContent,
890 onExiting = _props.onExiting,
891 onExited = _props.onExited,
892 defaultExpanded = _props.defaultExpanded,
893 eventKey = _props.eventKey,
894 onSelect = _props.onSelect,
895 props = _objectWithoutProperties(_props, ['collapsible', 'header', 'id', 'footer', 'expanded', 'footerStyle', 'headerStyle', 'headerRole', 'panelRole', 'className', 'colors', 'children', 'onEnter', 'onEntering', 'onEntered', 'clsPrefix', 'onExit', 'headerContent', 'onExiting', 'onExited', 'defaultExpanded', 'eventKey', 'onSelect']);
896
897 var expanded = propsExpanded != null ? propsExpanded : this.state.expanded;
898
899 var classes = {};
900 classes['' + clsPrefix] = true;
901 classes[clsPrefix + '-' + colors] = true;
902
903 var headerClass = _defineProperty({}, clsPrefix + '-heading', true);
904
905 return _react2["default"].createElement(
906 'div',
907 _extends({}, props, {
908 className: (0, _classnames2["default"])(className, classes),
909 id: collapsible ? null : id
910 }),
911 header && _react2["default"].createElement(
912 'div',
913 { className: (0, _classnames2["default"])(headerClass), style: headerStyle, onClick: this.handleClickTitle },
914 this.renderHeader(collapsible, header, id, headerRole, expanded, clsPrefix)
915 ),
916 collapsible ? this.renderCollapsibleBody(id, expanded, panelRole, children, clsPrefix, { onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited }) : this.renderBody(children, clsPrefix),
917 footer && _react2["default"].createElement(
918 'div',
919 { className: clsPrefix + '-footer', style: footerStyle },
920 footer
921 )
922 );
923 };
924
925 return Panel;
926 }(_react2["default"].Component);
927
928 Panel.propTypes = propTypes;
929 Panel.defaultProps = defaultProps;
930
931 exports["default"] = Panel;
932 module.exports = exports['default'];
933
934/***/ }),
935/* 10 */
936/***/ (function(module, exports, __webpack_require__) {
937
938 'use strict';
939
940 Object.defineProperty(exports, "__esModule", {
941 value: true
942 });
943 exports.Fade = exports.Collapse = exports.Transition = undefined;
944
945 var _Transition2 = __webpack_require__(11);
946
947 var _Transition3 = _interopRequireDefault(_Transition2);
948
949 var _Collapse2 = __webpack_require__(16);
950
951 var _Collapse3 = _interopRequireDefault(_Collapse2);
952
953 var _Fade2 = __webpack_require__(101);
954
955 var _Fade3 = _interopRequireDefault(_Fade2);
956
957 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
958
959 exports.Transition = _Transition3["default"];
960 exports.Collapse = _Collapse3["default"];
961 exports.Fade = _Fade3["default"];
962
963/***/ }),
964/* 11 */
965/***/ (function(module, exports, __webpack_require__) {
966
967 'use strict';
968
969 Object.defineProperty(exports, "__esModule", {
970 value: true
971 });
972 exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined;
973
974 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; };
975
976 var _react = __webpack_require__(4);
977
978 var _react2 = _interopRequireDefault(_react);
979
980 var _reactDom = __webpack_require__(12);
981
982 var _reactDom2 = _interopRequireDefault(_reactDom);
983
984 var _properties = __webpack_require__(13);
985
986 var _properties2 = _interopRequireDefault(_properties);
987
988 var _on = __webpack_require__(15);
989
990 var _on2 = _interopRequireDefault(_on);
991
992 var _classnames = __webpack_require__(3);
993
994 var _classnames2 = _interopRequireDefault(_classnames);
995
996 var _propTypes = __webpack_require__(5);
997
998 var _propTypes2 = _interopRequireDefault(_propTypes);
999
1000 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1001
1002 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; }
1003
1004 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; }
1005
1006 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1007
1008 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; }
1009
1010 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); }
1011
1012 var transitionEndEvent = _properties2["default"].end;
1013
1014 //设置状态码
1015 var UNMOUNTED = exports.UNMOUNTED = 0;
1016 var EXITED = exports.EXITED = 1;
1017 var ENTERING = exports.ENTERING = 2;
1018 var ENTERED = exports.ENTERED = 3;
1019 var EXITING = exports.EXITING = 4;
1020
1021 var propTypes = {
1022 /**
1023 * 是否触发动画
1024 */
1025 "in": _propTypes2["default"].bool,
1026
1027 /**
1028 * 不显示的时候是否移除组件
1029 */
1030 unmountOnExit: _propTypes2["default"].bool,
1031
1032 /**
1033 * 如果设置为默认显示,挂载时显示动画
1034 */
1035 transitionAppear: _propTypes2["default"].bool,
1036
1037 /**
1038 * 设置超时时间,防止出现问题,可设置为>=动画时间
1039 */
1040 timeout: _propTypes2["default"].number,
1041
1042 /**
1043 * 退出组件时添加的class
1044 */
1045 exitedClassName: _propTypes2["default"].string,
1046 /**
1047 * 退出组件中添加的class
1048 */
1049 exitingClassName: _propTypes2["default"].string,
1050 /**
1051 * 进入动画后添加的class
1052 */
1053 enteredClassName: _propTypes2["default"].string,
1054 /**
1055 * 进入动画时添加的class
1056 */
1057 enteringClassName: _propTypes2["default"].string,
1058
1059 /**
1060 * 进入动画开始时的钩子函数
1061 */
1062 onEnter: _propTypes2["default"].func,
1063 /**
1064 * 进入动画中的钩子函数
1065 */
1066 onEntering: _propTypes2["default"].func,
1067 /**
1068 * 进入动画后的钩子函数
1069 */
1070 onEntered: _propTypes2["default"].func,
1071 /**
1072 * 退出动画开始时的钩子函数
1073 */
1074 onExit: _propTypes2["default"].func,
1075 /**
1076 * 退出动画中的钩子函数
1077 */
1078 onExiting: _propTypes2["default"].func,
1079 /**
1080 * 退出动画后的钩子函数
1081 */
1082 onExited: _propTypes2["default"].func
1083 };
1084
1085 function noop() {}
1086
1087 var defaultProps = {
1088 "in": false,
1089 unmountOnExit: false,
1090 transitionAppear: false,
1091 timeout: 5000,
1092 onEnter: noop,
1093 onEntering: noop,
1094 onEntered: noop,
1095 onExit: noop,
1096 onExiting: noop,
1097 onExited: noop
1098 };
1099
1100 /**
1101 * 动画组件
1102 */
1103
1104 var Transition = function (_Component) {
1105 _inherits(Transition, _Component);
1106
1107 function Transition(props, context) {
1108 _classCallCheck(this, Transition);
1109
1110 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
1111
1112 var initialStatus = void 0;
1113 if (props["in"]) {
1114 // 在componentdidmount时开始执行动画
1115 initialStatus = props.transitionAppear ? EXITED : ENTERED;
1116 } else {
1117 initialStatus = props.unmountOnExit ? UNMOUNTED : EXITED;
1118 }
1119 _this.state = { status: initialStatus };
1120
1121 _this.nextCallback = null;
1122 return _this;
1123 }
1124
1125 Transition.prototype.componentDidMount = function componentDidMount() {
1126 if (this.props.transitionAppear && this.props["in"]) {
1127 this.performEnter(this.props);
1128 }
1129 };
1130
1131 Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
1132 if (nextProps["in"] && this.props.unmountOnExit) {
1133 if (this.state.status === UNMOUNTED) {
1134 // 在componentDidUpdate执行动画.
1135 this.setState({ status: EXITED });
1136 }
1137 } else {
1138 this._needsUpdate = true;
1139 }
1140 };
1141
1142 Transition.prototype.componentDidUpdate = function componentDidUpdate() {
1143 var status = this.state.status;
1144
1145 if (this.props.unmountOnExit && status === EXITED) {
1146 // 当使用unmountOnExit时,exited为exiting和unmont的过渡状态
1147 if (this.props["in"]) {
1148 this.performEnter(this.props);
1149 } else {
1150 this.setState({ status: UNMOUNTED });
1151 }
1152
1153 return;
1154 }
1155
1156 // 确保只响应prop变化
1157 if (this._needsUpdate) {
1158 this._needsUpdate = false;
1159
1160 if (this.props["in"]) {
1161 if (status === EXITING) {
1162 this.performEnter(this.props);
1163 } else if (status === EXITED) {
1164 this.performEnter(this.props);
1165 }
1166 // 其他,当我们已经输入或输出
1167 } else {
1168 if (status === ENTERING || status === ENTERED) {
1169 this.performExit(this.props);
1170 }
1171 // 我们已经输入或输出完成
1172 }
1173 }
1174 };
1175
1176 Transition.prototype.componentWillUnmount = function componentWillUnmount() {
1177 this.cancelNextCallback();
1178 };
1179
1180 Transition.prototype.performEnter = function performEnter(props) {
1181 var _this2 = this;
1182
1183 this.cancelNextCallback();
1184 var node = _reactDom2["default"].findDOMNode(this);
1185
1186 // 这里接收新props
1187 props.onEnter(node);
1188
1189 this.safeSetState({ status: ENTERING }, function () {
1190 _this2.props.onEntering(node);
1191
1192 _this2.onTransitionEnd(node, function () {
1193 _this2.safeSetState({ status: ENTERED }, function () {
1194 _this2.props.onEntered(node);
1195 });
1196 });
1197 });
1198 };
1199
1200 Transition.prototype.performExit = function performExit(props) {
1201 var _this3 = this;
1202
1203 this.cancelNextCallback();
1204 var node = _reactDom2["default"].findDOMNode(this);
1205
1206 props.onExit(node);
1207
1208 this.safeSetState({ status: EXITING }, function () {
1209 _this3.props.onExiting(node);
1210
1211 _this3.onTransitionEnd(node, function () {
1212 _this3.safeSetState({ status: EXITED }, function () {
1213 _this3.props.onExited(node);
1214 });
1215 });
1216 });
1217 };
1218
1219 Transition.prototype.cancelNextCallback = function cancelNextCallback() {
1220 if (this.nextCallback !== null) {
1221 this.nextCallback.cancel();
1222 this.nextCallback = null;
1223 }
1224 };
1225
1226 Transition.prototype.safeSetState = function safeSetState(nextState, callback) {
1227 // 确保在组件销毁后挂起的setState被消除
1228 this.setState(nextState, this.setNextCallback(callback));
1229 };
1230
1231 Transition.prototype.setNextCallback = function setNextCallback(callback) {
1232 var _this4 = this;
1233
1234 var active = true;
1235
1236 this.nextCallback = function (event) {
1237 if (active) {
1238 active = false;
1239 _this4.nextCallback = null;
1240
1241 callback(event);
1242 }
1243 };
1244
1245 this.nextCallback.cancel = function () {
1246 active = false;
1247 };
1248
1249 return this.nextCallback;
1250 };
1251
1252 Transition.prototype.onTransitionEnd = function onTransitionEnd(node, handler) {
1253 this.setNextCallback(handler);
1254
1255 if (node) {
1256 if (transitionEndEvent == undefined) {
1257 this.nextCallback();
1258 } else {
1259 (0, _on2["default"])(node, transitionEndEvent, this.nextCallback);
1260 }
1261 setTimeout(this.nextCallback, this.props.timeout);
1262 } else {
1263 setTimeout(this.nextCallback, 0);
1264 }
1265 };
1266
1267 Transition.prototype.render = function render() {
1268 var status = this.state.status;
1269 if (status === UNMOUNTED) {
1270 return null;
1271 }
1272
1273 var _props = this.props,
1274 children = _props.children,
1275 className = _props.className,
1276 childProps = _objectWithoutProperties(_props, ['children', 'className']);
1277
1278 Object.keys(Transition.propTypes).forEach(function (key) {
1279 return delete childProps[key];
1280 });
1281
1282 var transitionClassName = void 0;
1283 if (status === EXITED) {
1284 transitionClassName = this.props.exitedClassName;
1285 } else if (status === ENTERING) {
1286 transitionClassName = this.props.enteringClassName;
1287 } else if (status === ENTERED) {
1288 transitionClassName = this.props.enteredClassName;
1289 } else if (status === EXITING) {
1290 transitionClassName = this.props.exitingClassName;
1291 }
1292
1293 var child = _react2["default"].Children.only(children);
1294 return _react2["default"].cloneElement(child, _extends({}, childProps, {
1295 className: (0, _classnames2["default"])(child.props.className, className, transitionClassName)
1296 }));
1297 };
1298
1299 return Transition;
1300 }(_react.Component);
1301
1302 Transition.propTypes = propTypes;
1303
1304 Transition.defaultProps = defaultProps;
1305
1306 exports["default"] = Transition;
1307
1308/***/ }),
1309/* 12 */
1310/***/ (function(module, exports) {
1311
1312 module.exports = ReactDOM;
1313
1314/***/ }),
1315/* 13 */
1316/***/ (function(module, exports, __webpack_require__) {
1317
1318 'use strict';
1319
1320 Object.defineProperty(exports, "__esModule", {
1321 value: true
1322 });
1323 exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = undefined;
1324
1325 var _inDOM = __webpack_require__(14);
1326
1327 var _inDOM2 = _interopRequireDefault(_inDOM);
1328
1329 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1330
1331 var transform = 'transform';
1332 var prefix = void 0,
1333 transitionEnd = void 0,
1334 animationEnd = void 0;
1335 var transitionProperty = void 0,
1336 transitionDuration = void 0,
1337 transitionTiming = void 0,
1338 transitionDelay = void 0;
1339 var animationName = void 0,
1340 animationDuration = void 0,
1341 animationTiming = void 0,
1342 animationDelay = void 0;
1343
1344 if (_inDOM2.default) {
1345 var _getTransitionPropert = getTransitionProperties();
1346
1347 prefix = _getTransitionPropert.prefix;
1348 exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;
1349 exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;
1350
1351
1352 exports.transform = transform = prefix + '-' + transform;
1353 exports.transitionProperty = transitionProperty = prefix + '-transition-property';
1354 exports.transitionDuration = transitionDuration = prefix + '-transition-duration';
1355 exports.transitionDelay = transitionDelay = prefix + '-transition-delay';
1356 exports.transitionTiming = transitionTiming = prefix + '-transition-timing-function';
1357
1358 exports.animationName = animationName = prefix + '-animation-name';
1359 exports.animationDuration = animationDuration = prefix + '-animation-duration';
1360 exports.animationTiming = animationTiming = prefix + '-animation-delay';
1361 exports.animationDelay = animationDelay = prefix + '-animation-timing-function';
1362 }
1363
1364 exports.transform = transform;
1365 exports.transitionProperty = transitionProperty;
1366 exports.transitionTiming = transitionTiming;
1367 exports.transitionDelay = transitionDelay;
1368 exports.transitionDuration = transitionDuration;
1369 exports.transitionEnd = transitionEnd;
1370 exports.animationName = animationName;
1371 exports.animationDuration = animationDuration;
1372 exports.animationTiming = animationTiming;
1373 exports.animationDelay = animationDelay;
1374 exports.animationEnd = animationEnd;
1375 exports.default = {
1376 transform: transform,
1377 end: transitionEnd,
1378 property: transitionProperty,
1379 timing: transitionTiming,
1380 delay: transitionDelay,
1381 duration: transitionDuration
1382 };
1383
1384
1385 function getTransitionProperties() {
1386 var style = document.createElement('div').style;
1387
1388 var vendorMap = {
1389 O: function O(e) {
1390 return 'o' + e.toLowerCase();
1391 },
1392 Moz: function Moz(e) {
1393 return e.toLowerCase();
1394 },
1395 Webkit: function Webkit(e) {
1396 return 'webkit' + e;
1397 },
1398 ms: function ms(e) {
1399 return 'MS' + e;
1400 }
1401 };
1402
1403 var vendors = Object.keys(vendorMap);
1404
1405 var transitionEnd = void 0,
1406 animationEnd = void 0;
1407 var prefix = '';
1408
1409 for (var i = 0; i < vendors.length; i++) {
1410 var vendor = vendors[i];
1411
1412 if (vendor + 'TransitionProperty' in style) {
1413 prefix = '-' + vendor.toLowerCase();
1414 transitionEnd = vendorMap[vendor]('TransitionEnd');
1415 animationEnd = vendorMap[vendor]('AnimationEnd');
1416 break;
1417 }
1418 }
1419
1420 if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';
1421
1422 if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';
1423
1424 style = null;
1425
1426 return { animationEnd: animationEnd, transitionEnd: transitionEnd, prefix: prefix };
1427 }
1428
1429/***/ }),
1430/* 14 */
1431/***/ (function(module, exports) {
1432
1433 'use strict';
1434
1435 Object.defineProperty(exports, "__esModule", {
1436 value: true
1437 });
1438 exports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
1439 module.exports = exports['default'];
1440
1441/***/ }),
1442/* 15 */
1443/***/ (function(module, exports, __webpack_require__) {
1444
1445 'use strict';
1446
1447 Object.defineProperty(exports, "__esModule", {
1448 value: true
1449 });
1450
1451 var _inDOM = __webpack_require__(14);
1452
1453 var _inDOM2 = _interopRequireDefault(_inDOM);
1454
1455 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1456
1457 var on = function on() {};
1458 if (_inDOM2.default) {
1459 on = function () {
1460
1461 if (document.addEventListener) return function (node, eventName, handler, capture) {
1462 return node.addEventListener(eventName, handler, capture || false);
1463 };else if (document.attachEvent) return function (node, eventName, handler) {
1464 return node.attachEvent('on' + eventName, function (e) {
1465 e = e || window.event;
1466 e.target = e.target || e.srcElement;
1467 e.currentTarget = node;
1468 handler.call(node, e);
1469 });
1470 };
1471 }();
1472 }
1473
1474 exports.default = on;
1475 module.exports = exports['default'];
1476
1477/***/ }),
1478/* 16 */
1479/***/ (function(module, exports, __webpack_require__) {
1480
1481 'use strict';
1482
1483 Object.defineProperty(exports, "__esModule", {
1484 value: true
1485 });
1486
1487 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; };
1488
1489 var _classnames = __webpack_require__(3);
1490
1491 var _classnames2 = _interopRequireDefault(_classnames);
1492
1493 var _style = __webpack_require__(17);
1494
1495 var _style2 = _interopRequireDefault(_style);
1496
1497 var _react = __webpack_require__(4);
1498
1499 var _react2 = _interopRequireDefault(_react);
1500
1501 var _propTypes = __webpack_require__(5);
1502
1503 var _propTypes2 = _interopRequireDefault(_propTypes);
1504
1505 var _Transition = __webpack_require__(11);
1506
1507 var _Transition2 = _interopRequireDefault(_Transition);
1508
1509 var _capitalize = __webpack_require__(25);
1510
1511 var _capitalize2 = _interopRequireDefault(_capitalize);
1512
1513 var _tinperBeeCore = __webpack_require__(26);
1514
1515 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1516
1517 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; }
1518
1519 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; }
1520
1521 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1522
1523 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; }
1524
1525 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); }
1526
1527 var MARGINS = {
1528 height: ['marginTop', 'marginBottom'],
1529 width: ['marginLeft', 'marginRight']
1530 };
1531
1532 // reading a dimension prop will cause the browser to recalculate,
1533 // which will let our animations work
1534 function triggerBrowserReflow(node) {
1535 node.offsetHeight; // eslint-disable-line no-unused-expressions
1536 }
1537
1538 function getDimensionValue(dimension, elem) {
1539 var value = elem['offset' + (0, _capitalize2["default"])(dimension)];
1540 var margins = MARGINS[dimension];
1541
1542 return value + parseInt((0, _style2["default"])(elem, margins[0]), 10) + parseInt((0, _style2["default"])(elem, margins[1]), 10);
1543 }
1544
1545 var propTypes = {
1546 /**
1547 * Show the component; triggers the expand or collapse animation
1548 */
1549 "in": _propTypes2["default"].bool,
1550
1551 /**
1552 * Unmount the component (remove it from the DOM) when it is collapsed
1553 */
1554 unmountOnExit: _propTypes2["default"].bool,
1555
1556 /**
1557 * Run the expand animation when the component mounts, if it is initially
1558 * shown
1559 */
1560 transitionAppear: _propTypes2["default"].bool,
1561
1562 /**
1563 * Duration of the collapse animation in milliseconds, to ensure that
1564 * finishing callbacks are fired even if the original browser transition end
1565 * events are canceled
1566 */
1567 timeout: _propTypes2["default"].number,
1568
1569 /**
1570 * Callback fired before the component expands
1571 */
1572 onEnter: _propTypes2["default"].func,
1573 /**
1574 * Callback fired after the component starts to expand
1575 */
1576 onEntering: _propTypes2["default"].func,
1577 /**
1578 * Callback fired after the component has expanded
1579 */
1580 onEntered: _propTypes2["default"].func,
1581 /**
1582 * Callback fired before the component collapses
1583 */
1584 onExit: _propTypes2["default"].func,
1585 /**
1586 * Callback fired after the component starts to collapse
1587 */
1588 onExiting: _propTypes2["default"].func,
1589 /**
1590 * Callback fired after the component has collapsed
1591 */
1592 onExited: _propTypes2["default"].func,
1593
1594 /**
1595 * The dimension used when collapsing, or a function that returns the
1596 * dimension
1597 *
1598 * _Note: Bootstrap only partially supports 'width'!
1599 * You will need to supply your own CSS animation for the `.width` CSS class._
1600 */
1601 dimension: _propTypes2["default"].oneOfType([_propTypes2["default"].oneOf(['height', 'width']), _propTypes2["default"].func]),
1602
1603 /**
1604 * Function that returns the height or width of the animating DOM node
1605 *
1606 * Allows for providing some custom logic for how much the Collapse component
1607 * should animate in its specified dimension. Called with the current
1608 * dimension prop value and the DOM node.
1609 */
1610 getDimensionValue: _propTypes2["default"].func,
1611
1612 /**
1613 * ARIA role of collapsible element
1614 */
1615 role: _propTypes2["default"].string
1616 };
1617
1618 var defaultProps = {
1619 "in": false,
1620 timeout: 300,
1621 unmountOnExit: false,
1622 transitionAppear: false,
1623
1624 dimension: 'height',
1625 getDimensionValue: getDimensionValue
1626 };
1627
1628 var Collapse = function (_React$Component) {
1629 _inherits(Collapse, _React$Component);
1630
1631 function Collapse(props, context) {
1632 _classCallCheck(this, Collapse);
1633
1634 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
1635
1636 _this.handleEnter = _this.handleEnter.bind(_this);
1637 _this.handleEntering = _this.handleEntering.bind(_this);
1638 _this.handleEntered = _this.handleEntered.bind(_this);
1639 _this.handleExit = _this.handleExit.bind(_this);
1640 _this.handleExiting = _this.handleExiting.bind(_this);
1641 return _this;
1642 }
1643
1644 /* -- Expanding -- */
1645
1646
1647 Collapse.prototype.handleEnter = function handleEnter(elem) {
1648 var dimension = this._dimension();
1649 elem.style[dimension] = '0';
1650 };
1651
1652 Collapse.prototype.handleEntering = function handleEntering(elem) {
1653 var dimension = this._dimension();
1654 elem.style[dimension] = this._getScrollDimensionValue(elem, dimension);
1655 };
1656
1657 Collapse.prototype.handleEntered = function handleEntered(elem) {
1658 var dimension = this._dimension();
1659 elem.style[dimension] = null;
1660 };
1661
1662 /* -- Collapsing -- */
1663
1664
1665 Collapse.prototype.handleExit = function handleExit(elem) {
1666 var dimension = this._dimension();
1667 elem.style[dimension] = this.props.getDimensionValue(dimension, elem) + 'px';
1668 triggerBrowserReflow(elem);
1669 };
1670
1671 Collapse.prototype.handleExiting = function handleExiting(elem) {
1672 var dimension = this._dimension();
1673 elem.style[dimension] = '0';
1674 };
1675
1676 Collapse.prototype._dimension = function _dimension() {
1677 return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension;
1678 };
1679
1680 // for testing
1681
1682
1683 Collapse.prototype._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) {
1684 return elem['scroll' + (0, _capitalize2["default"])(dimension)] + 'px';
1685 };
1686
1687 Collapse.prototype.render = function render() {
1688 var _props = this.props,
1689 onEnter = _props.onEnter,
1690 onEntering = _props.onEntering,
1691 onEntered = _props.onEntered,
1692 onExit = _props.onExit,
1693 onExiting = _props.onExiting,
1694 className = _props.className,
1695 props = _objectWithoutProperties(_props, ['onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'className']);
1696
1697 delete props.dimension;
1698 delete props.getDimensionValue;
1699
1700 var handleEnter = (0, _tinperBeeCore.createChainedFunction)(this.handleEnter, onEnter);
1701 var handleEntering = (0, _tinperBeeCore.createChainedFunction)(this.handleEntering, onEntering);
1702 var handleEntered = (0, _tinperBeeCore.createChainedFunction)(this.handleEntered, onEntered);
1703 var handleExit = (0, _tinperBeeCore.createChainedFunction)(this.handleExit, onExit);
1704 var handleExiting = (0, _tinperBeeCore.createChainedFunction)(this.handleExiting, onExiting);
1705
1706 var classes = {
1707 width: this._dimension() === 'width'
1708 };
1709
1710 return _react2["default"].createElement(_Transition2["default"], _extends({}, props, {
1711 'aria-expanded': props.role ? props["in"] : null,
1712 className: (0, _classnames2["default"])(className, classes),
1713 exitedClassName: 'collapse',
1714 exitingClassName: 'collapsing',
1715 enteredClassName: 'collapse in',
1716 enteringClassName: 'collapsing',
1717 onEnter: handleEnter,
1718 onEntering: handleEntering,
1719 onEntered: handleEntered,
1720 onExit: handleExit,
1721 onExiting: handleExiting
1722 }));
1723 };
1724
1725 return Collapse;
1726 }(_react2["default"].Component);
1727
1728 Collapse.propTypes = propTypes;
1729 Collapse.defaultProps = defaultProps;
1730
1731 exports["default"] = Collapse;
1732 module.exports = exports['default'];
1733
1734/***/ }),
1735/* 17 */
1736/***/ (function(module, exports, __webpack_require__) {
1737
1738 'use strict';
1739
1740 Object.defineProperty(exports, "__esModule", {
1741 value: true
1742 });
1743 exports.default = style;
1744
1745 var _camelizeStyle = __webpack_require__(18);
1746
1747 var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);
1748
1749 var _hyphenateStyle = __webpack_require__(20);
1750
1751 var _hyphenateStyle2 = _interopRequireDefault(_hyphenateStyle);
1752
1753 var _getComputedStyle2 = __webpack_require__(22);
1754
1755 var _getComputedStyle3 = _interopRequireDefault(_getComputedStyle2);
1756
1757 var _removeStyle = __webpack_require__(23);
1758
1759 var _removeStyle2 = _interopRequireDefault(_removeStyle);
1760
1761 var _properties = __webpack_require__(13);
1762
1763 var _isTransform = __webpack_require__(24);
1764
1765 var _isTransform2 = _interopRequireDefault(_isTransform);
1766
1767 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1768
1769 function style(node, property, value) {
1770 var css = '';
1771 var transforms = '';
1772 var props = property;
1773
1774 if (typeof property === 'string') {
1775 if (value === undefined) {
1776 return node.style[(0, _camelizeStyle2.default)(property)] || (0, _getComputedStyle3.default)(node).getPropertyValue((0, _hyphenateStyle2.default)(property));
1777 } else {
1778 (props = {})[property] = value;
1779 }
1780 }
1781
1782 Object.keys(props).forEach(function (key) {
1783 var value = props[key];
1784 if (!value && value !== 0) {
1785 (0, _removeStyle2.default)(node, (0, _hyphenateStyle2.default)(key));
1786 } else if ((0, _isTransform2.default)(key)) {
1787 transforms += key + '(' + value + ') ';
1788 } else {
1789 css += (0, _hyphenateStyle2.default)(key) + ': ' + value + ';';
1790 }
1791 });
1792
1793 if (transforms) {
1794 css += _properties.transform + ': ' + transforms + ';';
1795 }
1796
1797 node.style.cssText += ';' + css;
1798 }
1799 module.exports = exports['default'];
1800
1801/***/ }),
1802/* 18 */
1803/***/ (function(module, exports, __webpack_require__) {
1804
1805 'use strict';
1806
1807 Object.defineProperty(exports, "__esModule", {
1808 value: true
1809 });
1810 exports.default = camelizeStyleName;
1811
1812 var _camelize = __webpack_require__(19);
1813
1814 var _camelize2 = _interopRequireDefault(_camelize);
1815
1816 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1817
1818 var msPattern = /^-ms-/; /**
1819 * Copyright 2014-2015, Facebook, Inc.
1820 * All rights reserved.
1821 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
1822 */
1823 function camelizeStyleName(string) {
1824 return (0, _camelize2.default)(string.replace(msPattern, 'ms-'));
1825 }
1826 module.exports = exports['default'];
1827
1828/***/ }),
1829/* 19 */
1830/***/ (function(module, exports) {
1831
1832 "use strict";
1833
1834 Object.defineProperty(exports, "__esModule", {
1835 value: true
1836 });
1837 exports.default = camelize;
1838 var rHyphen = /-(.)/g;
1839
1840 function camelize(string) {
1841 return string.replace(rHyphen, function (_, chr) {
1842 return chr.toUpperCase();
1843 });
1844 }
1845 module.exports = exports["default"];
1846
1847/***/ }),
1848/* 20 */
1849/***/ (function(module, exports, __webpack_require__) {
1850
1851 'use strict';
1852
1853 Object.defineProperty(exports, "__esModule", {
1854 value: true
1855 });
1856 exports.default = hyphenateStyleName;
1857
1858 var _hyphenate = __webpack_require__(21);
1859
1860 var _hyphenate2 = _interopRequireDefault(_hyphenate);
1861
1862 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1863
1864 var msPattern = /^ms-/; /**
1865 * Copyright 2013-2014, Facebook, Inc.
1866 * All rights reserved.
1867 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
1868 */
1869
1870 function hyphenateStyleName(string) {
1871 return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-');
1872 }
1873 module.exports = exports['default'];
1874
1875/***/ }),
1876/* 21 */
1877/***/ (function(module, exports) {
1878
1879 'use strict';
1880
1881 Object.defineProperty(exports, "__esModule", {
1882 value: true
1883 });
1884 exports.default = hyphenate;
1885
1886 var rUpper = /([A-Z])/g;
1887
1888 function hyphenate(string) {
1889 return string.replace(rUpper, '-$1').toLowerCase();
1890 }
1891 module.exports = exports['default'];
1892
1893/***/ }),
1894/* 22 */
1895/***/ (function(module, exports, __webpack_require__) {
1896
1897 'use strict';
1898
1899 Object.defineProperty(exports, "__esModule", {
1900 value: true
1901 });
1902 exports.default = _getComputedStyle;
1903
1904 var _camelizeStyle = __webpack_require__(18);
1905
1906 var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);
1907
1908 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1909
1910 var rposition = /^(top|right|bottom|left)$/;
1911 var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;
1912
1913 function _getComputedStyle(node) {
1914 if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');
1915 var doc = node.ownerDocument;
1916
1917 return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {
1918 //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72
1919 getPropertyValue: function getPropertyValue(prop) {
1920 var style = node.style;
1921
1922 prop = (0, _camelizeStyle2.default)(prop);
1923
1924 if (prop == 'float') prop = 'styleFloat';
1925
1926 var current = node.currentStyle[prop] || null;
1927
1928 if (current == null && style && style[prop]) current = style[prop];
1929
1930 if (rnumnonpx.test(current) && !rposition.test(prop)) {
1931 // Remember the original values
1932 var left = style.left;
1933 var runStyle = node.runtimeStyle;
1934 var rsLeft = runStyle && runStyle.left;
1935
1936 // Put in the new values to get a computed value out
1937 if (rsLeft) runStyle.left = node.currentStyle.left;
1938
1939 style.left = prop === 'fontSize' ? '1em' : current;
1940 current = style.pixelLeft + 'px';
1941
1942 // Revert the changed values
1943 style.left = left;
1944 if (rsLeft) runStyle.left = rsLeft;
1945 }
1946
1947 return current;
1948 }
1949 };
1950 }
1951 module.exports = exports['default'];
1952
1953/***/ }),
1954/* 23 */
1955/***/ (function(module, exports) {
1956
1957 'use strict';
1958
1959 Object.defineProperty(exports, "__esModule", {
1960 value: true
1961 });
1962 exports.default = removeStyle;
1963 function removeStyle(node, key) {
1964 return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
1965 }
1966 module.exports = exports['default'];
1967
1968/***/ }),
1969/* 24 */
1970/***/ (function(module, exports) {
1971
1972 "use strict";
1973
1974 Object.defineProperty(exports, "__esModule", {
1975 value: true
1976 });
1977 exports.default = isTransform;
1978 var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
1979
1980 function isTransform(property) {
1981 return !!(property && supportedTransforms.test(property));
1982 }
1983 module.exports = exports["default"];
1984
1985/***/ }),
1986/* 25 */
1987/***/ (function(module, exports) {
1988
1989 "use strict";
1990
1991 Object.defineProperty(exports, "__esModule", {
1992 value: true
1993 });
1994 exports["default"] = capitalize;
1995 function capitalize(string) {
1996 return "" + string.charAt(0).toUpperCase() + string.slice(1);
1997 }
1998 module.exports = exports["default"];
1999
2000/***/ }),
2001/* 26 */
2002/***/ (function(module, exports, __webpack_require__) {
2003
2004 'use strict';
2005
2006 exports.__esModule = true;
2007 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;
2008
2009 var _all2 = __webpack_require__(27);
2010
2011 var _all3 = _interopRequireDefault(_all2);
2012
2013 var _componentOrElement2 = __webpack_require__(29);
2014
2015 var _componentOrElement3 = _interopRequireDefault(_componentOrElement2);
2016
2017 var _deprecated2 = __webpack_require__(30);
2018
2019 var _deprecated3 = _interopRequireDefault(_deprecated2);
2020
2021 var _elementType2 = __webpack_require__(33);
2022
2023 var _elementType3 = _interopRequireDefault(_elementType2);
2024
2025 var _isRequiredForA11y2 = __webpack_require__(34);
2026
2027 var _isRequiredForA11y3 = _interopRequireDefault(_isRequiredForA11y2);
2028
2029 var _splitComponent2 = __webpack_require__(35);
2030
2031 var _splitComponent3 = _interopRequireDefault(_splitComponent2);
2032
2033 var _createChainedFunction2 = __webpack_require__(71);
2034
2035 var _createChainedFunction3 = _interopRequireDefault(_createChainedFunction2);
2036
2037 var _keyCode = __webpack_require__(72);
2038
2039 var _keyCode2 = _interopRequireDefault(_keyCode);
2040
2041 var _contains2 = __webpack_require__(73);
2042
2043 var _contains3 = _interopRequireDefault(_contains2);
2044
2045 var _addEventListener2 = __webpack_require__(74);
2046
2047 var _addEventListener3 = _interopRequireDefault(_addEventListener2);
2048
2049 var _cssAnimation2 = __webpack_require__(79);
2050
2051 var _cssAnimation3 = _interopRequireDefault(_cssAnimation2);
2052
2053 var _toArray2 = __webpack_require__(83);
2054
2055 var _toArray3 = _interopRequireDefault(_toArray2);
2056
2057 var _Align2 = __webpack_require__(84);
2058
2059 var _Align3 = _interopRequireDefault(_Align2);
2060
2061 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2062
2063 exports.all = _all3.default;
2064 exports.componentOrElement = _componentOrElement3.default;
2065 exports.deprecated = _deprecated3.default;
2066 exports.elementType = _elementType3.default;
2067 exports.isRequiredForA11y = _isRequiredForA11y3.default;
2068 exports.splitComponent = _splitComponent3.default;
2069 exports.createChainedFunction = _createChainedFunction3.default;
2070 exports.KeyCode = _keyCode2.default;
2071 exports.contains = _contains3.default;
2072 exports.addEventListener = _addEventListener3.default;
2073 exports.cssAnimation = _cssAnimation3.default;
2074 exports.toArray = _toArray3.default;
2075 //export getContainerRenderMixin from './getContainerRenderMixin';
2076
2077 exports.Align = _Align3.default;
2078
2079/***/ }),
2080/* 27 */
2081/***/ (function(module, exports, __webpack_require__) {
2082
2083 'use strict';
2084
2085 exports.__esModule = true;
2086 exports.default = all;
2087
2088 var _createChainableTypeChecker = __webpack_require__(28);
2089
2090 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2091
2092 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2093
2094 function all() {
2095 for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {
2096 validators[_key] = arguments[_key];
2097 }
2098
2099 function allPropTypes() {
2100 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2101 args[_key2] = arguments[_key2];
2102 }
2103
2104 var error = null;
2105
2106 validators.forEach(function (validator) {
2107 if (error != null) {
2108 return;
2109 }
2110
2111 var result = validator.apply(undefined, args);
2112 if (result != null) {
2113 error = result;
2114 }
2115 });
2116
2117 return error;
2118 }
2119
2120 return (0, _createChainableTypeChecker2.default)(allPropTypes);
2121 }
2122
2123/***/ }),
2124/* 28 */
2125/***/ (function(module, exports) {
2126
2127 'use strict';
2128
2129 exports.__esModule = true;
2130 exports.default = createChainableTypeChecker;
2131 /**
2132 * Copyright 2013-present, Facebook, Inc.
2133 * All rights reserved.
2134 *
2135 * This source code is licensed under the BSD-style license found in the
2136 * LICENSE file in the root directory of this source tree. An additional grant
2137 * of patent rights can be found in the PATENTS file in the same directory.
2138 */
2139
2140 // Mostly taken from ReactPropTypes.
2141
2142 function createChainableTypeChecker(validate) {
2143 function checkType(isRequired, props, propName, componentName, location, propFullName) {
2144 var componentNameSafe = componentName || '<<anonymous>>';
2145 var propFullNameSafe = propFullName || propName;
2146
2147 if (props[propName] == null) {
2148 if (isRequired) {
2149 return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));
2150 }
2151
2152 return null;
2153 }
2154
2155 for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {
2156 args[_key - 6] = arguments[_key];
2157 }
2158
2159 return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));
2160 }
2161
2162 var chainedCheckType = checkType.bind(null, false);
2163 chainedCheckType.isRequired = checkType.bind(null, true);
2164
2165 return chainedCheckType;
2166 }
2167
2168/***/ }),
2169/* 29 */
2170/***/ (function(module, exports, __webpack_require__) {
2171
2172 'use strict';
2173
2174 exports.__esModule = true;
2175
2176 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; };
2177
2178 var _react = __webpack_require__(4);
2179
2180 var _react2 = _interopRequireDefault(_react);
2181
2182 var _createChainableTypeChecker = __webpack_require__(28);
2183
2184 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2185
2186 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2187
2188 function validate(props, propName, componentName, location, propFullName) {
2189 var propValue = props[propName];
2190 var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
2191
2192 if (_react2.default.isValidElement(propValue)) {
2193 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.');
2194 }
2195
2196 if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {
2197 return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');
2198 }
2199
2200 return null;
2201 }
2202
2203 exports.default = (0, _createChainableTypeChecker2.default)(validate);
2204
2205/***/ }),
2206/* 30 */
2207/***/ (function(module, exports, __webpack_require__) {
2208
2209 'use strict';
2210
2211 exports.__esModule = true;
2212 exports.default = deprecated;
2213
2214 var _warning = __webpack_require__(31);
2215
2216 var _warning2 = _interopRequireDefault(_warning);
2217
2218 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2219
2220 var warned = {};
2221
2222 function deprecated(validator, reason) {
2223 return function validate(props, propName, componentName, location, propFullName) {
2224 var componentNameSafe = componentName || '<<anonymous>>';
2225 var propFullNameSafe = propFullName || propName;
2226
2227 if (props[propName] != null) {
2228 var messageKey = componentName + '.' + propName;
2229
2230 (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));
2231
2232 warned[messageKey] = true;
2233 }
2234
2235 for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
2236 args[_key - 5] = arguments[_key];
2237 }
2238
2239 return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
2240 };
2241 }
2242
2243 /* eslint-disable no-underscore-dangle */
2244 function _resetWarned() {
2245 warned = {};
2246 }
2247
2248 deprecated._resetWarned = _resetWarned;
2249 /* eslint-enable no-underscore-dangle */
2250
2251/***/ }),
2252/* 31 */
2253/***/ (function(module, exports, __webpack_require__) {
2254
2255 /* WEBPACK VAR INJECTION */(function(process) {/**
2256 * Copyright 2014-2015, Facebook, Inc.
2257 * All rights reserved.
2258 *
2259 * This source code is licensed under the BSD-style license found in the
2260 * LICENSE file in the root directory of this source tree. An additional grant
2261 * of patent rights can be found in the PATENTS file in the same directory.
2262 */
2263
2264 'use strict';
2265
2266 /**
2267 * Similar to invariant but only logs a warning if the condition is not met.
2268 * This can be used to log issues in development environments in critical
2269 * paths. Removing the logging code for production environments will keep the
2270 * same logic and follow the same code paths.
2271 */
2272
2273 var warning = function() {};
2274
2275 if (process.env.NODE_ENV !== 'production') {
2276 warning = function(condition, format, args) {
2277 var len = arguments.length;
2278 args = new Array(len > 2 ? len - 2 : 0);
2279 for (var key = 2; key < len; key++) {
2280 args[key - 2] = arguments[key];
2281 }
2282 if (format === undefined) {
2283 throw new Error(
2284 '`warning(condition, format, ...args)` requires a warning ' +
2285 'message argument'
2286 );
2287 }
2288
2289 if (format.length < 10 || (/^[s\W]*$/).test(format)) {
2290 throw new Error(
2291 'The warning format should be able to uniquely identify this ' +
2292 'warning. Please, use a more descriptive format than: ' + format
2293 );
2294 }
2295
2296 if (!condition) {
2297 var argIndex = 0;
2298 var message = 'Warning: ' +
2299 format.replace(/%s/g, function() {
2300 return args[argIndex++];
2301 });
2302 if (typeof console !== 'undefined') {
2303 console.error(message);
2304 }
2305 try {
2306 // This error was thrown as a convenience so that you can use this stack
2307 // to find the callsite that caused this warning to fire.
2308 throw new Error(message);
2309 } catch(x) {}
2310 }
2311 };
2312 }
2313
2314 module.exports = warning;
2315
2316 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
2317
2318/***/ }),
2319/* 32 */
2320/***/ (function(module, exports) {
2321
2322 // shim for using process in browser
2323 var process = module.exports = {};
2324
2325 // cached from whatever global is present so that test runners that stub it
2326 // don't break things. But we need to wrap it in a try catch in case it is
2327 // wrapped in strict mode code which doesn't define any globals. It's inside a
2328 // function because try/catches deoptimize in certain engines.
2329
2330 var cachedSetTimeout;
2331 var cachedClearTimeout;
2332
2333 function defaultSetTimout() {
2334 throw new Error('setTimeout has not been defined');
2335 }
2336 function defaultClearTimeout () {
2337 throw new Error('clearTimeout has not been defined');
2338 }
2339 (function () {
2340 try {
2341 if (typeof setTimeout === 'function') {
2342 cachedSetTimeout = setTimeout;
2343 } else {
2344 cachedSetTimeout = defaultSetTimout;
2345 }
2346 } catch (e) {
2347 cachedSetTimeout = defaultSetTimout;
2348 }
2349 try {
2350 if (typeof clearTimeout === 'function') {
2351 cachedClearTimeout = clearTimeout;
2352 } else {
2353 cachedClearTimeout = defaultClearTimeout;
2354 }
2355 } catch (e) {
2356 cachedClearTimeout = defaultClearTimeout;
2357 }
2358 } ())
2359 function runTimeout(fun) {
2360 if (cachedSetTimeout === setTimeout) {
2361 //normal enviroments in sane situations
2362 return setTimeout(fun, 0);
2363 }
2364 // if setTimeout wasn't available but was latter defined
2365 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
2366 cachedSetTimeout = setTimeout;
2367 return setTimeout(fun, 0);
2368 }
2369 try {
2370 // when when somebody has screwed with setTimeout but no I.E. maddness
2371 return cachedSetTimeout(fun, 0);
2372 } catch(e){
2373 try {
2374 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
2375 return cachedSetTimeout.call(null, fun, 0);
2376 } catch(e){
2377 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
2378 return cachedSetTimeout.call(this, fun, 0);
2379 }
2380 }
2381
2382
2383 }
2384 function runClearTimeout(marker) {
2385 if (cachedClearTimeout === clearTimeout) {
2386 //normal enviroments in sane situations
2387 return clearTimeout(marker);
2388 }
2389 // if clearTimeout wasn't available but was latter defined
2390 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
2391 cachedClearTimeout = clearTimeout;
2392 return clearTimeout(marker);
2393 }
2394 try {
2395 // when when somebody has screwed with setTimeout but no I.E. maddness
2396 return cachedClearTimeout(marker);
2397 } catch (e){
2398 try {
2399 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
2400 return cachedClearTimeout.call(null, marker);
2401 } catch (e){
2402 // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
2403 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
2404 return cachedClearTimeout.call(this, marker);
2405 }
2406 }
2407
2408
2409
2410 }
2411 var queue = [];
2412 var draining = false;
2413 var currentQueue;
2414 var queueIndex = -1;
2415
2416 function cleanUpNextTick() {
2417 if (!draining || !currentQueue) {
2418 return;
2419 }
2420 draining = false;
2421 if (currentQueue.length) {
2422 queue = currentQueue.concat(queue);
2423 } else {
2424 queueIndex = -1;
2425 }
2426 if (queue.length) {
2427 drainQueue();
2428 }
2429 }
2430
2431 function drainQueue() {
2432 if (draining) {
2433 return;
2434 }
2435 var timeout = runTimeout(cleanUpNextTick);
2436 draining = true;
2437
2438 var len = queue.length;
2439 while(len) {
2440 currentQueue = queue;
2441 queue = [];
2442 while (++queueIndex < len) {
2443 if (currentQueue) {
2444 currentQueue[queueIndex].run();
2445 }
2446 }
2447 queueIndex = -1;
2448 len = queue.length;
2449 }
2450 currentQueue = null;
2451 draining = false;
2452 runClearTimeout(timeout);
2453 }
2454
2455 process.nextTick = function (fun) {
2456 var args = new Array(arguments.length - 1);
2457 if (arguments.length > 1) {
2458 for (var i = 1; i < arguments.length; i++) {
2459 args[i - 1] = arguments[i];
2460 }
2461 }
2462 queue.push(new Item(fun, args));
2463 if (queue.length === 1 && !draining) {
2464 runTimeout(drainQueue);
2465 }
2466 };
2467
2468 // v8 likes predictible objects
2469 function Item(fun, array) {
2470 this.fun = fun;
2471 this.array = array;
2472 }
2473 Item.prototype.run = function () {
2474 this.fun.apply(null, this.array);
2475 };
2476 process.title = 'browser';
2477 process.browser = true;
2478 process.env = {};
2479 process.argv = [];
2480 process.version = ''; // empty string to avoid regexp issues
2481 process.versions = {};
2482
2483 function noop() {}
2484
2485 process.on = noop;
2486 process.addListener = noop;
2487 process.once = noop;
2488 process.off = noop;
2489 process.removeListener = noop;
2490 process.removeAllListeners = noop;
2491 process.emit = noop;
2492 process.prependListener = noop;
2493 process.prependOnceListener = noop;
2494
2495 process.listeners = function (name) { return [] }
2496
2497 process.binding = function (name) {
2498 throw new Error('process.binding is not supported');
2499 };
2500
2501 process.cwd = function () { return '/' };
2502 process.chdir = function (dir) {
2503 throw new Error('process.chdir is not supported');
2504 };
2505 process.umask = function() { return 0; };
2506
2507
2508/***/ }),
2509/* 33 */
2510/***/ (function(module, exports, __webpack_require__) {
2511
2512 'use strict';
2513
2514 exports.__esModule = true;
2515
2516 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; };
2517
2518 var _react = __webpack_require__(4);
2519
2520 var _react2 = _interopRequireDefault(_react);
2521
2522 var _createChainableTypeChecker = __webpack_require__(28);
2523
2524 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2525
2526 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2527
2528 function elementType(props, propName, componentName, location, propFullName) {
2529 var propValue = props[propName];
2530 var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
2531
2532 if (_react2.default.isValidElement(propValue)) {
2533 return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
2534 }
2535
2536 if (propType !== 'function' && propType !== 'string') {
2537 return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
2538 }
2539
2540 return null;
2541 }
2542
2543 exports.default = (0, _createChainableTypeChecker2.default)(elementType);
2544
2545/***/ }),
2546/* 34 */
2547/***/ (function(module, exports) {
2548
2549 'use strict';
2550
2551 exports.__esModule = true;
2552 exports.default = isRequiredForA11y;
2553 function isRequiredForA11y(validator) {
2554 return function validate(props, propName, componentName, location, propFullName) {
2555 var componentNameSafe = componentName || '<<anonymous>>';
2556 var propFullNameSafe = propFullName || propName;
2557
2558 if (props[propName] == null) {
2559 return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.');
2560 }
2561
2562 for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
2563 args[_key - 5] = arguments[_key];
2564 }
2565
2566 return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
2567 };
2568 }
2569
2570/***/ }),
2571/* 35 */
2572/***/ (function(module, exports, __webpack_require__) {
2573
2574 "use strict";
2575
2576 exports.__esModule = true;
2577
2578 var _entries = __webpack_require__(36);
2579
2580 var _entries2 = _interopRequireDefault(_entries);
2581
2582 exports.default = splitComponentProps;
2583
2584 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2585
2586 /**
2587 * 分割要传入父元素和子元素的props
2588 * @param {[object]} props 传入的属性
2589 * @param {[reactElement]} Component 组件
2590 * @return {[array]} 返回数组,第一个元素为父元素props对象,第二个子元素props对象
2591 */
2592 function splitComponentProps(props, Component) {
2593 var componentPropTypes = Component.propTypes;
2594
2595 var parentProps = {};
2596 var childProps = {};
2597
2598 (0, _entries2.default)(props).forEach(function (_ref) {
2599 var propName = _ref[0],
2600 propValue = _ref[1];
2601
2602 if (componentPropTypes[propName]) {
2603 parentProps[propName] = propValue;
2604 } else {
2605 childProps[propName] = propValue;
2606 }
2607 });
2608
2609 return [parentProps, childProps];
2610 }
2611
2612/***/ }),
2613/* 36 */
2614/***/ (function(module, exports, __webpack_require__) {
2615
2616 module.exports = { "default": __webpack_require__(37), __esModule: true };
2617
2618/***/ }),
2619/* 37 */
2620/***/ (function(module, exports, __webpack_require__) {
2621
2622 __webpack_require__(38);
2623 module.exports = __webpack_require__(41).Object.entries;
2624
2625
2626/***/ }),
2627/* 38 */
2628/***/ (function(module, exports, __webpack_require__) {
2629
2630 // https://github.com/tc39/proposal-object-values-entries
2631 var $export = __webpack_require__(39);
2632 var $entries = __webpack_require__(54)(true);
2633
2634 $export($export.S, 'Object', {
2635 entries: function entries(it) {
2636 return $entries(it);
2637 }
2638 });
2639
2640
2641/***/ }),
2642/* 39 */
2643/***/ (function(module, exports, __webpack_require__) {
2644
2645 var global = __webpack_require__(40);
2646 var core = __webpack_require__(41);
2647 var ctx = __webpack_require__(42);
2648 var hide = __webpack_require__(44);
2649 var PROTOTYPE = 'prototype';
2650
2651 var $export = function (type, name, source) {
2652 var IS_FORCED = type & $export.F;
2653 var IS_GLOBAL = type & $export.G;
2654 var IS_STATIC = type & $export.S;
2655 var IS_PROTO = type & $export.P;
2656 var IS_BIND = type & $export.B;
2657 var IS_WRAP = type & $export.W;
2658 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
2659 var expProto = exports[PROTOTYPE];
2660 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
2661 var key, own, out;
2662 if (IS_GLOBAL) source = name;
2663 for (key in source) {
2664 // contains in native
2665 own = !IS_FORCED && target && target[key] !== undefined;
2666 if (own && key in exports) continue;
2667 // export native or passed
2668 out = own ? target[key] : source[key];
2669 // prevent global pollution for namespaces
2670 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
2671 // bind timers to global for call from export context
2672 : IS_BIND && own ? ctx(out, global)
2673 // wrap global constructors for prevent change them in library
2674 : IS_WRAP && target[key] == out ? (function (C) {
2675 var F = function (a, b, c) {
2676 if (this instanceof C) {
2677 switch (arguments.length) {
2678 case 0: return new C();
2679 case 1: return new C(a);
2680 case 2: return new C(a, b);
2681 } return new C(a, b, c);
2682 } return C.apply(this, arguments);
2683 };
2684 F[PROTOTYPE] = C[PROTOTYPE];
2685 return F;
2686 // make static versions for prototype methods
2687 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
2688 // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
2689 if (IS_PROTO) {
2690 (exports.virtual || (exports.virtual = {}))[key] = out;
2691 // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
2692 if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
2693 }
2694 }
2695 };
2696 // type bitmap
2697 $export.F = 1; // forced
2698 $export.G = 2; // global
2699 $export.S = 4; // static
2700 $export.P = 8; // proto
2701 $export.B = 16; // bind
2702 $export.W = 32; // wrap
2703 $export.U = 64; // safe
2704 $export.R = 128; // real proto method for `library`
2705 module.exports = $export;
2706
2707
2708/***/ }),
2709/* 40 */
2710/***/ (function(module, exports) {
2711
2712 // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
2713 var global = module.exports = typeof window != 'undefined' && window.Math == Math
2714 ? window : typeof self != 'undefined' && self.Math == Math ? self
2715 // eslint-disable-next-line no-new-func
2716 : Function('return this')();
2717 if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
2718
2719
2720/***/ }),
2721/* 41 */
2722/***/ (function(module, exports) {
2723
2724 var core = module.exports = { version: '2.5.1' };
2725 if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
2726
2727
2728/***/ }),
2729/* 42 */
2730/***/ (function(module, exports, __webpack_require__) {
2731
2732 // optional / simple context binding
2733 var aFunction = __webpack_require__(43);
2734 module.exports = function (fn, that, length) {
2735 aFunction(fn);
2736 if (that === undefined) return fn;
2737 switch (length) {
2738 case 1: return function (a) {
2739 return fn.call(that, a);
2740 };
2741 case 2: return function (a, b) {
2742 return fn.call(that, a, b);
2743 };
2744 case 3: return function (a, b, c) {
2745 return fn.call(that, a, b, c);
2746 };
2747 }
2748 return function (/* ...args */) {
2749 return fn.apply(that, arguments);
2750 };
2751 };
2752
2753
2754/***/ }),
2755/* 43 */
2756/***/ (function(module, exports) {
2757
2758 module.exports = function (it) {
2759 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
2760 return it;
2761 };
2762
2763
2764/***/ }),
2765/* 44 */
2766/***/ (function(module, exports, __webpack_require__) {
2767
2768 var dP = __webpack_require__(45);
2769 var createDesc = __webpack_require__(53);
2770 module.exports = __webpack_require__(49) ? function (object, key, value) {
2771 return dP.f(object, key, createDesc(1, value));
2772 } : function (object, key, value) {
2773 object[key] = value;
2774 return object;
2775 };
2776
2777
2778/***/ }),
2779/* 45 */
2780/***/ (function(module, exports, __webpack_require__) {
2781
2782 var anObject = __webpack_require__(46);
2783 var IE8_DOM_DEFINE = __webpack_require__(48);
2784 var toPrimitive = __webpack_require__(52);
2785 var dP = Object.defineProperty;
2786
2787 exports.f = __webpack_require__(49) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
2788 anObject(O);
2789 P = toPrimitive(P, true);
2790 anObject(Attributes);
2791 if (IE8_DOM_DEFINE) try {
2792 return dP(O, P, Attributes);
2793 } catch (e) { /* empty */ }
2794 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
2795 if ('value' in Attributes) O[P] = Attributes.value;
2796 return O;
2797 };
2798
2799
2800/***/ }),
2801/* 46 */
2802/***/ (function(module, exports, __webpack_require__) {
2803
2804 var isObject = __webpack_require__(47);
2805 module.exports = function (it) {
2806 if (!isObject(it)) throw TypeError(it + ' is not an object!');
2807 return it;
2808 };
2809
2810
2811/***/ }),
2812/* 47 */
2813/***/ (function(module, exports) {
2814
2815 module.exports = function (it) {
2816 return typeof it === 'object' ? it !== null : typeof it === 'function';
2817 };
2818
2819
2820/***/ }),
2821/* 48 */
2822/***/ (function(module, exports, __webpack_require__) {
2823
2824 module.exports = !__webpack_require__(49) && !__webpack_require__(50)(function () {
2825 return Object.defineProperty(__webpack_require__(51)('div'), 'a', { get: function () { return 7; } }).a != 7;
2826 });
2827
2828
2829/***/ }),
2830/* 49 */
2831/***/ (function(module, exports, __webpack_require__) {
2832
2833 // Thank's IE8 for his funny defineProperty
2834 module.exports = !__webpack_require__(50)(function () {
2835 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
2836 });
2837
2838
2839/***/ }),
2840/* 50 */
2841/***/ (function(module, exports) {
2842
2843 module.exports = function (exec) {
2844 try {
2845 return !!exec();
2846 } catch (e) {
2847 return true;
2848 }
2849 };
2850
2851
2852/***/ }),
2853/* 51 */
2854/***/ (function(module, exports, __webpack_require__) {
2855
2856 var isObject = __webpack_require__(47);
2857 var document = __webpack_require__(40).document;
2858 // typeof document.createElement is 'object' in old IE
2859 var is = isObject(document) && isObject(document.createElement);
2860 module.exports = function (it) {
2861 return is ? document.createElement(it) : {};
2862 };
2863
2864
2865/***/ }),
2866/* 52 */
2867/***/ (function(module, exports, __webpack_require__) {
2868
2869 // 7.1.1 ToPrimitive(input [, PreferredType])
2870 var isObject = __webpack_require__(47);
2871 // instead of the ES6 spec version, we didn't implement @@toPrimitive case
2872 // and the second argument - flag - preferred type is a string
2873 module.exports = function (it, S) {
2874 if (!isObject(it)) return it;
2875 var fn, val;
2876 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
2877 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
2878 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
2879 throw TypeError("Can't convert object to primitive value");
2880 };
2881
2882
2883/***/ }),
2884/* 53 */
2885/***/ (function(module, exports) {
2886
2887 module.exports = function (bitmap, value) {
2888 return {
2889 enumerable: !(bitmap & 1),
2890 configurable: !(bitmap & 2),
2891 writable: !(bitmap & 4),
2892 value: value
2893 };
2894 };
2895
2896
2897/***/ }),
2898/* 54 */
2899/***/ (function(module, exports, __webpack_require__) {
2900
2901 var getKeys = __webpack_require__(55);
2902 var toIObject = __webpack_require__(58);
2903 var isEnum = __webpack_require__(70).f;
2904 module.exports = function (isEntries) {
2905 return function (it) {
2906 var O = toIObject(it);
2907 var keys = getKeys(O);
2908 var length = keys.length;
2909 var i = 0;
2910 var result = [];
2911 var key;
2912 while (length > i) if (isEnum.call(O, key = keys[i++])) {
2913 result.push(isEntries ? [key, O[key]] : O[key]);
2914 } return result;
2915 };
2916 };
2917
2918
2919/***/ }),
2920/* 55 */
2921/***/ (function(module, exports, __webpack_require__) {
2922
2923 // 19.1.2.14 / 15.2.3.14 Object.keys(O)
2924 var $keys = __webpack_require__(56);
2925 var enumBugKeys = __webpack_require__(69);
2926
2927 module.exports = Object.keys || function keys(O) {
2928 return $keys(O, enumBugKeys);
2929 };
2930
2931
2932/***/ }),
2933/* 56 */
2934/***/ (function(module, exports, __webpack_require__) {
2935
2936 var has = __webpack_require__(57);
2937 var toIObject = __webpack_require__(58);
2938 var arrayIndexOf = __webpack_require__(62)(false);
2939 var IE_PROTO = __webpack_require__(66)('IE_PROTO');
2940
2941 module.exports = function (object, names) {
2942 var O = toIObject(object);
2943 var i = 0;
2944 var result = [];
2945 var key;
2946 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
2947 // Don't enum bug & hidden keys
2948 while (names.length > i) if (has(O, key = names[i++])) {
2949 ~arrayIndexOf(result, key) || result.push(key);
2950 }
2951 return result;
2952 };
2953
2954
2955/***/ }),
2956/* 57 */
2957/***/ (function(module, exports) {
2958
2959 var hasOwnProperty = {}.hasOwnProperty;
2960 module.exports = function (it, key) {
2961 return hasOwnProperty.call(it, key);
2962 };
2963
2964
2965/***/ }),
2966/* 58 */
2967/***/ (function(module, exports, __webpack_require__) {
2968
2969 // to indexed object, toObject with fallback for non-array-like ES3 strings
2970 var IObject = __webpack_require__(59);
2971 var defined = __webpack_require__(61);
2972 module.exports = function (it) {
2973 return IObject(defined(it));
2974 };
2975
2976
2977/***/ }),
2978/* 59 */
2979/***/ (function(module, exports, __webpack_require__) {
2980
2981 // fallback for non-array-like ES3 and non-enumerable old V8 strings
2982 var cof = __webpack_require__(60);
2983 // eslint-disable-next-line no-prototype-builtins
2984 module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
2985 return cof(it) == 'String' ? it.split('') : Object(it);
2986 };
2987
2988
2989/***/ }),
2990/* 60 */
2991/***/ (function(module, exports) {
2992
2993 var toString = {}.toString;
2994
2995 module.exports = function (it) {
2996 return toString.call(it).slice(8, -1);
2997 };
2998
2999
3000/***/ }),
3001/* 61 */
3002/***/ (function(module, exports) {
3003
3004 // 7.2.1 RequireObjectCoercible(argument)
3005 module.exports = function (it) {
3006 if (it == undefined) throw TypeError("Can't call method on " + it);
3007 return it;
3008 };
3009
3010
3011/***/ }),
3012/* 62 */
3013/***/ (function(module, exports, __webpack_require__) {
3014
3015 // false -> Array#indexOf
3016 // true -> Array#includes
3017 var toIObject = __webpack_require__(58);
3018 var toLength = __webpack_require__(63);
3019 var toAbsoluteIndex = __webpack_require__(65);
3020 module.exports = function (IS_INCLUDES) {
3021 return function ($this, el, fromIndex) {
3022 var O = toIObject($this);
3023 var length = toLength(O.length);
3024 var index = toAbsoluteIndex(fromIndex, length);
3025 var value;
3026 // Array#includes uses SameValueZero equality algorithm
3027 // eslint-disable-next-line no-self-compare
3028 if (IS_INCLUDES && el != el) while (length > index) {
3029 value = O[index++];
3030 // eslint-disable-next-line no-self-compare
3031 if (value != value) return true;
3032 // Array#indexOf ignores holes, Array#includes - not
3033 } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
3034 if (O[index] === el) return IS_INCLUDES || index || 0;
3035 } return !IS_INCLUDES && -1;
3036 };
3037 };
3038
3039
3040/***/ }),
3041/* 63 */
3042/***/ (function(module, exports, __webpack_require__) {
3043
3044 // 7.1.15 ToLength
3045 var toInteger = __webpack_require__(64);
3046 var min = Math.min;
3047 module.exports = function (it) {
3048 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
3049 };
3050
3051
3052/***/ }),
3053/* 64 */
3054/***/ (function(module, exports) {
3055
3056 // 7.1.4 ToInteger
3057 var ceil = Math.ceil;
3058 var floor = Math.floor;
3059 module.exports = function (it) {
3060 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
3061 };
3062
3063
3064/***/ }),
3065/* 65 */
3066/***/ (function(module, exports, __webpack_require__) {
3067
3068 var toInteger = __webpack_require__(64);
3069 var max = Math.max;
3070 var min = Math.min;
3071 module.exports = function (index, length) {
3072 index = toInteger(index);
3073 return index < 0 ? max(index + length, 0) : min(index, length);
3074 };
3075
3076
3077/***/ }),
3078/* 66 */
3079/***/ (function(module, exports, __webpack_require__) {
3080
3081 var shared = __webpack_require__(67)('keys');
3082 var uid = __webpack_require__(68);
3083 module.exports = function (key) {
3084 return shared[key] || (shared[key] = uid(key));
3085 };
3086
3087
3088/***/ }),
3089/* 67 */
3090/***/ (function(module, exports, __webpack_require__) {
3091
3092 var global = __webpack_require__(40);
3093 var SHARED = '__core-js_shared__';
3094 var store = global[SHARED] || (global[SHARED] = {});
3095 module.exports = function (key) {
3096 return store[key] || (store[key] = {});
3097 };
3098
3099
3100/***/ }),
3101/* 68 */
3102/***/ (function(module, exports) {
3103
3104 var id = 0;
3105 var px = Math.random();
3106 module.exports = function (key) {
3107 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
3108 };
3109
3110
3111/***/ }),
3112/* 69 */
3113/***/ (function(module, exports) {
3114
3115 // IE 8- don't enum bug keys
3116 module.exports = (
3117 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
3118 ).split(',');
3119
3120
3121/***/ }),
3122/* 70 */
3123/***/ (function(module, exports) {
3124
3125 exports.f = {}.propertyIsEnumerable;
3126
3127
3128/***/ }),
3129/* 71 */
3130/***/ (function(module, exports) {
3131
3132 'use strict';
3133
3134 exports.__esModule = true;
3135 function createChainedFunction() {
3136 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
3137 funcs[_key] = arguments[_key];
3138 }
3139
3140 return funcs.filter(function (f) {
3141 return f != null;
3142 }).reduce(function (acc, f) {
3143 if (typeof f !== 'function') {
3144 throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
3145 }
3146
3147 if (acc === null) {
3148 return f;
3149 }
3150
3151 return function chainedFunction() {
3152 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
3153 args[_key2] = arguments[_key2];
3154 }
3155
3156 acc.apply(this, args);
3157 f.apply(this, args);
3158 };
3159 }, null);
3160 }
3161 exports.default = createChainedFunction;
3162
3163/***/ }),
3164/* 72 */
3165/***/ (function(module, exports) {
3166
3167 'use strict';
3168
3169 /**
3170 * @ignore
3171 * some key-codes definition and utils from closure-library
3172 * @author yiminghe@gmail.com
3173 */
3174
3175 var KeyCode = {
3176 /**
3177 * MAC_ENTER
3178 */
3179 MAC_ENTER: 3,
3180 /**
3181 * BACKSPACE
3182 */
3183 BACKSPACE: 8,
3184 /**
3185 * TAB
3186 */
3187 TAB: 9,
3188 /**
3189 * NUMLOCK on FF/Safari Mac
3190 */
3191 NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac
3192 /**
3193 * ENTER
3194 */
3195 ENTER: 13,
3196 /**
3197 * SHIFT
3198 */
3199 SHIFT: 16,
3200 /**
3201 * CTRL
3202 */
3203 CTRL: 17,
3204 /**
3205 * ALT
3206 */
3207 ALT: 18,
3208 /**
3209 * PAUSE
3210 */
3211 PAUSE: 19,
3212 /**
3213 * CAPS_LOCK
3214 */
3215 CAPS_LOCK: 20,
3216 /**
3217 * ESC
3218 */
3219 ESC: 27,
3220 /**
3221 * SPACE
3222 */
3223 SPACE: 32,
3224 /**
3225 * PAGE_UP
3226 */
3227 PAGE_UP: 33, // also NUM_NORTH_EAST
3228 /**
3229 * PAGE_DOWN
3230 */
3231 PAGE_DOWN: 34, // also NUM_SOUTH_EAST
3232 /**
3233 * END
3234 */
3235 END: 35, // also NUM_SOUTH_WEST
3236 /**
3237 * HOME
3238 */
3239 HOME: 36, // also NUM_NORTH_WEST
3240 /**
3241 * LEFT
3242 */
3243 LEFT: 37, // also NUM_WEST
3244 /**
3245 * UP
3246 */
3247 UP: 38, // also NUM_NORTH
3248 /**
3249 * RIGHT
3250 */
3251 RIGHT: 39, // also NUM_EAST
3252 /**
3253 * DOWN
3254 */
3255 DOWN: 40, // also NUM_SOUTH
3256 /**
3257 * PRINT_SCREEN
3258 */
3259 PRINT_SCREEN: 44,
3260 /**
3261 * INSERT
3262 */
3263 INSERT: 45, // also NUM_INSERT
3264 /**
3265 * DELETE
3266 */
3267 DELETE: 46, // also NUM_DELETE
3268 /**
3269 * ZERO
3270 */
3271 ZERO: 48,
3272 /**
3273 * ONE
3274 */
3275 ONE: 49,
3276 /**
3277 * TWO
3278 */
3279 TWO: 50,
3280 /**
3281 * THREE
3282 */
3283 THREE: 51,
3284 /**
3285 * FOUR
3286 */
3287 FOUR: 52,
3288 /**
3289 * FIVE
3290 */
3291 FIVE: 53,
3292 /**
3293 * SIX
3294 */
3295 SIX: 54,
3296 /**
3297 * SEVEN
3298 */
3299 SEVEN: 55,
3300 /**
3301 * EIGHT
3302 */
3303 EIGHT: 56,
3304 /**
3305 * NINE
3306 */
3307 NINE: 57,
3308 /**
3309 * QUESTION_MARK
3310 */
3311 QUESTION_MARK: 63, // needs localization
3312 /**
3313 * A
3314 */
3315 A: 65,
3316 /**
3317 * B
3318 */
3319 B: 66,
3320 /**
3321 * C
3322 */
3323 C: 67,
3324 /**
3325 * D
3326 */
3327 D: 68,
3328 /**
3329 * E
3330 */
3331 E: 69,
3332 /**
3333 * F
3334 */
3335 F: 70,
3336 /**
3337 * G
3338 */
3339 G: 71,
3340 /**
3341 * H
3342 */
3343 H: 72,
3344 /**
3345 * I
3346 */
3347 I: 73,
3348 /**
3349 * J
3350 */
3351 J: 74,
3352 /**
3353 * K
3354 */
3355 K: 75,
3356 /**
3357 * L
3358 */
3359 L: 76,
3360 /**
3361 * M
3362 */
3363 M: 77,
3364 /**
3365 * N
3366 */
3367 N: 78,
3368 /**
3369 * O
3370 */
3371 O: 79,
3372 /**
3373 * P
3374 */
3375 P: 80,
3376 /**
3377 * Q
3378 */
3379 Q: 81,
3380 /**
3381 * R
3382 */
3383 R: 82,
3384 /**
3385 * S
3386 */
3387 S: 83,
3388 /**
3389 * T
3390 */
3391 T: 84,
3392 /**
3393 * U
3394 */
3395 U: 85,
3396 /**
3397 * V
3398 */
3399 V: 86,
3400 /**
3401 * W
3402 */
3403 W: 87,
3404 /**
3405 * X
3406 */
3407 X: 88,
3408 /**
3409 * Y
3410 */
3411 Y: 89,
3412 /**
3413 * Z
3414 */
3415 Z: 90,
3416 /**
3417 * META
3418 */
3419 META: 91, // WIN_KEY_LEFT
3420 /**
3421 * WIN_KEY_RIGHT
3422 */
3423 WIN_KEY_RIGHT: 92,
3424 /**
3425 * CONTEXT_MENU
3426 */
3427 CONTEXT_MENU: 93,
3428 /**
3429 * NUM_ZERO
3430 */
3431 NUM_ZERO: 96,
3432 /**
3433 * NUM_ONE
3434 */
3435 NUM_ONE: 97,
3436 /**
3437 * NUM_TWO
3438 */
3439 NUM_TWO: 98,
3440 /**
3441 * NUM_THREE
3442 */
3443 NUM_THREE: 99,
3444 /**
3445 * NUM_FOUR
3446 */
3447 NUM_FOUR: 100,
3448 /**
3449 * NUM_FIVE
3450 */
3451 NUM_FIVE: 101,
3452 /**
3453 * NUM_SIX
3454 */
3455 NUM_SIX: 102,
3456 /**
3457 * NUM_SEVEN
3458 */
3459 NUM_SEVEN: 103,
3460 /**
3461 * NUM_EIGHT
3462 */
3463 NUM_EIGHT: 104,
3464 /**
3465 * NUM_NINE
3466 */
3467 NUM_NINE: 105,
3468 /**
3469 * NUM_MULTIPLY
3470 */
3471 NUM_MULTIPLY: 106,
3472 /**
3473 * NUM_PLUS
3474 */
3475 NUM_PLUS: 107,
3476 /**
3477 * NUM_MINUS
3478 */
3479 NUM_MINUS: 109,
3480 /**
3481 * NUM_PERIOD
3482 */
3483 NUM_PERIOD: 110,
3484 /**
3485 * NUM_DIVISION
3486 */
3487 NUM_DIVISION: 111,
3488 /**
3489 * F1
3490 */
3491 F1: 112,
3492 /**
3493 * F2
3494 */
3495 F2: 113,
3496 /**
3497 * F3
3498 */
3499 F3: 114,
3500 /**
3501 * F4
3502 */
3503 F4: 115,
3504 /**
3505 * F5
3506 */
3507 F5: 116,
3508 /**
3509 * F6
3510 */
3511 F6: 117,
3512 /**
3513 * F7
3514 */
3515 F7: 118,
3516 /**
3517 * F8
3518 */
3519 F8: 119,
3520 /**
3521 * F9
3522 */
3523 F9: 120,
3524 /**
3525 * F10
3526 */
3527 F10: 121,
3528 /**
3529 * F11
3530 */
3531 F11: 122,
3532 /**
3533 * F12
3534 */
3535 F12: 123,
3536 /**
3537 * NUMLOCK
3538 */
3539 NUMLOCK: 144,
3540 /**
3541 * SEMICOLON
3542 */
3543 SEMICOLON: 186, // needs localization
3544 /**
3545 * DASH
3546 */
3547 DASH: 189, // needs localization
3548 /**
3549 * EQUALS
3550 */
3551 EQUALS: 187, // needs localization
3552 /**
3553 * COMMA
3554 */
3555 COMMA: 188, // needs localization
3556 /**
3557 * PERIOD
3558 */
3559 PERIOD: 190, // needs localization
3560 /**
3561 * SLASH
3562 */
3563 SLASH: 191, // needs localization
3564 /**
3565 * APOSTROPHE
3566 */
3567 APOSTROPHE: 192, // needs localization
3568 /**
3569 * SINGLE_QUOTE
3570 */
3571 SINGLE_QUOTE: 222, // needs localization
3572 /**
3573 * OPEN_SQUARE_BRACKET
3574 */
3575 OPEN_SQUARE_BRACKET: 219, // needs localization
3576 /**
3577 * BACKSLASH
3578 */
3579 BACKSLASH: 220, // needs localization
3580 /**
3581 * CLOSE_SQUARE_BRACKET
3582 */
3583 CLOSE_SQUARE_BRACKET: 221, // needs localization
3584 /**
3585 * WIN_KEY
3586 */
3587 WIN_KEY: 224,
3588 /**
3589 * MAC_FF_META
3590 */
3591 MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91
3592 /**
3593 * WIN_IME
3594 */
3595 WIN_IME: 229
3596 };
3597
3598 /*
3599 whether text and modified key is entered at the same time.
3600 */
3601 KeyCode.isTextModifyingKeyEvent = function isTextModifyingKeyEvent(e) {
3602 var keyCode = e.keyCode;
3603 if (e.altKey && !e.ctrlKey || e.metaKey ||
3604 // Function keys don't generate text
3605 keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {
3606 return false;
3607 }
3608
3609 // The following keys are quite harmless, even in combination with
3610 // CTRL, ALT or SHIFT.
3611 switch (keyCode) {
3612 case KeyCode.ALT:
3613 case KeyCode.CAPS_LOCK:
3614 case KeyCode.CONTEXT_MENU:
3615 case KeyCode.CTRL:
3616 case KeyCode.DOWN:
3617 case KeyCode.END:
3618 case KeyCode.ESC:
3619 case KeyCode.HOME:
3620 case KeyCode.INSERT:
3621 case KeyCode.LEFT:
3622 case KeyCode.MAC_FF_META:
3623 case KeyCode.META:
3624 case KeyCode.NUMLOCK:
3625 case KeyCode.NUM_CENTER:
3626 case KeyCode.PAGE_DOWN:
3627 case KeyCode.PAGE_UP:
3628 case KeyCode.PAUSE:
3629 case KeyCode.PRINT_SCREEN:
3630 case KeyCode.RIGHT:
3631 case KeyCode.SHIFT:
3632 case KeyCode.UP:
3633 case KeyCode.WIN_KEY:
3634 case KeyCode.WIN_KEY_RIGHT:
3635 return false;
3636 default:
3637 return true;
3638 }
3639 };
3640
3641 /*
3642 whether character is entered.
3643 */
3644 KeyCode.isCharacterKey = function isCharacterKey(keyCode) {
3645 if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {
3646 return true;
3647 }
3648
3649 if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {
3650 return true;
3651 }
3652
3653 if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {
3654 return true;
3655 }
3656
3657 // Safari sends zero key code for non-latin characters.
3658 if (window.navigation.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {
3659 return true;
3660 }
3661
3662 switch (keyCode) {
3663 case KeyCode.SPACE:
3664 case KeyCode.QUESTION_MARK:
3665 case KeyCode.NUM_PLUS:
3666 case KeyCode.NUM_MINUS:
3667 case KeyCode.NUM_PERIOD:
3668 case KeyCode.NUM_DIVISION:
3669 case KeyCode.SEMICOLON:
3670 case KeyCode.DASH:
3671 case KeyCode.EQUALS:
3672 case KeyCode.COMMA:
3673 case KeyCode.PERIOD:
3674 case KeyCode.SLASH:
3675 case KeyCode.APOSTROPHE:
3676 case KeyCode.SINGLE_QUOTE:
3677 case KeyCode.OPEN_SQUARE_BRACKET:
3678 case KeyCode.BACKSLASH:
3679 case KeyCode.CLOSE_SQUARE_BRACKET:
3680 return true;
3681 default:
3682 return false;
3683 }
3684 };
3685
3686 module.exports = KeyCode;
3687
3688/***/ }),
3689/* 73 */
3690/***/ (function(module, exports) {
3691
3692 "use strict";
3693
3694 exports.__esModule = true;
3695 exports.default = contains;
3696 function contains(root, n) {
3697 var node = n;
3698 while (node) {
3699 if (node === root) {
3700 return true;
3701 }
3702 node = node.parentNode;
3703 }
3704
3705 return false;
3706 }
3707
3708/***/ }),
3709/* 74 */
3710/***/ (function(module, exports, __webpack_require__) {
3711
3712 'use strict';
3713
3714 exports.__esModule = true;
3715 exports.default = addEventListenerWrap;
3716
3717 var _addDomEventListener = __webpack_require__(75);
3718
3719 var _addDomEventListener2 = _interopRequireDefault(_addDomEventListener);
3720
3721 var _reactDom = __webpack_require__(12);
3722
3723 var _reactDom2 = _interopRequireDefault(_reactDom);
3724
3725 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3726
3727 function addEventListenerWrap(target, eventType, cb) {
3728 /* eslint camelcase: 2 */
3729 var callback = _reactDom2.default.unstable_batchedUpdates ? function run(e) {
3730 _reactDom2.default.unstable_batchedUpdates(cb, e);
3731 } : cb;
3732 return (0, _addDomEventListener2.default)(target, eventType, callback);
3733 }
3734
3735/***/ }),
3736/* 75 */
3737/***/ (function(module, exports, __webpack_require__) {
3738
3739 'use strict';
3740
3741 Object.defineProperty(exports, "__esModule", {
3742 value: true
3743 });
3744 exports["default"] = addEventListener;
3745
3746 var _EventObject = __webpack_require__(76);
3747
3748 var _EventObject2 = _interopRequireDefault(_EventObject);
3749
3750 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
3751
3752 function addEventListener(target, eventType, callback) {
3753 function wrapCallback(e) {
3754 var ne = new _EventObject2["default"](e);
3755 callback.call(target, ne);
3756 }
3757
3758 if (target.addEventListener) {
3759 target.addEventListener(eventType, wrapCallback, false);
3760 return {
3761 remove: function remove() {
3762 target.removeEventListener(eventType, wrapCallback, false);
3763 }
3764 };
3765 } else if (target.attachEvent) {
3766 target.attachEvent('on' + eventType, wrapCallback);
3767 return {
3768 remove: function remove() {
3769 target.detachEvent('on' + eventType, wrapCallback);
3770 }
3771 };
3772 }
3773 }
3774 module.exports = exports['default'];
3775
3776/***/ }),
3777/* 76 */
3778/***/ (function(module, exports, __webpack_require__) {
3779
3780 'use strict';
3781
3782 Object.defineProperty(exports, "__esModule", {
3783 value: true
3784 });
3785
3786 var _EventBaseObject = __webpack_require__(77);
3787
3788 var _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);
3789
3790 var _objectAssign = __webpack_require__(78);
3791
3792 var _objectAssign2 = _interopRequireDefault(_objectAssign);
3793
3794 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
3795
3796 /**
3797 * @ignore
3798 * event object for dom
3799 * @author yiminghe@gmail.com
3800 */
3801
3802 var TRUE = true;
3803 var FALSE = false;
3804 var commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];
3805
3806 function isNullOrUndefined(w) {
3807 return w === null || w === undefined;
3808 }
3809
3810 var eventNormalizers = [{
3811 reg: /^key/,
3812 props: ['char', 'charCode', 'key', 'keyCode', 'which'],
3813 fix: function fix(event, nativeEvent) {
3814 if (isNullOrUndefined(event.which)) {
3815 event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;
3816 }
3817
3818 // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)
3819 if (event.metaKey === undefined) {
3820 event.metaKey = event.ctrlKey;
3821 }
3822 }
3823 }, {
3824 reg: /^touch/,
3825 props: ['touches', 'changedTouches', 'targetTouches']
3826 }, {
3827 reg: /^hashchange$/,
3828 props: ['newURL', 'oldURL']
3829 }, {
3830 reg: /^gesturechange$/i,
3831 props: ['rotation', 'scale']
3832 }, {
3833 reg: /^(mousewheel|DOMMouseScroll)$/,
3834 props: [],
3835 fix: function fix(event, nativeEvent) {
3836 var deltaX = void 0;
3837 var deltaY = void 0;
3838 var delta = void 0;
3839 var wheelDelta = nativeEvent.wheelDelta;
3840 var axis = nativeEvent.axis;
3841 var wheelDeltaY = nativeEvent.wheelDeltaY;
3842 var wheelDeltaX = nativeEvent.wheelDeltaX;
3843 var detail = nativeEvent.detail;
3844
3845 // ie/webkit
3846 if (wheelDelta) {
3847 delta = wheelDelta / 120;
3848 }
3849
3850 // gecko
3851 if (detail) {
3852 // press control e.detail == 1 else e.detail == 3
3853 delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);
3854 }
3855
3856 // Gecko
3857 if (axis !== undefined) {
3858 if (axis === event.HORIZONTAL_AXIS) {
3859 deltaY = 0;
3860 deltaX = 0 - delta;
3861 } else if (axis === event.VERTICAL_AXIS) {
3862 deltaX = 0;
3863 deltaY = delta;
3864 }
3865 }
3866
3867 // Webkit
3868 if (wheelDeltaY !== undefined) {
3869 deltaY = wheelDeltaY / 120;
3870 }
3871 if (wheelDeltaX !== undefined) {
3872 deltaX = -1 * wheelDeltaX / 120;
3873 }
3874
3875 // 默认 deltaY (ie)
3876 if (!deltaX && !deltaY) {
3877 deltaY = delta;
3878 }
3879
3880 if (deltaX !== undefined) {
3881 /**
3882 * deltaX of mousewheel event
3883 * @property deltaX
3884 * @member Event.DomEvent.Object
3885 */
3886 event.deltaX = deltaX;
3887 }
3888
3889 if (deltaY !== undefined) {
3890 /**
3891 * deltaY of mousewheel event
3892 * @property deltaY
3893 * @member Event.DomEvent.Object
3894 */
3895 event.deltaY = deltaY;
3896 }
3897
3898 if (delta !== undefined) {
3899 /**
3900 * delta of mousewheel event
3901 * @property delta
3902 * @member Event.DomEvent.Object
3903 */
3904 event.delta = delta;
3905 }
3906 }
3907 }, {
3908 reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,
3909 props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],
3910 fix: function fix(event, nativeEvent) {
3911 var eventDoc = void 0;
3912 var doc = void 0;
3913 var body = void 0;
3914 var target = event.target;
3915 var button = nativeEvent.button;
3916
3917 // Calculate pageX/Y if missing and clientX/Y available
3918 if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {
3919 eventDoc = target.ownerDocument || document;
3920 doc = eventDoc.documentElement;
3921 body = eventDoc.body;
3922 event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
3923 event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
3924 }
3925
3926 // which for click: 1 === left; 2 === middle; 3 === right
3927 // do not use button
3928 if (!event.which && button !== undefined) {
3929 if (button & 1) {
3930 event.which = 1;
3931 } else if (button & 2) {
3932 event.which = 3;
3933 } else if (button & 4) {
3934 event.which = 2;
3935 } else {
3936 event.which = 0;
3937 }
3938 }
3939
3940 // add relatedTarget, if necessary
3941 if (!event.relatedTarget && event.fromElement) {
3942 event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;
3943 }
3944
3945 return event;
3946 }
3947 }];
3948
3949 function retTrue() {
3950 return TRUE;
3951 }
3952
3953 function retFalse() {
3954 return FALSE;
3955 }
3956
3957 function DomEventObject(nativeEvent) {
3958 var type = nativeEvent.type;
3959
3960 var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';
3961
3962 _EventBaseObject2["default"].call(this);
3963
3964 this.nativeEvent = nativeEvent;
3965
3966 // in case dom event has been mark as default prevented by lower dom node
3967 var isDefaultPrevented = retFalse;
3968 if ('defaultPrevented' in nativeEvent) {
3969 isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;
3970 } else if ('getPreventDefault' in nativeEvent) {
3971 // https://bugzilla.mozilla.org/show_bug.cgi?id=691151
3972 isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;
3973 } else if ('returnValue' in nativeEvent) {
3974 isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;
3975 }
3976
3977 this.isDefaultPrevented = isDefaultPrevented;
3978
3979 var fixFns = [];
3980 var fixFn = void 0;
3981 var l = void 0;
3982 var prop = void 0;
3983 var props = commonProps.concat();
3984
3985 eventNormalizers.forEach(function (normalizer) {
3986 if (type.match(normalizer.reg)) {
3987 props = props.concat(normalizer.props);
3988 if (normalizer.fix) {
3989 fixFns.push(normalizer.fix);
3990 }
3991 }
3992 });
3993
3994 l = props.length;
3995
3996 // clone properties of the original event object
3997 while (l) {
3998 prop = props[--l];
3999 this[prop] = nativeEvent[prop];
4000 }
4001
4002 // fix target property, if necessary
4003 if (!this.target && isNative) {
4004 this.target = nativeEvent.srcElement || document; // srcElement might not be defined either
4005 }
4006
4007 // check if target is a text node (safari)
4008 if (this.target && this.target.nodeType === 3) {
4009 this.target = this.target.parentNode;
4010 }
4011
4012 l = fixFns.length;
4013
4014 while (l) {
4015 fixFn = fixFns[--l];
4016 fixFn(this, nativeEvent);
4017 }
4018
4019 this.timeStamp = nativeEvent.timeStamp || Date.now();
4020 }
4021
4022 var EventBaseObjectProto = _EventBaseObject2["default"].prototype;
4023
4024 (0, _objectAssign2["default"])(DomEventObject.prototype, EventBaseObjectProto, {
4025 constructor: DomEventObject,
4026
4027 preventDefault: function preventDefault() {
4028 var e = this.nativeEvent;
4029
4030 // if preventDefault exists run it on the original event
4031 if (e.preventDefault) {
4032 e.preventDefault();
4033 } else {
4034 // otherwise set the returnValue property of the original event to FALSE (IE)
4035 e.returnValue = FALSE;
4036 }
4037
4038 EventBaseObjectProto.preventDefault.call(this);
4039 },
4040 stopPropagation: function stopPropagation() {
4041 var e = this.nativeEvent;
4042
4043 // if stopPropagation exists run it on the original event
4044 if (e.stopPropagation) {
4045 e.stopPropagation();
4046 } else {
4047 // otherwise set the cancelBubble property of the original event to TRUE (IE)
4048 e.cancelBubble = TRUE;
4049 }
4050
4051 EventBaseObjectProto.stopPropagation.call(this);
4052 }
4053 });
4054
4055 exports["default"] = DomEventObject;
4056 module.exports = exports['default'];
4057
4058/***/ }),
4059/* 77 */
4060/***/ (function(module, exports) {
4061
4062 "use strict";
4063
4064 Object.defineProperty(exports, "__esModule", {
4065 value: true
4066 });
4067 /**
4068 * @ignore
4069 * base event object for custom and dom event.
4070 * @author yiminghe@gmail.com
4071 */
4072
4073 function returnFalse() {
4074 return false;
4075 }
4076
4077 function returnTrue() {
4078 return true;
4079 }
4080
4081 function EventBaseObject() {
4082 this.timeStamp = Date.now();
4083 this.target = undefined;
4084 this.currentTarget = undefined;
4085 }
4086
4087 EventBaseObject.prototype = {
4088 isEventObject: 1,
4089
4090 constructor: EventBaseObject,
4091
4092 isDefaultPrevented: returnFalse,
4093
4094 isPropagationStopped: returnFalse,
4095
4096 isImmediatePropagationStopped: returnFalse,
4097
4098 preventDefault: function preventDefault() {
4099 this.isDefaultPrevented = returnTrue;
4100 },
4101 stopPropagation: function stopPropagation() {
4102 this.isPropagationStopped = returnTrue;
4103 },
4104 stopImmediatePropagation: function stopImmediatePropagation() {
4105 this.isImmediatePropagationStopped = returnTrue;
4106 // fixed 1.2
4107 // call stopPropagation implicitly
4108 this.stopPropagation();
4109 },
4110 halt: function halt(immediate) {
4111 if (immediate) {
4112 this.stopImmediatePropagation();
4113 } else {
4114 this.stopPropagation();
4115 }
4116 this.preventDefault();
4117 }
4118 };
4119
4120 exports["default"] = EventBaseObject;
4121 module.exports = exports['default'];
4122
4123/***/ }),
4124/* 78 */
4125/***/ (function(module, exports) {
4126
4127 /*
4128 object-assign
4129 (c) Sindre Sorhus
4130 @license MIT
4131 */
4132
4133 'use strict';
4134 /* eslint-disable no-unused-vars */
4135 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
4136 var hasOwnProperty = Object.prototype.hasOwnProperty;
4137 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
4138
4139 function toObject(val) {
4140 if (val === null || val === undefined) {
4141 throw new TypeError('Object.assign cannot be called with null or undefined');
4142 }
4143
4144 return Object(val);
4145 }
4146
4147 function shouldUseNative() {
4148 try {
4149 if (!Object.assign) {
4150 return false;
4151 }
4152
4153 // Detect buggy property enumeration order in older V8 versions.
4154
4155 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
4156 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
4157 test1[5] = 'de';
4158 if (Object.getOwnPropertyNames(test1)[0] === '5') {
4159 return false;
4160 }
4161
4162 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4163 var test2 = {};
4164 for (var i = 0; i < 10; i++) {
4165 test2['_' + String.fromCharCode(i)] = i;
4166 }
4167 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
4168 return test2[n];
4169 });
4170 if (order2.join('') !== '0123456789') {
4171 return false;
4172 }
4173
4174 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
4175 var test3 = {};
4176 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
4177 test3[letter] = letter;
4178 });
4179 if (Object.keys(Object.assign({}, test3)).join('') !==
4180 'abcdefghijklmnopqrst') {
4181 return false;
4182 }
4183
4184 return true;
4185 } catch (err) {
4186 // We don't expect any of the above to throw, but better to be safe.
4187 return false;
4188 }
4189 }
4190
4191 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
4192 var from;
4193 var to = toObject(target);
4194 var symbols;
4195
4196 for (var s = 1; s < arguments.length; s++) {
4197 from = Object(arguments[s]);
4198
4199 for (var key in from) {
4200 if (hasOwnProperty.call(from, key)) {
4201 to[key] = from[key];
4202 }
4203 }
4204
4205 if (getOwnPropertySymbols) {
4206 symbols = getOwnPropertySymbols(from);
4207 for (var i = 0; i < symbols.length; i++) {
4208 if (propIsEnumerable.call(from, symbols[i])) {
4209 to[symbols[i]] = from[symbols[i]];
4210 }
4211 }
4212 }
4213 }
4214
4215 return to;
4216 };
4217
4218
4219/***/ }),
4220/* 79 */
4221/***/ (function(module, exports, __webpack_require__) {
4222
4223 'use strict';
4224
4225 exports.__esModule = true;
4226
4227 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; };
4228
4229 var _Event = __webpack_require__(80);
4230
4231 var _Event2 = _interopRequireDefault(_Event);
4232
4233 var _componentClasses = __webpack_require__(81);
4234
4235 var _componentClasses2 = _interopRequireDefault(_componentClasses);
4236
4237 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4238
4239 var isCssAnimationSupported = _Event2.default.endEvents.length !== 0;
4240
4241
4242 var capitalPrefixes = ['Webkit', 'Moz', 'O',
4243 // ms is special .... !
4244 'ms'];
4245 var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];
4246
4247 function getStyleProperty(node, name) {
4248 var style = window.getComputedStyle(node);
4249
4250 var ret = '';
4251 for (var i = 0; i < prefixes.length; i++) {
4252 ret = style.getPropertyValue(prefixes[i] + name);
4253 if (ret) {
4254 break;
4255 }
4256 }
4257 return ret;
4258 }
4259
4260 function fixBrowserByTimeout(node) {
4261 if (isCssAnimationSupported) {
4262 var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;
4263 var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;
4264 var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;
4265 var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;
4266 var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);
4267 // sometimes, browser bug
4268 node.rcEndAnimTimeout = setTimeout(function () {
4269 node.rcEndAnimTimeout = null;
4270 if (node.rcEndListener) {
4271 node.rcEndListener();
4272 }
4273 }, time * 1000 + 200);
4274 }
4275 }
4276
4277 function clearBrowserBugTimeout(node) {
4278 if (node.rcEndAnimTimeout) {
4279 clearTimeout(node.rcEndAnimTimeout);
4280 node.rcEndAnimTimeout = null;
4281 }
4282 }
4283
4284 var cssAnimation = function cssAnimation(node, transitionName, endCallback) {
4285 var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';
4286 var className = nameIsObj ? transitionName.name : transitionName;
4287 var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';
4288 var end = endCallback;
4289 var start = void 0;
4290 var active = void 0;
4291 var nodeClasses = (0, _componentClasses2.default)(node);
4292
4293 if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {
4294 end = endCallback.end;
4295 start = endCallback.start;
4296 active = endCallback.active;
4297 }
4298
4299 if (node.rcEndListener) {
4300 node.rcEndListener();
4301 }
4302
4303 node.rcEndListener = function (e) {
4304 if (e && e.target !== node) {
4305 return;
4306 }
4307
4308 if (node.rcAnimTimeout) {
4309 clearTimeout(node.rcAnimTimeout);
4310 node.rcAnimTimeout = null;
4311 }
4312
4313 clearBrowserBugTimeout(node);
4314
4315 nodeClasses.remove(className);
4316 nodeClasses.remove(activeClassName);
4317
4318 _Event2.default.removeEndEventListener(node, node.rcEndListener);
4319 node.rcEndListener = null;
4320
4321 // Usually this optional end is used for informing an owner of
4322 // a leave animation and telling it to remove the child.
4323 if (end) {
4324 end();
4325 }
4326 };
4327
4328 _Event2.default.addEndEventListener(node, node.rcEndListener);
4329
4330 if (start) {
4331 start();
4332 }
4333 nodeClasses.add(className);
4334
4335 node.rcAnimTimeout = setTimeout(function () {
4336 node.rcAnimTimeout = null;
4337 nodeClasses.add(activeClassName);
4338 if (active) {
4339 setTimeout(active, 0);
4340 }
4341 fixBrowserByTimeout(node);
4342 // 30ms for firefox
4343 }, 30);
4344
4345 return {
4346 stop: function stop() {
4347 if (node.rcEndListener) {
4348 node.rcEndListener();
4349 }
4350 }
4351 };
4352 };
4353
4354 cssAnimation.style = function (node, style, callback) {
4355 if (node.rcEndListener) {
4356 node.rcEndListener();
4357 }
4358
4359 node.rcEndListener = function (e) {
4360 if (e && e.target !== node) {
4361 return;
4362 }
4363
4364 if (node.rcAnimTimeout) {
4365 clearTimeout(node.rcAnimTimeout);
4366 node.rcAnimTimeout = null;
4367 }
4368
4369 clearBrowserBugTimeout(node);
4370
4371 _Event2.default.removeEndEventListener(node, node.rcEndListener);
4372 node.rcEndListener = null;
4373
4374 // Usually this optional callback is used for informing an owner of
4375 // a leave animation and telling it to remove the child.
4376 if (callback) {
4377 callback();
4378 }
4379 };
4380
4381 _Event2.default.addEndEventListener(node, node.rcEndListener);
4382
4383 node.rcAnimTimeout = setTimeout(function () {
4384 for (var s in style) {
4385 if (style.hasOwnProperty(s)) {
4386 node.style[s] = style[s];
4387 }
4388 }
4389 node.rcAnimTimeout = null;
4390 fixBrowserByTimeout(node);
4391 }, 0);
4392 };
4393
4394 cssAnimation.setTransition = function (node, p, value) {
4395 var property = p;
4396 var v = value;
4397 if (value === undefined) {
4398 v = property;
4399 property = '';
4400 }
4401 property = property || '';
4402 capitalPrefixes.forEach(function (prefix) {
4403 node.style[prefix + 'Transition' + property] = v;
4404 });
4405 };
4406
4407 cssAnimation.isCssAnimationSupported = isCssAnimationSupported;
4408
4409 exports.default = cssAnimation;
4410
4411/***/ }),
4412/* 80 */
4413/***/ (function(module, exports) {
4414
4415 'use strict';
4416
4417 exports.__esModule = true;
4418 var EVENT_NAME_MAP = {
4419 transitionend: {
4420 transition: 'transitionend',
4421 WebkitTransition: 'webkitTransitionEnd',
4422 MozTransition: 'mozTransitionEnd',
4423 OTransition: 'oTransitionEnd',
4424 msTransition: 'MSTransitionEnd'
4425 },
4426
4427 animationend: {
4428 animation: 'animationend',
4429 WebkitAnimation: 'webkitAnimationEnd',
4430 MozAnimation: 'mozAnimationEnd',
4431 OAnimation: 'oAnimationEnd',
4432 msAnimation: 'MSAnimationEnd'
4433 }
4434 };
4435
4436 var endEvents = [];
4437
4438 function detectEvents() {
4439 var testEl = document.createElement('div');
4440 var style = testEl.style;
4441
4442 if (!('AnimationEvent' in window)) {
4443 delete EVENT_NAME_MAP.animationend.animation;
4444 }
4445
4446 if (!('TransitionEvent' in window)) {
4447 delete EVENT_NAME_MAP.transitionend.transition;
4448 }
4449
4450 for (var baseEventName in EVENT_NAME_MAP) {
4451 if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {
4452 var baseEvents = EVENT_NAME_MAP[baseEventName];
4453 for (var styleName in baseEvents) {
4454 if (styleName in style) {
4455 endEvents.push(baseEvents[styleName]);
4456 break;
4457 }
4458 }
4459 }
4460 }
4461 }
4462
4463 if (typeof window !== 'undefined' && typeof document !== 'undefined') {
4464 detectEvents();
4465 }
4466
4467 function addEventListener(node, eventName, eventListener) {
4468 node.addEventListener(eventName, eventListener, false);
4469 }
4470
4471 function removeEventListener(node, eventName, eventListener) {
4472 node.removeEventListener(eventName, eventListener, false);
4473 }
4474
4475 var TransitionEvents = {
4476 addEndEventListener: function addEndEventListener(node, eventListener) {
4477 if (endEvents.length === 0) {
4478 window.setTimeout(eventListener, 0);
4479 return;
4480 }
4481 endEvents.forEach(function (endEvent) {
4482 addEventListener(node, endEvent, eventListener);
4483 });
4484 },
4485
4486
4487 endEvents: endEvents,
4488
4489 removeEndEventListener: function removeEndEventListener(node, eventListener) {
4490 if (endEvents.length === 0) {
4491 return;
4492 }
4493 endEvents.forEach(function (endEvent) {
4494 removeEventListener(node, endEvent, eventListener);
4495 });
4496 }
4497 };
4498
4499 exports.default = TransitionEvents;
4500
4501/***/ }),
4502/* 81 */
4503/***/ (function(module, exports, __webpack_require__) {
4504
4505 /**
4506 * Module dependencies.
4507 */
4508
4509 try {
4510 var index = __webpack_require__(82);
4511 } catch (err) {
4512 var index = __webpack_require__(82);
4513 }
4514
4515 /**
4516 * Whitespace regexp.
4517 */
4518
4519 var re = /\s+/;
4520
4521 /**
4522 * toString reference.
4523 */
4524
4525 var toString = Object.prototype.toString;
4526
4527 /**
4528 * Wrap `el` in a `ClassList`.
4529 *
4530 * @param {Element} el
4531 * @return {ClassList}
4532 * @api public
4533 */
4534
4535 module.exports = function(el){
4536 return new ClassList(el);
4537 };
4538
4539 /**
4540 * Initialize a new ClassList for `el`.
4541 *
4542 * @param {Element} el
4543 * @api private
4544 */
4545
4546 function ClassList(el) {
4547 if (!el || !el.nodeType) {
4548 throw new Error('A DOM element reference is required');
4549 }
4550 this.el = el;
4551 this.list = el.classList;
4552 }
4553
4554 /**
4555 * Add class `name` if not already present.
4556 *
4557 * @param {String} name
4558 * @return {ClassList}
4559 * @api public
4560 */
4561
4562 ClassList.prototype.add = function(name){
4563 // classList
4564 if (this.list) {
4565 this.list.add(name);
4566 return this;
4567 }
4568
4569 // fallback
4570 var arr = this.array();
4571 var i = index(arr, name);
4572 if (!~i) arr.push(name);
4573 this.el.className = arr.join(' ');
4574 return this;
4575 };
4576
4577 /**
4578 * Remove class `name` when present, or
4579 * pass a regular expression to remove
4580 * any which match.
4581 *
4582 * @param {String|RegExp} name
4583 * @return {ClassList}
4584 * @api public
4585 */
4586
4587 ClassList.prototype.remove = function(name){
4588 if ('[object RegExp]' == toString.call(name)) {
4589 return this.removeMatching(name);
4590 }
4591
4592 // classList
4593 if (this.list) {
4594 this.list.remove(name);
4595 return this;
4596 }
4597
4598 // fallback
4599 var arr = this.array();
4600 var i = index(arr, name);
4601 if (~i) arr.splice(i, 1);
4602 this.el.className = arr.join(' ');
4603 return this;
4604 };
4605
4606 /**
4607 * Remove all classes matching `re`.
4608 *
4609 * @param {RegExp} re
4610 * @return {ClassList}
4611 * @api private
4612 */
4613
4614 ClassList.prototype.removeMatching = function(re){
4615 var arr = this.array();
4616 for (var i = 0; i < arr.length; i++) {
4617 if (re.test(arr[i])) {
4618 this.remove(arr[i]);
4619 }
4620 }
4621 return this;
4622 };
4623
4624 /**
4625 * Toggle class `name`, can force state via `force`.
4626 *
4627 * For browsers that support classList, but do not support `force` yet,
4628 * the mistake will be detected and corrected.
4629 *
4630 * @param {String} name
4631 * @param {Boolean} force
4632 * @return {ClassList}
4633 * @api public
4634 */
4635
4636 ClassList.prototype.toggle = function(name, force){
4637 // classList
4638 if (this.list) {
4639 if ("undefined" !== typeof force) {
4640 if (force !== this.list.toggle(name, force)) {
4641 this.list.toggle(name); // toggle again to correct
4642 }
4643 } else {
4644 this.list.toggle(name);
4645 }
4646 return this;
4647 }
4648
4649 // fallback
4650 if ("undefined" !== typeof force) {
4651 if (!force) {
4652 this.remove(name);
4653 } else {
4654 this.add(name);
4655 }
4656 } else {
4657 if (this.has(name)) {
4658 this.remove(name);
4659 } else {
4660 this.add(name);
4661 }
4662 }
4663
4664 return this;
4665 };
4666
4667 /**
4668 * Return an array of classes.
4669 *
4670 * @return {Array}
4671 * @api public
4672 */
4673
4674 ClassList.prototype.array = function(){
4675 var className = this.el.getAttribute('class') || '';
4676 var str = className.replace(/^\s+|\s+$/g, '');
4677 var arr = str.split(re);
4678 if ('' === arr[0]) arr.shift();
4679 return arr;
4680 };
4681
4682 /**
4683 * Check if class `name` is present.
4684 *
4685 * @param {String} name
4686 * @return {ClassList}
4687 * @api public
4688 */
4689
4690 ClassList.prototype.has =
4691 ClassList.prototype.contains = function(name){
4692 return this.list
4693 ? this.list.contains(name)
4694 : !! ~index(this.array(), name);
4695 };
4696
4697
4698/***/ }),
4699/* 82 */
4700/***/ (function(module, exports) {
4701
4702 module.exports = function(arr, obj){
4703 if (arr.indexOf) return arr.indexOf(obj);
4704 for (var i = 0; i < arr.length; ++i) {
4705 if (arr[i] === obj) return i;
4706 }
4707 return -1;
4708 };
4709
4710/***/ }),
4711/* 83 */
4712/***/ (function(module, exports, __webpack_require__) {
4713
4714 'use strict';
4715
4716 exports.__esModule = true;
4717 exports.default = toArray;
4718
4719 var _react = __webpack_require__(4);
4720
4721 var _react2 = _interopRequireDefault(_react);
4722
4723 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4724
4725 function toArray(children) {
4726 var ret = [];
4727 _react2.default.Children.forEach(children, function (c) {
4728 ret.push(c);
4729 });
4730 return ret;
4731 }
4732
4733/***/ }),
4734/* 84 */
4735/***/ (function(module, exports, __webpack_require__) {
4736
4737 'use strict';
4738
4739 exports.__esModule = true;
4740
4741 var _react = __webpack_require__(4);
4742
4743 var _react2 = _interopRequireDefault(_react);
4744
4745 var _propTypes = __webpack_require__(5);
4746
4747 var _propTypes2 = _interopRequireDefault(_propTypes);
4748
4749 var _reactDom = __webpack_require__(12);
4750
4751 var _reactDom2 = _interopRequireDefault(_reactDom);
4752
4753 var _createReactClass = __webpack_require__(85);
4754
4755 var _createReactClass2 = _interopRequireDefault(_createReactClass);
4756
4757 var _domAlign = __webpack_require__(91);
4758
4759 var _domAlign2 = _interopRequireDefault(_domAlign);
4760
4761 var _addEventListener = __webpack_require__(74);
4762
4763 var _addEventListener2 = _interopRequireDefault(_addEventListener);
4764
4765 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4766
4767 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4768
4769 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; }
4770
4771 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; }
4772
4773 //import isWindow from './isWindow';
4774
4775 function isWindow(obj) {
4776 /* eslint no-eq-null: 0 */
4777 /* eslint eqeqeq: 0 */
4778 return obj != null && obj == obj.window;
4779 }
4780
4781 function buffer(fn, ms) {
4782 var timer = void 0;
4783
4784 function clear() {
4785 if (timer) {
4786 clearTimeout(timer);
4787 timer = null;
4788 }
4789 }
4790
4791 function bufferFn() {
4792 clear();
4793 timer = setTimeout(fn, ms);
4794 }
4795
4796 bufferFn.clear = clear;
4797
4798 return bufferFn;
4799 }
4800 var propTypes = {
4801 childrenProps: _propTypes2.default.object,
4802 align: _propTypes2.default.object.isRequired,
4803 target: _propTypes2.default.func,
4804 onAlign: _propTypes2.default.func,
4805 monitorBufferTime: _propTypes2.default.number,
4806 monitorWindowResize: _propTypes2.default.bool,
4807 disabled: _propTypes2.default.bool,
4808 children: _propTypes2.default.any
4809 };
4810
4811 var defaultProps = {
4812 target: function target() {
4813 return window;
4814 },
4815 onAlign: function onAlign() {},
4816
4817 monitorBufferTime: 50,
4818 monitorWindowResize: false,
4819 disabled: false
4820 };
4821
4822 var Align = function (_React$Component) {
4823 _inherits(Align, _React$Component);
4824
4825 function Align(props) {
4826 _classCallCheck(this, Align);
4827
4828 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
4829
4830 _initialiseProps.call(_this);
4831
4832 return _this;
4833 }
4834
4835 Align.prototype.componentDidMount = function componentDidMount() {
4836 var props = this.props;
4837 // if parent ref not attached .... use document.getElementById
4838 this.forceAlign();
4839 if (!props.disabled && props.monitorWindowResize) {
4840 this.startMonitorWindowResize();
4841 }
4842 };
4843
4844 Align.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
4845 var reAlign = false;
4846 var props = this.props;
4847
4848 if (!props.disabled) {
4849 if (prevProps.disabled || prevProps.align !== props.align) {
4850 reAlign = true;
4851 } else {
4852 var lastTarget = prevProps.target();
4853 var currentTarget = props.target();
4854 if (isWindow(lastTarget) && isWindow(currentTarget)) {
4855 reAlign = false;
4856 } else if (lastTarget !== currentTarget) {
4857 reAlign = true;
4858 }
4859 }
4860 }
4861
4862 if (reAlign) {
4863 this.forceAlign();
4864 }
4865
4866 if (props.monitorWindowResize && !props.disabled) {
4867 this.startMonitorWindowResize();
4868 } else {
4869 this.stopMonitorWindowResize();
4870 }
4871 };
4872
4873 Align.prototype.componentWillUnmount = function componentWillUnmount() {
4874 this.stopMonitorWindowResize();
4875 };
4876
4877 Align.prototype.startMonitorWindowResize = function startMonitorWindowResize() {
4878 if (!this.resizeHandler) {
4879 this.bufferMonitor = buffer(this.forceAlign, this.props.monitorBufferTime);
4880 this.resizeHandler = (0, _addEventListener2.default)(window, 'resize', this.bufferMonitor);
4881 }
4882 };
4883
4884 Align.prototype.render = function render() {
4885 var _props = this.props,
4886 childrenProps = _props.childrenProps,
4887 children = _props.children;
4888
4889 var child = _react2.default.Children.only(children);
4890 if (childrenProps) {
4891 var newProps = {};
4892 for (var prop in childrenProps) {
4893 if (childrenProps.hasOwnProperty(prop)) {
4894 newProps[prop] = this.props[childrenProps[prop]];
4895 }
4896 }
4897 return _react2.default.cloneElement(child, newProps);
4898 }
4899 return child;
4900 };
4901
4902 return Align;
4903 }(_react2.default.Component);
4904
4905 var _initialiseProps = function _initialiseProps() {
4906 var _this2 = this;
4907
4908 this.stopMonitorWindowResize = function () {
4909 if (_this2.resizeHandler) {
4910 _this2.bufferMonitor.clear();
4911 _this2.resizeHandler.remove();
4912 _this2.resizeHandler = null;
4913 }
4914 };
4915
4916 this.forceAlign = function () {
4917 var props = _this2.props;
4918 if (!props.disabled) {
4919 var source = _reactDom2.default.findDOMNode(_this2);
4920 props.onAlign(source, (0, _domAlign2.default)(source, props.target(), props.align));
4921 }
4922 };
4923 };
4924
4925 ;
4926
4927 Align.defaultProps = defaultProps;
4928 Align.propTypes = propTypes;
4929 exports.default = Align;
4930
4931/***/ }),
4932/* 85 */
4933/***/ (function(module, exports, __webpack_require__) {
4934
4935 /**
4936 * Copyright (c) 2013-present, Facebook, Inc.
4937 *
4938 * This source code is licensed under the MIT license found in the
4939 * LICENSE file in the root directory of this source tree.
4940 *
4941 */
4942
4943 'use strict';
4944
4945 var React = __webpack_require__(4);
4946 var factory = __webpack_require__(86);
4947
4948 if (typeof React === 'undefined') {
4949 throw Error(
4950 'create-react-class could not find the React object. If you are using script tags, ' +
4951 'make sure that React is being loaded before create-react-class.'
4952 );
4953 }
4954
4955 // Hack to grab NoopUpdateQueue from isomorphic React
4956 var ReactNoopUpdateQueue = new React.Component().updater;
4957
4958 module.exports = factory(
4959 React.Component,
4960 React.isValidElement,
4961 ReactNoopUpdateQueue
4962 );
4963
4964
4965/***/ }),
4966/* 86 */
4967/***/ (function(module, exports, __webpack_require__) {
4968
4969 /* WEBPACK VAR INJECTION */(function(process) {/**
4970 * Copyright (c) 2013-present, Facebook, Inc.
4971 *
4972 * This source code is licensed under the MIT license found in the
4973 * LICENSE file in the root directory of this source tree.
4974 *
4975 */
4976
4977 'use strict';
4978
4979 var _assign = __webpack_require__(78);
4980
4981 var emptyObject = __webpack_require__(87);
4982 var _invariant = __webpack_require__(88);
4983
4984 if (process.env.NODE_ENV !== 'production') {
4985 var warning = __webpack_require__(89);
4986 }
4987
4988 var MIXINS_KEY = 'mixins';
4989
4990 // Helper function to allow the creation of anonymous functions which do not
4991 // have .name set to the name of the variable being assigned to.
4992 function identity(fn) {
4993 return fn;
4994 }
4995
4996 var ReactPropTypeLocationNames;
4997 if (process.env.NODE_ENV !== 'production') {
4998 ReactPropTypeLocationNames = {
4999 prop: 'prop',
5000 context: 'context',
5001 childContext: 'child context'
5002 };
5003 } else {
5004 ReactPropTypeLocationNames = {};
5005 }
5006
5007 function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
5008 /**
5009 * Policies that describe methods in `ReactClassInterface`.
5010 */
5011
5012 var injectedMixins = [];
5013
5014 /**
5015 * Composite components are higher-level components that compose other composite
5016 * or host components.
5017 *
5018 * To create a new type of `ReactClass`, pass a specification of
5019 * your new class to `React.createClass`. The only requirement of your class
5020 * specification is that you implement a `render` method.
5021 *
5022 * var MyComponent = React.createClass({
5023 * render: function() {
5024 * return <div>Hello World</div>;
5025 * }
5026 * });
5027 *
5028 * The class specification supports a specific protocol of methods that have
5029 * special meaning (e.g. `render`). See `ReactClassInterface` for
5030 * more the comprehensive protocol. Any other properties and methods in the
5031 * class specification will be available on the prototype.
5032 *
5033 * @interface ReactClassInterface
5034 * @internal
5035 */
5036 var ReactClassInterface = {
5037 /**
5038 * An array of Mixin objects to include when defining your component.
5039 *
5040 * @type {array}
5041 * @optional
5042 */
5043 mixins: 'DEFINE_MANY',
5044
5045 /**
5046 * An object containing properties and methods that should be defined on
5047 * the component's constructor instead of its prototype (static methods).
5048 *
5049 * @type {object}
5050 * @optional
5051 */
5052 statics: 'DEFINE_MANY',
5053
5054 /**
5055 * Definition of prop types for this component.
5056 *
5057 * @type {object}
5058 * @optional
5059 */
5060 propTypes: 'DEFINE_MANY',
5061
5062 /**
5063 * Definition of context types for this component.
5064 *
5065 * @type {object}
5066 * @optional
5067 */
5068 contextTypes: 'DEFINE_MANY',
5069
5070 /**
5071 * Definition of context types this component sets for its children.
5072 *
5073 * @type {object}
5074 * @optional
5075 */
5076 childContextTypes: 'DEFINE_MANY',
5077
5078 // ==== Definition methods ====
5079
5080 /**
5081 * Invoked when the component is mounted. Values in the mapping will be set on
5082 * `this.props` if that prop is not specified (i.e. using an `in` check).
5083 *
5084 * This method is invoked before `getInitialState` and therefore cannot rely
5085 * on `this.state` or use `this.setState`.
5086 *
5087 * @return {object}
5088 * @optional
5089 */
5090 getDefaultProps: 'DEFINE_MANY_MERGED',
5091
5092 /**
5093 * Invoked once before the component is mounted. The return value will be used
5094 * as the initial value of `this.state`.
5095 *
5096 * getInitialState: function() {
5097 * return {
5098 * isOn: false,
5099 * fooBaz: new BazFoo()
5100 * }
5101 * }
5102 *
5103 * @return {object}
5104 * @optional
5105 */
5106 getInitialState: 'DEFINE_MANY_MERGED',
5107
5108 /**
5109 * @return {object}
5110 * @optional
5111 */
5112 getChildContext: 'DEFINE_MANY_MERGED',
5113
5114 /**
5115 * Uses props from `this.props` and state from `this.state` to render the
5116 * structure of the component.
5117 *
5118 * No guarantees are made about when or how often this method is invoked, so
5119 * it must not have side effects.
5120 *
5121 * render: function() {
5122 * var name = this.props.name;
5123 * return <div>Hello, {name}!</div>;
5124 * }
5125 *
5126 * @return {ReactComponent}
5127 * @required
5128 */
5129 render: 'DEFINE_ONCE',
5130
5131 // ==== Delegate methods ====
5132
5133 /**
5134 * Invoked when the component is initially created and about to be mounted.
5135 * This may have side effects, but any external subscriptions or data created
5136 * by this method must be cleaned up in `componentWillUnmount`.
5137 *
5138 * @optional
5139 */
5140 componentWillMount: 'DEFINE_MANY',
5141
5142 /**
5143 * Invoked when the component has been mounted and has a DOM representation.
5144 * However, there is no guarantee that the DOM node is in the document.
5145 *
5146 * Use this as an opportunity to operate on the DOM when the component has
5147 * been mounted (initialized and rendered) for the first time.
5148 *
5149 * @param {DOMElement} rootNode DOM element representing the component.
5150 * @optional
5151 */
5152 componentDidMount: 'DEFINE_MANY',
5153
5154 /**
5155 * Invoked before the component receives new props.
5156 *
5157 * Use this as an opportunity to react to a prop transition by updating the
5158 * state using `this.setState`. Current props are accessed via `this.props`.
5159 *
5160 * componentWillReceiveProps: function(nextProps, nextContext) {
5161 * this.setState({
5162 * likesIncreasing: nextProps.likeCount > this.props.likeCount
5163 * });
5164 * }
5165 *
5166 * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
5167 * transition may cause a state change, but the opposite is not true. If you
5168 * need it, you are probably looking for `componentWillUpdate`.
5169 *
5170 * @param {object} nextProps
5171 * @optional
5172 */
5173 componentWillReceiveProps: 'DEFINE_MANY',
5174
5175 /**
5176 * Invoked while deciding if the component should be updated as a result of
5177 * receiving new props, state and/or context.
5178 *
5179 * Use this as an opportunity to `return false` when you're certain that the
5180 * transition to the new props/state/context will not require a component
5181 * update.
5182 *
5183 * shouldComponentUpdate: function(nextProps, nextState, nextContext) {
5184 * return !equal(nextProps, this.props) ||
5185 * !equal(nextState, this.state) ||
5186 * !equal(nextContext, this.context);
5187 * }
5188 *
5189 * @param {object} nextProps
5190 * @param {?object} nextState
5191 * @param {?object} nextContext
5192 * @return {boolean} True if the component should update.
5193 * @optional
5194 */
5195 shouldComponentUpdate: 'DEFINE_ONCE',
5196
5197 /**
5198 * Invoked when the component is about to update due to a transition from
5199 * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
5200 * and `nextContext`.
5201 *
5202 * Use this as an opportunity to perform preparation before an update occurs.
5203 *
5204 * NOTE: You **cannot** use `this.setState()` in this method.
5205 *
5206 * @param {object} nextProps
5207 * @param {?object} nextState
5208 * @param {?object} nextContext
5209 * @param {ReactReconcileTransaction} transaction
5210 * @optional
5211 */
5212 componentWillUpdate: 'DEFINE_MANY',
5213
5214 /**
5215 * Invoked when the component's DOM representation has been updated.
5216 *
5217 * Use this as an opportunity to operate on the DOM when the component has
5218 * been updated.
5219 *
5220 * @param {object} prevProps
5221 * @param {?object} prevState
5222 * @param {?object} prevContext
5223 * @param {DOMElement} rootNode DOM element representing the component.
5224 * @optional
5225 */
5226 componentDidUpdate: 'DEFINE_MANY',
5227
5228 /**
5229 * Invoked when the component is about to be removed from its parent and have
5230 * its DOM representation destroyed.
5231 *
5232 * Use this as an opportunity to deallocate any external resources.
5233 *
5234 * NOTE: There is no `componentDidUnmount` since your component will have been
5235 * destroyed by that point.
5236 *
5237 * @optional
5238 */
5239 componentWillUnmount: 'DEFINE_MANY',
5240
5241 // ==== Advanced methods ====
5242
5243 /**
5244 * Updates the component's currently mounted DOM representation.
5245 *
5246 * By default, this implements React's rendering and reconciliation algorithm.
5247 * Sophisticated clients may wish to override this.
5248 *
5249 * @param {ReactReconcileTransaction} transaction
5250 * @internal
5251 * @overridable
5252 */
5253 updateComponent: 'OVERRIDE_BASE'
5254 };
5255
5256 /**
5257 * Mapping from class specification keys to special processing functions.
5258 *
5259 * Although these are declared like instance properties in the specification
5260 * when defining classes using `React.createClass`, they are actually static
5261 * and are accessible on the constructor instead of the prototype. Despite
5262 * being static, they must be defined outside of the "statics" key under
5263 * which all other static methods are defined.
5264 */
5265 var RESERVED_SPEC_KEYS = {
5266 displayName: function(Constructor, displayName) {
5267 Constructor.displayName = displayName;
5268 },
5269 mixins: function(Constructor, mixins) {
5270 if (mixins) {
5271 for (var i = 0; i < mixins.length; i++) {
5272 mixSpecIntoComponent(Constructor, mixins[i]);
5273 }
5274 }
5275 },
5276 childContextTypes: function(Constructor, childContextTypes) {
5277 if (process.env.NODE_ENV !== 'production') {
5278 validateTypeDef(Constructor, childContextTypes, 'childContext');
5279 }
5280 Constructor.childContextTypes = _assign(
5281 {},
5282 Constructor.childContextTypes,
5283 childContextTypes
5284 );
5285 },
5286 contextTypes: function(Constructor, contextTypes) {
5287 if (process.env.NODE_ENV !== 'production') {
5288 validateTypeDef(Constructor, contextTypes, 'context');
5289 }
5290 Constructor.contextTypes = _assign(
5291 {},
5292 Constructor.contextTypes,
5293 contextTypes
5294 );
5295 },
5296 /**
5297 * Special case getDefaultProps which should move into statics but requires
5298 * automatic merging.
5299 */
5300 getDefaultProps: function(Constructor, getDefaultProps) {
5301 if (Constructor.getDefaultProps) {
5302 Constructor.getDefaultProps = createMergedResultFunction(
5303 Constructor.getDefaultProps,
5304 getDefaultProps
5305 );
5306 } else {
5307 Constructor.getDefaultProps = getDefaultProps;
5308 }
5309 },
5310 propTypes: function(Constructor, propTypes) {
5311 if (process.env.NODE_ENV !== 'production') {
5312 validateTypeDef(Constructor, propTypes, 'prop');
5313 }
5314 Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
5315 },
5316 statics: function(Constructor, statics) {
5317 mixStaticSpecIntoComponent(Constructor, statics);
5318 },
5319 autobind: function() {}
5320 };
5321
5322 function validateTypeDef(Constructor, typeDef, location) {
5323 for (var propName in typeDef) {
5324 if (typeDef.hasOwnProperty(propName)) {
5325 // use a warning instead of an _invariant so components
5326 // don't show up in prod but only in __DEV__
5327 if (process.env.NODE_ENV !== 'production') {
5328 warning(
5329 typeof typeDef[propName] === 'function',
5330 '%s: %s type `%s` is invalid; it must be a function, usually from ' +
5331 'React.PropTypes.',
5332 Constructor.displayName || 'ReactClass',
5333 ReactPropTypeLocationNames[location],
5334 propName
5335 );
5336 }
5337 }
5338 }
5339 }
5340
5341 function validateMethodOverride(isAlreadyDefined, name) {
5342 var specPolicy = ReactClassInterface.hasOwnProperty(name)
5343 ? ReactClassInterface[name]
5344 : null;
5345
5346 // Disallow overriding of base class methods unless explicitly allowed.
5347 if (ReactClassMixin.hasOwnProperty(name)) {
5348 _invariant(
5349 specPolicy === 'OVERRIDE_BASE',
5350 'ReactClassInterface: You are attempting to override ' +
5351 '`%s` from your class specification. Ensure that your method names ' +
5352 'do not overlap with React methods.',
5353 name
5354 );
5355 }
5356
5357 // Disallow defining methods more than once unless explicitly allowed.
5358 if (isAlreadyDefined) {
5359 _invariant(
5360 specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
5361 'ReactClassInterface: You are attempting to define ' +
5362 '`%s` on your component more than once. This conflict may be due ' +
5363 'to a mixin.',
5364 name
5365 );
5366 }
5367 }
5368
5369 /**
5370 * Mixin helper which handles policy validation and reserved
5371 * specification keys when building React classes.
5372 */
5373 function mixSpecIntoComponent(Constructor, spec) {
5374 if (!spec) {
5375 if (process.env.NODE_ENV !== 'production') {
5376 var typeofSpec = typeof spec;
5377 var isMixinValid = typeofSpec === 'object' && spec !== null;
5378
5379 if (process.env.NODE_ENV !== 'production') {
5380 warning(
5381 isMixinValid,
5382 "%s: You're attempting to include a mixin that is either null " +
5383 'or not an object. Check the mixins included by the component, ' +
5384 'as well as any mixins they include themselves. ' +
5385 'Expected object but got %s.',
5386 Constructor.displayName || 'ReactClass',
5387 spec === null ? null : typeofSpec
5388 );
5389 }
5390 }
5391
5392 return;
5393 }
5394
5395 _invariant(
5396 typeof spec !== 'function',
5397 "ReactClass: You're attempting to " +
5398 'use a component class or function as a mixin. Instead, just use a ' +
5399 'regular object.'
5400 );
5401 _invariant(
5402 !isValidElement(spec),
5403 "ReactClass: You're attempting to " +
5404 'use a component as a mixin. Instead, just use a regular object.'
5405 );
5406
5407 var proto = Constructor.prototype;
5408 var autoBindPairs = proto.__reactAutoBindPairs;
5409
5410 // By handling mixins before any other properties, we ensure the same
5411 // chaining order is applied to methods with DEFINE_MANY policy, whether
5412 // mixins are listed before or after these methods in the spec.
5413 if (spec.hasOwnProperty(MIXINS_KEY)) {
5414 RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
5415 }
5416
5417 for (var name in spec) {
5418 if (!spec.hasOwnProperty(name)) {
5419 continue;
5420 }
5421
5422 if (name === MIXINS_KEY) {
5423 // We have already handled mixins in a special case above.
5424 continue;
5425 }
5426
5427 var property = spec[name];
5428 var isAlreadyDefined = proto.hasOwnProperty(name);
5429 validateMethodOverride(isAlreadyDefined, name);
5430
5431 if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
5432 RESERVED_SPEC_KEYS[name](Constructor, property);
5433 } else {
5434 // Setup methods on prototype:
5435 // The following member methods should not be automatically bound:
5436 // 1. Expected ReactClass methods (in the "interface").
5437 // 2. Overridden methods (that were mixed in).
5438 var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
5439 var isFunction = typeof property === 'function';
5440 var shouldAutoBind =
5441 isFunction &&
5442 !isReactClassMethod &&
5443 !isAlreadyDefined &&
5444 spec.autobind !== false;
5445
5446 if (shouldAutoBind) {
5447 autoBindPairs.push(name, property);
5448 proto[name] = property;
5449 } else {
5450 if (isAlreadyDefined) {
5451 var specPolicy = ReactClassInterface[name];
5452
5453 // These cases should already be caught by validateMethodOverride.
5454 _invariant(
5455 isReactClassMethod &&
5456 (specPolicy === 'DEFINE_MANY_MERGED' ||
5457 specPolicy === 'DEFINE_MANY'),
5458 'ReactClass: Unexpected spec policy %s for key %s ' +
5459 'when mixing in component specs.',
5460 specPolicy,
5461 name
5462 );
5463
5464 // For methods which are defined more than once, call the existing
5465 // methods before calling the new property, merging if appropriate.
5466 if (specPolicy === 'DEFINE_MANY_MERGED') {
5467 proto[name] = createMergedResultFunction(proto[name], property);
5468 } else if (specPolicy === 'DEFINE_MANY') {
5469 proto[name] = createChainedFunction(proto[name], property);
5470 }
5471 } else {
5472 proto[name] = property;
5473 if (process.env.NODE_ENV !== 'production') {
5474 // Add verbose displayName to the function, which helps when looking
5475 // at profiling tools.
5476 if (typeof property === 'function' && spec.displayName) {
5477 proto[name].displayName = spec.displayName + '_' + name;
5478 }
5479 }
5480 }
5481 }
5482 }
5483 }
5484 }
5485
5486 function mixStaticSpecIntoComponent(Constructor, statics) {
5487 if (!statics) {
5488 return;
5489 }
5490 for (var name in statics) {
5491 var property = statics[name];
5492 if (!statics.hasOwnProperty(name)) {
5493 continue;
5494 }
5495
5496 var isReserved = name in RESERVED_SPEC_KEYS;
5497 _invariant(
5498 !isReserved,
5499 'ReactClass: You are attempting to define a reserved ' +
5500 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
5501 'as an instance property instead; it will still be accessible on the ' +
5502 'constructor.',
5503 name
5504 );
5505
5506 var isInherited = name in Constructor;
5507 _invariant(
5508 !isInherited,
5509 'ReactClass: You are attempting to define ' +
5510 '`%s` on your component more than once. This conflict may be ' +
5511 'due to a mixin.',
5512 name
5513 );
5514 Constructor[name] = property;
5515 }
5516 }
5517
5518 /**
5519 * Merge two objects, but throw if both contain the same key.
5520 *
5521 * @param {object} one The first object, which is mutated.
5522 * @param {object} two The second object
5523 * @return {object} one after it has been mutated to contain everything in two.
5524 */
5525 function mergeIntoWithNoDuplicateKeys(one, two) {
5526 _invariant(
5527 one && two && typeof one === 'object' && typeof two === 'object',
5528 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
5529 );
5530
5531 for (var key in two) {
5532 if (two.hasOwnProperty(key)) {
5533 _invariant(
5534 one[key] === undefined,
5535 'mergeIntoWithNoDuplicateKeys(): ' +
5536 'Tried to merge two objects with the same key: `%s`. This conflict ' +
5537 'may be due to a mixin; in particular, this may be caused by two ' +
5538 'getInitialState() or getDefaultProps() methods returning objects ' +
5539 'with clashing keys.',
5540 key
5541 );
5542 one[key] = two[key];
5543 }
5544 }
5545 return one;
5546 }
5547
5548 /**
5549 * Creates a function that invokes two functions and merges their return values.
5550 *
5551 * @param {function} one Function to invoke first.
5552 * @param {function} two Function to invoke second.
5553 * @return {function} Function that invokes the two argument functions.
5554 * @private
5555 */
5556 function createMergedResultFunction(one, two) {
5557 return function mergedResult() {
5558 var a = one.apply(this, arguments);
5559 var b = two.apply(this, arguments);
5560 if (a == null) {
5561 return b;
5562 } else if (b == null) {
5563 return a;
5564 }
5565 var c = {};
5566 mergeIntoWithNoDuplicateKeys(c, a);
5567 mergeIntoWithNoDuplicateKeys(c, b);
5568 return c;
5569 };
5570 }
5571
5572 /**
5573 * Creates a function that invokes two functions and ignores their return vales.
5574 *
5575 * @param {function} one Function to invoke first.
5576 * @param {function} two Function to invoke second.
5577 * @return {function} Function that invokes the two argument functions.
5578 * @private
5579 */
5580 function createChainedFunction(one, two) {
5581 return function chainedFunction() {
5582 one.apply(this, arguments);
5583 two.apply(this, arguments);
5584 };
5585 }
5586
5587 /**
5588 * Binds a method to the component.
5589 *
5590 * @param {object} component Component whose method is going to be bound.
5591 * @param {function} method Method to be bound.
5592 * @return {function} The bound method.
5593 */
5594 function bindAutoBindMethod(component, method) {
5595 var boundMethod = method.bind(component);
5596 if (process.env.NODE_ENV !== 'production') {
5597 boundMethod.__reactBoundContext = component;
5598 boundMethod.__reactBoundMethod = method;
5599 boundMethod.__reactBoundArguments = null;
5600 var componentName = component.constructor.displayName;
5601 var _bind = boundMethod.bind;
5602 boundMethod.bind = function(newThis) {
5603 for (
5604 var _len = arguments.length,
5605 args = Array(_len > 1 ? _len - 1 : 0),
5606 _key = 1;
5607 _key < _len;
5608 _key++
5609 ) {
5610 args[_key - 1] = arguments[_key];
5611 }
5612
5613 // User is trying to bind() an autobound method; we effectively will
5614 // ignore the value of "this" that the user is trying to use, so
5615 // let's warn.
5616 if (newThis !== component && newThis !== null) {
5617 if (process.env.NODE_ENV !== 'production') {
5618 warning(
5619 false,
5620 'bind(): React component methods may only be bound to the ' +
5621 'component instance. See %s',
5622 componentName
5623 );
5624 }
5625 } else if (!args.length) {
5626 if (process.env.NODE_ENV !== 'production') {
5627 warning(
5628 false,
5629 'bind(): You are binding a component method to the component. ' +
5630 'React does this for you automatically in a high-performance ' +
5631 'way, so you can safely remove this call. See %s',
5632 componentName
5633 );
5634 }
5635 return boundMethod;
5636 }
5637 var reboundMethod = _bind.apply(boundMethod, arguments);
5638 reboundMethod.__reactBoundContext = component;
5639 reboundMethod.__reactBoundMethod = method;
5640 reboundMethod.__reactBoundArguments = args;
5641 return reboundMethod;
5642 };
5643 }
5644 return boundMethod;
5645 }
5646
5647 /**
5648 * Binds all auto-bound methods in a component.
5649 *
5650 * @param {object} component Component whose method is going to be bound.
5651 */
5652 function bindAutoBindMethods(component) {
5653 var pairs = component.__reactAutoBindPairs;
5654 for (var i = 0; i < pairs.length; i += 2) {
5655 var autoBindKey = pairs[i];
5656 var method = pairs[i + 1];
5657 component[autoBindKey] = bindAutoBindMethod(component, method);
5658 }
5659 }
5660
5661 var IsMountedPreMixin = {
5662 componentDidMount: function() {
5663 this.__isMounted = true;
5664 }
5665 };
5666
5667 var IsMountedPostMixin = {
5668 componentWillUnmount: function() {
5669 this.__isMounted = false;
5670 }
5671 };
5672
5673 /**
5674 * Add more to the ReactClass base class. These are all legacy features and
5675 * therefore not already part of the modern ReactComponent.
5676 */
5677 var ReactClassMixin = {
5678 /**
5679 * TODO: This will be deprecated because state should always keep a consistent
5680 * type signature and the only use case for this, is to avoid that.
5681 */
5682 replaceState: function(newState, callback) {
5683 this.updater.enqueueReplaceState(this, newState, callback);
5684 },
5685
5686 /**
5687 * Checks whether or not this composite component is mounted.
5688 * @return {boolean} True if mounted, false otherwise.
5689 * @protected
5690 * @final
5691 */
5692 isMounted: function() {
5693 if (process.env.NODE_ENV !== 'production') {
5694 warning(
5695 this.__didWarnIsMounted,
5696 '%s: isMounted is deprecated. Instead, make sure to clean up ' +
5697 'subscriptions and pending requests in componentWillUnmount to ' +
5698 'prevent memory leaks.',
5699 (this.constructor && this.constructor.displayName) ||
5700 this.name ||
5701 'Component'
5702 );
5703 this.__didWarnIsMounted = true;
5704 }
5705 return !!this.__isMounted;
5706 }
5707 };
5708
5709 var ReactClassComponent = function() {};
5710 _assign(
5711 ReactClassComponent.prototype,
5712 ReactComponent.prototype,
5713 ReactClassMixin
5714 );
5715
5716 /**
5717 * Creates a composite component class given a class specification.
5718 * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
5719 *
5720 * @param {object} spec Class specification (which must define `render`).
5721 * @return {function} Component constructor function.
5722 * @public
5723 */
5724 function createClass(spec) {
5725 // To keep our warnings more understandable, we'll use a little hack here to
5726 // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
5727 // unnecessarily identify a class without displayName as 'Constructor'.
5728 var Constructor = identity(function(props, context, updater) {
5729 // This constructor gets overridden by mocks. The argument is used
5730 // by mocks to assert on what gets mounted.
5731
5732 if (process.env.NODE_ENV !== 'production') {
5733 warning(
5734 this instanceof Constructor,
5735 'Something is calling a React component directly. Use a factory or ' +
5736 'JSX instead. See: https://fb.me/react-legacyfactory'
5737 );
5738 }
5739
5740 // Wire up auto-binding
5741 if (this.__reactAutoBindPairs.length) {
5742 bindAutoBindMethods(this);
5743 }
5744
5745 this.props = props;
5746 this.context = context;
5747 this.refs = emptyObject;
5748 this.updater = updater || ReactNoopUpdateQueue;
5749
5750 this.state = null;
5751
5752 // ReactClasses doesn't have constructors. Instead, they use the
5753 // getInitialState and componentWillMount methods for initialization.
5754
5755 var initialState = this.getInitialState ? this.getInitialState() : null;
5756 if (process.env.NODE_ENV !== 'production') {
5757 // We allow auto-mocks to proceed as if they're returning null.
5758 if (
5759 initialState === undefined &&
5760 this.getInitialState._isMockFunction
5761 ) {
5762 // This is probably bad practice. Consider warning here and
5763 // deprecating this convenience.
5764 initialState = null;
5765 }
5766 }
5767 _invariant(
5768 typeof initialState === 'object' && !Array.isArray(initialState),
5769 '%s.getInitialState(): must return an object or null',
5770 Constructor.displayName || 'ReactCompositeComponent'
5771 );
5772
5773 this.state = initialState;
5774 });
5775 Constructor.prototype = new ReactClassComponent();
5776 Constructor.prototype.constructor = Constructor;
5777 Constructor.prototype.__reactAutoBindPairs = [];
5778
5779 injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
5780
5781 mixSpecIntoComponent(Constructor, IsMountedPreMixin);
5782 mixSpecIntoComponent(Constructor, spec);
5783 mixSpecIntoComponent(Constructor, IsMountedPostMixin);
5784
5785 // Initialize the defaultProps property after all mixins have been merged.
5786 if (Constructor.getDefaultProps) {
5787 Constructor.defaultProps = Constructor.getDefaultProps();
5788 }
5789
5790 if (process.env.NODE_ENV !== 'production') {
5791 // This is a tag to indicate that the use of these method names is ok,
5792 // since it's used with createClass. If it's not, then it's likely a
5793 // mistake so we'll warn you to use the static property, property
5794 // initializer or constructor respectively.
5795 if (Constructor.getDefaultProps) {
5796 Constructor.getDefaultProps.isReactClassApproved = {};
5797 }
5798 if (Constructor.prototype.getInitialState) {
5799 Constructor.prototype.getInitialState.isReactClassApproved = {};
5800 }
5801 }
5802
5803 _invariant(
5804 Constructor.prototype.render,
5805 'createClass(...): Class specification must implement a `render` method.'
5806 );
5807
5808 if (process.env.NODE_ENV !== 'production') {
5809 warning(
5810 !Constructor.prototype.componentShouldUpdate,
5811 '%s has a method called ' +
5812 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
5813 'The name is phrased as a question because the function is ' +
5814 'expected to return a value.',
5815 spec.displayName || 'A component'
5816 );
5817 warning(
5818 !Constructor.prototype.componentWillRecieveProps,
5819 '%s has a method called ' +
5820 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
5821 spec.displayName || 'A component'
5822 );
5823 }
5824
5825 // Reduce time spent doing lookups by setting these on the prototype.
5826 for (var methodName in ReactClassInterface) {
5827 if (!Constructor.prototype[methodName]) {
5828 Constructor.prototype[methodName] = null;
5829 }
5830 }
5831
5832 return Constructor;
5833 }
5834
5835 return createClass;
5836 }
5837
5838 module.exports = factory;
5839
5840 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
5841
5842/***/ }),
5843/* 87 */
5844/***/ (function(module, exports, __webpack_require__) {
5845
5846 /* WEBPACK VAR INJECTION */(function(process) {/**
5847 * Copyright (c) 2013-present, Facebook, Inc.
5848 *
5849 * This source code is licensed under the MIT license found in the
5850 * LICENSE file in the root directory of this source tree.
5851 *
5852 */
5853
5854 'use strict';
5855
5856 var emptyObject = {};
5857
5858 if (process.env.NODE_ENV !== 'production') {
5859 Object.freeze(emptyObject);
5860 }
5861
5862 module.exports = emptyObject;
5863 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
5864
5865/***/ }),
5866/* 88 */
5867/***/ (function(module, exports, __webpack_require__) {
5868
5869 /* WEBPACK VAR INJECTION */(function(process) {/**
5870 * Copyright (c) 2013-present, Facebook, Inc.
5871 *
5872 * This source code is licensed under the MIT license found in the
5873 * LICENSE file in the root directory of this source tree.
5874 *
5875 */
5876
5877 'use strict';
5878
5879 /**
5880 * Use invariant() to assert state which your program assumes to be true.
5881 *
5882 * Provide sprintf-style format (only %s is supported) and arguments
5883 * to provide information about what broke and what you were
5884 * expecting.
5885 *
5886 * The invariant message will be stripped in production, but the invariant
5887 * will remain to ensure logic does not differ in production.
5888 */
5889
5890 var validateFormat = function validateFormat(format) {};
5891
5892 if (process.env.NODE_ENV !== 'production') {
5893 validateFormat = function validateFormat(format) {
5894 if (format === undefined) {
5895 throw new Error('invariant requires an error message argument');
5896 }
5897 };
5898 }
5899
5900 function invariant(condition, format, a, b, c, d, e, f) {
5901 validateFormat(format);
5902
5903 if (!condition) {
5904 var error;
5905 if (format === undefined) {
5906 error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
5907 } else {
5908 var args = [a, b, c, d, e, f];
5909 var argIndex = 0;
5910 error = new Error(format.replace(/%s/g, function () {
5911 return args[argIndex++];
5912 }));
5913 error.name = 'Invariant Violation';
5914 }
5915
5916 error.framesToPop = 1; // we don't care about invariant's own frame
5917 throw error;
5918 }
5919 }
5920
5921 module.exports = invariant;
5922 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
5923
5924/***/ }),
5925/* 89 */
5926/***/ (function(module, exports, __webpack_require__) {
5927
5928 /* WEBPACK VAR INJECTION */(function(process) {/**
5929 * Copyright (c) 2014-present, Facebook, Inc.
5930 *
5931 * This source code is licensed under the MIT license found in the
5932 * LICENSE file in the root directory of this source tree.
5933 *
5934 */
5935
5936 'use strict';
5937
5938 var emptyFunction = __webpack_require__(90);
5939
5940 /**
5941 * Similar to invariant but only logs a warning if the condition is not met.
5942 * This can be used to log issues in development environments in critical
5943 * paths. Removing the logging code for production environments will keep the
5944 * same logic and follow the same code paths.
5945 */
5946
5947 var warning = emptyFunction;
5948
5949 if (process.env.NODE_ENV !== 'production') {
5950 var printWarning = function printWarning(format) {
5951 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
5952 args[_key - 1] = arguments[_key];
5953 }
5954
5955 var argIndex = 0;
5956 var message = 'Warning: ' + format.replace(/%s/g, function () {
5957 return args[argIndex++];
5958 });
5959 if (typeof console !== 'undefined') {
5960 console.error(message);
5961 }
5962 try {
5963 // --- Welcome to debugging React ---
5964 // This error was thrown as a convenience so that you can use this stack
5965 // to find the callsite that caused this warning to fire.
5966 throw new Error(message);
5967 } catch (x) {}
5968 };
5969
5970 warning = function warning(condition, format) {
5971 if (format === undefined) {
5972 throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
5973 }
5974
5975 if (format.indexOf('Failed Composite propType: ') === 0) {
5976 return; // Ignore CompositeComponent proptype check.
5977 }
5978
5979 if (!condition) {
5980 for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
5981 args[_key2 - 2] = arguments[_key2];
5982 }
5983
5984 printWarning.apply(undefined, [format].concat(args));
5985 }
5986 };
5987 }
5988
5989 module.exports = warning;
5990 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
5991
5992/***/ }),
5993/* 90 */
5994/***/ (function(module, exports) {
5995
5996 "use strict";
5997
5998 /**
5999 * Copyright (c) 2013-present, Facebook, Inc.
6000 *
6001 * This source code is licensed under the MIT license found in the
6002 * LICENSE file in the root directory of this source tree.
6003 *
6004 *
6005 */
6006
6007 function makeEmptyFunction(arg) {
6008 return function () {
6009 return arg;
6010 };
6011 }
6012
6013 /**
6014 * This function accepts and discards inputs; it has no side effects. This is
6015 * primarily useful idiomatically for overridable function endpoints which
6016 * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
6017 */
6018 var emptyFunction = function emptyFunction() {};
6019
6020 emptyFunction.thatReturns = makeEmptyFunction;
6021 emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
6022 emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
6023 emptyFunction.thatReturnsNull = makeEmptyFunction(null);
6024 emptyFunction.thatReturnsThis = function () {
6025 return this;
6026 };
6027 emptyFunction.thatReturnsArgument = function (arg) {
6028 return arg;
6029 };
6030
6031 module.exports = emptyFunction;
6032
6033/***/ }),
6034/* 91 */
6035/***/ (function(module, exports, __webpack_require__) {
6036
6037 'use strict';
6038
6039 Object.defineProperty(exports, "__esModule", {
6040 value: true
6041 });
6042
6043 var _utils = __webpack_require__(92);
6044
6045 var _utils2 = _interopRequireDefault(_utils);
6046
6047 var _getOffsetParent = __webpack_require__(94);
6048
6049 var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);
6050
6051 var _getVisibleRectForElement = __webpack_require__(95);
6052
6053 var _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement);
6054
6055 var _adjustForViewport = __webpack_require__(97);
6056
6057 var _adjustForViewport2 = _interopRequireDefault(_adjustForViewport);
6058
6059 var _getRegion = __webpack_require__(98);
6060
6061 var _getRegion2 = _interopRequireDefault(_getRegion);
6062
6063 var _getElFuturePos = __webpack_require__(99);
6064
6065 var _getElFuturePos2 = _interopRequireDefault(_getElFuturePos);
6066
6067 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
6068
6069 // http://yiminghe.iteye.com/blog/1124720
6070
6071 /**
6072 * align dom node flexibly
6073 * @author yiminghe@gmail.com
6074 */
6075
6076 function isFailX(elFuturePos, elRegion, visibleRect) {
6077 return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;
6078 }
6079
6080 function isFailY(elFuturePos, elRegion, visibleRect) {
6081 return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;
6082 }
6083
6084 function isCompleteFailX(elFuturePos, elRegion, visibleRect) {
6085 return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;
6086 }
6087
6088 function isCompleteFailY(elFuturePos, elRegion, visibleRect) {
6089 return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;
6090 }
6091
6092 function isOutOfVisibleRect(target) {
6093 var visibleRect = (0, _getVisibleRectForElement2['default'])(target);
6094 var targetRegion = (0, _getRegion2['default'])(target);
6095
6096 return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;
6097 }
6098
6099 function flip(points, reg, map) {
6100 var ret = [];
6101 _utils2['default'].each(points, function (p) {
6102 ret.push(p.replace(reg, function (m) {
6103 return map[m];
6104 }));
6105 });
6106 return ret;
6107 }
6108
6109 function flipOffset(offset, index) {
6110 offset[index] = -offset[index];
6111 return offset;
6112 }
6113
6114 function convertOffset(str, offsetLen) {
6115 var n = void 0;
6116 if (/%$/.test(str)) {
6117 n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;
6118 } else {
6119 n = parseInt(str, 10);
6120 }
6121 return n || 0;
6122 }
6123
6124 function normalizeOffset(offset, el) {
6125 offset[0] = convertOffset(offset[0], el.width);
6126 offset[1] = convertOffset(offset[1], el.height);
6127 }
6128
6129 function domAlign(el, refNode, align) {
6130 var points = align.points;
6131 var offset = align.offset || [0, 0];
6132 var targetOffset = align.targetOffset || [0, 0];
6133 var overflow = align.overflow;
6134 var target = align.target || refNode;
6135 var source = align.source || el;
6136 offset = [].concat(offset);
6137 targetOffset = [].concat(targetOffset);
6138 overflow = overflow || {};
6139 var newOverflowCfg = {};
6140 var fail = 0;
6141 // 当前节点可以被放置的显示区域
6142 var visibleRect = (0, _getVisibleRectForElement2['default'])(source);
6143 // 当前节点所占的区域, left/top/width/height
6144 var elRegion = (0, _getRegion2['default'])(source);
6145 // 参照节点所占的区域, left/top/width/height
6146 var refNodeRegion = (0, _getRegion2['default'])(target);
6147 // 将 offset 转换成数值,支持百分比
6148 normalizeOffset(offset, elRegion);
6149 normalizeOffset(targetOffset, refNodeRegion);
6150 // 当前节点将要被放置的位置
6151 var elFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, points, offset, targetOffset);
6152 // 当前节点将要所处的区域
6153 var newElRegion = _utils2['default'].merge(elRegion, elFuturePos);
6154
6155 var isTargetNotOutOfVisible = !isOutOfVisibleRect(target);
6156
6157 // 如果可视区域不能完全放置当前节点时允许调整
6158 if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTargetNotOutOfVisible) {
6159 if (overflow.adjustX) {
6160 // 如果横向不能放下
6161 if (isFailX(elFuturePos, elRegion, visibleRect)) {
6162 // 对齐位置反下
6163 var newPoints = flip(points, /[lr]/ig, {
6164 l: 'r',
6165 r: 'l'
6166 });
6167 // 偏移量也反下
6168 var newOffset = flipOffset(offset, 0);
6169 var newTargetOffset = flipOffset(targetOffset, 0);
6170 var newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, newPoints, newOffset, newTargetOffset);
6171
6172 if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {
6173 fail = 1;
6174 points = newPoints;
6175 offset = newOffset;
6176 targetOffset = newTargetOffset;
6177 }
6178 }
6179 }
6180
6181 if (overflow.adjustY) {
6182 // 如果纵向不能放下
6183 if (isFailY(elFuturePos, elRegion, visibleRect)) {
6184 // 对齐位置反下
6185 var _newPoints = flip(points, /[tb]/ig, {
6186 t: 'b',
6187 b: 't'
6188 });
6189 // 偏移量也反下
6190 var _newOffset = flipOffset(offset, 1);
6191 var _newTargetOffset = flipOffset(targetOffset, 1);
6192 var _newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, _newPoints, _newOffset, _newTargetOffset);
6193
6194 if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {
6195 fail = 1;
6196 points = _newPoints;
6197 offset = _newOffset;
6198 targetOffset = _newTargetOffset;
6199 }
6200 }
6201 }
6202
6203 // 如果失败,重新计算当前节点将要被放置的位置
6204 if (fail) {
6205 elFuturePos = (0, _getElFuturePos2['default'])(elRegion, refNodeRegion, points, offset, targetOffset);
6206 _utils2['default'].mix(newElRegion, elFuturePos);
6207 }
6208
6209 // 检查反下后的位置是否可以放下了
6210 // 如果仍然放不下只有指定了可以调整当前方向才调整
6211 newOverflowCfg.adjustX = overflow.adjustX && isFailX(elFuturePos, elRegion, visibleRect);
6212
6213 newOverflowCfg.adjustY = overflow.adjustY && isFailY(elFuturePos, elRegion, visibleRect);
6214
6215 // 确实要调整,甚至可能会调整高度宽度
6216 if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {
6217 newElRegion = (0, _adjustForViewport2['default'])(elFuturePos, elRegion, visibleRect, newOverflowCfg);
6218 }
6219 }
6220
6221 // need judge to in case set fixed with in css on height auto element
6222 if (newElRegion.width !== elRegion.width) {
6223 _utils2['default'].css(source, 'width', _utils2['default'].width(source) + newElRegion.width - elRegion.width);
6224 }
6225
6226 if (newElRegion.height !== elRegion.height) {
6227 _utils2['default'].css(source, 'height', _utils2['default'].height(source) + newElRegion.height - elRegion.height);
6228 }
6229
6230 // https://github.com/kissyteam/kissy/issues/190
6231 // 相对于屏幕位置没变,而 left/top 变了
6232 // 例如 <div 'relative'><el absolute></div>
6233 _utils2['default'].offset(source, {
6234 left: newElRegion.left,
6235 top: newElRegion.top
6236 }, {
6237 useCssRight: align.useCssRight,
6238 useCssBottom: align.useCssBottom,
6239 useCssTransform: align.useCssTransform
6240 });
6241
6242 return {
6243 points: points,
6244 offset: offset,
6245 targetOffset: targetOffset,
6246 overflow: newOverflowCfg
6247 };
6248 }
6249
6250 domAlign.__getOffsetParent = _getOffsetParent2['default'];
6251
6252 domAlign.__getVisibleRectForElement = _getVisibleRectForElement2['default'];
6253
6254 exports['default'] = domAlign;
6255 /**
6256 * 2012-04-26 yiminghe@gmail.com
6257 * - 优化智能对齐算法
6258 * - 慎用 resizeXX
6259 *
6260 * 2011-07-13 yiminghe@gmail.com note:
6261 * - 增加智能对齐,以及大小调整选项
6262 **/
6263
6264 module.exports = exports['default'];
6265
6266/***/ }),
6267/* 92 */
6268/***/ (function(module, exports, __webpack_require__) {
6269
6270 'use strict';
6271
6272 Object.defineProperty(exports, "__esModule", {
6273 value: true
6274 });
6275
6276 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; };
6277
6278 var _propertyUtils = __webpack_require__(93);
6279
6280 var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
6281
6282 var getComputedStyleX = void 0;
6283
6284 function force(x, y) {
6285 return x + y;
6286 }
6287
6288 function css(el, name, v) {
6289 var value = v;
6290 if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
6291 for (var i in name) {
6292 if (name.hasOwnProperty(i)) {
6293 css(el, i, name[i]);
6294 }
6295 }
6296 return undefined;
6297 }
6298 if (typeof value !== 'undefined') {
6299 if (typeof value === 'number') {
6300 value = value + 'px';
6301 }
6302 el.style[name] = value;
6303 return undefined;
6304 }
6305 return getComputedStyleX(el, name);
6306 }
6307
6308 function getClientPosition(elem) {
6309 var box = void 0;
6310 var x = void 0;
6311 var y = void 0;
6312 var doc = elem.ownerDocument;
6313 var body = doc.body;
6314 var docElem = doc && doc.documentElement;
6315 // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
6316 box = elem.getBoundingClientRect();
6317
6318 // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
6319 // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
6320 // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
6321
6322 x = box.left;
6323 y = box.top;
6324
6325 // In IE, most of the time, 2 extra pixels are added to the top and left
6326 // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and
6327 // IE6 standards mode, this border can be overridden by setting the
6328 // document element's border to zero -- thus, we cannot rely on the
6329 // offset always being 2 pixels.
6330
6331 // In quirks mode, the offset can be determined by querying the body's
6332 // clientLeft/clientTop, but in standards mode, it is found by querying
6333 // the document element's clientLeft/clientTop. Since we already called
6334 // getClientBoundingRect we have already forced a reflow, so it is not
6335 // too expensive just to query them all.
6336
6337 // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
6338 // 窗口边框标准是设 documentElement ,quirks 时设置 body
6339 // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
6340 // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
6341 // 标准 ie 下 docElem.clientTop 就是 border-top
6342 // ie7 html 即窗口边框改变不了。永远为 2
6343 // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
6344
6345 x -= docElem.clientLeft || body.clientLeft || 0;
6346 y -= docElem.clientTop || body.clientTop || 0;
6347
6348 return {
6349 left: x,
6350 top: y
6351 };
6352 }
6353
6354 function getScroll(w, top) {
6355 var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
6356 var method = 'scroll' + (top ? 'Top' : 'Left');
6357 if (typeof ret !== 'number') {
6358 var d = w.document;
6359 // ie6,7,8 standard mode
6360 ret = d.documentElement[method];
6361 if (typeof ret !== 'number') {
6362 // quirks mode
6363 ret = d.body[method];
6364 }
6365 }
6366 return ret;
6367 }
6368
6369 function getScrollLeft(w) {
6370 return getScroll(w);
6371 }
6372
6373 function getScrollTop(w) {
6374 return getScroll(w, true);
6375 }
6376
6377 function getOffset(el) {
6378 var pos = getClientPosition(el);
6379 var doc = el.ownerDocument;
6380 var w = doc.defaultView || doc.parentWindow;
6381 pos.left += getScrollLeft(w);
6382 pos.top += getScrollTop(w);
6383 return pos;
6384 }
6385
6386 /**
6387 * A crude way of determining if an object is a window
6388 * @member util
6389 */
6390 function isWindow(obj) {
6391 // must use == for ie8
6392 /* eslint eqeqeq:0 */
6393 return obj !== null && obj !== undefined && obj == obj.window;
6394 }
6395
6396 function getDocument(node) {
6397 if (isWindow(node)) {
6398 return node.document;
6399 }
6400 if (node.nodeType === 9) {
6401 return node;
6402 }
6403 return node.ownerDocument;
6404 }
6405
6406 function _getComputedStyle(elem, name, cs) {
6407 var computedStyle = cs;
6408 var val = '';
6409 var d = getDocument(elem);
6410 computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);
6411
6412 // https://github.com/kissyteam/kissy/issues/61
6413 if (computedStyle) {
6414 val = computedStyle.getPropertyValue(name) || computedStyle[name];
6415 }
6416
6417 return val;
6418 }
6419
6420 var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
6421 var RE_POS = /^(top|right|bottom|left)$/;
6422 var CURRENT_STYLE = 'currentStyle';
6423 var RUNTIME_STYLE = 'runtimeStyle';
6424 var LEFT = 'left';
6425 var PX = 'px';
6426
6427 function _getComputedStyleIE(elem, name) {
6428 // currentStyle maybe null
6429 // http://msdn.microsoft.com/en-us/library/ms535231.aspx
6430 var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
6431
6432 // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
6433 // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
6434 // 在 ie 下不对,需要直接用 offset 方式
6435 // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
6436
6437 // From the awesome hack by Dean Edwards
6438 // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
6439 // If we're not dealing with a regular pixel number
6440 // but a number that has a weird ending, we need to convert it to pixels
6441 // exclude left right for relativity
6442 if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
6443 // Remember the original values
6444 var style = elem.style;
6445 var left = style[LEFT];
6446 var rsLeft = elem[RUNTIME_STYLE][LEFT];
6447
6448 // prevent flashing of content
6449 elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
6450
6451 // Put in the new values to get a computed value out
6452 style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
6453 ret = style.pixelLeft + PX;
6454
6455 // Revert the changed values
6456 style[LEFT] = left;
6457
6458 elem[RUNTIME_STYLE][LEFT] = rsLeft;
6459 }
6460 return ret === '' ? 'auto' : ret;
6461 }
6462
6463 if (typeof window !== 'undefined') {
6464 getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
6465 }
6466
6467 function getOffsetDirection(dir, option) {
6468 if (dir === 'left') {
6469 return option.useCssRight ? 'right' : dir;
6470 }
6471 return option.useCssBottom ? 'bottom' : dir;
6472 }
6473
6474 function oppositeOffsetDirection(dir) {
6475 if (dir === 'left') {
6476 return 'right';
6477 } else if (dir === 'right') {
6478 return 'left';
6479 } else if (dir === 'top') {
6480 return 'bottom';
6481 } else if (dir === 'bottom') {
6482 return 'top';
6483 }
6484 }
6485
6486 // 设置 elem 相对 elem.ownerDocument 的坐标
6487 function setLeftTop(elem, offset, option) {
6488 // set position first, in-case top/left are set even on static elem
6489 if (css(elem, 'position') === 'static') {
6490 elem.style.position = 'relative';
6491 }
6492 var presetH = -999;
6493 var presetV = -999;
6494 var horizontalProperty = getOffsetDirection('left', option);
6495 var verticalProperty = getOffsetDirection('top', option);
6496 var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);
6497 var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);
6498
6499 if (horizontalProperty !== 'left') {
6500 presetH = 999;
6501 }
6502
6503 if (verticalProperty !== 'top') {
6504 presetV = 999;
6505 }
6506 var originalTransition = '';
6507 var originalOffset = getOffset(elem);
6508 if ('left' in offset || 'top' in offset) {
6509 originalTransition = (0, _propertyUtils.getTransitionProperty)(elem) || '';
6510 (0, _propertyUtils.setTransitionProperty)(elem, 'none');
6511 }
6512 if ('left' in offset) {
6513 elem.style[oppositeHorizontalProperty] = '';
6514 elem.style[horizontalProperty] = presetH + 'px';
6515 }
6516 if ('top' in offset) {
6517 elem.style[oppositeVerticalProperty] = '';
6518 elem.style[verticalProperty] = presetV + 'px';
6519 }
6520 var old = getOffset(elem);
6521 var originalStyle = {};
6522 for (var key in offset) {
6523 if (offset.hasOwnProperty(key)) {
6524 var dir = getOffsetDirection(key, option);
6525 var preset = key === 'left' ? presetH : presetV;
6526 var off = originalOffset[key] - old[key];
6527 if (dir === key) {
6528 originalStyle[dir] = preset + off;
6529 } else {
6530 originalStyle[dir] = preset - off;
6531 }
6532 }
6533 }
6534 css(elem, originalStyle);
6535 // force relayout
6536 force(elem.offsetTop, elem.offsetLeft);
6537 if ('left' in offset || 'top' in offset) {
6538 (0, _propertyUtils.setTransitionProperty)(elem, originalTransition);
6539 }
6540 var ret = {};
6541 for (var _key in offset) {
6542 if (offset.hasOwnProperty(_key)) {
6543 var _dir = getOffsetDirection(_key, option);
6544 var _off = offset[_key] - originalOffset[_key];
6545 if (_key === _dir) {
6546 ret[_dir] = originalStyle[_dir] + _off;
6547 } else {
6548 ret[_dir] = originalStyle[_dir] - _off;
6549 }
6550 }
6551 }
6552 css(elem, ret);
6553 }
6554
6555 function setTransform(elem, offset) {
6556 var originalOffset = getOffset(elem);
6557 var originalXY = (0, _propertyUtils.getTransformXY)(elem);
6558 var resultXY = { x: originalXY.x, y: originalXY.y };
6559 if ('left' in offset) {
6560 resultXY.x = originalXY.x + offset.left - originalOffset.left;
6561 }
6562 if ('top' in offset) {
6563 resultXY.y = originalXY.y + offset.top - originalOffset.top;
6564 }
6565 (0, _propertyUtils.setTransformXY)(elem, resultXY);
6566 }
6567
6568 function setOffset(elem, offset, option) {
6569 if (option.useCssRight || option.useCssBottom) {
6570 setLeftTop(elem, offset, option);
6571 } else if (option.useCssTransform && (0, _propertyUtils.getTransformName)() in document.body.style) {
6572 setTransform(elem, offset, option);
6573 } else {
6574 setLeftTop(elem, offset, option);
6575 }
6576 }
6577
6578 function each(arr, fn) {
6579 for (var i = 0; i < arr.length; i++) {
6580 fn(arr[i]);
6581 }
6582 }
6583
6584 function isBorderBoxFn(elem) {
6585 return getComputedStyleX(elem, 'boxSizing') === 'border-box';
6586 }
6587
6588 var BOX_MODELS = ['margin', 'border', 'padding'];
6589 var CONTENT_INDEX = -1;
6590 var PADDING_INDEX = 2;
6591 var BORDER_INDEX = 1;
6592 var MARGIN_INDEX = 0;
6593
6594 function swap(elem, options, callback) {
6595 var old = {};
6596 var style = elem.style;
6597 var name = void 0;
6598
6599 // Remember the old values, and insert the new ones
6600 for (name in options) {
6601 if (options.hasOwnProperty(name)) {
6602 old[name] = style[name];
6603 style[name] = options[name];
6604 }
6605 }
6606
6607 callback.call(elem);
6608
6609 // Revert the old values
6610 for (name in options) {
6611 if (options.hasOwnProperty(name)) {
6612 style[name] = old[name];
6613 }
6614 }
6615 }
6616
6617 function getPBMWidth(elem, props, which) {
6618 var value = 0;
6619 var prop = void 0;
6620 var j = void 0;
6621 var i = void 0;
6622 for (j = 0; j < props.length; j++) {
6623 prop = props[j];
6624 if (prop) {
6625 for (i = 0; i < which.length; i++) {
6626 var cssProp = void 0;
6627 if (prop === 'border') {
6628 cssProp = '' + prop + which[i] + 'Width';
6629 } else {
6630 cssProp = prop + which[i];
6631 }
6632 value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
6633 }
6634 }
6635 }
6636 return value;
6637 }
6638
6639 var domUtils = {};
6640
6641 each(['Width', 'Height'], function (name) {
6642 domUtils['doc' + name] = function (refWin) {
6643 var d = refWin.document;
6644 return Math.max(
6645 // firefox chrome documentElement.scrollHeight< body.scrollHeight
6646 // ie standard mode : documentElement.scrollHeight> body.scrollHeight
6647 d.documentElement['scroll' + name],
6648 // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
6649 d.body['scroll' + name], domUtils['viewport' + name](d));
6650 };
6651
6652 domUtils['viewport' + name] = function (win) {
6653 // pc browser includes scrollbar in window.innerWidth
6654 var prop = 'client' + name;
6655 var doc = win.document;
6656 var body = doc.body;
6657 var documentElement = doc.documentElement;
6658 var documentElementProp = documentElement[prop];
6659 // 标准模式取 documentElement
6660 // backcompat 取 body
6661 return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
6662 };
6663 });
6664
6665 /*
6666 得到元素的大小信息
6667 @param elem
6668 @param name
6669 @param {String} [extra] 'padding' : (css width) + padding
6670 'border' : (css width) + padding + border
6671 'margin' : (css width) + padding + border + margin
6672 */
6673 function getWH(elem, name, ex) {
6674 var extra = ex;
6675 if (isWindow(elem)) {
6676 return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
6677 } else if (elem.nodeType === 9) {
6678 return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
6679 }
6680 var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
6681 var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;
6682 var computedStyle = getComputedStyleX(elem);
6683 var isBorderBox = isBorderBoxFn(elem, computedStyle);
6684 var cssBoxValue = 0;
6685 if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {
6686 borderBoxValue = undefined;
6687 // Fall back to computed then un computed css if necessary
6688 cssBoxValue = getComputedStyleX(elem, name);
6689 if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {
6690 cssBoxValue = elem.style[name] || 0;
6691 }
6692 // Normalize '', auto, and prepare for extra
6693 cssBoxValue = parseFloat(cssBoxValue) || 0;
6694 }
6695 if (extra === undefined) {
6696 extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
6697 }
6698 var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
6699 var val = borderBoxValue || cssBoxValue;
6700 if (extra === CONTENT_INDEX) {
6701 if (borderBoxValueOrIsBorderBox) {
6702 return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
6703 }
6704 return cssBoxValue;
6705 } else if (borderBoxValueOrIsBorderBox) {
6706 if (extra === BORDER_INDEX) {
6707 return val;
6708 }
6709 return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle));
6710 }
6711 return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
6712 }
6713
6714 var cssShow = {
6715 position: 'absolute',
6716 visibility: 'hidden',
6717 display: 'block'
6718 };
6719
6720 // fix #119 : https://github.com/kissyteam/kissy/issues/119
6721 function getWHIgnoreDisplay() {
6722 for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {
6723 args[_key2] = arguments[_key2];
6724 }
6725
6726 var val = void 0;
6727 var elem = args[0];
6728 // in case elem is window
6729 // elem.offsetWidth === undefined
6730 if (elem.offsetWidth !== 0) {
6731 val = getWH.apply(undefined, args);
6732 } else {
6733 swap(elem, cssShow, function () {
6734 val = getWH.apply(undefined, args);
6735 });
6736 }
6737 return val;
6738 }
6739
6740 each(['width', 'height'], function (name) {
6741 var first = name.charAt(0).toUpperCase() + name.slice(1);
6742 domUtils['outer' + first] = function (el, includeMargin) {
6743 return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
6744 };
6745 var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
6746
6747 domUtils[name] = function (elem, v) {
6748 var val = v;
6749 if (val !== undefined) {
6750 if (elem) {
6751 var computedStyle = getComputedStyleX(elem);
6752 var isBorderBox = isBorderBoxFn(elem);
6753 if (isBorderBox) {
6754 val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
6755 }
6756 return css(elem, name, val);
6757 }
6758 return undefined;
6759 }
6760 return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
6761 };
6762 });
6763
6764 function mix(to, from) {
6765 for (var i in from) {
6766 if (from.hasOwnProperty(i)) {
6767 to[i] = from[i];
6768 }
6769 }
6770 return to;
6771 }
6772
6773 var utils = {
6774 getWindow: function getWindow(node) {
6775 if (node && node.document && node.setTimeout) {
6776 return node;
6777 }
6778 var doc = node.ownerDocument || node;
6779 return doc.defaultView || doc.parentWindow;
6780 },
6781
6782 getDocument: getDocument,
6783 offset: function offset(el, value, option) {
6784 if (typeof value !== 'undefined') {
6785 setOffset(el, value, option || {});
6786 } else {
6787 return getOffset(el);
6788 }
6789 },
6790
6791 isWindow: isWindow,
6792 each: each,
6793 css: css,
6794 clone: function clone(obj) {
6795 var i = void 0;
6796 var ret = {};
6797 for (i in obj) {
6798 if (obj.hasOwnProperty(i)) {
6799 ret[i] = obj[i];
6800 }
6801 }
6802 var overflow = obj.overflow;
6803 if (overflow) {
6804 for (i in obj) {
6805 if (obj.hasOwnProperty(i)) {
6806 ret.overflow[i] = obj.overflow[i];
6807 }
6808 }
6809 }
6810 return ret;
6811 },
6812
6813 mix: mix,
6814 getWindowScrollLeft: function getWindowScrollLeft(w) {
6815 return getScrollLeft(w);
6816 },
6817 getWindowScrollTop: function getWindowScrollTop(w) {
6818 return getScrollTop(w);
6819 },
6820 merge: function merge() {
6821 var ret = {};
6822
6823 for (var _len2 = arguments.length, args = Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {
6824 args[_key3] = arguments[_key3];
6825 }
6826
6827 for (var i = 0; i < args.length; i++) {
6828 utils.mix(ret, args[i]);
6829 }
6830 return ret;
6831 },
6832
6833 viewportWidth: 0,
6834 viewportHeight: 0
6835 };
6836
6837 mix(utils, domUtils);
6838
6839 exports['default'] = utils;
6840 module.exports = exports['default'];
6841
6842/***/ }),
6843/* 93 */
6844/***/ (function(module, exports) {
6845
6846 'use strict';
6847
6848 Object.defineProperty(exports, "__esModule", {
6849 value: true
6850 });
6851 exports.getTransformName = getTransformName;
6852 exports.setTransitionProperty = setTransitionProperty;
6853 exports.getTransitionProperty = getTransitionProperty;
6854 exports.getTransformXY = getTransformXY;
6855 exports.setTransformXY = setTransformXY;
6856 var vendorPrefix = void 0;
6857
6858 var jsCssMap = {
6859 Webkit: '-webkit-',
6860 Moz: '-moz-',
6861 // IE did it wrong again ...
6862 ms: '-ms-',
6863 O: '-o-'
6864 };
6865
6866 function getVendorPrefix() {
6867 if (vendorPrefix !== undefined) {
6868 return vendorPrefix;
6869 }
6870 vendorPrefix = '';
6871 var style = document.createElement('p').style;
6872 var testProp = 'Transform';
6873 for (var key in jsCssMap) {
6874 if (key + testProp in style) {
6875 vendorPrefix = key;
6876 }
6877 }
6878 return vendorPrefix;
6879 }
6880
6881 function getTransitionName() {
6882 return getVendorPrefix() ? getVendorPrefix() + 'TransitionProperty' : 'transitionProperty';
6883 }
6884
6885 function getTransformName() {
6886 return getVendorPrefix() ? getVendorPrefix() + 'Transform' : 'transform';
6887 }
6888
6889 function setTransitionProperty(node, value) {
6890 var name = getTransitionName();
6891 if (name) {
6892 node.style[name] = value;
6893 if (name !== 'transitionProperty') {
6894 node.style.transitionProperty = value;
6895 }
6896 }
6897 }
6898
6899 function setTransform(node, value) {
6900 var name = getTransformName();
6901 if (name) {
6902 node.style[name] = value;
6903 if (name !== 'transform') {
6904 node.style.transform = value;
6905 }
6906 }
6907 }
6908
6909 function getTransitionProperty(node) {
6910 return node.style.transitionProperty || node.style[getTransitionName()];
6911 }
6912
6913 function getTransformXY(node) {
6914 var style = window.getComputedStyle(node, null);
6915 var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
6916 if (transform && transform !== 'none') {
6917 var matrix = transform.replace(/[^0-9\-.,]/g, '').split(',');
6918 return { x: parseFloat(matrix[12] || matrix[4], 0), y: parseFloat(matrix[13] || matrix[5], 0) };
6919 }
6920 return {
6921 x: 0,
6922 y: 0
6923 };
6924 }
6925
6926 var matrix2d = /matrix\((.*)\)/;
6927 var matrix3d = /matrix3d\((.*)\)/;
6928
6929 function setTransformXY(node, xy) {
6930 var style = window.getComputedStyle(node, null);
6931 var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
6932 if (transform && transform !== 'none') {
6933 var arr = void 0;
6934 var match2d = transform.match(matrix2d);
6935 if (match2d) {
6936 match2d = match2d[1];
6937 arr = match2d.split(',').map(function (item) {
6938 return parseFloat(item, 10);
6939 });
6940 arr[4] = xy.x;
6941 arr[5] = xy.y;
6942 setTransform(node, 'matrix(' + arr.join(',') + ')');
6943 } else {
6944 var match3d = transform.match(matrix3d)[1];
6945 arr = match3d.split(',').map(function (item) {
6946 return parseFloat(item, 10);
6947 });
6948 arr[12] = xy.x;
6949 arr[13] = xy.y;
6950 setTransform(node, 'matrix3d(' + arr.join(',') + ')');
6951 }
6952 } else {
6953 setTransform(node, 'translateX(' + xy.x + 'px) translateY(' + xy.y + 'px) translateZ(0)');
6954 }
6955 }
6956
6957/***/ }),
6958/* 94 */
6959/***/ (function(module, exports, __webpack_require__) {
6960
6961 'use strict';
6962
6963 Object.defineProperty(exports, "__esModule", {
6964 value: true
6965 });
6966
6967 var _utils = __webpack_require__(92);
6968
6969 var _utils2 = _interopRequireDefault(_utils);
6970
6971 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
6972
6973 /**
6974 * 得到会导致元素显示不全的祖先元素
6975 */
6976
6977 function getOffsetParent(element) {
6978 if (_utils2['default'].isWindow(element) || element.nodeType === 9) {
6979 return null;
6980 }
6981 // ie 这个也不是完全可行
6982 /*
6983 <div style="width: 50px;height: 100px;overflow: hidden">
6984 <div style="width: 50px;height: 100px;position: relative;" id="d6">
6985 元素 6 高 100px 宽 50px<br/>
6986 </div>
6987 </div>
6988 */
6989 // element.offsetParent does the right thing in ie7 and below. Return parent with layout!
6990 // In other browsers it only includes elements with position absolute, relative or
6991 // fixed, not elements with overflow set to auto or scroll.
6992 // if (UA.ie && ieMode < 8) {
6993 // return element.offsetParent;
6994 // }
6995 // 统一的 offsetParent 方法
6996 var doc = _utils2['default'].getDocument(element);
6997 var body = doc.body;
6998 var parent = void 0;
6999 var positionStyle = _utils2['default'].css(element, 'position');
7000 var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';
7001
7002 if (!skipStatic) {
7003 return element.nodeName.toLowerCase() === 'html' ? null : element.parentNode;
7004 }
7005
7006 for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {
7007 positionStyle = _utils2['default'].css(parent, 'position');
7008 if (positionStyle !== 'static') {
7009 return parent;
7010 }
7011 }
7012 return null;
7013 }
7014
7015 exports['default'] = getOffsetParent;
7016 module.exports = exports['default'];
7017
7018/***/ }),
7019/* 95 */
7020/***/ (function(module, exports, __webpack_require__) {
7021
7022 'use strict';
7023
7024 Object.defineProperty(exports, "__esModule", {
7025 value: true
7026 });
7027
7028 var _utils = __webpack_require__(92);
7029
7030 var _utils2 = _interopRequireDefault(_utils);
7031
7032 var _getOffsetParent = __webpack_require__(94);
7033
7034 var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);
7035
7036 var _isAncestorFixed = __webpack_require__(96);
7037
7038 var _isAncestorFixed2 = _interopRequireDefault(_isAncestorFixed);
7039
7040 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7041
7042 /**
7043 * 获得元素的显示部分的区域
7044 */
7045 function getVisibleRectForElement(element) {
7046 var visibleRect = {
7047 left: 0,
7048 right: Infinity,
7049 top: 0,
7050 bottom: Infinity
7051 };
7052 var el = (0, _getOffsetParent2['default'])(element);
7053 var doc = _utils2['default'].getDocument(element);
7054 var win = doc.defaultView || doc.parentWindow;
7055 var body = doc.body;
7056 var documentElement = doc.documentElement;
7057
7058 // Determine the size of the visible rect by climbing the dom accounting for
7059 // all scrollable containers.
7060 while (el) {
7061 // clientWidth is zero for inline block elements in ie.
7062 if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&
7063 // body may have overflow set on it, yet we still get the entire
7064 // viewport. In some browsers, el.offsetParent may be
7065 // document.documentElement, so check for that too.
7066 el !== body && el !== documentElement && _utils2['default'].css(el, 'overflow') !== 'visible') {
7067 var pos = _utils2['default'].offset(el);
7068 // add border
7069 pos.left += el.clientLeft;
7070 pos.top += el.clientTop;
7071 visibleRect.top = Math.max(visibleRect.top, pos.top);
7072 visibleRect.right = Math.min(visibleRect.right,
7073 // consider area without scrollBar
7074 pos.left + el.clientWidth);
7075 visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);
7076 visibleRect.left = Math.max(visibleRect.left, pos.left);
7077 } else if (el === body || el === documentElement) {
7078 break;
7079 }
7080 el = (0, _getOffsetParent2['default'])(el);
7081 }
7082
7083 // Set element position to fixed
7084 // make sure absolute element itself don't affect it's visible area
7085 // https://github.com/ant-design/ant-design/issues/7601
7086 var originalPosition = null;
7087 if (!_utils2['default'].isWindow(element) && element.nodeType !== 9) {
7088 originalPosition = element.style.position;
7089 var position = _utils2['default'].css(element, 'position');
7090 if (position === 'absolute') {
7091 element.style.position = 'fixed';
7092 }
7093 }
7094
7095 var scrollX = _utils2['default'].getWindowScrollLeft(win);
7096 var scrollY = _utils2['default'].getWindowScrollTop(win);
7097 var viewportWidth = _utils2['default'].viewportWidth(win);
7098 var viewportHeight = _utils2['default'].viewportHeight(win);
7099 var documentWidth = documentElement.scrollWidth;
7100 var documentHeight = documentElement.scrollHeight;
7101
7102 // Reset element position after calculate the visible area
7103 if (element.style) {
7104 element.style.position = originalPosition;
7105 }
7106
7107 if ((0, _isAncestorFixed2['default'])(element)) {
7108 // Clip by viewport's size.
7109 visibleRect.left = Math.max(visibleRect.left, scrollX);
7110 visibleRect.top = Math.max(visibleRect.top, scrollY);
7111 visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);
7112 visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);
7113 } else {
7114 // Clip by document's size.
7115 var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);
7116 visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);
7117
7118 var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);
7119 visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);
7120 }
7121
7122 return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;
7123 }
7124
7125 exports['default'] = getVisibleRectForElement;
7126 module.exports = exports['default'];
7127
7128/***/ }),
7129/* 96 */
7130/***/ (function(module, exports, __webpack_require__) {
7131
7132 'use strict';
7133
7134 Object.defineProperty(exports, "__esModule", {
7135 value: true
7136 });
7137 exports['default'] = isAncestorFixed;
7138
7139 var _utils = __webpack_require__(92);
7140
7141 var _utils2 = _interopRequireDefault(_utils);
7142
7143 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7144
7145 function isAncestorFixed(element) {
7146 if (_utils2['default'].isWindow(element) || element.nodeType === 9) {
7147 return false;
7148 }
7149
7150 var doc = _utils2['default'].getDocument(element);
7151 var body = doc.body;
7152 var parent = null;
7153 for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {
7154 var positionStyle = _utils2['default'].css(parent, 'position');
7155 if (positionStyle === 'fixed') {
7156 return true;
7157 }
7158 }
7159 return false;
7160 }
7161 module.exports = exports['default'];
7162
7163/***/ }),
7164/* 97 */
7165/***/ (function(module, exports, __webpack_require__) {
7166
7167 'use strict';
7168
7169 Object.defineProperty(exports, "__esModule", {
7170 value: true
7171 });
7172
7173 var _utils = __webpack_require__(92);
7174
7175 var _utils2 = _interopRequireDefault(_utils);
7176
7177 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7178
7179 function adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {
7180 var pos = _utils2['default'].clone(elFuturePos);
7181 var size = {
7182 width: elRegion.width,
7183 height: elRegion.height
7184 };
7185
7186 if (overflow.adjustX && pos.left < visibleRect.left) {
7187 pos.left = visibleRect.left;
7188 }
7189
7190 // Left edge inside and right edge outside viewport, try to resize it.
7191 if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {
7192 size.width -= pos.left + size.width - visibleRect.right;
7193 }
7194
7195 // Right edge outside viewport, try to move it.
7196 if (overflow.adjustX && pos.left + size.width > visibleRect.right) {
7197 // 保证左边界和可视区域左边界对齐
7198 pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);
7199 }
7200
7201 // Top edge outside viewport, try to move it.
7202 if (overflow.adjustY && pos.top < visibleRect.top) {
7203 pos.top = visibleRect.top;
7204 }
7205
7206 // Top edge inside and bottom edge outside viewport, try to resize it.
7207 if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {
7208 size.height -= pos.top + size.height - visibleRect.bottom;
7209 }
7210
7211 // Bottom edge outside viewport, try to move it.
7212 if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {
7213 // 保证上边界和可视区域上边界对齐
7214 pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);
7215 }
7216
7217 return _utils2['default'].mix(pos, size);
7218 }
7219
7220 exports['default'] = adjustForViewport;
7221 module.exports = exports['default'];
7222
7223/***/ }),
7224/* 98 */
7225/***/ (function(module, exports, __webpack_require__) {
7226
7227 'use strict';
7228
7229 Object.defineProperty(exports, "__esModule", {
7230 value: true
7231 });
7232
7233 var _utils = __webpack_require__(92);
7234
7235 var _utils2 = _interopRequireDefault(_utils);
7236
7237 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7238
7239 function getRegion(node) {
7240 var offset = void 0;
7241 var w = void 0;
7242 var h = void 0;
7243 if (!_utils2['default'].isWindow(node) && node.nodeType !== 9) {
7244 offset = _utils2['default'].offset(node);
7245 w = _utils2['default'].outerWidth(node);
7246 h = _utils2['default'].outerHeight(node);
7247 } else {
7248 var win = _utils2['default'].getWindow(node);
7249 offset = {
7250 left: _utils2['default'].getWindowScrollLeft(win),
7251 top: _utils2['default'].getWindowScrollTop(win)
7252 };
7253 w = _utils2['default'].viewportWidth(win);
7254 h = _utils2['default'].viewportHeight(win);
7255 }
7256 offset.width = w;
7257 offset.height = h;
7258 return offset;
7259 }
7260
7261 exports['default'] = getRegion;
7262 module.exports = exports['default'];
7263
7264/***/ }),
7265/* 99 */
7266/***/ (function(module, exports, __webpack_require__) {
7267
7268 'use strict';
7269
7270 Object.defineProperty(exports, "__esModule", {
7271 value: true
7272 });
7273
7274 var _getAlignOffset = __webpack_require__(100);
7275
7276 var _getAlignOffset2 = _interopRequireDefault(_getAlignOffset);
7277
7278 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7279
7280 function getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {
7281 var p1 = (0, _getAlignOffset2['default'])(refNodeRegion, points[1]);
7282 var p2 = (0, _getAlignOffset2['default'])(elRegion, points[0]);
7283 var diff = [p2.left - p1.left, p2.top - p1.top];
7284
7285 return {
7286 left: elRegion.left - diff[0] + offset[0] - targetOffset[0],
7287 top: elRegion.top - diff[1] + offset[1] - targetOffset[1]
7288 };
7289 }
7290
7291 exports['default'] = getElFuturePos;
7292 module.exports = exports['default'];
7293
7294/***/ }),
7295/* 100 */
7296/***/ (function(module, exports) {
7297
7298 'use strict';
7299
7300 Object.defineProperty(exports, "__esModule", {
7301 value: true
7302 });
7303 /**
7304 * 获取 node 上的 align 对齐点 相对于页面的坐标
7305 */
7306
7307 function getAlignOffset(region, align) {
7308 var V = align.charAt(0);
7309 var H = align.charAt(1);
7310 var w = region.width;
7311 var h = region.height;
7312
7313 var x = region.left;
7314 var y = region.top;
7315
7316 if (V === 'c') {
7317 y += h / 2;
7318 } else if (V === 'b') {
7319 y += h;
7320 }
7321
7322 if (H === 'c') {
7323 x += w / 2;
7324 } else if (H === 'r') {
7325 x += w;
7326 }
7327
7328 return {
7329 left: x,
7330 top: y
7331 };
7332 }
7333
7334 exports['default'] = getAlignOffset;
7335 module.exports = exports['default'];
7336
7337/***/ }),
7338/* 101 */
7339/***/ (function(module, exports, __webpack_require__) {
7340
7341 'use strict';
7342
7343 Object.defineProperty(exports, "__esModule", {
7344 value: true
7345 });
7346
7347 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; };
7348
7349 var _classnames = __webpack_require__(3);
7350
7351 var _classnames2 = _interopRequireDefault(_classnames);
7352
7353 var _react = __webpack_require__(4);
7354
7355 var _react2 = _interopRequireDefault(_react);
7356
7357 var _propTypes = __webpack_require__(5);
7358
7359 var _propTypes2 = _interopRequireDefault(_propTypes);
7360
7361 var _Transition = __webpack_require__(11);
7362
7363 var _Transition2 = _interopRequireDefault(_Transition);
7364
7365 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7366
7367 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; }
7368
7369 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7370
7371 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; }
7372
7373 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); }
7374
7375 var propTypes = {
7376 /**
7377 * Show the component; triggers the fade in or fade out animation
7378 */
7379 "in": _propTypes2["default"].bool,
7380
7381 /**
7382 * Unmount the component (remove it from the DOM) when it is faded out
7383 */
7384 unmountOnExit: _propTypes2["default"].bool,
7385
7386 /**
7387 * Run the fade in animation when the component mounts, if it is initially
7388 * shown
7389 */
7390 transitionAppear: _propTypes2["default"].bool,
7391
7392 /**
7393 * Duration of the fade animation in milliseconds, to ensure that finishing
7394 * callbacks are fired even if the original browser transition end events are
7395 * canceled
7396 */
7397 timeout: _propTypes2["default"].number,
7398
7399 /**
7400 * Callback fired before the component fades in
7401 */
7402 onEnter: _propTypes2["default"].func,
7403 /**
7404 * Callback fired after the component starts to fade in
7405 */
7406 onEntering: _propTypes2["default"].func,
7407 /**
7408 * Callback fired after the has component faded in
7409 */
7410 onEntered: _propTypes2["default"].func,
7411 /**
7412 * Callback fired before the component fades out
7413 */
7414 onExit: _propTypes2["default"].func,
7415 /**
7416 * Callback fired after the component starts to fade out
7417 */
7418 onExiting: _propTypes2["default"].func,
7419 /**
7420 * Callback fired after the component has faded out
7421 */
7422 onExited: _propTypes2["default"].func
7423 };
7424
7425 var defaultProps = {
7426 "in": false,
7427 timeout: 300,
7428 unmountOnExit: false,
7429 transitionAppear: false
7430 };
7431
7432 var Fade = function (_React$Component) {
7433 _inherits(Fade, _React$Component);
7434
7435 function Fade() {
7436 _classCallCheck(this, Fade);
7437
7438 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
7439 }
7440
7441 Fade.prototype.render = function render() {
7442 return _react2["default"].createElement(_Transition2["default"], _extends({}, this.props, {
7443 className: (0, _classnames2["default"])(this.props.className, 'fade'),
7444 enteredClassName: 'in',
7445 enteringClassName: 'in'
7446 }));
7447 };
7448
7449 return Fade;
7450 }(_react2["default"].Component);
7451
7452 Fade.propTypes = propTypes;
7453 Fade.defaultProps = defaultProps;
7454
7455 exports["default"] = Fade;
7456 module.exports = exports['default'];
7457
7458/***/ }),
7459/* 102 */
7460/***/ (function(module, exports, __webpack_require__) {
7461
7462 'use strict';
7463
7464 Object.defineProperty(exports, "__esModule", {
7465 value: true
7466 });
7467
7468 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; };
7469
7470 var _classnames = __webpack_require__(3);
7471
7472 var _classnames2 = _interopRequireDefault(_classnames);
7473
7474 var _react = __webpack_require__(4);
7475
7476 var _react2 = _interopRequireDefault(_react);
7477
7478 var _propTypes = __webpack_require__(5);
7479
7480 var _propTypes2 = _interopRequireDefault(_propTypes);
7481
7482 var _tinperBeeCore = __webpack_require__(26);
7483
7484 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7485
7486 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; }
7487
7488 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; }
7489
7490 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7491
7492 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; }
7493
7494 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); }
7495
7496 var propTypes = {
7497 //是否是手风琴效果
7498 accordion: _propTypes2["default"].bool,
7499 //激活的项
7500 activeKey: _propTypes2["default"].any,
7501 //默认的激活的项
7502 defaultActiveKey: _propTypes2["default"].any,
7503 //选中函数
7504 onSelect: _propTypes2["default"].func,
7505 role: _propTypes2["default"].string
7506 };
7507
7508 var defaultProps = {
7509 accordion: false,
7510 clsPrefix: 'u-panel-group'
7511 };
7512
7513 // TODO: Use uncontrollable.
7514
7515 var PanelGroup = function (_React$Component) {
7516 _inherits(PanelGroup, _React$Component);
7517
7518 function PanelGroup(props, context) {
7519 _classCallCheck(this, PanelGroup);
7520
7521 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
7522
7523 _this.handleSelect = _this.handleSelect.bind(_this);
7524
7525 _this.state = {
7526 activeKey: props.defaultActiveKey
7527 };
7528 return _this;
7529 }
7530
7531 PanelGroup.prototype.handleSelect = function handleSelect(key, e) {
7532 e.preventDefault();
7533
7534 if (this.props.onSelect) {
7535 this.props.onSelect(key, e);
7536 }
7537
7538 if (this.state.activeKey === key) {
7539 key = null;
7540 }
7541
7542 this.setState({ activeKey: key });
7543 };
7544
7545 PanelGroup.prototype.render = function render() {
7546 var _this2 = this;
7547
7548 var _props = this.props,
7549 accordion = _props.accordion,
7550 propsActiveKey = _props.activeKey,
7551 className = _props.className,
7552 children = _props.children,
7553 defaultActiveKey = _props.defaultActiveKey,
7554 onSelect = _props.onSelect,
7555 style = _props.style,
7556 clsPrefix = _props.clsPrefix,
7557 others = _objectWithoutProperties(_props, ['accordion', 'activeKey', 'className', 'children', 'defaultActiveKey', 'onSelect', 'style', 'clsPrefix']);
7558
7559 var activeKey = void 0;
7560 if (accordion) {
7561 activeKey = propsActiveKey != null ? propsActiveKey : this.state.activeKey;
7562 others.role = others.role || 'tablist';
7563 }
7564
7565 var classes = {};
7566 classes['' + clsPrefix] = true;
7567
7568 return _react2["default"].createElement(
7569 'div',
7570 _extends({}, others, {
7571 className: (0, _classnames2["default"])(className, classes)
7572 }),
7573 _react2["default"].Children.map(children, function (child) {
7574 if (!_react2["default"].isValidElement(child)) {
7575 return child;
7576 }
7577 var childProps = {
7578 style: child.props.style
7579 };
7580
7581 if (accordion) {
7582 _extends(childProps, {
7583 headerRole: 'tab',
7584 panelRole: 'tabpanel',
7585 collapsible: true,
7586 expanded: child.props.eventKey === activeKey,
7587 onSelect: (0, _tinperBeeCore.createChainedFunction)(_this2.handleSelect, child.props.onSelect)
7588 });
7589 }
7590
7591 return (0, _react.cloneElement)(child, childProps);
7592 })
7593 );
7594 };
7595
7596 return PanelGroup;
7597 }(_react2["default"].Component);
7598
7599 PanelGroup.propTypes = propTypes;
7600 PanelGroup.defaultProps = defaultProps;
7601
7602 exports["default"] = PanelGroup;
7603 module.exports = exports['default'];
7604
7605/***/ }),
7606/* 103 */
7607/***/ (function(module, exports, __webpack_require__) {
7608
7609 'use strict';
7610
7611 Object.defineProperty(exports, "__esModule", {
7612 value: true
7613 });
7614
7615 var _Button = __webpack_require__(104);
7616
7617 var _Button2 = _interopRequireDefault(_Button);
7618
7619 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7620
7621 exports["default"] = _Button2["default"];
7622 module.exports = exports['default'];
7623
7624/***/ }),
7625/* 104 */
7626/***/ (function(module, exports, __webpack_require__) {
7627
7628 'use strict';
7629
7630 Object.defineProperty(exports, "__esModule", {
7631 value: true
7632 });
7633
7634 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; };
7635
7636 var _react = __webpack_require__(4);
7637
7638 var _react2 = _interopRequireDefault(_react);
7639
7640 var _reactDom = __webpack_require__(12);
7641
7642 var _reactDom2 = _interopRequireDefault(_reactDom);
7643
7644 var _propTypes = __webpack_require__(5);
7645
7646 var _propTypes2 = _interopRequireDefault(_propTypes);
7647
7648 var _classnames = __webpack_require__(3);
7649
7650 var _classnames2 = _interopRequireDefault(_classnames);
7651
7652 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7653
7654 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; }
7655
7656 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; }
7657
7658 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7659
7660 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; }
7661
7662 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); }
7663
7664 var propTypes = {
7665 /**
7666 * @title 尺寸
7667 */
7668 size: _propTypes2["default"].oneOf(['sm', 'xg', 'lg']),
7669 /**
7670 * @title 样式
7671 */
7672 style: _propTypes2["default"].object,
7673 /**
7674 * @title 形状
7675 */
7676 shape: _propTypes2["default"].oneOf(['block', 'round', 'border', 'squared', 'floating', 'pillRight', 'pillLeft', 'icon']),
7677
7678 bordered: _propTypes2["default"].bool,
7679 /**
7680 * @title 类型
7681 */
7682 colors: _propTypes2["default"].oneOf(['primary', 'accent', 'success', 'info', 'warning', 'danger', 'default']),
7683 /**
7684 * @title 是否禁用
7685 * @veIgnore
7686 */
7687 disabled: _propTypes2["default"].bool,
7688 /**
7689 * @title 类名
7690 * @veIgnore
7691 */
7692 className: _propTypes2["default"].string,
7693
7694 /**
7695 * @title <button> 的 type
7696 * @veIgnore
7697 */
7698 htmlType: _propTypes2["default"].oneOf(['submit', 'button', 'reset'])
7699 };
7700
7701 var defaultProps = {
7702 disabled: false,
7703 htmlType: 'button',
7704 clsPrefix: 'u-button',
7705 bordered: false
7706
7707 };
7708
7709 var sizeMap = {
7710 sm: 'sm',
7711 xg: 'xg',
7712 lg: 'lg'
7713 },
7714 colorsMap = {
7715 primary: 'primary',
7716 accent: 'accent',
7717 success: 'success',
7718 info: 'info',
7719 warning: 'warning',
7720 danger: 'danger'
7721 },
7722 shapeMap = {
7723 block: 'block',
7724 round: 'round',
7725 border: 'border',
7726 squared: 'squared',
7727 floating: 'floating',
7728 pillRight: 'pill-right',
7729 pillLeft: 'pill-left',
7730 icon: 'icon'
7731 };
7732
7733 var Button = function (_Component) {
7734 _inherits(Button, _Component);
7735
7736 function Button(props) {
7737 _classCallCheck(this, Button);
7738
7739 return _possibleConstructorReturn(this, _Component.call(this, props));
7740 }
7741
7742 Button.prototype.render = function render() {
7743 var _props = this.props,
7744 colors = _props.colors,
7745 shape = _props.shape,
7746 disabled = _props.disabled,
7747 className = _props.className,
7748 size = _props.size,
7749 bordered = _props.bordered,
7750 children = _props.children,
7751 htmlType = _props.htmlType,
7752 clsPrefix = _props.clsPrefix,
7753 others = _objectWithoutProperties(_props, ['colors', 'shape', 'disabled', 'className', 'size', 'bordered', 'children', 'htmlType', 'clsPrefix']);
7754
7755 var clsObj = {};
7756 if (className) {
7757 clsObj[className] = true;
7758 }
7759 if (sizeMap[size]) {
7760 clsObj[clsPrefix + '-' + sizeMap[size]] = true;
7761 }
7762
7763 if (shapeMap[shape]) {
7764 clsObj[clsPrefix + '-' + shapeMap[shape]] = true;
7765 }
7766 if (colorsMap[colors]) {
7767 clsObj[clsPrefix + '-' + colorsMap[colors]] = true;
7768 }
7769 //clsObj[`${clsPrefix}-border`] = bordered;
7770 var classes = (0, _classnames2["default"])(clsPrefix, clsObj);
7771 return _react2["default"].createElement(
7772 'button',
7773 _extends({
7774 type: htmlType,
7775 className: classes,
7776 disabled: disabled
7777 }, others),
7778 this.props.children
7779 );
7780 };
7781
7782 return Button;
7783 }(_react.Component);
7784
7785 Button.propTypes = propTypes;
7786 Button.defaultProps = defaultProps;
7787
7788 exports["default"] = Button;
7789 module.exports = exports['default'];
7790
7791/***/ }),
7792/* 105 */
7793/***/ (function(module, exports, __webpack_require__) {
7794
7795 'use strict';
7796
7797 Object.defineProperty(exports, "__esModule", {
7798 value: true
7799 });
7800
7801 var _Clipboard = __webpack_require__(106);
7802
7803 var _Clipboard2 = _interopRequireDefault(_Clipboard);
7804
7805 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7806
7807 exports['default'] = _Clipboard2['default'];
7808 module.exports = exports['default'];
7809
7810/***/ }),
7811/* 106 */
7812/***/ (function(module, exports, __webpack_require__) {
7813
7814 'use strict';
7815
7816 Object.defineProperty(exports, "__esModule", {
7817 value: true
7818 });
7819
7820 var _react = __webpack_require__(4);
7821
7822 var _react2 = _interopRequireDefault(_react);
7823
7824 var _clipboard = __webpack_require__(107);
7825
7826 var _clipboard2 = _interopRequireDefault(_clipboard);
7827
7828 var _classnames = __webpack_require__(3);
7829
7830 var _classnames2 = _interopRequireDefault(_classnames);
7831
7832 var _beeIcon = __webpack_require__(115);
7833
7834 var _beeIcon2 = _interopRequireDefault(_beeIcon);
7835
7836 var _reactDom = __webpack_require__(12);
7837
7838 var _reactDom2 = _interopRequireDefault(_reactDom);
7839
7840 var _beeTooltip = __webpack_require__(117);
7841
7842 var _beeTooltip2 = _interopRequireDefault(_beeTooltip);
7843
7844 var _propTypes = __webpack_require__(5);
7845
7846 var _propTypes2 = _interopRequireDefault(_propTypes);
7847
7848 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7849
7850 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; }
7851
7852 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7853
7854 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; }
7855
7856 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); }
7857
7858 //text和target都写的时候,target无效。 text的cut改为copy。
7859 // target可以传css3选择器
7860 var propTypes = {
7861 action: _propTypes2['default'].oneOf(['copy', 'cut']),
7862 text: _propTypes2['default'].string,
7863 success: _propTypes2['default'].func,
7864 error: _propTypes2['default'].func
7865 };
7866 var defaultProps = {
7867 action: 'copy',
7868 text: '',
7869 target: '',
7870 success: function success() {},
7871 error: function error() {}
7872 };
7873
7874 var Clipboard = function (_Component) {
7875 _inherits(Clipboard, _Component);
7876
7877 function Clipboard(props) {
7878 _classCallCheck(this, Clipboard);
7879
7880 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
7881
7882 _this.blur = function () {
7883 _this.setState({
7884 currect: false,
7885 tootipContent: '复制'
7886 });
7887 };
7888
7889 _this.state = {
7890 currect: false,
7891 actionTitle: '复制',
7892 html: '',
7893 tootipContent: '复制',
7894 id: 'id' + Math.round(Math.random() * 1000 + 1) + new Date().getTime()
7895 };
7896 return _this;
7897 }
7898
7899 Clipboard.prototype.componentWillMount = function componentWillMount() {
7900 var self = this;
7901 var _props = this.props,
7902 action = _props.action,
7903 success = _props.success,
7904 error = _props.error;
7905
7906 var title = action === 'copy' ? '复制' : '剪切';
7907 self.setState({
7908 actionTitle: title
7909 });
7910 var id = this.state.id;
7911 var cb = new _clipboard2['default']('#' + id);
7912 cb.on('success', function (e) {
7913 self.setState({
7914 currect: true,
7915 tootipContent: '已复制'
7916 });
7917 e.clearSelection();
7918 if (success instanceof Function) success();
7919 });
7920 cb.on('error', function (e) {
7921 self.setState({
7922 html: e.text
7923 });
7924 _reactDom2['default'].findDOMNode(self.refs.text).select();
7925 if (error instanceof Function) error();
7926 });
7927 };
7928
7929 Clipboard.prototype.render = function render() {
7930 var seft = this;
7931 var _props2 = this.props,
7932 action = _props2.action,
7933 text = _props2.text,
7934 target = _props2.target;
7935
7936 if (text) action = 'copy';
7937
7938 return _react2['default'].createElement(
7939 _beeTooltip2['default'],
7940 { positionTop: '20px', overlay: seft.state.tootipContent, placement: 'top' },
7941 _react2['default'].createElement(
7942 'span',
7943 { onMouseOut: this.blur, className: 'u-clipboard', id: this.state.id, 'data-clipboard-action': action,
7944 'data-clipboard-target': target, 'data-clipboard-text': text },
7945 this.props.children ? this.props.children : _react2['default'].createElement(
7946 _beeIcon2['default'],
7947 { className: (0, _classnames2['default'])({
7948 'uf-correct': this.state.currect,
7949 'uf-copy': !this.state.currect
7950 }) },
7951 ' '
7952 )
7953 )
7954 );
7955 };
7956
7957 return Clipboard;
7958 }(_react.Component);
7959
7960 ;
7961 Clipboard.propTypes = propTypes;
7962 Clipboard.defaultProps = defaultProps;
7963 exports['default'] = Clipboard;
7964 module.exports = exports['default'];
7965
7966/***/ }),
7967/* 107 */
7968/***/ (function(module, exports, __webpack_require__) {
7969
7970 var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
7971 if (true) {
7972 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(108), __webpack_require__(110), __webpack_require__(111)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
7973 } else if (typeof exports !== "undefined") {
7974 factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));
7975 } else {
7976 var mod = {
7977 exports: {}
7978 };
7979 factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);
7980 global.clipboard = mod.exports;
7981 }
7982 })(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {
7983 'use strict';
7984
7985 var _clipboardAction2 = _interopRequireDefault(_clipboardAction);
7986
7987 var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);
7988
7989 var _goodListener2 = _interopRequireDefault(_goodListener);
7990
7991 function _interopRequireDefault(obj) {
7992 return obj && obj.__esModule ? obj : {
7993 default: obj
7994 };
7995 }
7996
7997 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
7998 return typeof obj;
7999 } : function (obj) {
8000 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
8001 };
8002
8003 function _classCallCheck(instance, Constructor) {
8004 if (!(instance instanceof Constructor)) {
8005 throw new TypeError("Cannot call a class as a function");
8006 }
8007 }
8008
8009 var _createClass = function () {
8010 function defineProperties(target, props) {
8011 for (var i = 0; i < props.length; i++) {
8012 var descriptor = props[i];
8013 descriptor.enumerable = descriptor.enumerable || false;
8014 descriptor.configurable = true;
8015 if ("value" in descriptor) descriptor.writable = true;
8016 Object.defineProperty(target, descriptor.key, descriptor);
8017 }
8018 }
8019
8020 return function (Constructor, protoProps, staticProps) {
8021 if (protoProps) defineProperties(Constructor.prototype, protoProps);
8022 if (staticProps) defineProperties(Constructor, staticProps);
8023 return Constructor;
8024 };
8025 }();
8026
8027 function _possibleConstructorReturn(self, call) {
8028 if (!self) {
8029 throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
8030 }
8031
8032 return call && (typeof call === "object" || typeof call === "function") ? call : self;
8033 }
8034
8035 function _inherits(subClass, superClass) {
8036 if (typeof superClass !== "function" && superClass !== null) {
8037 throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
8038 }
8039
8040 subClass.prototype = Object.create(superClass && superClass.prototype, {
8041 constructor: {
8042 value: subClass,
8043 enumerable: false,
8044 writable: true,
8045 configurable: true
8046 }
8047 });
8048 if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
8049 }
8050
8051 var Clipboard = function (_Emitter) {
8052 _inherits(Clipboard, _Emitter);
8053
8054 /**
8055 * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
8056 * @param {Object} options
8057 */
8058 function Clipboard(trigger, options) {
8059 _classCallCheck(this, Clipboard);
8060
8061 var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));
8062
8063 _this.resolveOptions(options);
8064 _this.listenClick(trigger);
8065 return _this;
8066 }
8067
8068 /**
8069 * Defines if attributes would be resolved using internal setter functions
8070 * or custom functions that were passed in the constructor.
8071 * @param {Object} options
8072 */
8073
8074
8075 _createClass(Clipboard, [{
8076 key: 'resolveOptions',
8077 value: function resolveOptions() {
8078 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8079
8080 this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
8081 this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
8082 this.text = typeof options.text === 'function' ? options.text : this.defaultText;
8083 this.container = _typeof(options.container) === 'object' ? options.container : document.body;
8084 }
8085 }, {
8086 key: 'listenClick',
8087 value: function listenClick(trigger) {
8088 var _this2 = this;
8089
8090 this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {
8091 return _this2.onClick(e);
8092 });
8093 }
8094 }, {
8095 key: 'onClick',
8096 value: function onClick(e) {
8097 var trigger = e.delegateTarget || e.currentTarget;
8098
8099 if (this.clipboardAction) {
8100 this.clipboardAction = null;
8101 }
8102
8103 this.clipboardAction = new _clipboardAction2.default({
8104 action: this.action(trigger),
8105 target: this.target(trigger),
8106 text: this.text(trigger),
8107 container: this.container,
8108 trigger: trigger,
8109 emitter: this
8110 });
8111 }
8112 }, {
8113 key: 'defaultAction',
8114 value: function defaultAction(trigger) {
8115 return getAttributeValue('action', trigger);
8116 }
8117 }, {
8118 key: 'defaultTarget',
8119 value: function defaultTarget(trigger) {
8120 var selector = getAttributeValue('target', trigger);
8121
8122 if (selector) {
8123 return document.querySelector(selector);
8124 }
8125 }
8126 }, {
8127 key: 'defaultText',
8128 value: function defaultText(trigger) {
8129 return getAttributeValue('text', trigger);
8130 }
8131 }, {
8132 key: 'destroy',
8133 value: function destroy() {
8134 this.listener.destroy();
8135
8136 if (this.clipboardAction) {
8137 this.clipboardAction.destroy();
8138 this.clipboardAction = null;
8139 }
8140 }
8141 }], [{
8142 key: 'isSupported',
8143 value: function isSupported() {
8144 var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
8145
8146 var actions = typeof action === 'string' ? [action] : action;
8147 var support = !!document.queryCommandSupported;
8148
8149 actions.forEach(function (action) {
8150 support = support && !!document.queryCommandSupported(action);
8151 });
8152
8153 return support;
8154 }
8155 }]);
8156
8157 return Clipboard;
8158 }(_tinyEmitter2.default);
8159
8160 /**
8161 * Helper function to retrieve attribute value.
8162 * @param {String} suffix
8163 * @param {Element} element
8164 */
8165 function getAttributeValue(suffix, element) {
8166 var attribute = 'data-clipboard-' + suffix;
8167
8168 if (!element.hasAttribute(attribute)) {
8169 return;
8170 }
8171
8172 return element.getAttribute(attribute);
8173 }
8174
8175 module.exports = Clipboard;
8176 });
8177
8178/***/ }),
8179/* 108 */
8180/***/ (function(module, exports, __webpack_require__) {
8181
8182 var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
8183 if (true) {
8184 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(109)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
8185 } else if (typeof exports !== "undefined") {
8186 factory(module, require('select'));
8187 } else {
8188 var mod = {
8189 exports: {}
8190 };
8191 factory(mod, global.select);
8192 global.clipboardAction = mod.exports;
8193 }
8194 })(this, function (module, _select) {
8195 'use strict';
8196
8197 var _select2 = _interopRequireDefault(_select);
8198
8199 function _interopRequireDefault(obj) {
8200 return obj && obj.__esModule ? obj : {
8201 default: obj
8202 };
8203 }
8204
8205 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
8206 return typeof obj;
8207 } : function (obj) {
8208 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
8209 };
8210
8211 function _classCallCheck(instance, Constructor) {
8212 if (!(instance instanceof Constructor)) {
8213 throw new TypeError("Cannot call a class as a function");
8214 }
8215 }
8216
8217 var _createClass = function () {
8218 function defineProperties(target, props) {
8219 for (var i = 0; i < props.length; i++) {
8220 var descriptor = props[i];
8221 descriptor.enumerable = descriptor.enumerable || false;
8222 descriptor.configurable = true;
8223 if ("value" in descriptor) descriptor.writable = true;
8224 Object.defineProperty(target, descriptor.key, descriptor);
8225 }
8226 }
8227
8228 return function (Constructor, protoProps, staticProps) {
8229 if (protoProps) defineProperties(Constructor.prototype, protoProps);
8230 if (staticProps) defineProperties(Constructor, staticProps);
8231 return Constructor;
8232 };
8233 }();
8234
8235 var ClipboardAction = function () {
8236 /**
8237 * @param {Object} options
8238 */
8239 function ClipboardAction(options) {
8240 _classCallCheck(this, ClipboardAction);
8241
8242 this.resolveOptions(options);
8243 this.initSelection();
8244 }
8245
8246 /**
8247 * Defines base properties passed from constructor.
8248 * @param {Object} options
8249 */
8250
8251
8252 _createClass(ClipboardAction, [{
8253 key: 'resolveOptions',
8254 value: function resolveOptions() {
8255 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
8256
8257 this.action = options.action;
8258 this.container = options.container;
8259 this.emitter = options.emitter;
8260 this.target = options.target;
8261 this.text = options.text;
8262 this.trigger = options.trigger;
8263
8264 this.selectedText = '';
8265 }
8266 }, {
8267 key: 'initSelection',
8268 value: function initSelection() {
8269 if (this.text) {
8270 this.selectFake();
8271 } else if (this.target) {
8272 this.selectTarget();
8273 }
8274 }
8275 }, {
8276 key: 'selectFake',
8277 value: function selectFake() {
8278 var _this = this;
8279
8280 var isRTL = document.documentElement.getAttribute('dir') == 'rtl';
8281
8282 this.removeFake();
8283
8284 this.fakeHandlerCallback = function () {
8285 return _this.removeFake();
8286 };
8287 this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;
8288
8289 this.fakeElem = document.createElement('textarea');
8290 // Prevent zooming on iOS
8291 this.fakeElem.style.fontSize = '12pt';
8292 // Reset box model
8293 this.fakeElem.style.border = '0';
8294 this.fakeElem.style.padding = '0';
8295 this.fakeElem.style.margin = '0';
8296 // Move element out of screen horizontally
8297 this.fakeElem.style.position = 'absolute';
8298 this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
8299 // Move element to the same position vertically
8300 var yPosition = window.pageYOffset || document.documentElement.scrollTop;
8301 this.fakeElem.style.top = yPosition + 'px';
8302
8303 this.fakeElem.setAttribute('readonly', '');
8304 this.fakeElem.value = this.text;
8305
8306 this.container.appendChild(this.fakeElem);
8307
8308 this.selectedText = (0, _select2.default)(this.fakeElem);
8309 this.copyText();
8310 }
8311 }, {
8312 key: 'removeFake',
8313 value: function removeFake() {
8314 if (this.fakeHandler) {
8315 this.container.removeEventListener('click', this.fakeHandlerCallback);
8316 this.fakeHandler = null;
8317 this.fakeHandlerCallback = null;
8318 }
8319
8320 if (this.fakeElem) {
8321 this.container.removeChild(this.fakeElem);
8322 this.fakeElem = null;
8323 }
8324 }
8325 }, {
8326 key: 'selectTarget',
8327 value: function selectTarget() {
8328 this.selectedText = (0, _select2.default)(this.target);
8329 this.copyText();
8330 }
8331 }, {
8332 key: 'copyText',
8333 value: function copyText() {
8334 var succeeded = void 0;
8335
8336 try {
8337 succeeded = document.execCommand(this.action);
8338 } catch (err) {
8339 succeeded = false;
8340 }
8341
8342 this.handleResult(succeeded);
8343 }
8344 }, {
8345 key: 'handleResult',
8346 value: function handleResult(succeeded) {
8347 this.emitter.emit(succeeded ? 'success' : 'error', {
8348 action: this.action,
8349 text: this.selectedText,
8350 trigger: this.trigger,
8351 clearSelection: this.clearSelection.bind(this)
8352 });
8353 }
8354 }, {
8355 key: 'clearSelection',
8356 value: function clearSelection() {
8357 if (this.trigger) {
8358 this.trigger.focus();
8359 }
8360
8361 window.getSelection().removeAllRanges();
8362 }
8363 }, {
8364 key: 'destroy',
8365 value: function destroy() {
8366 this.removeFake();
8367 }
8368 }, {
8369 key: 'action',
8370 set: function set() {
8371 var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
8372
8373 this._action = action;
8374
8375 if (this._action !== 'copy' && this._action !== 'cut') {
8376 throw new Error('Invalid "action" value, use either "copy" or "cut"');
8377 }
8378 },
8379 get: function get() {
8380 return this._action;
8381 }
8382 }, {
8383 key: 'target',
8384 set: function set(target) {
8385 if (target !== undefined) {
8386 if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {
8387 if (this.action === 'copy' && target.hasAttribute('disabled')) {
8388 throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
8389 }
8390
8391 if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
8392 throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
8393 }
8394
8395 this._target = target;
8396 } else {
8397 throw new Error('Invalid "target" value, use a valid Element');
8398 }
8399 }
8400 },
8401 get: function get() {
8402 return this._target;
8403 }
8404 }]);
8405
8406 return ClipboardAction;
8407 }();
8408
8409 module.exports = ClipboardAction;
8410 });
8411
8412/***/ }),
8413/* 109 */
8414/***/ (function(module, exports) {
8415
8416 function select(element) {
8417 var selectedText;
8418
8419 if (element.nodeName === 'SELECT') {
8420 element.focus();
8421
8422 selectedText = element.value;
8423 }
8424 else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
8425 var isReadOnly = element.hasAttribute('readonly');
8426
8427 if (!isReadOnly) {
8428 element.setAttribute('readonly', '');
8429 }
8430
8431 element.select();
8432 element.setSelectionRange(0, element.value.length);
8433
8434 if (!isReadOnly) {
8435 element.removeAttribute('readonly');
8436 }
8437
8438 selectedText = element.value;
8439 }
8440 else {
8441 if (element.hasAttribute('contenteditable')) {
8442 element.focus();
8443 }
8444
8445 var selection = window.getSelection();
8446 var range = document.createRange();
8447
8448 range.selectNodeContents(element);
8449 selection.removeAllRanges();
8450 selection.addRange(range);
8451
8452 selectedText = selection.toString();
8453 }
8454
8455 return selectedText;
8456 }
8457
8458 module.exports = select;
8459
8460
8461/***/ }),
8462/* 110 */
8463/***/ (function(module, exports) {
8464
8465 function E () {
8466 // Keep this empty so it's easier to inherit from
8467 // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
8468 }
8469
8470 E.prototype = {
8471 on: function (name, callback, ctx) {
8472 var e = this.e || (this.e = {});
8473
8474 (e[name] || (e[name] = [])).push({
8475 fn: callback,
8476 ctx: ctx
8477 });
8478
8479 return this;
8480 },
8481
8482 once: function (name, callback, ctx) {
8483 var self = this;
8484 function listener () {
8485 self.off(name, listener);
8486 callback.apply(ctx, arguments);
8487 };
8488
8489 listener._ = callback
8490 return this.on(name, listener, ctx);
8491 },
8492
8493 emit: function (name) {
8494 var data = [].slice.call(arguments, 1);
8495 var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
8496 var i = 0;
8497 var len = evtArr.length;
8498
8499 for (i; i < len; i++) {
8500 evtArr[i].fn.apply(evtArr[i].ctx, data);
8501 }
8502
8503 return this;
8504 },
8505
8506 off: function (name, callback) {
8507 var e = this.e || (this.e = {});
8508 var evts = e[name];
8509 var liveEvents = [];
8510
8511 if (evts && callback) {
8512 for (var i = 0, len = evts.length; i < len; i++) {
8513 if (evts[i].fn !== callback && evts[i].fn._ !== callback)
8514 liveEvents.push(evts[i]);
8515 }
8516 }
8517
8518 // Remove event from queue to prevent memory leak
8519 // Suggested by https://github.com/lazd
8520 // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
8521
8522 (liveEvents.length)
8523 ? e[name] = liveEvents
8524 : delete e[name];
8525
8526 return this;
8527 }
8528 };
8529
8530 module.exports = E;
8531
8532
8533/***/ }),
8534/* 111 */
8535/***/ (function(module, exports, __webpack_require__) {
8536
8537 var is = __webpack_require__(112);
8538 var delegate = __webpack_require__(113);
8539
8540 /**
8541 * Validates all params and calls the right
8542 * listener function based on its target type.
8543 *
8544 * @param {String|HTMLElement|HTMLCollection|NodeList} target
8545 * @param {String} type
8546 * @param {Function} callback
8547 * @return {Object}
8548 */
8549 function listen(target, type, callback) {
8550 if (!target && !type && !callback) {
8551 throw new Error('Missing required arguments');
8552 }
8553
8554 if (!is.string(type)) {
8555 throw new TypeError('Second argument must be a String');
8556 }
8557
8558 if (!is.fn(callback)) {
8559 throw new TypeError('Third argument must be a Function');
8560 }
8561
8562 if (is.node(target)) {
8563 return listenNode(target, type, callback);
8564 }
8565 else if (is.nodeList(target)) {
8566 return listenNodeList(target, type, callback);
8567 }
8568 else if (is.string(target)) {
8569 return listenSelector(target, type, callback);
8570 }
8571 else {
8572 throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
8573 }
8574 }
8575
8576 /**
8577 * Adds an event listener to a HTML element
8578 * and returns a remove listener function.
8579 *
8580 * @param {HTMLElement} node
8581 * @param {String} type
8582 * @param {Function} callback
8583 * @return {Object}
8584 */
8585 function listenNode(node, type, callback) {
8586 node.addEventListener(type, callback);
8587
8588 return {
8589 destroy: function() {
8590 node.removeEventListener(type, callback);
8591 }
8592 }
8593 }
8594
8595 /**
8596 * Add an event listener to a list of HTML elements
8597 * and returns a remove listener function.
8598 *
8599 * @param {NodeList|HTMLCollection} nodeList
8600 * @param {String} type
8601 * @param {Function} callback
8602 * @return {Object}
8603 */
8604 function listenNodeList(nodeList, type, callback) {
8605 Array.prototype.forEach.call(nodeList, function(node) {
8606 node.addEventListener(type, callback);
8607 });
8608
8609 return {
8610 destroy: function() {
8611 Array.prototype.forEach.call(nodeList, function(node) {
8612 node.removeEventListener(type, callback);
8613 });
8614 }
8615 }
8616 }
8617
8618 /**
8619 * Add an event listener to a selector
8620 * and returns a remove listener function.
8621 *
8622 * @param {String} selector
8623 * @param {String} type
8624 * @param {Function} callback
8625 * @return {Object}
8626 */
8627 function listenSelector(selector, type, callback) {
8628 return delegate(document.body, selector, type, callback);
8629 }
8630
8631 module.exports = listen;
8632
8633
8634/***/ }),
8635/* 112 */
8636/***/ (function(module, exports) {
8637
8638 /**
8639 * Check if argument is a HTML element.
8640 *
8641 * @param {Object} value
8642 * @return {Boolean}
8643 */
8644 exports.node = function(value) {
8645 return value !== undefined
8646 && value instanceof HTMLElement
8647 && value.nodeType === 1;
8648 };
8649
8650 /**
8651 * Check if argument is a list of HTML elements.
8652 *
8653 * @param {Object} value
8654 * @return {Boolean}
8655 */
8656 exports.nodeList = function(value) {
8657 var type = Object.prototype.toString.call(value);
8658
8659 return value !== undefined
8660 && (type === '[object NodeList]' || type === '[object HTMLCollection]')
8661 && ('length' in value)
8662 && (value.length === 0 || exports.node(value[0]));
8663 };
8664
8665 /**
8666 * Check if argument is a string.
8667 *
8668 * @param {Object} value
8669 * @return {Boolean}
8670 */
8671 exports.string = function(value) {
8672 return typeof value === 'string'
8673 || value instanceof String;
8674 };
8675
8676 /**
8677 * Check if argument is a function.
8678 *
8679 * @param {Object} value
8680 * @return {Boolean}
8681 */
8682 exports.fn = function(value) {
8683 var type = Object.prototype.toString.call(value);
8684
8685 return type === '[object Function]';
8686 };
8687
8688
8689/***/ }),
8690/* 113 */
8691/***/ (function(module, exports, __webpack_require__) {
8692
8693 var closest = __webpack_require__(114);
8694
8695 /**
8696 * Delegates event to a selector.
8697 *
8698 * @param {Element} element
8699 * @param {String} selector
8700 * @param {String} type
8701 * @param {Function} callback
8702 * @param {Boolean} useCapture
8703 * @return {Object}
8704 */
8705 function delegate(element, selector, type, callback, useCapture) {
8706 var listenerFn = listener.apply(this, arguments);
8707
8708 element.addEventListener(type, listenerFn, useCapture);
8709
8710 return {
8711 destroy: function() {
8712 element.removeEventListener(type, listenerFn, useCapture);
8713 }
8714 }
8715 }
8716
8717 /**
8718 * Finds closest match and invokes callback.
8719 *
8720 * @param {Element} element
8721 * @param {String} selector
8722 * @param {String} type
8723 * @param {Function} callback
8724 * @return {Function}
8725 */
8726 function listener(element, selector, type, callback) {
8727 return function(e) {
8728 e.delegateTarget = closest(e.target, selector);
8729
8730 if (e.delegateTarget) {
8731 callback.call(element, e);
8732 }
8733 }
8734 }
8735
8736 module.exports = delegate;
8737
8738
8739/***/ }),
8740/* 114 */
8741/***/ (function(module, exports) {
8742
8743 var DOCUMENT_NODE_TYPE = 9;
8744
8745 /**
8746 * A polyfill for Element.matches()
8747 */
8748 if (typeof Element !== 'undefined' && !Element.prototype.matches) {
8749 var proto = Element.prototype;
8750
8751 proto.matches = proto.matchesSelector ||
8752 proto.mozMatchesSelector ||
8753 proto.msMatchesSelector ||
8754 proto.oMatchesSelector ||
8755 proto.webkitMatchesSelector;
8756 }
8757
8758 /**
8759 * Finds the closest parent that matches a selector.
8760 *
8761 * @param {Element} element
8762 * @param {String} selector
8763 * @return {Function}
8764 */
8765 function closest (element, selector) {
8766 while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
8767 if (typeof element.matches === 'function' &&
8768 element.matches(selector)) {
8769 return element;
8770 }
8771 element = element.parentNode;
8772 }
8773 }
8774
8775 module.exports = closest;
8776
8777
8778/***/ }),
8779/* 115 */
8780/***/ (function(module, exports, __webpack_require__) {
8781
8782 'use strict';
8783
8784 Object.defineProperty(exports, "__esModule", {
8785 value: true
8786 });
8787
8788 var _Icon = __webpack_require__(116);
8789
8790 var _Icon2 = _interopRequireDefault(_Icon);
8791
8792 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8793
8794 exports["default"] = _Icon2["default"];
8795 module.exports = exports['default'];
8796
8797/***/ }),
8798/* 116 */
8799/***/ (function(module, exports, __webpack_require__) {
8800
8801 'use strict';
8802
8803 Object.defineProperty(exports, "__esModule", {
8804 value: true
8805 });
8806
8807 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; };
8808
8809 var _react = __webpack_require__(4);
8810
8811 var _react2 = _interopRequireDefault(_react);
8812
8813 var _classnames = __webpack_require__(3);
8814
8815 var _classnames2 = _interopRequireDefault(_classnames);
8816
8817 var _propTypes = __webpack_require__(5);
8818
8819 var _propTypes2 = _interopRequireDefault(_propTypes);
8820
8821 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8822
8823 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; }
8824
8825 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; }
8826
8827 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8828
8829 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; }
8830
8831 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); }
8832
8833 var propTypes = {
8834 type: _propTypes2["default"].string
8835
8836 };
8837 /**
8838 * badge 默认显示内容1
8839 */
8840 var defaultProps = {
8841 clsPrefix: 'uf'
8842 };
8843
8844 var Icon = function (_Component) {
8845 _inherits(Icon, _Component);
8846
8847 function Icon(props) {
8848 _classCallCheck(this, Icon);
8849
8850 return _possibleConstructorReturn(this, _Component.call(this, props));
8851 }
8852
8853 Icon.prototype.render = function render() {
8854 var _props = this.props,
8855 type = _props.type,
8856 className = _props.className,
8857 clsPrefix = _props.clsPrefix,
8858 others = _objectWithoutProperties(_props, ['type', 'className', 'clsPrefix']);
8859
8860 var clsObj = {};
8861
8862 var classNames = (0, _classnames2["default"])(clsPrefix, type);
8863
8864 return _react2["default"].createElement('i', _extends({}, others, { className: (0, _classnames2["default"])(classNames, className) }));
8865 };
8866
8867 return Icon;
8868 }(_react.Component);
8869
8870 Icon.defaultProps = defaultProps;
8871 Icon.propTypes = propTypes;
8872
8873 exports["default"] = Icon;
8874 module.exports = exports['default'];
8875
8876/***/ }),
8877/* 117 */
8878/***/ (function(module, exports, __webpack_require__) {
8879
8880 'use strict';
8881
8882 Object.defineProperty(exports, "__esModule", {
8883 value: true
8884 });
8885
8886 var _Tooltip = __webpack_require__(118);
8887
8888 var _Tooltip2 = _interopRequireDefault(_Tooltip);
8889
8890 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8891
8892 exports["default"] = _Tooltip2["default"];
8893 module.exports = exports['default'];
8894
8895/***/ }),
8896/* 118 */
8897/***/ (function(module, exports, __webpack_require__) {
8898
8899 'use strict';
8900
8901 Object.defineProperty(exports, "__esModule", {
8902 value: true
8903 });
8904
8905 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; };
8906
8907 var _classnames = __webpack_require__(3);
8908
8909 var _classnames2 = _interopRequireDefault(_classnames);
8910
8911 var _react = __webpack_require__(4);
8912
8913 var _react2 = _interopRequireDefault(_react);
8914
8915 var _propTypes = __webpack_require__(5);
8916
8917 var _propTypes2 = _interopRequireDefault(_propTypes);
8918
8919 var _OverlayTrigger = __webpack_require__(119);
8920
8921 var _OverlayTrigger2 = _interopRequireDefault(_OverlayTrigger);
8922
8923 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
8924
8925 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; }
8926
8927 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; }
8928
8929 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; }
8930
8931 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8932
8933 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; }
8934
8935 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); }
8936
8937 var propTypes = {
8938 /**
8939 * @required
8940 */
8941 id: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]),
8942 inverse: _propTypes2["default"].bool,
8943 /**
8944 * 相对目标元素显示上下左右的位置
8945 */
8946 placement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']),
8947
8948 /**
8949 * 绝对定位上边距.
8950 */
8951 positionTop: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]),
8952 /**
8953 * 绝对定位左边距
8954 */
8955 positionLeft: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]),
8956
8957 /**
8958 * 与目标Top的距离
8959 */
8960 arrowOffsetTop: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]),
8961 /**
8962 * 与目标Left的距离
8963 */
8964 arrowOffsetLeft: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string])
8965 };
8966
8967 var defaultProps = {
8968 placement: 'right',
8969 clsPrefix: 'u-tooltip'
8970 };
8971
8972 var Tooltip = function (_React$Component) {
8973 _inherits(Tooltip, _React$Component);
8974
8975 function Tooltip() {
8976 _classCallCheck(this, Tooltip);
8977
8978 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
8979 }
8980
8981 Tooltip.prototype.render = function render() {
8982 var _classes;
8983
8984 var _props = this.props,
8985 placement = _props.placement,
8986 positionTop = _props.positionTop,
8987 positionLeft = _props.positionLeft,
8988 arrowOffsetTop = _props.arrowOffsetTop,
8989 arrowOffsetLeft = _props.arrowOffsetLeft,
8990 className = _props.className,
8991 style = _props.style,
8992 children = _props.children,
8993 clsPrefix = _props.clsPrefix,
8994 overlay = _props.overlay,
8995 inverse = _props.inverse,
8996 others = _objectWithoutProperties(_props, ['placement', 'positionTop', 'positionLeft', 'arrowOffsetTop', 'arrowOffsetLeft', 'className', 'style', 'children', 'clsPrefix', 'overlay', 'inverse']);
8997
8998 var classes = (_classes = {}, _defineProperty(_classes, placement, true), _defineProperty(_classes, 'inverse', inverse), _classes);
8999
9000 var outerStyle = _extends({
9001 top: positionTop,
9002 left: positionLeft
9003 }, style);
9004
9005 var arrowStyle = {
9006 top: arrowOffsetTop,
9007 left: arrowOffsetLeft
9008 };
9009
9010 var classNames = (0, _classnames2["default"])(clsPrefix, classes);
9011
9012 var overlayNode = _react2["default"].createElement(
9013 'div',
9014 {
9015 className: (0, _classnames2["default"])(className, classNames),
9016 style: outerStyle
9017 },
9018 _react2["default"].createElement('div', { className: 'tooltip-arrow', style: arrowStyle }),
9019 _react2["default"].createElement(
9020 'div',
9021 { className: 'tooltip-inner' },
9022 overlay
9023 )
9024 );
9025
9026 return _react2["default"].createElement(
9027 _OverlayTrigger2["default"],
9028 _extends({ placement: placement }, others, { overlay: overlayNode }),
9029 children
9030 );
9031 };
9032
9033 return Tooltip;
9034 }(_react2["default"].Component);
9035
9036 Tooltip.propTypes = propTypes;
9037 Tooltip.defaultProps = defaultProps;
9038
9039 exports["default"] = Tooltip;
9040 module.exports = exports['default'];
9041
9042/***/ }),
9043/* 119 */
9044/***/ (function(module, exports, __webpack_require__) {
9045
9046 'use strict';
9047
9048 Object.defineProperty(exports, "__esModule", {
9049 value: true
9050 });
9051
9052 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; };
9053
9054 var _contains = __webpack_require__(120);
9055
9056 var _contains2 = _interopRequireDefault(_contains);
9057
9058 var _react = __webpack_require__(4);
9059
9060 var _react2 = _interopRequireDefault(_react);
9061
9062 var _propTypes = __webpack_require__(5);
9063
9064 var _propTypes2 = _interopRequireDefault(_propTypes);
9065
9066 var _reactDom = __webpack_require__(12);
9067
9068 var _reactDom2 = _interopRequireDefault(_reactDom);
9069
9070 var _warning = __webpack_require__(31);
9071
9072 var _warning2 = _interopRequireDefault(_warning);
9073
9074 var _Portal = __webpack_require__(121);
9075
9076 var _Portal2 = _interopRequireDefault(_Portal);
9077
9078 var _Overlay = __webpack_require__(125);
9079
9080 var _Overlay2 = _interopRequireDefault(_Overlay);
9081
9082 var _createChainedFunction = __webpack_require__(138);
9083
9084 var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
9085
9086 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9087
9088 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; }
9089
9090 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; }
9091
9092 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9093
9094 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; }
9095
9096 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); }
9097
9098 var isReact16 = _reactDom2["default"].createPortal !== undefined;
9099 var createPortal = isReact16 ? _reactDom2["default"].createPortal : _reactDom2["default"].unstable_renderSubtreeIntoContainer;
9100
9101 /**
9102 * 检查值是属于这个值,还是等于这个值
9103 *
9104 * @param {string} one
9105 * @param {string|array} of
9106 * @returns {boolean}
9107 */
9108 function isOneOf(one, of) {
9109 if (Array.isArray(of)) {
9110 return of.indexOf(one) >= 0;
9111 }
9112 return one === of;
9113 }
9114
9115 var triggerType = _propTypes2["default"].oneOf(['click', 'hover', 'focus']);
9116
9117 var propTypes = _extends({}, _Portal2["default"].propTypes, _Overlay2["default"].propTypes, {
9118
9119 /**
9120 * 指定哪些操作或操作触发叠加层可见性
9121 */
9122 trigger: _propTypes2["default"].oneOfType([triggerType, _propTypes2["default"].arrayOf(triggerType)]),
9123
9124 /**
9125 * 显示和隐藏覆盖一旦触发的毫秒延迟量
9126 */
9127 delay: _propTypes2["default"].number,
9128 /**
9129 * 触发后显示叠加层之前的延迟毫秒
9130 */
9131 delayShow: _propTypes2["default"].number,
9132 /**
9133 * 触发后隐藏叠加层的延迟毫秒
9134 */
9135 delayHide: _propTypes2["default"].number,
9136
9137 // FIXME: This should be `defaultShow`.
9138 /**
9139 * 覆盖的初始可见性状态。对于更细微的可见性控制,请考虑直接使用覆盖组件。
9140 */
9141 defaultOverlayShown: _propTypes2["default"].bool,
9142
9143 /**
9144 * 要覆盖在目标旁边的元素或文本。
9145 */
9146 overlay: _propTypes2["default"].node.isRequired,
9147
9148 /**
9149 * @private
9150 */
9151 onBlur: _propTypes2["default"].func,
9152 /**
9153 * @private
9154 */
9155 onClick: _propTypes2["default"].func,
9156 /**
9157 * @private
9158 */
9159 onFocus: _propTypes2["default"].func,
9160 /**
9161 * @private
9162 */
9163 onMouseOut: _propTypes2["default"].func,
9164 /**
9165 * @private
9166 */
9167 onMouseOver: _propTypes2["default"].func,
9168
9169 // Overridden props from `<Overlay>`.
9170 /**
9171 * @private
9172 */
9173 target: _propTypes2["default"].oneOf([null]),
9174 /**
9175 * @private
9176 */
9177 onHide: _propTypes2["default"].oneOf([null]),
9178 /**
9179 * @private
9180 */
9181 show: _propTypes2["default"].oneOf([null])
9182 });
9183
9184 var defaultProps = {
9185 defaultOverlayShown: false,
9186 trigger: ['hover', 'focus']
9187 };
9188
9189 var OverlayTrigger = function (_Component) {
9190 _inherits(OverlayTrigger, _Component);
9191
9192 function OverlayTrigger(props, context) {
9193 _classCallCheck(this, OverlayTrigger);
9194
9195 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
9196
9197 _this.handleToggle = _this.handleToggle.bind(_this);
9198 _this.handleDelayedShow = _this.handleDelayedShow.bind(_this);
9199 _this.handleDelayedHide = _this.handleDelayedHide.bind(_this);
9200 _this.handleHide = _this.handleHide.bind(_this);
9201 _this.makeOverlay = _this.makeOverlay.bind(_this);
9202
9203 _this.handleMouseOver = function (e) {
9204 return _this.handleMouseOverOut(_this.handleDelayedShow, e);
9205 };
9206 _this.handleMouseOut = function (e) {
9207 return _this.handleMouseOverOut(_this.handleDelayedHide, e);
9208 };
9209
9210 _this._mountNode = null;
9211
9212 _this.state = {
9213 show: props.defaultOverlayShown
9214 };
9215 return _this;
9216 }
9217
9218 OverlayTrigger.prototype.componentDidMount = function componentDidMount() {
9219 this._mountNode = document.createElement('div');
9220 !isReact16 && this.renderOverlay();
9221 };
9222
9223 OverlayTrigger.prototype.componentDidUpdate = function componentDidUpdate() {
9224 !isReact16 && this.renderOverlay();
9225 };
9226
9227 OverlayTrigger.prototype.componentWillUnmount = function componentWillUnmount() {
9228 !isReact16 && _reactDom2["default"].unmountComponentAtNode(this._mountNode);
9229 this._mountNode = null;
9230
9231 clearTimeout(this._hoverShowDelay);
9232 clearTimeout(this._hoverHideDelay);
9233 };
9234
9235 OverlayTrigger.prototype.handleToggle = function handleToggle() {
9236 if (this.state.show) {
9237 this.hide();
9238 } else {
9239 this.show();
9240 }
9241 };
9242
9243 OverlayTrigger.prototype.handleDelayedShow = function handleDelayedShow() {
9244 var _this2 = this;
9245
9246 if (this._hoverHideDelay != null) {
9247 clearTimeout(this._hoverHideDelay);
9248 this._hoverHideDelay = null;
9249 return;
9250 }
9251
9252 if (this.state.show || this._hoverShowDelay != null) {
9253 return;
9254 }
9255
9256 var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay;
9257
9258 if (!delay) {
9259 this.show();
9260 return;
9261 }
9262
9263 this._hoverShowDelay = setTimeout(function () {
9264 _this2._hoverShowDelay = null;
9265 _this2.show();
9266 }, delay);
9267 };
9268
9269 OverlayTrigger.prototype.handleDelayedHide = function handleDelayedHide() {
9270 var _this3 = this;
9271
9272 if (this._hoverShowDelay != null) {
9273 clearTimeout(this._hoverShowDelay);
9274 this._hoverShowDelay = null;
9275 return;
9276 }
9277
9278 if (!this.state.show || this._hoverHideDelay != null) {
9279 return;
9280 }
9281
9282 var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay;
9283
9284 if (!delay) {
9285 this.hide();
9286 return;
9287 }
9288
9289 this._hoverHideDelay = setTimeout(function () {
9290 _this3._hoverHideDelay = null;
9291 _this3.hide();
9292 }, delay);
9293 };
9294
9295 // 简单实现mouseEnter和mouseLeave。
9296 // React的内置版本是有问题的:https://github.com/facebook/react/issues/4251
9297 //在触发器被禁用的情况下,mouseOut / Over可能导致闪烁
9298 //从一个子元素移动到另一个子元素。
9299
9300
9301 OverlayTrigger.prototype.handleMouseOverOut = function handleMouseOverOut(handler, e) {
9302 var target = e.currentTarget;
9303 var related = e.relatedTarget || e.nativeEvent.toElement;
9304
9305 if (!related || related !== target && !(0, _contains2["default"])(target, related)) {
9306 handler(e);
9307 }
9308 };
9309
9310 OverlayTrigger.prototype.handleHide = function handleHide() {
9311 this.hide();
9312 };
9313
9314 OverlayTrigger.prototype.show = function show() {
9315 this.setState({ show: true });
9316 };
9317
9318 OverlayTrigger.prototype.hide = function hide() {
9319 this.setState({ show: false });
9320 };
9321
9322 OverlayTrigger.prototype.makeOverlay = function makeOverlay(overlay, props) {
9323 return _react2["default"].createElement(
9324 _Overlay2["default"],
9325 _extends({}, props, {
9326 show: this.state.show,
9327 onHide: this.handleHide,
9328 target: this
9329 }),
9330 overlay
9331 );
9332 };
9333
9334 OverlayTrigger.prototype.renderOverlay = function renderOverlay() {
9335 _reactDom2["default"].unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);
9336 };
9337
9338 OverlayTrigger.prototype.render = function render() {
9339 var _props = this.props,
9340 trigger = _props.trigger,
9341 overlay = _props.overlay,
9342 children = _props.children,
9343 onBlur = _props.onBlur,
9344 onClick = _props.onClick,
9345 onFocus = _props.onFocus,
9346 onMouseOut = _props.onMouseOut,
9347 onMouseOver = _props.onMouseOver,
9348 props = _objectWithoutProperties(_props, ['trigger', 'overlay', 'children', 'onBlur', 'onClick', 'onFocus', 'onMouseOut', 'onMouseOver']);
9349
9350 delete props.delay;
9351 delete props.delayShow;
9352 delete props.delayHide;
9353 delete props.defaultOverlayShown;
9354
9355 var child = _react2["default"].Children.only(children);
9356 var childProps = child.props;
9357
9358 var triggerProps = {
9359 'aria-describedby': overlay.props.id
9360 };
9361
9362 // FIXME: 这里用于传递这个组件上的处理程序的逻辑是不一致的。我们不应该通过任何这些道具。
9363
9364 triggerProps.onClick = (0, _createChainedFunction2["default"])(childProps.onClick, onClick);
9365
9366 if (isOneOf('click', trigger)) {
9367 triggerProps.onClick = (0, _createChainedFunction2["default"])(triggerProps.onClick, this.handleToggle);
9368 }
9369
9370 if (isOneOf('hover', trigger)) {
9371 (0, _warning2["default"])(!(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.');
9372
9373 triggerProps.onMouseOver = (0, _createChainedFunction2["default"])(childProps.onMouseOver, onMouseOver, this.handleMouseOver);
9374 triggerProps.onMouseOut = (0, _createChainedFunction2["default"])(childProps.onMouseOut, onMouseOut, this.handleMouseOut);
9375 }
9376
9377 if (isOneOf('focus', trigger)) {
9378 triggerProps.onFocus = (0, _createChainedFunction2["default"])(childProps.onFocus, onFocus, this.handleDelayedShow);
9379 triggerProps.onBlur = (0, _createChainedFunction2["default"])(childProps.onBlur, onBlur, this.handleDelayedHide);
9380 }
9381
9382 this._overlay = this.makeOverlay(overlay, props);
9383
9384 if (!isReact16) {
9385 return (0, _react.cloneElement)(child, triggerProps);
9386 }
9387 triggerProps.key = 'overlay';
9388
9389 var portal = _react2["default"].createElement(
9390 _Portal2["default"],
9391 {
9392 key: 'portal',
9393 container: props.container },
9394 this._overlay
9395 );
9396
9397 return [(0, _react.cloneElement)(child, triggerProps), portal];
9398 };
9399
9400 return OverlayTrigger;
9401 }(_react.Component);
9402
9403 OverlayTrigger.propTypes = propTypes;
9404 OverlayTrigger.defaultProps = defaultProps;
9405
9406 exports["default"] = OverlayTrigger;
9407 module.exports = exports['default'];
9408
9409/***/ }),
9410/* 120 */
9411/***/ (function(module, exports, __webpack_require__) {
9412
9413 'use strict';
9414
9415 Object.defineProperty(exports, "__esModule", {
9416 value: true
9417 });
9418
9419 var _inDOM = __webpack_require__(14);
9420
9421 var _inDOM2 = _interopRequireDefault(_inDOM);
9422
9423 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9424
9425 exports.default = function () {
9426 // HTML DOM and SVG DOM may have different support levels,
9427 // so we need to check on context instead of a document root element.
9428 return _inDOM2.default ? function (context, node) {
9429 if (context.contains) {
9430 return context.contains(node);
9431 } else if (context.compareDocumentPosition) {
9432 return context === node || !!(context.compareDocumentPosition(node) & 16);
9433 } else {
9434 return fallback(context, node);
9435 }
9436 } : fallback;
9437 }();
9438
9439 function fallback(context, node) {
9440 if (node) do {
9441 if (node === context) return true;
9442 } while (node = node.parentNode);
9443
9444 return false;
9445 }
9446 module.exports = exports['default'];
9447
9448/***/ }),
9449/* 121 */
9450/***/ (function(module, exports, __webpack_require__) {
9451
9452 'use strict';
9453
9454 Object.defineProperty(exports, "__esModule", {
9455 value: true
9456 });
9457
9458 var _react = __webpack_require__(4);
9459
9460 var _react2 = _interopRequireDefault(_react);
9461
9462 var _reactDom = __webpack_require__(12);
9463
9464 var _reactDom2 = _interopRequireDefault(_reactDom);
9465
9466 var _propTypes = __webpack_require__(5);
9467
9468 var _propTypes2 = _interopRequireDefault(_propTypes);
9469
9470 var _ownerDocument = __webpack_require__(122);
9471
9472 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
9473
9474 var _getContainer = __webpack_require__(124);
9475
9476 var _getContainer2 = _interopRequireDefault(_getContainer);
9477
9478 var _tinperBeeCore = __webpack_require__(26);
9479
9480 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9481
9482 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; }
9483
9484 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9485
9486 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; }
9487
9488 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); }
9489
9490 var isReact16 = _reactDom2["default"].createPortal !== undefined;
9491 var createPortal = isReact16 ? _reactDom2["default"].createPortal : _reactDom2["default"].unstable_renderSubtreeIntoContainer;
9492
9493 var propTypes = {
9494 /**
9495 * 存放子组件的容器
9496 */
9497 container: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func])
9498 };
9499
9500 var defaultProps = {};
9501
9502 /**
9503 * Portal组件是将子组件渲染
9504 */
9505
9506 var Portal = function (_Component) {
9507 _inherits(Portal, _Component);
9508
9509 function Portal(props) {
9510 _classCallCheck(this, Portal);
9511
9512 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
9513
9514 _this.getMountNode = _this.getMountNode.bind(_this);
9515 _this.getOverlayDOMNode = _this.getOverlayDOMNode.bind(_this);
9516 _this.mountOverlayTarget = _this.mountOverlayTarget.bind(_this);
9517 _this.unmountOverlayTarget = _this.unmountOverlayTarget.bind(_this);
9518 _this.renderOverlay = _this.renderOverlay.bind(_this);
9519 _this.unrenderOverlay = _this.unrenderOverlay.bind(_this);
9520
9521 _this.overlayTarget = isReact16 ? document.createElement('div') : null;
9522 return _this;
9523 }
9524
9525 Portal.prototype.componentDidMount = function componentDidMount() {
9526 if (isReact16) {
9527 this.portalContainerNode = (0, _getContainer2["default"])(this.props.container, (0, _ownerDocument2["default"])(this).body);
9528 this.portalContainerNode.appendChild(this.overlayTarget);
9529 } else {
9530 this.renderOverlay();
9531 }
9532
9533 this.mounted = true;
9534 };
9535
9536 Portal.prototype.componentDidUpdate = function componentDidUpdate() {
9537 if (isReact16) {
9538 var overlay = !this.props.children ? null : _react2["default"].Children.only(this.props.children);
9539 if (overlay === null) {
9540 this.unrenderOverlay();
9541 this.unmountOverlayTarget();
9542 } else {}
9543 } else {
9544 this.renderOverlay();
9545 }
9546 };
9547 //this._overlayTarget为当前的要添加的子组件, this._portalContainerNode要添加组件的容器元素
9548
9549
9550 Portal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
9551 if (this.overlayTarget && nextProps.container !== this.props.container) {
9552 this.portalContainerNode.removeChild(this.overlayTarget);
9553 this.portalContainerNode = (0, _getContainer2["default"])(nextProps.container, (0, _ownerDocument2["default"])(this).body);
9554 this.portalContainerNode.appendChild(this.overlayTarget);
9555 }
9556 };
9557
9558 Portal.prototype.componentWillUnmount = function componentWillUnmount() {
9559 this.unrenderOverlay();
9560 this.unmountOverlayTarget();
9561
9562 this.mounted = false;
9563 };
9564
9565 Portal.prototype.getMountNode = function getMountNode() {
9566 return this.overlayTarget;
9567 };
9568
9569 Portal.prototype.getOverlayDOMNode = function getOverlayDOMNode() {
9570 if (!this.mounted) {
9571 throw new Error('getOverlayDOMNode(): A component must be mounted to have a DOM node.');
9572 }
9573
9574 if (this.overlayInstance) {
9575 return _reactDom2["default"].findDOMNode(this.overlayInstance);
9576 }
9577
9578 return null;
9579 };
9580
9581 /**
9582 * 如果要添加的子组件不存在,就将div添加到要添加容器的DOM中;
9583 */
9584
9585 Portal.prototype.mountOverlayTarget = function mountOverlayTarget() {
9586 if (!this.overlayTarget) {
9587 this.overlayTarget = document.createElement('div');
9588 this.portalContainerNode = (0, _getContainer2["default"])(this.props.container, (0, _ownerDocument2["default"])(this).body);
9589 this.portalContainerNode.appendChild(this.overlayTarget);
9590 }
9591 };
9592 /**
9593 * 将要添加的子元素从容器中移除,并把变量置为null
9594 */
9595
9596
9597 Portal.prototype.unmountOverlayTarget = function unmountOverlayTarget() {
9598 if (this.overlayTarget) {
9599 this.portalContainerNode.removeChild(this.overlayTarget);
9600 this.overlayTarget = null;
9601 }
9602 this.portalContainerNode = null;
9603 };
9604 /**
9605 * 手动渲染_overlayTarget
9606 */
9607
9608
9609 Portal.prototype.renderOverlay = function renderOverlay() {
9610
9611 var overlay = !this.props.children ? null : _react2["default"].Children.only(this.props.children);
9612
9613 // Save reference for future access.
9614 if (overlay !== null) {
9615 this.mountOverlayTarget();
9616 this.overlayInstance = _reactDom2["default"].unstable_renderSubtreeIntoContainer(this, overlay, this.overlayTarget);
9617 } else {
9618 // Unrender if the component is null for transitions to null
9619 this.unrenderOverlay();
9620 this.unmountOverlayTarget();
9621 }
9622 };
9623 /**
9624 * 销毁_overlayTarget组件。并把_overlayInstance置为null
9625 */
9626
9627
9628 Portal.prototype.unrenderOverlay = function unrenderOverlay() {
9629 if (this.overlayTarget) {
9630 !isReact16 && _reactDom2["default"].unmountComponentAtNode(this.overlayTarget);
9631 this.overlayInstance = null;
9632 }
9633 };
9634
9635 Portal.prototype.render = function render() {
9636 if (!isReact16) {
9637 return null;
9638 }
9639
9640 var overlay = !this.props.children ? null : _react2["default"].Children.only(this.props.children);
9641
9642 return _reactDom2["default"].createPortal(overlay, this.overlayTarget);
9643 };
9644
9645 return Portal;
9646 }(_react.Component);
9647
9648 ;
9649
9650 Portal.propTypes = propTypes;
9651 Portal.defaultProps = defaultProps;
9652
9653 exports["default"] = Portal;
9654 module.exports = exports['default'];
9655
9656/***/ }),
9657/* 122 */
9658/***/ (function(module, exports, __webpack_require__) {
9659
9660 'use strict';
9661
9662 Object.defineProperty(exports, "__esModule", {
9663 value: true
9664 });
9665
9666 exports["default"] = function (componentOrElement) {
9667 return (0, _ownerDocument2["default"])(_reactDom2["default"].findDOMNode(componentOrElement));
9668 };
9669
9670 var _reactDom = __webpack_require__(12);
9671
9672 var _reactDom2 = _interopRequireDefault(_reactDom);
9673
9674 var _ownerDocument = __webpack_require__(123);
9675
9676 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
9677
9678 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9679
9680 module.exports = exports['default'];
9681
9682/***/ }),
9683/* 123 */
9684/***/ (function(module, exports) {
9685
9686 "use strict";
9687
9688 Object.defineProperty(exports, "__esModule", {
9689 value: true
9690 });
9691 exports.default = ownerDocument;
9692 function ownerDocument(node) {
9693 return node && node.ownerDocument || document;
9694 }
9695 module.exports = exports["default"];
9696
9697/***/ }),
9698/* 124 */
9699/***/ (function(module, exports, __webpack_require__) {
9700
9701 'use strict';
9702
9703 Object.defineProperty(exports, "__esModule", {
9704 value: true
9705 });
9706 exports["default"] = getContainer;
9707
9708 var _reactDom = __webpack_require__(12);
9709
9710 var _reactDom2 = _interopRequireDefault(_reactDom);
9711
9712 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9713
9714 /**
9715 * 获取容器组件
9716 * @param {[type]} container [description]
9717 * @param {[type]} defaultContainer [description]
9718 * @return {[type]} [description]
9719 */
9720 function getContainer(container, defaultContainer) {
9721 container = typeof container === 'function' ? container() : container;
9722 return _reactDom2["default"].findDOMNode(container) || defaultContainer;
9723 }
9724 module.exports = exports['default'];
9725
9726/***/ }),
9727/* 125 */
9728/***/ (function(module, exports, __webpack_require__) {
9729
9730 'use strict';
9731
9732 Object.defineProperty(exports, "__esModule", {
9733 value: true
9734 });
9735
9736 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; };
9737
9738 var _classnames = __webpack_require__(3);
9739
9740 var _classnames2 = _interopRequireDefault(_classnames);
9741
9742 var _react = __webpack_require__(4);
9743
9744 var _react2 = _interopRequireDefault(_react);
9745
9746 var _propTypes = __webpack_require__(5);
9747
9748 var _propTypes2 = _interopRequireDefault(_propTypes);
9749
9750 var _BaseOverlay = __webpack_require__(126);
9751
9752 var _BaseOverlay2 = _interopRequireDefault(_BaseOverlay);
9753
9754 var _tinperBeeCore = __webpack_require__(26);
9755
9756 var _Fade = __webpack_require__(101);
9757
9758 var _Fade2 = _interopRequireDefault(_Fade);
9759
9760 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9761
9762 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; }
9763
9764 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; }
9765
9766 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9767
9768 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; }
9769
9770 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); }
9771
9772 var propTypes = _extends({}, _BaseOverlay2["default"].propTypes, {
9773
9774 /**
9775 * 是否显示
9776 */
9777 show: _propTypes2["default"].bool,
9778 /**
9779 * 是
9780 */
9781 rootClose: _propTypes2["default"].bool,
9782 /**
9783 * 当点击rootClose触发close时的回调函数
9784 */
9785 onHide: _propTypes2["default"].func,
9786
9787 /**
9788 * 使用动画
9789 */
9790 animation: _propTypes2["default"].oneOfType([_tinperBeeCore.elementType, _propTypes2["default"].func]),
9791
9792 /**
9793 * Callback fired before the Overlay transitions in
9794 */
9795 onEnter: _propTypes2["default"].func,
9796
9797 /**
9798 * Callback fired as the Overlay begins to transition in
9799 */
9800 onEntering: _propTypes2["default"].func,
9801
9802 /**
9803 * Callback fired after the Overlay finishes transitioning in
9804 */
9805 onEntered: _propTypes2["default"].func,
9806
9807 /**
9808 * Callback fired right before the Overlay transitions out
9809 */
9810 onExit: _propTypes2["default"].func,
9811
9812 /**
9813 * Callback fired as the Overlay begins to transition out
9814 */
9815 onExiting: _propTypes2["default"].func,
9816
9817 /**
9818 * Callback fired after the Overlay finishes transitioning out
9819 */
9820 onExited: _propTypes2["default"].func,
9821
9822 /**
9823 * Sets the direction of the Overlay.
9824 */
9825 placement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left'])
9826 });
9827
9828 var defaultProps = {
9829 animation: _Fade2["default"],
9830 rootClose: false,
9831 show: false,
9832 placement: 'right'
9833 };
9834
9835 var Overlay = function (_Component) {
9836 _inherits(Overlay, _Component);
9837
9838 function Overlay() {
9839 _classCallCheck(this, Overlay);
9840
9841 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
9842 }
9843
9844 Overlay.prototype.render = function render() {
9845 var _props = this.props,
9846 animation = _props.animation,
9847 children = _props.children,
9848 props = _objectWithoutProperties(_props, ['animation', 'children']);
9849
9850 var transition = animation === true ? _Fade2["default"] : animation || null;
9851
9852 var child = void 0;
9853
9854 if (!transition) {
9855 child = (0, _react.cloneElement)(children, {
9856 className: (0, _classnames2["default"])(children.props.className, 'in')
9857 });
9858 } else {
9859 child = children;
9860 }
9861
9862 return _react2["default"].createElement(
9863 _BaseOverlay2["default"],
9864 _extends({}, props, {
9865 transition: transition
9866 }),
9867 child
9868 );
9869 };
9870
9871 return Overlay;
9872 }(_react.Component);
9873
9874 Overlay.propTypes = propTypes;
9875 Overlay.defaultProps = defaultProps;
9876
9877 exports["default"] = Overlay;
9878 module.exports = exports['default'];
9879
9880/***/ }),
9881/* 126 */
9882/***/ (function(module, exports, __webpack_require__) {
9883
9884 'use strict';
9885
9886 Object.defineProperty(exports, "__esModule", {
9887 value: true
9888 });
9889
9890 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; };
9891
9892 var _react = __webpack_require__(4);
9893
9894 var _react2 = _interopRequireDefault(_react);
9895
9896 var _reactDom = __webpack_require__(12);
9897
9898 var _reactDom2 = _interopRequireDefault(_reactDom);
9899
9900 var _propTypes = __webpack_require__(5);
9901
9902 var _propTypes2 = _interopRequireDefault(_propTypes);
9903
9904 var _Portal = __webpack_require__(121);
9905
9906 var _Portal2 = _interopRequireDefault(_Portal);
9907
9908 var _Position = __webpack_require__(127);
9909
9910 var _Position2 = _interopRequireDefault(_Position);
9911
9912 var _RootCloseWrapper = __webpack_require__(135);
9913
9914 var _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);
9915
9916 var _tinperBeeCore = __webpack_require__(26);
9917
9918 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9919
9920 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; }
9921
9922 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; }
9923
9924 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9925
9926 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; }
9927
9928 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); }
9929
9930 var isReact16 = _reactDom2["default"].createPortal !== undefined;
9931
9932 var propTypes = _extends({}, _Position2["default"].propTypes, {
9933
9934 /**
9935 * 是否显示
9936 */
9937 show: _propTypes2["default"].bool,
9938
9939 /**
9940 * 点击其他地方,是否隐藏overlay
9941 */
9942 rootClose: _propTypes2["default"].bool,
9943
9944 /**
9945 * 当rootClose为true的时候,触发的隐藏方法
9946 * @type func
9947 */
9948 onHide: function onHide(props) {
9949 var propType = _propTypes2["default"].func;
9950 if (props.rootClose) {
9951 propType = propType.isRequired;
9952 }
9953
9954 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
9955 args[_key - 1] = arguments[_key];
9956 }
9957
9958 return propType.apply(undefined, [props].concat(args));
9959 },
9960
9961
9962 /**
9963 * 过渡动画组件
9964 */
9965 transition: _propTypes2["default"].oneOfType([_tinperBeeCore.elementType, _propTypes2["default"].func]),
9966
9967 /**
9968 * overlay添加动画前的钩子函数
9969 */
9970 onEnter: _propTypes2["default"].func,
9971
9972 /**
9973 * 开始动画的钩子函数
9974 */
9975 onEntering: _propTypes2["default"].func,
9976
9977 /**
9978 * 渲染之后的钩子函数
9979 */
9980 onEntered: _propTypes2["default"].func,
9981
9982 /**
9983 * 关闭开始时的钩子函数
9984 */
9985 onExit: _propTypes2["default"].func,
9986
9987 /**
9988 * 关闭时的钩子函数
9989 */
9990 onExiting: _propTypes2["default"].func,
9991
9992 /**
9993 * 关闭后的钩子函数
9994 */
9995 onExited: _propTypes2["default"].func
9996 });
9997
9998 function noop() {}
9999
10000 var defaultProps = {
10001 show: false,
10002 rootClose: true
10003 };
10004
10005 /**
10006 * 悬浮组件
10007 */
10008
10009 var BaseOverlay = function (_Component) {
10010 _inherits(BaseOverlay, _Component);
10011
10012 function BaseOverlay(props, context) {
10013 _classCallCheck(this, BaseOverlay);
10014
10015 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
10016
10017 _this.state = { exited: !props.show };
10018 _this.onHiddenListener = _this.handleHidden.bind(_this);
10019 return _this;
10020 }
10021
10022 BaseOverlay.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
10023 if (nextProps.show) {
10024 this.setState({ exited: false });
10025 } else if (!nextProps.transition) {
10026 // Otherwise let handleHidden take care of marking exited.
10027 this.setState({ exited: true });
10028 }
10029 };
10030
10031 BaseOverlay.prototype.handleHidden = function handleHidden() {
10032 this.setState({ exited: true });
10033
10034 if (this.props.onExited) {
10035 var _props;
10036
10037 (_props = this.props).onExited.apply(_props, arguments);
10038 }
10039 };
10040
10041 BaseOverlay.prototype.render = function render() {
10042 var _props2 = this.props,
10043 container = _props2.container,
10044 containerPadding = _props2.containerPadding,
10045 target = _props2.target,
10046 placement = _props2.placement,
10047 shouldUpdatePosition = _props2.shouldUpdatePosition,
10048 rootClose = _props2.rootClose,
10049 positionLeft = _props2.positionLeft,
10050 positionTop = _props2.positionTop,
10051 children = _props2.children,
10052 Transition = _props2.transition,
10053 props = _objectWithoutProperties(_props2, ['container', 'containerPadding', 'target', 'placement', 'shouldUpdatePosition', 'rootClose', 'positionLeft', 'positionTop', 'children', 'transition']);
10054
10055 // Don't un-render the overlay while it's transitioning out.
10056
10057
10058 var mountOverlay = props.show || Transition && !this.state.exited;
10059 if (!mountOverlay) {
10060 // Don't bother showing anything if we don't have to.
10061 return null;
10062 }
10063
10064 var child = children;
10065
10066 // Position is be inner-most because it adds inline styles into the child,
10067 // which the other wrappers don't forward correctly.
10068 child = _react2["default"].createElement(
10069 _Position2["default"],
10070 {
10071 container: container,
10072 containerPadding: containerPadding,
10073 target: target,
10074 positionLeft: positionLeft,
10075 positionTop: positionTop,
10076 placement: placement,
10077 shouldUpdatePosition: shouldUpdatePosition },
10078 child
10079 );
10080
10081 if (Transition) {
10082 var onExit = props.onExit,
10083 onExiting = props.onExiting,
10084 onEnter = props.onEnter,
10085 onEntering = props.onEntering,
10086 onEntered = props.onEntered;
10087
10088 // This animates the child node by injecting props, so it must precede
10089 // anything that adds a wrapping div.
10090
10091 child = _react2["default"].createElement(
10092 Transition,
10093 {
10094 'in': props.show,
10095 transitionAppear: true,
10096 onExit: onExit,
10097 onExiting: onExiting,
10098 onExited: this.onHiddenListener,
10099 onEnter: onEnter,
10100 onEntering: onEntering,
10101 onEntered: onEntered
10102 },
10103 child
10104 );
10105 }
10106
10107 // This goes after everything else because it adds a wrapping div.
10108 if (rootClose) {
10109 child = _react2["default"].createElement(
10110 _RootCloseWrapper2["default"],
10111 { onRootClose: props.onHide },
10112 child
10113 );
10114 }
10115
10116 if (isReact16) {
10117 return child;
10118 } else {
10119 return _react2["default"].createElement(
10120 _Portal2["default"],
10121 { container: container },
10122 child
10123 );
10124 }
10125 };
10126
10127 return BaseOverlay;
10128 }(_react.Component);
10129
10130 BaseOverlay.propTypes = propTypes;
10131 BaseOverlay.defaultProps = defaultProps;
10132
10133 exports["default"] = BaseOverlay;
10134 module.exports = exports['default'];
10135
10136/***/ }),
10137/* 127 */
10138/***/ (function(module, exports, __webpack_require__) {
10139
10140 'use strict';
10141
10142 Object.defineProperty(exports, "__esModule", {
10143 value: true
10144 });
10145
10146 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; };
10147
10148 var _classnames = __webpack_require__(3);
10149
10150 var _classnames2 = _interopRequireDefault(_classnames);
10151
10152 var _react = __webpack_require__(4);
10153
10154 var _react2 = _interopRequireDefault(_react);
10155
10156 var _propTypes = __webpack_require__(5);
10157
10158 var _propTypes2 = _interopRequireDefault(_propTypes);
10159
10160 var _reactDom = __webpack_require__(12);
10161
10162 var _reactDom2 = _interopRequireDefault(_reactDom);
10163
10164 var _tinperBeeCore = __webpack_require__(26);
10165
10166 var _calculatePosition = __webpack_require__(128);
10167
10168 var _calculatePosition2 = _interopRequireDefault(_calculatePosition);
10169
10170 var _getContainer = __webpack_require__(124);
10171
10172 var _getContainer2 = _interopRequireDefault(_getContainer);
10173
10174 var _ownerDocument = __webpack_require__(122);
10175
10176 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
10177
10178 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10179
10180 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; }
10181
10182 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; }
10183
10184 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10185
10186 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; }
10187
10188 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); }
10189
10190 var propTypes = {
10191 /**
10192 * 要设置定位的元素
10193 */
10194 target: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]),
10195
10196 /**
10197 * 存放的容器元素
10198 */
10199 container: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]),
10200 /**
10201 * 容器padding值
10202 */
10203 containerPadding: _propTypes2["default"].number,
10204 /**
10205 * 位置设置
10206 */
10207 placement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']),
10208 /**
10209 * 是否需要更新位置
10210 */
10211 shouldUpdatePosition: _propTypes2["default"].bool
10212 };
10213
10214 var defaultProps = {
10215 containerPadding: 0,
10216 placement: 'right',
10217 shouldUpdatePosition: false
10218 };
10219
10220 /**
10221 * 计算子组件的位置的组件
10222 */
10223
10224 var Position = function (_Component) {
10225 _inherits(Position, _Component);
10226
10227 function Position(props, context) {
10228 _classCallCheck(this, Position);
10229
10230 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
10231
10232 _this.state = {
10233 positionLeft: 0,
10234 positionTop: 0,
10235 arrowOffsetLeft: null,
10236 arrowOffsetTop: null
10237 };
10238
10239 _this.needsFlush = false;
10240 _this.lastTarget = null;
10241
10242 _this.getTarget = _this.getTarget.bind(_this);
10243 _this.maybeUpdatePosition = _this.maybeUpdatePosition.bind(_this);
10244 _this.updatePosition = _this.updatePosition.bind(_this);
10245 return _this;
10246 }
10247
10248 Position.prototype.componentDidMount = function componentDidMount() {
10249 this.updatePosition(this.getTarget());
10250 };
10251
10252 Position.prototype.componentWillReceiveProps = function componentWillReceiveProps() {
10253 this.needsFlush = true;
10254 };
10255
10256 Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
10257 if (this.needsFlush) {
10258 this.needsFlush = false;
10259
10260 this.maybeUpdatePosition();
10261 }
10262 };
10263 /**
10264 * 获取要设置位置的子元素
10265 */
10266
10267
10268 Position.prototype.getTarget = function getTarget() {
10269 var target = this.props.target;
10270
10271 var targetElement = typeof target === 'function' ? target() : target;
10272 return targetElement && _reactDom2["default"].findDOMNode(targetElement) || null;
10273 };
10274
10275 /**
10276 * 验证是否需要更新位置
10277 */
10278
10279
10280 Position.prototype.maybeUpdatePosition = function maybeUpdatePosition(placementChanged) {
10281 var target = this.getTarget();
10282 if (!this.props.shouldUpdatePosition && target === this.lastTarget && !placementChanged) {
10283 return;
10284 }
10285
10286 this.updatePosition(target);
10287 };
10288 /**
10289 * 更新位置
10290 */
10291
10292 Position.prototype.updatePosition = function updatePosition(target) {
10293 this.lastTarget = target;
10294
10295 if (!target) {
10296 this.setState({
10297 positionLeft: 0,
10298 positionTop: 0,
10299 arrowOffsetLeft: null,
10300 arrowOffsetTop: null
10301 });
10302
10303 return;
10304 }
10305
10306 var overlay = _reactDom2["default"].findDOMNode(this);
10307 var container = (0, _getContainer2["default"])(this.props.container, (0, _ownerDocument2["default"])(this).body);
10308
10309 this.setState((0, _calculatePosition2["default"])(this.props.placement, overlay, target, container, this.props.containerPadding));
10310 };
10311
10312 Position.prototype.render = function render() {
10313 var _props = this.props,
10314 children = _props.children,
10315 className = _props.className,
10316 props = _objectWithoutProperties(_props, ['children', 'className']);
10317
10318 var _state = this.state,
10319 positionLeft = _state.positionLeft,
10320 positionTop = _state.positionTop,
10321 arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop']);
10322
10323 // These should not be forwarded to the child.
10324
10325
10326 delete props.target;
10327 delete props.container;
10328 delete props.containerPadding;
10329 delete props.shouldUpdatePosition;
10330
10331 var child = _react2["default"].Children.only(children);
10332 return (0, _react.cloneElement)(child, {
10333 className: (0, _classnames2["default"])(className, child.props.className),
10334 style: _extends({}, child.props.style, {
10335 left: positionLeft,
10336 top: positionTop
10337 })
10338 });
10339 };
10340
10341 return Position;
10342 }(_react.Component);
10343
10344 Position.propTypes = propTypes;
10345 Position.defaultProps = defaultProps;
10346
10347 exports["default"] = Position;
10348 module.exports = exports['default'];
10349
10350/***/ }),
10351/* 128 */
10352/***/ (function(module, exports, __webpack_require__) {
10353
10354 'use strict';
10355
10356 Object.defineProperty(exports, "__esModule", {
10357 value: true
10358 });
10359 exports["default"] = calculatePosition;
10360
10361 var _offset = __webpack_require__(129);
10362
10363 var _offset2 = _interopRequireDefault(_offset);
10364
10365 var _position = __webpack_require__(131);
10366
10367 var _position2 = _interopRequireDefault(_position);
10368
10369 var _scrollTop = __webpack_require__(133);
10370
10371 var _scrollTop2 = _interopRequireDefault(_scrollTop);
10372
10373 var _ownerDocument = __webpack_require__(122);
10374
10375 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
10376
10377 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10378
10379 function getContainerDimensions(containerNode) {
10380 var width = void 0,
10381 height = void 0,
10382 scroll = void 0;
10383
10384 if (containerNode.tagName === 'BODY') {
10385 width = window.innerWidth;
10386 height = window.innerHeight;
10387
10388 scroll = (0, _scrollTop2["default"])((0, _ownerDocument2["default"])(containerNode).documentElement) || (0, _scrollTop2["default"])(containerNode);
10389 } else {
10390 var _getOffset = (0, _offset2["default"])(containerNode);
10391
10392 width = _getOffset.width;
10393 height = _getOffset.height;
10394
10395 scroll = (0, _scrollTop2["default"])(containerNode);
10396 }
10397
10398 return { width: width, height: height, scroll: scroll };
10399 }
10400
10401 function getTopDelta(top, overlayHeight, container, padding) {
10402 var containerDimensions = getContainerDimensions(container);
10403 var containerScroll = containerDimensions.scroll;
10404 var containerHeight = containerDimensions.height;
10405
10406 var topEdgeOffset = top - padding - containerScroll;
10407 var bottomEdgeOffset = top + padding - containerScroll + overlayHeight;
10408
10409 if (topEdgeOffset < 0) {
10410 return -topEdgeOffset;
10411 } else if (bottomEdgeOffset > containerHeight) {
10412 return containerHeight - bottomEdgeOffset;
10413 } else {
10414 return 0;
10415 }
10416 }
10417
10418 function getLeftDelta(left, overlayWidth, container, padding) {
10419 var containerDimensions = getContainerDimensions(container);
10420 var containerWidth = containerDimensions.width;
10421
10422 var leftEdgeOffset = left - padding;
10423 var rightEdgeOffset = left + padding + overlayWidth;
10424
10425 if (leftEdgeOffset < 0) {
10426 return -leftEdgeOffset;
10427 } else if (rightEdgeOffset > containerWidth) {
10428 return containerWidth - rightEdgeOffset;
10429 }
10430
10431 return 0;
10432 }
10433
10434 function calculatePosition(placement, overlayNode, target, container, padding) {
10435 var childOffset = container.tagName === 'BODY' ? (0, _offset2["default"])(target) : (0, _position2["default"])(target, container);
10436
10437 var _getOffset2 = (0, _offset2["default"])(overlayNode),
10438 overlayHeight = _getOffset2.height,
10439 overlayWidth = _getOffset2.width;
10440
10441 var positionLeft = void 0,
10442 positionTop = void 0,
10443 arrowOffsetLeft = void 0,
10444 arrowOffsetTop = void 0;
10445
10446 if (placement === 'left' || placement === 'right') {
10447 positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;
10448
10449 if (placement === 'left') {
10450 positionLeft = childOffset.left - overlayWidth;
10451 } else {
10452 positionLeft = childOffset.left + childOffset.width;
10453 }
10454
10455 var topDelta = getTopDelta(positionTop, overlayHeight, container, padding);
10456
10457 positionTop += topDelta;
10458 arrowOffsetTop = 50 * (1 - 2 * topDelta / overlayHeight) + '%';
10459 arrowOffsetLeft = void 0;
10460 } else if (placement === 'top' || placement === 'bottom') {
10461 positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;
10462
10463 if (placement === 'top') {
10464 positionTop = childOffset.top - overlayHeight;
10465 } else {
10466 positionTop = childOffset.top + childOffset.height;
10467 }
10468
10469 var leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding);
10470
10471 positionLeft += leftDelta;
10472 arrowOffsetLeft = 50 * (1 - 2 * leftDelta / overlayWidth) + '%';
10473 arrowOffsetTop = void 0;
10474 } else {
10475 throw new Error('calcOverlayPosition(): No such placement of "' + placement + '" found.');
10476 }
10477
10478 return { positionLeft: positionLeft, positionTop: positionTop, arrowOffsetLeft: arrowOffsetLeft, arrowOffsetTop: arrowOffsetTop };
10479 }
10480 module.exports = exports['default'];
10481
10482/***/ }),
10483/* 129 */
10484/***/ (function(module, exports, __webpack_require__) {
10485
10486 'use strict';
10487
10488 Object.defineProperty(exports, "__esModule", {
10489 value: true
10490 });
10491 exports.default = offset;
10492
10493 var _contains = __webpack_require__(120);
10494
10495 var _contains2 = _interopRequireDefault(_contains);
10496
10497 var _isWindow = __webpack_require__(130);
10498
10499 var _isWindow2 = _interopRequireDefault(_isWindow);
10500
10501 var _ownerDocument = __webpack_require__(123);
10502
10503 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
10504
10505 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10506
10507 function offset(node) {
10508 var doc = (0, _ownerDocument2.default)(node),
10509 win = (0, _isWindow2.default)(doc),
10510 docElem = doc && doc.documentElement,
10511 box = { top: 0, left: 0, height: 0, width: 0 };
10512
10513 if (!doc) return;
10514
10515 // Make sure it's not a disconnected DOM node
10516 if (!(0, _contains2.default)(docElem, node)) return box;
10517
10518 if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();
10519
10520 // IE8 getBoundingClientRect doesn't support width & height
10521 box = {
10522 top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),
10523 left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),
10524 width: (box.width == null ? node.offsetWidth : box.width) || 0,
10525 height: (box.height == null ? node.offsetHeight : box.height) || 0
10526 };
10527
10528 return box;
10529 }
10530 module.exports = exports['default'];
10531
10532/***/ }),
10533/* 130 */
10534/***/ (function(module, exports) {
10535
10536 "use strict";
10537
10538 Object.defineProperty(exports, "__esModule", {
10539 value: true
10540 });
10541 exports.default = getWindow;
10542 function getWindow(node) {
10543 return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;
10544 }
10545 module.exports = exports["default"];
10546
10547/***/ }),
10548/* 131 */
10549/***/ (function(module, exports, __webpack_require__) {
10550
10551 'use strict';
10552
10553 Object.defineProperty(exports, "__esModule", {
10554 value: true
10555 });
10556
10557 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; };
10558
10559 exports.default = position;
10560
10561 var _offset = __webpack_require__(129);
10562
10563 var _offset2 = _interopRequireDefault(_offset);
10564
10565 var _offsetParent = __webpack_require__(132);
10566
10567 var _offsetParent2 = _interopRequireDefault(_offsetParent);
10568
10569 var _scrollTop = __webpack_require__(133);
10570
10571 var _scrollTop2 = _interopRequireDefault(_scrollTop);
10572
10573 var _scrollLeft = __webpack_require__(134);
10574
10575 var _scrollLeft2 = _interopRequireDefault(_scrollLeft);
10576
10577 var _style = __webpack_require__(17);
10578
10579 var _style2 = _interopRequireDefault(_style);
10580
10581 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10582
10583 function nodeName(node) {
10584 return node.nodeName && node.nodeName.toLowerCase();
10585 }
10586
10587 function position(node, offsetParent) {
10588 var parentOffset = { top: 0, left: 0 },
10589 offset;
10590
10591 // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
10592 // because it is its only offset parent
10593 if ((0, _style2.default)(node, 'position') === 'fixed') {
10594 offset = node.getBoundingClientRect();
10595 } else {
10596 offsetParent = offsetParent || (0, _offsetParent2.default)(node);
10597 offset = (0, _offset2.default)(node);
10598
10599 if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset2.default)(offsetParent);
10600
10601 parentOffset.top += parseInt((0, _style2.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop2.default)(offsetParent) || 0;
10602 parentOffset.left += parseInt((0, _style2.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft2.default)(offsetParent) || 0;
10603 }
10604
10605 // Subtract parent offsets and node margins
10606 return _extends({}, offset, {
10607 top: offset.top - parentOffset.top - (parseInt((0, _style2.default)(node, 'marginTop'), 10) || 0),
10608 left: offset.left - parentOffset.left - (parseInt((0, _style2.default)(node, 'marginLeft'), 10) || 0)
10609 });
10610 }
10611 module.exports = exports['default'];
10612
10613/***/ }),
10614/* 132 */
10615/***/ (function(module, exports, __webpack_require__) {
10616
10617 'use strict';
10618
10619 Object.defineProperty(exports, "__esModule", {
10620 value: true
10621 });
10622 exports.default = offsetParent;
10623
10624 var _ownerDocument = __webpack_require__(123);
10625
10626 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
10627
10628 var _style = __webpack_require__(17);
10629
10630 var _style2 = _interopRequireDefault(_style);
10631
10632 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10633
10634 function nodeName(node) {
10635 return node.nodeName && node.nodeName.toLowerCase();
10636 }
10637
10638 function offsetParent(node) {
10639 var doc = (0, _ownerDocument2.default)(node),
10640 offsetParent = node && node.offsetParent;
10641
10642 while (offsetParent && nodeName(node) !== 'html' && (0, _style2.default)(offsetParent, 'position') === 'static') {
10643 offsetParent = offsetParent.offsetParent;
10644 }
10645
10646 return offsetParent || doc.documentElement;
10647 }
10648 module.exports = exports['default'];
10649
10650/***/ }),
10651/* 133 */
10652/***/ (function(module, exports, __webpack_require__) {
10653
10654 'use strict';
10655
10656 Object.defineProperty(exports, "__esModule", {
10657 value: true
10658 });
10659 exports.default = scrollTop;
10660
10661 var _isWindow = __webpack_require__(130);
10662
10663 var _isWindow2 = _interopRequireDefault(_isWindow);
10664
10665 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10666
10667 function scrollTop(node, val) {
10668 var win = (0, _isWindow2.default)(node);
10669
10670 if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;
10671
10672 if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;
10673 }
10674 module.exports = exports['default'];
10675
10676/***/ }),
10677/* 134 */
10678/***/ (function(module, exports, __webpack_require__) {
10679
10680 'use strict';
10681
10682 Object.defineProperty(exports, "__esModule", {
10683 value: true
10684 });
10685 exports.default = scrollTop;
10686
10687 var _isWindow = __webpack_require__(130);
10688
10689 var _isWindow2 = _interopRequireDefault(_isWindow);
10690
10691 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10692
10693 function scrollTop(node, val) {
10694 var win = (0, _isWindow2.default)(node);
10695
10696 if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;
10697
10698 if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;
10699 }
10700 module.exports = exports['default'];
10701
10702/***/ }),
10703/* 135 */
10704/***/ (function(module, exports, __webpack_require__) {
10705
10706 'use strict';
10707
10708 Object.defineProperty(exports, "__esModule", {
10709 value: true
10710 });
10711
10712 var _contains = __webpack_require__(120);
10713
10714 var _contains2 = _interopRequireDefault(_contains);
10715
10716 var _react = __webpack_require__(4);
10717
10718 var _react2 = _interopRequireDefault(_react);
10719
10720 var _propTypes = __webpack_require__(5);
10721
10722 var _propTypes2 = _interopRequireDefault(_propTypes);
10723
10724 var _reactDom = __webpack_require__(12);
10725
10726 var _reactDom2 = _interopRequireDefault(_reactDom);
10727
10728 var _addEventListener = __webpack_require__(136);
10729
10730 var _addEventListener2 = _interopRequireDefault(_addEventListener);
10731
10732 var _ownerDocument = __webpack_require__(122);
10733
10734 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
10735
10736 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10737
10738 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; }
10739
10740 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10741
10742 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; }
10743
10744 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); }
10745
10746 var propTypes = {
10747 onRootClose: _propTypes2["default"].func,
10748 children: _propTypes2["default"].element,
10749 /**
10750 * 是否禁用
10751 */
10752 disabled: _propTypes2["default"].bool,
10753 /**
10754 * 触发事件选择
10755 */
10756 event: _propTypes2["default"].oneOf(['click', 'mousedown'])
10757 };
10758
10759 var defaultProps = {
10760 event: 'click'
10761 };
10762
10763 function isLeftClickEvent(event) {
10764 return event.button === 0;
10765 }
10766
10767 function isModifiedEvent(event) {
10768 return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
10769 }
10770
10771 var RootCloseWrapper = function (_Component) {
10772 _inherits(RootCloseWrapper, _Component);
10773
10774 function RootCloseWrapper(props, context) {
10775 _classCallCheck(this, RootCloseWrapper);
10776
10777 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
10778
10779 _this.handleMouseCapture = function (e) {
10780 _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2["default"])(_reactDom2["default"].findDOMNode(_this), e.target);
10781 };
10782
10783 _this.handleMouse = function () {
10784 if (!_this.preventMouseRootClose && _this.props.onRootClose) {
10785 _this.props.onRootClose();
10786 }
10787 };
10788
10789 _this.handleKeyUp = function (e) {
10790 if (e.keyCode === 27 && _this.props.onRootClose) {
10791 _this.props.onRootClose();
10792 }
10793 };
10794
10795 _this.preventMouseRootClose = false;
10796
10797 _this.addEventListeners = _this.addEventListeners.bind(_this);
10798 _this.removeEventListeners = _this.removeEventListeners.bind(_this);
10799
10800 return _this;
10801 }
10802
10803 RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {
10804 if (!this.props.disabled) {
10805 this.addEventListeners();
10806 }
10807 };
10808
10809 RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
10810 if (!this.props.disabled && prevProps.disabled) {
10811 this.addEventListeners();
10812 } else if (this.props.disabled && !prevProps.disabled) {
10813 this.removeEventListeners();
10814 }
10815 };
10816
10817 RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {
10818 if (!this.props.disabled) {
10819 this.removeEventListeners();
10820 }
10821 };
10822
10823 RootCloseWrapper.prototype.addEventListeners = function addEventListeners() {
10824 var event = this.props.event;
10825
10826 var doc = (0, _ownerDocument2["default"])(this);
10827
10828 // 避免react的监听事件触发引起判断的不准确
10829 this.documentMouseCaptureListener = (0, _addEventListener2["default"])(doc, event, this.handleMouseCapture, true);
10830
10831 this.documentMouseListener = (0, _addEventListener2["default"])(doc, event, this.handleMouse);
10832
10833 this.documentKeyupListener = (0, _addEventListener2["default"])(doc, 'keyup', this.handleKeyUp);
10834 };
10835
10836 RootCloseWrapper.prototype.removeEventListeners = function removeEventListeners() {
10837 if (this.documentMouseCaptureListener) {
10838 this.documentMouseCaptureListener.remove();
10839 }
10840
10841 if (this.documentMouseListener) {
10842 this.documentMouseListener.remove();
10843 }
10844
10845 if (this.documentKeyupListener) {
10846 this.documentKeyupListener.remove();
10847 }
10848 };
10849
10850 RootCloseWrapper.prototype.render = function render() {
10851 return this.props.children;
10852 };
10853
10854 return RootCloseWrapper;
10855 }(_react.Component);
10856
10857 RootCloseWrapper.propTypes = propTypes;
10858
10859 RootCloseWrapper.defaultProps = defaultProps;
10860
10861 exports["default"] = RootCloseWrapper;
10862 module.exports = exports['default'];
10863
10864/***/ }),
10865/* 136 */
10866/***/ (function(module, exports, __webpack_require__) {
10867
10868 'use strict';
10869
10870 Object.defineProperty(exports, "__esModule", {
10871 value: true
10872 });
10873
10874 exports["default"] = function (node, event, handler, capture) {
10875 (0, _on2["default"])(node, event, handler, capture);
10876
10877 return {
10878 remove: function remove() {
10879 (0, _off2["default"])(node, event, handler, capture);
10880 }
10881 };
10882 };
10883
10884 var _on = __webpack_require__(15);
10885
10886 var _on2 = _interopRequireDefault(_on);
10887
10888 var _off = __webpack_require__(137);
10889
10890 var _off2 = _interopRequireDefault(_off);
10891
10892 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10893
10894 module.exports = exports['default'];
10895
10896/***/ }),
10897/* 137 */
10898/***/ (function(module, exports, __webpack_require__) {
10899
10900 'use strict';
10901
10902 Object.defineProperty(exports, "__esModule", {
10903 value: true
10904 });
10905
10906 var _inDOM = __webpack_require__(14);
10907
10908 var _inDOM2 = _interopRequireDefault(_inDOM);
10909
10910 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
10911
10912 var off = function off() {};
10913 if (_inDOM2.default) {
10914 off = function () {
10915 if (document.addEventListener) return function (node, eventName, handler, capture) {
10916 return node.removeEventListener(eventName, handler, capture || false);
10917 };else if (document.attachEvent) return function (node, eventName, handler) {
10918 return node.detachEvent('on' + eventName, handler);
10919 };
10920 }();
10921 }
10922
10923 exports.default = off;
10924 module.exports = exports['default'];
10925
10926/***/ }),
10927/* 138 */
10928/***/ (function(module, exports) {
10929
10930 'use strict';
10931
10932 Object.defineProperty(exports, "__esModule", {
10933 value: true
10934 });
10935 /**
10936 * Safe chained function
10937 *
10938 * Will only create a new function if needed,
10939 * otherwise will pass back existing functions or null.
10940 *
10941 * @param {function} functions to chain
10942 * @returns {function|null}
10943 */
10944 function createChainedFunction() {
10945 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
10946 funcs[_key] = arguments[_key];
10947 }
10948
10949 return funcs.filter(function (f) {
10950 return f != null;
10951 }).reduce(function (acc, f) {
10952 if (typeof f !== 'function') {
10953 throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
10954 }
10955
10956 if (acc === null) {
10957 return f;
10958 }
10959
10960 return function chainedFunction() {
10961 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
10962 args[_key2] = arguments[_key2];
10963 }
10964
10965 acc.apply(this, args);
10966 f.apply(this, args);
10967 };
10968 }, null);
10969 }
10970
10971 exports["default"] = createChainedFunction;
10972 module.exports = exports['default'];
10973
10974/***/ }),
10975/* 139 */
10976/***/ (function(module, exports, __webpack_require__) {
10977
10978 'use strict';
10979
10980 Object.defineProperty(exports, "__esModule", {
10981 value: true
10982 });
10983
10984 var _react = __webpack_require__(4);
10985
10986 var _react2 = _interopRequireDefault(_react);
10987
10988 var _src = __webpack_require__(105);
10989
10990 var _src2 = _interopRequireDefault(_src);
10991
10992 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
10993
10994 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; }
10995
10996 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10997
10998 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; }
10999
11000 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); } /**
11001 *
11002 * @title 默认复制
11003 * @description 在复制按钮中定义内容,点击复制到剪切板
11004 *
11005 */
11006
11007 var Demo1 = function (_Component) {
11008 _inherits(Demo1, _Component);
11009
11010 function Demo1() {
11011 _classCallCheck(this, Demo1);
11012
11013 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
11014 }
11015
11016 Demo1.prototype.render = function render() {
11017 function success() {
11018 console.log('success');
11019 }
11020
11021 function error() {
11022 console.log('error');
11023 }
11024
11025 return _react2['default'].createElement(_src2['default'], { action: 'copy', text: '\u9ED8\u8BA4\u590D\u5236-\u6211\u5C06\u88AB\u590D\u5236\u5230\u526A\u5207\u677F', success: success, error: error });
11026 };
11027
11028 return Demo1;
11029 }(_react.Component);
11030
11031 exports['default'] = Demo1;
11032 module.exports = exports['default'];
11033
11034/***/ }),
11035/* 140 */
11036/***/ (function(module, exports, __webpack_require__) {
11037
11038 'use strict';
11039
11040 Object.defineProperty(exports, "__esModule", {
11041 value: true
11042 });
11043
11044 var _react = __webpack_require__(4);
11045
11046 var _react2 = _interopRequireDefault(_react);
11047
11048 var _src = __webpack_require__(105);
11049
11050 var _src2 = _interopRequireDefault(_src);
11051
11052 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
11053
11054 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; }
11055
11056 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11057
11058 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; }
11059
11060 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); } /**
11061 *
11062 * @title 目标复制
11063 * @description 复制目标元素的内容到剪切板
11064 *
11065 */
11066
11067 var Demo2 = function (_Component) {
11068 _inherits(Demo2, _Component);
11069
11070 function Demo2() {
11071 _classCallCheck(this, Demo2);
11072
11073 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
11074 }
11075
11076 Demo2.prototype.render = function render() {
11077 function success() {
11078 console.log('success');
11079 }
11080 function error() {
11081 console.log('error');
11082 }
11083 return _react2['default'].createElement(
11084 'div',
11085 null,
11086 _react2['default'].createElement(
11087 'div',
11088 { id: 'copyContent' },
11089 '\u76EE\u6807\u590D\u5236-\u6211\u5C06\u88AB\u590D\u5236\u5230\u526A\u5207\u677F'
11090 ),
11091 _react2['default'].createElement(_src2['default'], { action: 'copy', target: '#copyContent', success: success, error: error })
11092 );
11093 };
11094
11095 return Demo2;
11096 }(_react.Component);
11097
11098 exports['default'] = Demo2;
11099 module.exports = exports['default'];
11100
11101/***/ })
11102/******/ ]);
11103//# sourceMappingURL=demo.js.map
\No newline at end of file