UNPKG

546 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 _react = __webpack_require__(1);
50
51 var _react2 = _interopRequireDefault(_react);
52
53 var _reactDom = __webpack_require__(2);
54
55 var _reactDom2 = _interopRequireDefault(_reactDom);
56
57 var _beeLayout = __webpack_require__(3);
58
59 var _beePanel = __webpack_require__(9);
60
61 var _beeDrawer = __webpack_require__(81);
62
63 var _beeDrawer2 = _interopRequireDefault(_beeDrawer);
64
65 var _beeClipboard = __webpack_require__(95);
66
67 var _beeClipboard2 = _interopRequireDefault(_beeClipboard);
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 Demo1 = __webpack_require__(155);var DemoArray = [{ "example": _react2['default'].createElement(Demo1, null), "title": " 基本示例", "code": "/**\n *\n * @title 基本示例\n * @description 基本示例\n *\n */\nimport React, { Component } from 'react';\nimport { Anchor } from 'tinper-bee';\n\nclass Demo1 extends Component {\n constructor(props){\n super(props);\n this.state={\n anthors:[\n {\n href:\"one\",\n name:\"RISE\",\n content:\" Welcome to the war we've only begun so \\n \"\n + \"Pick up your weapon and face it \\n \"\n + \"There's blood on the crown go and take it \\n \"\n + \"You get one shot to make it out alive so \\n \"\n + \"Higher and higher you chase it \\n \"\n + \"It's deep in your bones go and take it \\n \"\n + \"This is your moment now is your time so \\n \"\n + \"Prove yourself and \\n \"\n + \"RISE RISE\",\n },\n {\n href:\"two\",\n name:\"Legends\",\n content:\" Legends never die when the world is calling you \\n \"\n + \"Can you hear them screaming out your name \\n \"\n + \"Legends never die they become a part of you \\n \"\n + \"Every time you bleed for reaching greatness \\n \"\n + \"Relentless you survive \\n \"\n + \"They never lose hope when everything's cold and the fighting's near \\n \"\n + \"It's deep in their bones they'll run into smoke when the fire is fierce \\n \"\n + \"Oh pick yourself up 'cause\"\n },\n {\n href:\"three\",\n name:\"Ignite\",\n content:\" There's a fire that burns inside \\n \"\n + \"It's an instinct that never lies \\n \"\n + \"The target's tattooed between our eyes \\n \"\n + \"Stand and fight \\n Under the lights on the high stage \\n \"\n + \"A part of your life it can take away \\n \"\n + \"Just like the blood running through your veins \\n \"\n + \"Everyone's watching through your eyes\"\n },\n {\n href:\"four\",\n name:\"Worlds Collide\",\n content:\" Do we fight to hold our heads up high \\n \"\n + \"And beat the drum to what we love \\n \"\n + \"Risk the fall, oh we have felt it all \\n \"\n + \"Come crashing down from far above \\n \"\n + \"Stars arising, countless worlds colliding \\n \"\n + \"Only one will take it all \\n \"\n + \"Can we bring to fall the giants \\n \"\n + \"Can we make the final call\"\n },\n {\n href:\"five\",\n name:\"Warriors\",\n content:\" As a child, you would wait \\n \"\n + \"And watch from far away. \\n \"\n + \"But you always knew that you'll be the one \\n \"\n + \"that work while they all play. \\n \"\n + \"And you, you lay, awake at night and scheme \\n \"\n + \"of all the things that you would change \\n \"\n + \"but it was just a dream! \\n \"\n + \"Here we are, don't turn away now \\n \"\n + \"we are the warriors that built this town.\"\n }\n ]\n }\n }\n render() {\n return ( \n <div className=\"demo1\"> \n <div className=\"content\">\n {\n this.state.anthors.map(item=>{\n return (\n <p id={item.href}>\n <pre>\n {item.content}\n </pre>\n </p>\n )\n })\n }\n </div>\n <Anchor selector=\"#my-awesome-nav a\">\n <ul id=\"my-awesome-nav\" >\n {\n this.state.anthors.map(item=>{\n return (\n <li><a href={`#${item.href}`}>{item.name}</a></li>\n )\n })\n }\n </ul>\n </Anchor>\n </div>\n \n )\n }\n}\n", "desc": " 基本示例", "scss_code": ".demo1{\n .content{\n p{\n height: 500px;\n }\n display: inline-block\n }\n .u-anchor{\n display: inline-block;\n }\n #my-awesome-nav {\n position: fixed;\n top: 200px;\n right: 300px;\n li{\n padding: 0 10px;\n line-height: 30px;\n height: 30px;\n background: #FFF;\n a{\n color:#424242;\n }\n }\n }\n #my-awesome-nav li.active {\n border-left: 2px solid #E14C46\n }\n}" }];
80
81 var Demo = function (_Component) {
82 _inherits(Demo, _Component);
83
84 function Demo(props) {
85 _classCallCheck(this, Demo);
86
87 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
88
89 _this.handleClick = function () {
90 _this.setState({ open: !_this.state.open });
91 };
92
93 _this.fCloseDrawer = function () {
94 _this.setState({
95 open: false
96 });
97 };
98
99 _this.state = {
100 open: false
101 };
102 return _this;
103 }
104
105 Demo.prototype.render = function render() {
106 var _props = this.props,
107 title = _props.title,
108 example = _props.example,
109 code = _props.code,
110 desc = _props.desc,
111 scss_code = _props.scss_code;
112
113
114 var header = _react2['default'].createElement(
115 'div',
116 null,
117 _react2['default'].createElement(
118 'p',
119 { className: 'component-title' },
120 title
121 ),
122 _react2['default'].createElement(
123 'p',
124 null,
125 desc
126 ),
127 _react2['default'].createElement(
128 'span',
129 { className: 'component-code', onClick: this.handleClick },
130 ' \u67E5\u770B\u6E90\u7801 ',
131 _react2['default'].createElement('i', { className: 'uf uf-arrow-right' }),
132 ' '
133 )
134 );
135 return _react2['default'].createElement(
136 _beeLayout.Col,
137 { md: 12, id: title.trim(), className: 'component-demo' },
138 _react2['default'].createElement(
139 _beePanel.Panel,
140 { header: header },
141 example
142 ),
143 _react2['default'].createElement(
144 _beeDrawer2['default'],
145 { className: 'component-drawerc', title: title, show: this.state.open, placement: 'right', onClose: this.fCloseDrawer },
146 _react2['default'].createElement(
147 'div',
148 { className: 'component-code-copy' },
149 ' JS\u4EE3\u7801',
150 _react2['default'].createElement(_beeClipboard2['default'], { action: 'copy', text: code })
151 ),
152 _react2['default'].createElement(
153 'pre',
154 { className: 'pre-js' },
155 _react2['default'].createElement(
156 'code',
157 { className: 'hljs javascript' },
158 code
159 )
160 ),
161 !!scss_code ? _react2['default'].createElement(
162 'div',
163 { className: 'component-code-copy copy-css' },
164 ' SCSS\u4EE3\u7801',
165 _react2['default'].createElement(_beeClipboard2['default'], { action: 'copy', text: scss_code })
166 ) : null,
167 !!scss_code ? _react2['default'].createElement(
168 'pre',
169 { className: 'pre-css' },
170 _react2['default'].createElement(
171 'code',
172 { className: 'hljs css' },
173 scss_code
174 )
175 ) : null
176 )
177 );
178 };
179
180 return Demo;
181 }(_react.Component);
182
183 var DemoGroup = function (_Component2) {
184 _inherits(DemoGroup, _Component2);
185
186 function DemoGroup(props) {
187 _classCallCheck(this, DemoGroup);
188
189 return _possibleConstructorReturn(this, _Component2.call(this, props));
190 }
191
192 DemoGroup.prototype.render = function render() {
193 return _react2['default'].createElement(
194 _beeLayout.Row,
195 null,
196 DemoArray.map(function (child, index) {
197
198 return _react2['default'].createElement(Demo, { example: child.example, title: child.title, code: child.code, scss_code: child.scss_code, desc: child.desc, key: index });
199 })
200 );
201 };
202
203 return DemoGroup;
204 }(_react.Component);
205
206 _reactDom2['default'].render(_react2['default'].createElement(DemoGroup, null), document.getElementById('tinperBeeDemo'));
207
208/***/ }),
209/* 1 */
210/***/ (function(module, exports) {
211
212 module.exports = React;
213
214/***/ }),
215/* 2 */
216/***/ (function(module, exports) {
217
218 module.exports = ReactDOM;
219
220/***/ }),
221/* 3 */
222/***/ (function(module, exports, __webpack_require__) {
223
224 'use strict';
225
226 Object.defineProperty(exports, "__esModule", {
227 value: true
228 });
229 exports.Con = exports.Row = exports.Col = undefined;
230
231 var _Col2 = __webpack_require__(4);
232
233 var _Col3 = _interopRequireDefault(_Col2);
234
235 var _Row2 = __webpack_require__(7);
236
237 var _Row3 = _interopRequireDefault(_Row2);
238
239 var _Layout = __webpack_require__(8);
240
241 var _Layout2 = _interopRequireDefault(_Layout);
242
243 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
244
245 exports.Col = _Col3["default"];
246 exports.Row = _Row3["default"];
247 exports.Con = _Layout2["default"];
248
249/***/ }),
250/* 4 */
251/***/ (function(module, exports, __webpack_require__) {
252
253 'use strict';
254
255 Object.defineProperty(exports, "__esModule", {
256 value: true
257 });
258
259 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; };
260
261 var _classnames = __webpack_require__(5);
262
263 var _classnames2 = _interopRequireDefault(_classnames);
264
265 var _react = __webpack_require__(1);
266
267 var _react2 = _interopRequireDefault(_react);
268
269 var _propTypes = __webpack_require__(6);
270
271 var _propTypes2 = _interopRequireDefault(_propTypes);
272
273 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
274
275 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; }
276
277 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; }
278
279 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
280
281 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; }
282
283 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); }
284
285 var propTypes = {
286 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string]),
287
288 /**
289 * xs显示列数
290 */
291 xs: _propTypes2["default"].number,
292 /**
293 * sm显示列数
294 */
295 sm: _propTypes2["default"].number,
296 /**
297 * md显示列数
298 */
299 md: _propTypes2["default"].number,
300 /**
301 * lg显示列数
302 */
303 lg: _propTypes2["default"].number,
304 /**
305 * xs偏移列数
306 */
307 xsOffset: _propTypes2["default"].number,
308 /**
309 * sm偏移列数
310 */
311 smOffset: _propTypes2["default"].number,
312 /**
313 * md偏移列数
314 */
315 mdOffset: _propTypes2["default"].number,
316 /**
317 * lg偏移列数
318 */
319 lgOffset: _propTypes2["default"].number,
320 /**
321 * xs右偏移列数
322 */
323 xsPush: _propTypes2["default"].number,
324 /**
325 * sm右偏移列数
326 */
327 smPush: _propTypes2["default"].number,
328 /**
329 * md右偏移列数
330 */
331 mdPush: _propTypes2["default"].number,
332 /**
333 * lg右偏移列数
334 */
335 lgPush: _propTypes2["default"].number,
336 /**
337 * xs左偏移列数
338 */
339 xsPull: _propTypes2["default"].number,
340 /**
341 * sm左偏移列数
342 */
343 smPull: _propTypes2["default"].number,
344 /**
345 * md左偏移列数
346 */
347 mdPull: _propTypes2["default"].number,
348 /**
349 * lg左偏移列数
350 */
351 lgPull: _propTypes2["default"].number
352 };
353
354 var defaultProps = {
355 componentClass: 'div',
356 clsPrefix: 'u-col'
357 };
358
359 var DEVICE_SIZES = ['lg', 'md', 'sm', 'xs'];
360
361 var Col = function (_Component) {
362 _inherits(Col, _Component);
363
364 function Col() {
365 _classCallCheck(this, Col);
366
367 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
368 }
369
370 Col.prototype.render = function render() {
371 var _props = this.props,
372 Component = _props.componentClass,
373 className = _props.className,
374 clsPrefix = _props.clsPrefix,
375 others = _objectWithoutProperties(_props, ['componentClass', 'className', 'clsPrefix']);
376
377 var tbClass = [];
378 /**
379 * 对传入props做样式转化
380 * @type {[type]}
381 */
382 DEVICE_SIZES.forEach(function (size) {
383 function popProp(propSuffix, modifier) {
384 var propName = '' + size + propSuffix;
385 var propValue = others[propName];
386
387 if (propValue != undefined && propValue != null) {
388 tbClass.push(clsPrefix + '-' + size + modifier + '-' + propValue);
389 }
390
391 delete others[propName];
392 }
393
394 popProp('', '');
395 popProp('Offset', '-offset');
396 popProp('Push', '-push');
397 popProp('Pull', '-pull');
398 });
399
400 return _react2["default"].createElement(
401 Component,
402 _extends({
403 className: (0, _classnames2["default"])(tbClass, className)
404 }, others),
405 this.props.children
406 );
407 };
408
409 return Col;
410 }(_react.Component);
411
412 Col.defaultProps = defaultProps;
413 Col.propTypes = propTypes;
414
415 exports["default"] = Col;
416 module.exports = exports['default'];
417
418/***/ }),
419/* 5 */
420/***/ (function(module, exports, __webpack_require__) {
421
422 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
423 Copyright (c) 2017 Jed Watson.
424 Licensed under the MIT License (MIT), see
425 http://jedwatson.github.io/classnames
426 */
427 /* global define */
428
429 (function () {
430 'use strict';
431
432 var hasOwn = {}.hasOwnProperty;
433
434 function classNames () {
435 var classes = [];
436
437 for (var i = 0; i < arguments.length; i++) {
438 var arg = arguments[i];
439 if (!arg) continue;
440
441 var argType = typeof arg;
442
443 if (argType === 'string' || argType === 'number') {
444 classes.push(arg);
445 } else if (Array.isArray(arg) && arg.length) {
446 var inner = classNames.apply(null, arg);
447 if (inner) {
448 classes.push(inner);
449 }
450 } else if (argType === 'object') {
451 for (var key in arg) {
452 if (hasOwn.call(arg, key) && arg[key]) {
453 classes.push(key);
454 }
455 }
456 }
457 }
458
459 return classes.join(' ');
460 }
461
462 if (typeof module !== 'undefined' && module.exports) {
463 classNames.default = classNames;
464 module.exports = classNames;
465 } else if (true) {
466 // register as 'classnames', consistent with npm package name
467 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
468 return classNames;
469 }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
470 } else {
471 window.classNames = classNames;
472 }
473 }());
474
475
476/***/ }),
477/* 6 */
478/***/ (function(module, exports) {
479
480 module.exports = PropTypes;
481
482/***/ }),
483/* 7 */
484/***/ (function(module, exports, __webpack_require__) {
485
486 'use strict';
487
488 Object.defineProperty(exports, "__esModule", {
489 value: true
490 });
491
492 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; };
493
494 var _classnames = __webpack_require__(5);
495
496 var _classnames2 = _interopRequireDefault(_classnames);
497
498 var _react = __webpack_require__(1);
499
500 var _react2 = _interopRequireDefault(_react);
501
502 var _propTypes = __webpack_require__(6);
503
504 var _propTypes2 = _interopRequireDefault(_propTypes);
505
506 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
507
508 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; }
509
510 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; }
511
512 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
513
514 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; }
515
516 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); }
517
518 var propTypes = {
519 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string])
520 };
521
522 var defaultProps = {
523 componentClass: 'div',
524 clsPrefix: 'u-row'
525 };
526
527 var Row = function (_Component) {
528 _inherits(Row, _Component);
529
530 function Row() {
531 _classCallCheck(this, Row);
532
533 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
534 }
535
536 Row.prototype.render = function render() {
537 var _props = this.props,
538 Component = _props.componentClass,
539 clsPrefix = _props.clsPrefix,
540 className = _props.className,
541 others = _objectWithoutProperties(_props, ['componentClass', 'clsPrefix', 'className']);
542
543 var bsclass = '' + clsPrefix;
544
545 return _react2["default"].createElement(
546 Component,
547 _extends({}, others, {
548 className: (0, _classnames2["default"])(bsclass, className)
549 }),
550 this.props.children
551 );
552 };
553
554 return Row;
555 }(_react.Component);
556
557 Row.propTypes = propTypes;
558 Row.defaultProps = defaultProps;
559
560 exports["default"] = Row;
561 module.exports = exports['default'];
562
563/***/ }),
564/* 8 */
565/***/ (function(module, exports, __webpack_require__) {
566
567 'use strict';
568
569 Object.defineProperty(exports, "__esModule", {
570 value: true
571 });
572
573 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; };
574
575 var _classnames = __webpack_require__(5);
576
577 var _classnames2 = _interopRequireDefault(_classnames);
578
579 var _react = __webpack_require__(1);
580
581 var _react2 = _interopRequireDefault(_react);
582
583 var _propTypes = __webpack_require__(6);
584
585 var _propTypes2 = _interopRequireDefault(_propTypes);
586
587 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
588
589 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; }
590
591 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; }
592
593 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; }
594
595 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
596
597 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; }
598
599 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); }
600
601 var propTypes = {
602 /**
603 * Adds `container-fluid` class.
604 */
605 fluid: _propTypes2["default"].bool,
606 /**
607 * You can use a custom element for this component
608 */
609 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string])
610 };
611
612 var defaultProps = {
613 componentClass: 'div',
614 fluid: false,
615 clsPrefix: 'u-container'
616 };
617
618 var Con = function (_React$Component) {
619 _inherits(Con, _React$Component);
620
621 function Con() {
622 _classCallCheck(this, Con);
623
624 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
625 }
626
627 Con.prototype.render = function render() {
628 var _tbclass;
629
630 var _props = this.props,
631 fluid = _props.fluid,
632 Component = _props.componentClass,
633 clsPrefix = _props.clsPrefix,
634 className = _props.className,
635 others = _objectWithoutProperties(_props, ['fluid', 'componentClass', 'clsPrefix', 'className']);
636
637 var tbclass = (_tbclass = {}, _defineProperty(_tbclass, '' + clsPrefix, !fluid), _defineProperty(_tbclass, clsPrefix + '-fluid', fluid), _tbclass);
638
639 return _react2["default"].createElement(
640 Component,
641 _extends({}, others, {
642 className: (0, _classnames2["default"])(tbclass, className)
643 }),
644 this.props.children
645 );
646 };
647
648 return Con;
649 }(_react2["default"].Component);
650
651 Con.propTypes = propTypes;
652 Con.defaultProps = defaultProps;
653
654 exports["default"] = Con;
655 module.exports = exports['default'];
656
657/***/ }),
658/* 9 */
659/***/ (function(module, exports, __webpack_require__) {
660
661 'use strict';
662
663 Object.defineProperty(exports, "__esModule", {
664 value: true
665 });
666 exports.PanelGroup = exports.Panel = undefined;
667
668 var _Panel2 = __webpack_require__(10);
669
670 var _Panel3 = _interopRequireDefault(_Panel2);
671
672 var _PanelGroup2 = __webpack_require__(80);
673
674 var _PanelGroup3 = _interopRequireDefault(_PanelGroup2);
675
676 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
677
678 exports.Panel = _Panel3["default"];
679 exports.PanelGroup = _PanelGroup3["default"];
680
681/***/ }),
682/* 10 */
683/***/ (function(module, exports, __webpack_require__) {
684
685 'use strict';
686
687 Object.defineProperty(exports, "__esModule", {
688 value: true
689 });
690
691 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; };
692
693 var _classnames = __webpack_require__(5);
694
695 var _classnames2 = _interopRequireDefault(_classnames);
696
697 var _react = __webpack_require__(1);
698
699 var _react2 = _interopRequireDefault(_react);
700
701 var _beeTransition = __webpack_require__(11);
702
703 var _beeMessage = __webpack_require__(64);
704
705 var _beeMessage2 = _interopRequireDefault(_beeMessage);
706
707 var _propTypes = __webpack_require__(6);
708
709 var _propTypes2 = _interopRequireDefault(_propTypes);
710
711 var _copyToClipboard = __webpack_require__(78);
712
713 var _copyToClipboard2 = _interopRequireDefault(_copyToClipboard);
714
715 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
716
717 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; }
718
719 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; }
720
721 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; }
722
723 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
724
725 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; }
726
727 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); }
728
729 var propTypes = {
730 //是否添加折叠
731 collapsible: _propTypes2["default"].bool,
732 onSelect: _propTypes2["default"].func,
733 //头部组件
734 header: _propTypes2["default"].node,
735 headerStyle: _propTypes2["default"].object,
736 id: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]),
737 headerContent: _propTypes2["default"].bool,
738 //footer组件
739 footer: _propTypes2["default"].node,
740 footerStyle: _propTypes2["default"].object,
741 //默认是否打开
742 defaultExpanded: _propTypes2["default"].bool,
743 //是否打开
744 expanded: _propTypes2["default"].bool,
745 //每个panel的标记
746 eventKey: _propTypes2["default"].any,
747 headerRole: _propTypes2["default"].string,
748 panelRole: _propTypes2["default"].string,
749 //颜色
750 colors: _propTypes2["default"].oneOf(['primary', 'accent', 'success', 'info', 'warning', 'danger', 'default', 'bordered']),
751
752 // From Collapse.的扩展动画
753 onEnter: _propTypes2["default"].func,
754 onEntering: _propTypes2["default"].func,
755 onEntered: _propTypes2["default"].func,
756 onExit: _propTypes2["default"].func,
757 onExiting: _propTypes2["default"].func,
758 onExited: _propTypes2["default"].func,
759 //是否可复制内容
760 copyable: _propTypes2["default"].bool
761 };
762
763 var defaultProps = {
764 defaultExpanded: false,
765 clsPrefix: "u-panel",
766 colors: "default"
767 };
768
769 var Panel = function (_React$Component) {
770 _inherits(Panel, _React$Component);
771
772 function Panel(props, context) {
773 _classCallCheck(this, Panel);
774
775 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
776
777 _this.handleClickTitle = _this.handleClickTitle.bind(_this);
778
779 _this.state = {
780 expanded: _this.props.defaultExpanded
781 };
782 return _this;
783 }
784
785 //头部点击事件
786
787
788 Panel.prototype.handleClickTitle = function handleClickTitle(e) {
789 // 不让事件进入事件池
790 e.persist();
791 e.selected = true;
792
793 if (this.props.onSelect) {
794 this.props.onSelect(this.props.eventKey, e);
795 } else {
796 e.preventDefault();
797 }
798
799 if (e.selected) {
800 this.setState({ expanded: !this.state.expanded });
801 }
802 };
803
804 //渲染panelheader
805
806
807 Panel.prototype.renderHeader = function renderHeader(collapsible, header, id, role, expanded, clsPrefix) {
808 var titleClassName = clsPrefix + '-title';
809
810 if (!collapsible) {
811 if (!_react2["default"].isValidElement(header)) {
812 return header;
813 }
814
815 return (0, _react.cloneElement)(header, {
816 className: (0, _classnames2["default"])(header.props.className, titleClassName)
817 });
818 }
819
820 if (!_react2["default"].isValidElement(header)) {
821 return _react2["default"].createElement(
822 'h4',
823 { role: 'presentation', className: titleClassName },
824 this.renderAnchor(header, id, role, expanded)
825 );
826 }
827 if (this.props.headerContent) {
828 return (0, _react.cloneElement)(header, {
829 className: (0, _classnames2["default"])(header.props.className, titleClassName)
830 });
831 }
832
833 return (0, _react.cloneElement)(header, {
834 className: (0, _classnames2["default"])(header.props.className, titleClassName),
835 children: this.renderAnchor(header.props.children, id, role, expanded)
836 });
837 };
838
839 //如果使用链接,渲染为a标签
840
841
842 Panel.prototype.renderAnchor = function renderAnchor(header, id, role, expanded) {
843 return _react2["default"].createElement(
844 'a',
845 {
846 role: role,
847 href: id && '#' + id,
848 'aria-controls': id,
849 'aria-expanded': expanded,
850 'aria-selected': expanded,
851 className: expanded ? null : 'collapsed'
852 },
853 header
854 );
855 };
856
857 //复制代码,弹出提示信息
858
859
860 Panel.prototype.copyDemo = function copyDemo(e) {
861 var panelTarget = e.target.parentNode;
862 var clipBoardContent = panelTarget.firstChild.innerText;
863 (0, _copyToClipboard2["default"])(clipBoardContent);
864 _beeMessage2["default"].create({ content: '复制成功!', color: 'success', duration: 2 });
865 };
866
867 //如果有折叠动画,渲染折叠动画
868
869
870 Panel.prototype.renderCollapsibleBody = function renderCollapsibleBody(id, expanded, role, children, clsPrefix, copyable, animationHooks) {
871 return _react2["default"].createElement(
872 _beeTransition.Collapse,
873 _extends({ 'in': expanded }, animationHooks),
874 _react2["default"].createElement(
875 'div',
876 {
877 id: id,
878 role: role,
879 className: clsPrefix + '-collapse',
880 'aria-hidden': !expanded
881 },
882 this.renderBody(children, clsPrefix, copyable)
883 )
884 );
885 };
886
887 //渲染panelbody
888
889
890 Panel.prototype.renderBody = function renderBody(rawChildren, clsPrefix, copyable) {
891 var self = this;
892 var children = [];
893 var bodyChildren = [];
894
895 var bodyClassName = clsPrefix + '-body';
896 //添加到body的children中
897 function maybeAddBody(self) {
898 if (!bodyChildren.length) {
899 return;
900 }
901 // 给子组件添加key,为了之后触发事件时使用
902 children.push(_react2["default"].createElement(
903 'div',
904 { key: children.length, className: bodyClassName },
905 bodyChildren,
906 copyable && _react2["default"].createElement('i', { className: clsPrefix + '-copy uf uf-files-o', onClick: self.copyDemo })
907 ));
908 bodyChildren = [];
909 }
910
911 //转换为数组,方便复用
912 _react2["default"].Children.toArray(rawChildren).forEach(function (child) {
913 if (_react2["default"].isValidElement(child) && child.props.fill) {
914 maybeAddBody(self);
915
916 //将标示fill设置为undefined
917 children.push((0, _react.cloneElement)(child, { fill: undefined }));
918
919 return;
920 }
921 bodyChildren.push(child);
922 });
923
924 maybeAddBody(self);
925
926 return children;
927 };
928
929 Panel.prototype.render = function render() {
930 var _props = this.props,
931 collapsible = _props.collapsible,
932 header = _props.header,
933 id = _props.id,
934 footer = _props.footer,
935 propsExpanded = _props.expanded,
936 footerStyle = _props.footerStyle,
937 headerStyle = _props.headerStyle,
938 headerRole = _props.headerRole,
939 panelRole = _props.panelRole,
940 className = _props.className,
941 colors = _props.colors,
942 children = _props.children,
943 onEnter = _props.onEnter,
944 onEntering = _props.onEntering,
945 onEntered = _props.onEntered,
946 clsPrefix = _props.clsPrefix,
947 onExit = _props.onExit,
948 headerContent = _props.headerContent,
949 onExiting = _props.onExiting,
950 onExited = _props.onExited,
951 defaultExpanded = _props.defaultExpanded,
952 eventKey = _props.eventKey,
953 onSelect = _props.onSelect,
954 copyable = _props.copyable,
955 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', 'copyable']);
956
957 var expanded = propsExpanded != null ? propsExpanded : this.state.expanded;
958
959 var classes = {};
960 classes['' + clsPrefix] = true;
961 classes[clsPrefix + '-' + colors] = true;
962
963 var headerClass = _defineProperty({}, clsPrefix + '-heading', true);
964
965 copyable === false ? false : true;
966 return _react2["default"].createElement(
967 'div',
968 _extends({}, props, {
969 className: (0, _classnames2["default"])(className, classes),
970 id: collapsible ? null : id
971 }),
972 header && _react2["default"].createElement(
973 'div',
974 { className: (0, _classnames2["default"])(headerClass), style: headerStyle, onClick: this.handleClickTitle },
975 this.renderHeader(collapsible, header, id, headerRole, expanded, clsPrefix)
976 ),
977 collapsible ? this.renderCollapsibleBody(id, expanded, panelRole, children, clsPrefix, copyable, { onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited }) : this.renderBody(children, clsPrefix, copyable),
978 footer && _react2["default"].createElement(
979 'div',
980 { className: clsPrefix + '-footer', style: footerStyle },
981 footer
982 )
983 );
984 };
985
986 return Panel;
987 }(_react2["default"].Component);
988
989 Panel.propTypes = propTypes;
990 Panel.defaultProps = defaultProps;
991
992 exports["default"] = Panel;
993 module.exports = exports['default'];
994
995/***/ }),
996/* 11 */
997/***/ (function(module, exports, __webpack_require__) {
998
999 'use strict';
1000
1001 Object.defineProperty(exports, "__esModule", {
1002 value: true
1003 });
1004 exports.Fade = exports.Collapse = exports.Transition = undefined;
1005
1006 var _Transition2 = __webpack_require__(12);
1007
1008 var _Transition3 = _interopRequireDefault(_Transition2);
1009
1010 var _Collapse2 = __webpack_require__(16);
1011
1012 var _Collapse3 = _interopRequireDefault(_Collapse2);
1013
1014 var _Fade2 = __webpack_require__(63);
1015
1016 var _Fade3 = _interopRequireDefault(_Fade2);
1017
1018 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1019
1020 exports.Transition = _Transition3["default"];
1021 exports.Collapse = _Collapse3["default"];
1022 exports.Fade = _Fade3["default"];
1023
1024/***/ }),
1025/* 12 */
1026/***/ (function(module, exports, __webpack_require__) {
1027
1028 'use strict';
1029
1030 Object.defineProperty(exports, "__esModule", {
1031 value: true
1032 });
1033 exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined;
1034
1035 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; };
1036
1037 var _react = __webpack_require__(1);
1038
1039 var _react2 = _interopRequireDefault(_react);
1040
1041 var _reactDom = __webpack_require__(2);
1042
1043 var _reactDom2 = _interopRequireDefault(_reactDom);
1044
1045 var _properties = __webpack_require__(13);
1046
1047 var _properties2 = _interopRequireDefault(_properties);
1048
1049 var _on = __webpack_require__(15);
1050
1051 var _on2 = _interopRequireDefault(_on);
1052
1053 var _classnames = __webpack_require__(5);
1054
1055 var _classnames2 = _interopRequireDefault(_classnames);
1056
1057 var _propTypes = __webpack_require__(6);
1058
1059 var _propTypes2 = _interopRequireDefault(_propTypes);
1060
1061 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1062
1063 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; }
1064
1065 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; }
1066
1067 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1068
1069 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; }
1070
1071 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); }
1072
1073 var transitionEndEvent = _properties2["default"].end;
1074
1075 //设置状态码
1076 var UNMOUNTED = exports.UNMOUNTED = 0;
1077 var EXITED = exports.EXITED = 1;
1078 var ENTERING = exports.ENTERING = 2;
1079 var ENTERED = exports.ENTERED = 3;
1080 var EXITING = exports.EXITING = 4;
1081
1082 var propTypes = {
1083 /**
1084 * 是否触发动画
1085 */
1086 "in": _propTypes2["default"].bool,
1087
1088 /**
1089 * 不显示的时候是否移除组件
1090 */
1091 unmountOnExit: _propTypes2["default"].bool,
1092
1093 /**
1094 * 如果设置为默认显示,挂载时显示动画
1095 */
1096 transitionAppear: _propTypes2["default"].bool,
1097
1098 /**
1099 * 设置超时时间,防止出现问题,可设置为>=动画时间
1100 */
1101 timeout: _propTypes2["default"].number,
1102
1103 /**
1104 * 退出组件时添加的class
1105 */
1106 exitedClassName: _propTypes2["default"].string,
1107 /**
1108 * 退出组件中添加的class
1109 */
1110 exitingClassName: _propTypes2["default"].string,
1111 /**
1112 * 进入动画后添加的class
1113 */
1114 enteredClassName: _propTypes2["default"].string,
1115 /**
1116 * 进入动画时添加的class
1117 */
1118 enteringClassName: _propTypes2["default"].string,
1119
1120 /**
1121 * 进入动画开始时的钩子函数
1122 */
1123 onEnter: _propTypes2["default"].func,
1124 /**
1125 * 进入动画中的钩子函数
1126 */
1127 onEntering: _propTypes2["default"].func,
1128 /**
1129 * 进入动画后的钩子函数
1130 */
1131 onEntered: _propTypes2["default"].func,
1132 /**
1133 * 退出动画开始时的钩子函数
1134 */
1135 onExit: _propTypes2["default"].func,
1136 /**
1137 * 退出动画中的钩子函数
1138 */
1139 onExiting: _propTypes2["default"].func,
1140 /**
1141 * 退出动画后的钩子函数
1142 */
1143 onExited: _propTypes2["default"].func
1144 };
1145
1146 function noop() {}
1147
1148 var defaultProps = {
1149 "in": false,
1150 unmountOnExit: false,
1151 transitionAppear: false,
1152 timeout: 5000,
1153 onEnter: noop,
1154 onEntering: noop,
1155 onEntered: noop,
1156 onExit: noop,
1157 onExiting: noop,
1158 onExited: noop
1159 };
1160
1161 /**
1162 * 动画组件
1163 */
1164
1165 var Transition = function (_Component) {
1166 _inherits(Transition, _Component);
1167
1168 function Transition(props, context) {
1169 _classCallCheck(this, Transition);
1170
1171 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
1172
1173 var initialStatus = void 0;
1174 if (props["in"]) {
1175 // 在componentdidmount时开始执行动画
1176 initialStatus = props.transitionAppear ? EXITED : ENTERED;
1177 } else {
1178 initialStatus = props.unmountOnExit ? UNMOUNTED : EXITED;
1179 }
1180 _this.state = { status: initialStatus };
1181
1182 _this.nextCallback = null;
1183 return _this;
1184 }
1185
1186 Transition.prototype.componentDidMount = function componentDidMount() {
1187 if (this.props.transitionAppear && this.props["in"]) {
1188 this.performEnter(this.props);
1189 }
1190 };
1191
1192 Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
1193 if (nextProps["in"] && this.props.unmountOnExit) {
1194 if (this.state.status === UNMOUNTED) {
1195 // 在componentDidUpdate执行动画.
1196 this.setState({ status: EXITED });
1197 }
1198 } else {
1199 this._needsUpdate = true;
1200 }
1201 };
1202
1203 Transition.prototype.componentDidUpdate = function componentDidUpdate() {
1204 var status = this.state.status;
1205
1206 if (this.props.unmountOnExit && status === EXITED) {
1207 // 当使用unmountOnExit时,exited为exiting和unmont的过渡状态
1208 if (this.props["in"]) {
1209 this.performEnter(this.props);
1210 } else {
1211 this.setState({ status: UNMOUNTED });
1212 }
1213
1214 return;
1215 }
1216
1217 // 确保只响应prop变化
1218 if (this._needsUpdate) {
1219 this._needsUpdate = false;
1220
1221 if (this.props["in"]) {
1222 if (status === EXITING) {
1223 this.performEnter(this.props);
1224 } else if (status === EXITED) {
1225 this.performEnter(this.props);
1226 }
1227 // 其他,当我们已经输入或输出
1228 } else {
1229 if (status === ENTERING || status === ENTERED) {
1230 this.performExit(this.props);
1231 }
1232 // 我们已经输入或输出完成
1233 }
1234 }
1235 };
1236
1237 Transition.prototype.componentWillUnmount = function componentWillUnmount() {
1238 this.cancelNextCallback();
1239 };
1240
1241 Transition.prototype.performEnter = function performEnter(props) {
1242 var _this2 = this;
1243
1244 this.cancelNextCallback();
1245 var node = _reactDom2["default"].findDOMNode(this);
1246
1247 // 这里接收新props
1248 props.onEnter(node);
1249
1250 this.safeSetState({ status: ENTERING }, function () {
1251 _this2.props.onEntering(node);
1252
1253 _this2.onTransitionEnd(node, function () {
1254 _this2.safeSetState({ status: ENTERED }, function () {
1255 _this2.props.onEntered(node);
1256 });
1257 });
1258 });
1259 };
1260
1261 Transition.prototype.performExit = function performExit(props) {
1262 var _this3 = this;
1263
1264 this.cancelNextCallback();
1265 var node = _reactDom2["default"].findDOMNode(this);
1266
1267 props.onExit(node);
1268
1269 this.safeSetState({ status: EXITING }, function () {
1270 _this3.props.onExiting(node);
1271
1272 _this3.onTransitionEnd(node, function () {
1273 _this3.safeSetState({ status: EXITED }, function () {
1274 _this3.props.onExited(node);
1275 });
1276 });
1277 });
1278 };
1279
1280 Transition.prototype.cancelNextCallback = function cancelNextCallback() {
1281 if (this.nextCallback !== null) {
1282 this.nextCallback.cancel();
1283 this.nextCallback = null;
1284 }
1285 };
1286
1287 Transition.prototype.safeSetState = function safeSetState(nextState, callback) {
1288 // 确保在组件销毁后挂起的setState被消除
1289 this.setState(nextState, this.setNextCallback(callback));
1290 };
1291
1292 Transition.prototype.setNextCallback = function setNextCallback(callback) {
1293 var _this4 = this;
1294
1295 var active = true;
1296
1297 this.nextCallback = function (event) {
1298 if (active) {
1299 active = false;
1300 _this4.nextCallback = null;
1301
1302 callback(event);
1303 }
1304 };
1305
1306 this.nextCallback.cancel = function () {
1307 active = false;
1308 };
1309
1310 return this.nextCallback;
1311 };
1312
1313 Transition.prototype.onTransitionEnd = function onTransitionEnd(node, handler) {
1314 this.setNextCallback(handler);
1315
1316 if (node) {
1317 if (transitionEndEvent == undefined) {
1318 this.nextCallback();
1319 } else {
1320 (0, _on2["default"])(node, transitionEndEvent, this.nextCallback);
1321 }
1322 setTimeout(this.nextCallback, this.props.timeout);
1323 } else {
1324 setTimeout(this.nextCallback, 0);
1325 }
1326 };
1327
1328 Transition.prototype.render = function render() {
1329 var status = this.state.status;
1330 if (status === UNMOUNTED) {
1331 return null;
1332 }
1333
1334 var _props = this.props,
1335 children = _props.children,
1336 className = _props.className,
1337 childProps = _objectWithoutProperties(_props, ['children', 'className']);
1338
1339 Object.keys(Transition.propTypes).forEach(function (key) {
1340 return delete childProps[key];
1341 });
1342
1343 var transitionClassName = void 0;
1344 if (status === EXITED) {
1345 transitionClassName = this.props.exitedClassName;
1346 } else if (status === ENTERING) {
1347 transitionClassName = this.props.enteringClassName;
1348 } else if (status === ENTERED) {
1349 transitionClassName = this.props.enteredClassName;
1350 } else if (status === EXITING) {
1351 transitionClassName = this.props.exitingClassName;
1352 }
1353
1354 var child = _react2["default"].Children.only(children);
1355 return _react2["default"].cloneElement(child, _extends({}, childProps, {
1356 className: (0, _classnames2["default"])(child.props.className, className, transitionClassName)
1357 }));
1358 };
1359
1360 return Transition;
1361 }(_react.Component);
1362
1363 Transition.propTypes = propTypes;
1364
1365 Transition.defaultProps = defaultProps;
1366
1367 exports["default"] = Transition;
1368
1369/***/ }),
1370/* 13 */
1371/***/ (function(module, exports, __webpack_require__) {
1372
1373 'use strict';
1374
1375 Object.defineProperty(exports, "__esModule", {
1376 value: true
1377 });
1378 exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = undefined;
1379
1380 var _inDOM = __webpack_require__(14);
1381
1382 var _inDOM2 = _interopRequireDefault(_inDOM);
1383
1384 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1385
1386 var transform = 'transform';
1387 var prefix = void 0,
1388 transitionEnd = void 0;
1389 var transitionTiming = void 0,
1390 transitionDuration = void 0;
1391 var transitionProperty = void 0,
1392 transitionDelay = void 0;
1393
1394 if (_inDOM2.default) {
1395 var _getTransitionPropert = getTransitionProperties();
1396
1397 prefix = _getTransitionPropert.prefix;
1398 exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;
1399
1400
1401 exports.transform = transform = prefix + '-' + transform;
1402 exports.transitionProperty = transitionProperty = prefix + '-transition-property';
1403 exports.transitionDuration = transitionDuration = prefix + '-transition-duration';
1404 exports.transitionDelay = transitionDelay = prefix + '-transition-delay';
1405 exports.transitionTiming = transitionTiming = prefix + '-transition-timing-function';
1406 }
1407
1408 exports.transform = transform;
1409 exports.transitionProperty = transitionProperty;
1410 exports.transitionTiming = transitionTiming;
1411 exports.transitionDelay = transitionDelay;
1412 exports.transitionDuration = transitionDuration;
1413 exports.transitionEnd = transitionEnd;
1414 exports.default = {
1415 transform: transform,
1416 end: transitionEnd,
1417 property: transitionProperty,
1418 timing: transitionTiming,
1419 delay: transitionDelay,
1420 duration: transitionDuration
1421 };
1422
1423
1424 function getTransitionProperties() {
1425 var transitionEnd = void 0;
1426 var prefix = '';
1427 var eventNames = {
1428 O: 'otransitionend',
1429 Moz: 'transitionend',
1430 Webkit: 'webkitTransitionEnd',
1431 ms: 'MSTransitionEnd'
1432 };
1433
1434 var element = document.createElement('div');
1435 for (var vendor in eventNames) {
1436 if (eventNames.hasOwnProperty(vendor)) {
1437 if (element.style[vendor + 'TransitionProperty'] !== undefined) {
1438 prefix = '-' + vendor.toLowerCase();
1439 transitionEnd = eventNames[vendor];
1440 break;
1441 }
1442 }
1443 }if (!transitionEnd && element.style.transitionProperty !== undefined) transitionEnd = 'transitionend';
1444
1445 element = null;
1446
1447 return { transitionEnd: transitionEnd, prefix: prefix };
1448 }
1449
1450/***/ }),
1451/* 14 */
1452/***/ (function(module, exports) {
1453
1454 'use strict';
1455
1456 Object.defineProperty(exports, "__esModule", {
1457 value: true
1458 });
1459 exports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
1460 module.exports = exports['default'];
1461
1462/***/ }),
1463/* 15 */
1464/***/ (function(module, exports, __webpack_require__) {
1465
1466 'use strict';
1467
1468 Object.defineProperty(exports, "__esModule", {
1469 value: true
1470 });
1471
1472 var _inDOM = __webpack_require__(14);
1473
1474 var _inDOM2 = _interopRequireDefault(_inDOM);
1475
1476 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1477
1478 var on = function on() {};
1479 if (_inDOM2.default) {
1480 on = function () {
1481
1482 if (document.addEventListener) return function (node, eventName, handler, capture) {
1483 return node.addEventListener(eventName, handler, capture || false);
1484 };else if (document.attachEvent) return function (node, eventName, handler) {
1485 return node.attachEvent('on' + eventName, handler);
1486 };
1487 }();
1488 }
1489
1490 exports.default = on;
1491 module.exports = exports['default'];
1492
1493/***/ }),
1494/* 16 */
1495/***/ (function(module, exports, __webpack_require__) {
1496
1497 'use strict';
1498
1499 Object.defineProperty(exports, "__esModule", {
1500 value: true
1501 });
1502
1503 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; };
1504
1505 var _classnames = __webpack_require__(5);
1506
1507 var _classnames2 = _interopRequireDefault(_classnames);
1508
1509 var _style = __webpack_require__(17);
1510
1511 var _style2 = _interopRequireDefault(_style);
1512
1513 var _react = __webpack_require__(1);
1514
1515 var _react2 = _interopRequireDefault(_react);
1516
1517 var _propTypes = __webpack_require__(6);
1518
1519 var _propTypes2 = _interopRequireDefault(_propTypes);
1520
1521 var _Transition = __webpack_require__(12);
1522
1523 var _Transition2 = _interopRequireDefault(_Transition);
1524
1525 var _capitalize = __webpack_require__(25);
1526
1527 var _capitalize2 = _interopRequireDefault(_capitalize);
1528
1529 var _tinperBeeCore = __webpack_require__(26);
1530
1531 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1532
1533 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; }
1534
1535 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; }
1536
1537 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1538
1539 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; }
1540
1541 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); }
1542
1543 var MARGINS = {
1544 height: ['marginTop', 'marginBottom'],
1545 width: ['marginLeft', 'marginRight']
1546 };
1547
1548 // reading a dimension prop will cause the browser to recalculate,
1549 // which will let our animations work
1550 function triggerBrowserReflow(node) {
1551 node.offsetHeight; // eslint-disable-line no-unused-expressions
1552 }
1553
1554 function getDimensionValue(dimension, elem) {
1555 var value = elem['offset' + (0, _capitalize2["default"])(dimension)];
1556 var margins = MARGINS[dimension];
1557
1558 return value + parseInt((0, _style2["default"])(elem, margins[0]), 10) + parseInt((0, _style2["default"])(elem, margins[1]), 10);
1559 }
1560
1561 var propTypes = {
1562 /**
1563 * Show the component; triggers the expand or collapse animation
1564 */
1565 "in": _propTypes2["default"].bool,
1566
1567 /**
1568 * Unmount the component (remove it from the DOM) when it is collapsed
1569 */
1570 unmountOnExit: _propTypes2["default"].bool,
1571
1572 /**
1573 * Run the expand animation when the component mounts, if it is initially
1574 * shown
1575 */
1576 transitionAppear: _propTypes2["default"].bool,
1577
1578 /**
1579 * Duration of the collapse animation in milliseconds, to ensure that
1580 * finishing callbacks are fired even if the original browser transition end
1581 * events are canceled
1582 */
1583 timeout: _propTypes2["default"].number,
1584
1585 /**
1586 * Callback fired before the component expands
1587 */
1588 onEnter: _propTypes2["default"].func,
1589 /**
1590 * Callback fired after the component starts to expand
1591 */
1592 onEntering: _propTypes2["default"].func,
1593 /**
1594 * Callback fired after the component has expanded
1595 */
1596 onEntered: _propTypes2["default"].func,
1597 /**
1598 * Callback fired before the component collapses
1599 */
1600 onExit: _propTypes2["default"].func,
1601 /**
1602 * Callback fired after the component starts to collapse
1603 */
1604 onExiting: _propTypes2["default"].func,
1605 /**
1606 * Callback fired after the component has collapsed
1607 */
1608 onExited: _propTypes2["default"].func,
1609
1610 /**
1611 * The dimension used when collapsing, or a function that returns the
1612 * dimension
1613 *
1614 * _Note: Bootstrap only partially supports 'width'!
1615 * You will need to supply your own CSS animation for the `.width` CSS class._
1616 */
1617 dimension: _propTypes2["default"].oneOfType([_propTypes2["default"].oneOf(['height', 'width']), _propTypes2["default"].func]),
1618
1619 /**
1620 * Function that returns the height or width of the animating DOM node
1621 *
1622 * Allows for providing some custom logic for how much the Collapse component
1623 * should animate in its specified dimension. Called with the current
1624 * dimension prop value and the DOM node.
1625 */
1626 getDimensionValue: _propTypes2["default"].func,
1627
1628 /**
1629 * ARIA role of collapsible element
1630 */
1631 role: _propTypes2["default"].string
1632 };
1633
1634 var defaultProps = {
1635 "in": false,
1636 timeout: 300,
1637 unmountOnExit: false,
1638 transitionAppear: false,
1639
1640 dimension: 'height',
1641 getDimensionValue: getDimensionValue
1642 };
1643
1644 var Collapse = function (_React$Component) {
1645 _inherits(Collapse, _React$Component);
1646
1647 function Collapse(props, context) {
1648 _classCallCheck(this, Collapse);
1649
1650 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
1651
1652 _this.handleEnter = _this.handleEnter.bind(_this);
1653 _this.handleEntering = _this.handleEntering.bind(_this);
1654 _this.handleEntered = _this.handleEntered.bind(_this);
1655 _this.handleExit = _this.handleExit.bind(_this);
1656 _this.handleExiting = _this.handleExiting.bind(_this);
1657 return _this;
1658 }
1659
1660 /* -- Expanding -- */
1661
1662
1663 Collapse.prototype.handleEnter = function handleEnter(elem) {
1664 var dimension = this._dimension();
1665 elem.style[dimension] = '0';
1666 };
1667
1668 Collapse.prototype.handleEntering = function handleEntering(elem) {
1669 var dimension = this._dimension();
1670 elem.style[dimension] = this._getScrollDimensionValue(elem, dimension);
1671 };
1672
1673 Collapse.prototype.handleEntered = function handleEntered(elem) {
1674 var dimension = this._dimension();
1675 elem.style[dimension] = null;
1676 };
1677
1678 /* -- Collapsing -- */
1679
1680
1681 Collapse.prototype.handleExit = function handleExit(elem) {
1682 var dimension = this._dimension();
1683 elem.style[dimension] = this.props.getDimensionValue(dimension, elem) + 'px';
1684 triggerBrowserReflow(elem);
1685 };
1686
1687 Collapse.prototype.handleExiting = function handleExiting(elem) {
1688 var dimension = this._dimension();
1689 elem.style[dimension] = '0';
1690 };
1691
1692 Collapse.prototype._dimension = function _dimension() {
1693 return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension;
1694 };
1695
1696 // for testing
1697
1698
1699 Collapse.prototype._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) {
1700 return elem['scroll' + (0, _capitalize2["default"])(dimension)] + 'px';
1701 };
1702
1703 Collapse.prototype.render = function render() {
1704 var _props = this.props,
1705 onEnter = _props.onEnter,
1706 onEntering = _props.onEntering,
1707 onEntered = _props.onEntered,
1708 onExit = _props.onExit,
1709 onExiting = _props.onExiting,
1710 className = _props.className,
1711 props = _objectWithoutProperties(_props, ['onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'className']);
1712
1713 delete props.dimension;
1714 delete props.getDimensionValue;
1715
1716 var handleEnter = (0, _tinperBeeCore.createChainedFunction)(this.handleEnter, onEnter);
1717 var handleEntering = (0, _tinperBeeCore.createChainedFunction)(this.handleEntering, onEntering);
1718 var handleEntered = (0, _tinperBeeCore.createChainedFunction)(this.handleEntered, onEntered);
1719 var handleExit = (0, _tinperBeeCore.createChainedFunction)(this.handleExit, onExit);
1720 var handleExiting = (0, _tinperBeeCore.createChainedFunction)(this.handleExiting, onExiting);
1721
1722 var classes = {
1723 width: this._dimension() === 'width'
1724 };
1725
1726 return _react2["default"].createElement(_Transition2["default"], _extends({}, props, {
1727 'aria-expanded': props.role ? props["in"] : null,
1728 className: (0, _classnames2["default"])(className, classes),
1729 exitedClassName: 'collapse',
1730 exitingClassName: 'collapsing',
1731 enteredClassName: 'collapse in',
1732 enteringClassName: 'collapsing',
1733 onEnter: handleEnter,
1734 onEntering: handleEntering,
1735 onEntered: handleEntered,
1736 onExit: handleExit,
1737 onExiting: handleExiting
1738 }));
1739 };
1740
1741 return Collapse;
1742 }(_react2["default"].Component);
1743
1744 Collapse.propTypes = propTypes;
1745 Collapse.defaultProps = defaultProps;
1746
1747 exports["default"] = Collapse;
1748 module.exports = exports['default'];
1749
1750/***/ }),
1751/* 17 */
1752/***/ (function(module, exports, __webpack_require__) {
1753
1754 'use strict';
1755
1756 Object.defineProperty(exports, "__esModule", {
1757 value: true
1758 });
1759 exports.default = style;
1760
1761 var _camelizeStyle = __webpack_require__(18);
1762
1763 var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);
1764
1765 var _hyphenateStyle = __webpack_require__(20);
1766
1767 var _hyphenateStyle2 = _interopRequireDefault(_hyphenateStyle);
1768
1769 var _getComputedStyle2 = __webpack_require__(22);
1770
1771 var _getComputedStyle3 = _interopRequireDefault(_getComputedStyle2);
1772
1773 var _removeStyle = __webpack_require__(23);
1774
1775 var _removeStyle2 = _interopRequireDefault(_removeStyle);
1776
1777 var _properties = __webpack_require__(13);
1778
1779 var _isTransform = __webpack_require__(24);
1780
1781 var _isTransform2 = _interopRequireDefault(_isTransform);
1782
1783 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1784
1785 function style(node, property, value) {
1786 var css = '';
1787 var transforms = '';
1788 var props = property;
1789
1790 if (typeof property === 'string') {
1791 if (value === undefined) {
1792 return node.style[(0, _camelizeStyle2.default)(property)] || (0, _getComputedStyle3.default)(node).getPropertyValue((0, _hyphenateStyle2.default)(property));
1793 } else {
1794 (props = {})[property] = value;
1795 }
1796 }
1797
1798 Object.keys(props).forEach(function (key) {
1799 var value = props[key];
1800 if (!value && value !== 0) {
1801 (0, _removeStyle2.default)(node, (0, _hyphenateStyle2.default)(key));
1802 } else if ((0, _isTransform2.default)(key)) {
1803 transforms += key + '(' + value + ') ';
1804 } else {
1805 css += (0, _hyphenateStyle2.default)(key) + ': ' + value + ';';
1806 }
1807 });
1808
1809 if (transforms) {
1810 css += _properties.transform + ': ' + transforms + ';';
1811 }
1812
1813 node.style.cssText += ';' + css;
1814 }
1815 module.exports = exports['default'];
1816
1817/***/ }),
1818/* 18 */
1819/***/ (function(module, exports, __webpack_require__) {
1820
1821 'use strict';
1822
1823 Object.defineProperty(exports, "__esModule", {
1824 value: true
1825 });
1826 exports.default = camelizeStyleName;
1827
1828 var _camelize = __webpack_require__(19);
1829
1830 var _camelize2 = _interopRequireDefault(_camelize);
1831
1832 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1833
1834 var msPattern = /^-ms-/; /**
1835 * Copyright 2014-2015, Facebook, Inc.
1836 * All rights reserved.
1837 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
1838 */
1839 function camelizeStyleName(string) {
1840 return (0, _camelize2.default)(string.replace(msPattern, 'ms-'));
1841 }
1842 module.exports = exports['default'];
1843
1844/***/ }),
1845/* 19 */
1846/***/ (function(module, exports) {
1847
1848 "use strict";
1849
1850 Object.defineProperty(exports, "__esModule", {
1851 value: true
1852 });
1853 exports.default = camelize;
1854 var rHyphen = /-(.)/g;
1855
1856 function camelize(string) {
1857 return string.replace(rHyphen, function (_, chr) {
1858 return chr.toUpperCase();
1859 });
1860 }
1861 module.exports = exports["default"];
1862
1863/***/ }),
1864/* 20 */
1865/***/ (function(module, exports, __webpack_require__) {
1866
1867 'use strict';
1868
1869 Object.defineProperty(exports, "__esModule", {
1870 value: true
1871 });
1872 exports.default = hyphenateStyleName;
1873
1874 var _hyphenate = __webpack_require__(21);
1875
1876 var _hyphenate2 = _interopRequireDefault(_hyphenate);
1877
1878 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1879
1880 var msPattern = /^ms-/; /**
1881 * Copyright 2013-2014, Facebook, Inc.
1882 * All rights reserved.
1883 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
1884 */
1885
1886 function hyphenateStyleName(string) {
1887 return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-');
1888 }
1889 module.exports = exports['default'];
1890
1891/***/ }),
1892/* 21 */
1893/***/ (function(module, exports) {
1894
1895 'use strict';
1896
1897 Object.defineProperty(exports, "__esModule", {
1898 value: true
1899 });
1900 exports.default = hyphenate;
1901
1902 var rUpper = /([A-Z])/g;
1903
1904 function hyphenate(string) {
1905 return string.replace(rUpper, '-$1').toLowerCase();
1906 }
1907 module.exports = exports['default'];
1908
1909/***/ }),
1910/* 22 */
1911/***/ (function(module, exports, __webpack_require__) {
1912
1913 'use strict';
1914
1915 Object.defineProperty(exports, "__esModule", {
1916 value: true
1917 });
1918 exports.default = _getComputedStyle;
1919
1920 var _camelizeStyle = __webpack_require__(18);
1921
1922 var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);
1923
1924 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1925
1926 var rposition = /^(top|right|bottom|left)$/;
1927 var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;
1928
1929 function _getComputedStyle(node) {
1930 if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');
1931 var doc = node.ownerDocument;
1932
1933 return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {
1934 //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72
1935 getPropertyValue: function getPropertyValue(prop) {
1936 var style = node.style;
1937
1938 prop = (0, _camelizeStyle2.default)(prop);
1939
1940 if (prop == 'float') prop = 'styleFloat';
1941
1942 var current = node.currentStyle[prop] || null;
1943
1944 if (current == null && style && style[prop]) current = style[prop];
1945
1946 if (rnumnonpx.test(current) && !rposition.test(prop)) {
1947 // Remember the original values
1948 var left = style.left;
1949 var runStyle = node.runtimeStyle;
1950 var rsLeft = runStyle && runStyle.left;
1951
1952 // Put in the new values to get a computed value out
1953 if (rsLeft) runStyle.left = node.currentStyle.left;
1954
1955 style.left = prop === 'fontSize' ? '1em' : current;
1956 current = style.pixelLeft + 'px';
1957
1958 // Revert the changed values
1959 style.left = left;
1960 if (rsLeft) runStyle.left = rsLeft;
1961 }
1962
1963 return current;
1964 }
1965 };
1966 }
1967 module.exports = exports['default'];
1968
1969/***/ }),
1970/* 23 */
1971/***/ (function(module, exports) {
1972
1973 'use strict';
1974
1975 Object.defineProperty(exports, "__esModule", {
1976 value: true
1977 });
1978 exports.default = removeStyle;
1979 function removeStyle(node, key) {
1980 return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
1981 }
1982 module.exports = exports['default'];
1983
1984/***/ }),
1985/* 24 */
1986/***/ (function(module, exports) {
1987
1988 "use strict";
1989
1990 Object.defineProperty(exports, "__esModule", {
1991 value: true
1992 });
1993 exports.default = isTransform;
1994 var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
1995
1996 function isTransform(property) {
1997 return !!(property && supportedTransforms.test(property));
1998 }
1999 module.exports = exports["default"];
2000
2001/***/ }),
2002/* 25 */
2003/***/ (function(module, exports) {
2004
2005 "use strict";
2006
2007 Object.defineProperty(exports, "__esModule", {
2008 value: true
2009 });
2010 exports["default"] = capitalize;
2011 function capitalize(string) {
2012 return "" + string.charAt(0).toUpperCase() + string.slice(1);
2013 }
2014 module.exports = exports["default"];
2015
2016/***/ }),
2017/* 26 */
2018/***/ (function(module, exports, __webpack_require__) {
2019
2020 'use strict';
2021
2022 exports.__esModule = true;
2023 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;
2024
2025 var _all2 = __webpack_require__(27);
2026
2027 var _all3 = _interopRequireDefault(_all2);
2028
2029 var _componentOrElement2 = __webpack_require__(29);
2030
2031 var _componentOrElement3 = _interopRequireDefault(_componentOrElement2);
2032
2033 var _deprecated2 = __webpack_require__(30);
2034
2035 var _deprecated3 = _interopRequireDefault(_deprecated2);
2036
2037 var _elementType2 = __webpack_require__(33);
2038
2039 var _elementType3 = _interopRequireDefault(_elementType2);
2040
2041 var _isRequiredForA11y2 = __webpack_require__(34);
2042
2043 var _isRequiredForA11y3 = _interopRequireDefault(_isRequiredForA11y2);
2044
2045 var _splitComponent2 = __webpack_require__(35);
2046
2047 var _splitComponent3 = _interopRequireDefault(_splitComponent2);
2048
2049 var _createChainedFunction2 = __webpack_require__(36);
2050
2051 var _createChainedFunction3 = _interopRequireDefault(_createChainedFunction2);
2052
2053 var _keyCode = __webpack_require__(37);
2054
2055 var _keyCode2 = _interopRequireDefault(_keyCode);
2056
2057 var _contains2 = __webpack_require__(38);
2058
2059 var _contains3 = _interopRequireDefault(_contains2);
2060
2061 var _addEventListener2 = __webpack_require__(39);
2062
2063 var _addEventListener3 = _interopRequireDefault(_addEventListener2);
2064
2065 var _cssAnimation2 = __webpack_require__(44);
2066
2067 var _cssAnimation3 = _interopRequireDefault(_cssAnimation2);
2068
2069 var _toArray2 = __webpack_require__(48);
2070
2071 var _toArray3 = _interopRequireDefault(_toArray2);
2072
2073 var _Align2 = __webpack_require__(49);
2074
2075 var _Align3 = _interopRequireDefault(_Align2);
2076
2077 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2078
2079 exports.all = _all3.default;
2080 exports.componentOrElement = _componentOrElement3.default;
2081 exports.deprecated = _deprecated3.default;
2082 exports.elementType = _elementType3.default;
2083 exports.isRequiredForA11y = _isRequiredForA11y3.default;
2084 exports.splitComponent = _splitComponent3.default;
2085 exports.createChainedFunction = _createChainedFunction3.default;
2086 exports.KeyCode = _keyCode2.default;
2087 exports.contains = _contains3.default;
2088 exports.addEventListener = _addEventListener3.default;
2089 exports.cssAnimation = _cssAnimation3.default;
2090 exports.toArray = _toArray3.default;
2091 //export getContainerRenderMixin from './getContainerRenderMixin';
2092
2093 exports.Align = _Align3.default;
2094
2095/***/ }),
2096/* 27 */
2097/***/ (function(module, exports, __webpack_require__) {
2098
2099 'use strict';
2100
2101 exports.__esModule = true;
2102 exports.default = all;
2103
2104 var _createChainableTypeChecker = __webpack_require__(28);
2105
2106 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2107
2108 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2109
2110 function all() {
2111 for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {
2112 validators[_key] = arguments[_key];
2113 }
2114
2115 function allPropTypes() {
2116 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2117 args[_key2] = arguments[_key2];
2118 }
2119
2120 var error = null;
2121
2122 validators.forEach(function (validator) {
2123 if (error != null) {
2124 return;
2125 }
2126
2127 var result = validator.apply(undefined, args);
2128 if (result != null) {
2129 error = result;
2130 }
2131 });
2132
2133 return error;
2134 }
2135
2136 return (0, _createChainableTypeChecker2.default)(allPropTypes);
2137 } /**
2138 * This source code is quoted from rc-util.
2139 * homepage: https://github.com/react-component/util
2140 */
2141
2142/***/ }),
2143/* 28 */
2144/***/ (function(module, exports) {
2145
2146 'use strict';
2147
2148 exports.__esModule = true;
2149 exports.default = createChainableTypeChecker;
2150 /**
2151 * Copyright 2013-present, Facebook, Inc.
2152 * All rights reserved.
2153 *
2154 * This source code is licensed under the BSD-style license found in the
2155 * LICENSE file in the root directory of this source tree. An additional grant
2156 * of patent rights can be found in the PATENTS file in the same directory.
2157 */
2158
2159 // Mostly taken from ReactPropTypes.
2160
2161 /* This source code is quoted from rc-util.
2162 * homepage: https://github.com/react-component/util
2163 */
2164
2165 function createChainableTypeChecker(validate) {
2166 function checkType(isRequired, props, propName, componentName, location, propFullName) {
2167 var componentNameSafe = componentName || '<<anonymous>>';
2168 var propFullNameSafe = propFullName || propName;
2169
2170 if (props[propName] == null) {
2171 if (isRequired) {
2172 return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));
2173 }
2174
2175 return null;
2176 }
2177
2178 for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {
2179 args[_key - 6] = arguments[_key];
2180 }
2181
2182 return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));
2183 }
2184
2185 var chainedCheckType = checkType.bind(null, false);
2186 chainedCheckType.isRequired = checkType.bind(null, true);
2187
2188 return chainedCheckType;
2189 }
2190
2191/***/ }),
2192/* 29 */
2193/***/ (function(module, exports, __webpack_require__) {
2194
2195 'use strict';
2196
2197 exports.__esModule = true;
2198
2199 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; }; /**
2200 * This source code is quoted from rc-util.
2201 * homepage: https://github.com/react-component/util
2202 */
2203
2204
2205 var _react = __webpack_require__(1);
2206
2207 var _react2 = _interopRequireDefault(_react);
2208
2209 var _createChainableTypeChecker = __webpack_require__(28);
2210
2211 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2212
2213 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2214
2215 function validate(props, propName, componentName, location, propFullName) {
2216 var propValue = props[propName];
2217 var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
2218
2219 if (_react2.default.isValidElement(propValue)) {
2220 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.');
2221 }
2222
2223 if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {
2224 return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');
2225 }
2226
2227 return null;
2228 }
2229
2230 exports.default = (0, _createChainableTypeChecker2.default)(validate);
2231
2232/***/ }),
2233/* 30 */
2234/***/ (function(module, exports, __webpack_require__) {
2235
2236 'use strict';
2237
2238 exports.__esModule = true;
2239 exports.default = deprecated;
2240
2241 var _warning = __webpack_require__(31);
2242
2243 var _warning2 = _interopRequireDefault(_warning);
2244
2245 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2246
2247 var warned = {}; /**
2248 * This source code is quoted from rc-util.
2249 * homepage: https://github.com/react-component/util
2250 */
2251 function deprecated(validator, reason) {
2252 return function validate(props, propName, componentName, location, propFullName) {
2253 var componentNameSafe = componentName || '<<anonymous>>';
2254 var propFullNameSafe = propFullName || propName;
2255
2256 if (props[propName] != null) {
2257 var messageKey = componentName + '.' + propName;
2258
2259 (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));
2260
2261 warned[messageKey] = true;
2262 }
2263
2264 for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
2265 args[_key - 5] = arguments[_key];
2266 }
2267
2268 return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
2269 };
2270 }
2271
2272 /* eslint-disable no-underscore-dangle */
2273 function _resetWarned() {
2274 warned = {};
2275 }
2276
2277 deprecated._resetWarned = _resetWarned;
2278 /* eslint-enable no-underscore-dangle */
2279
2280/***/ }),
2281/* 31 */
2282/***/ (function(module, exports, __webpack_require__) {
2283
2284 /* WEBPACK VAR INJECTION */(function(process) {/**
2285 * Copyright 2014-2015, Facebook, Inc.
2286 * All rights reserved.
2287 *
2288 * This source code is licensed under the BSD-style license found in the
2289 * LICENSE file in the root directory of this source tree. An additional grant
2290 * of patent rights can be found in the PATENTS file in the same directory.
2291 */
2292
2293 'use strict';
2294
2295 /**
2296 * Similar to invariant but only logs a warning if the condition is not met.
2297 * This can be used to log issues in development environments in critical
2298 * paths. Removing the logging code for production environments will keep the
2299 * same logic and follow the same code paths.
2300 */
2301
2302 var warning = function() {};
2303
2304 if (process.env.NODE_ENV !== 'production') {
2305 warning = function(condition, format, args) {
2306 var len = arguments.length;
2307 args = new Array(len > 2 ? len - 2 : 0);
2308 for (var key = 2; key < len; key++) {
2309 args[key - 2] = arguments[key];
2310 }
2311 if (format === undefined) {
2312 throw new Error(
2313 '`warning(condition, format, ...args)` requires a warning ' +
2314 'message argument'
2315 );
2316 }
2317
2318 if (format.length < 10 || (/^[s\W]*$/).test(format)) {
2319 throw new Error(
2320 'The warning format should be able to uniquely identify this ' +
2321 'warning. Please, use a more descriptive format than: ' + format
2322 );
2323 }
2324
2325 if (!condition) {
2326 var argIndex = 0;
2327 var message = 'Warning: ' +
2328 format.replace(/%s/g, function() {
2329 return args[argIndex++];
2330 });
2331 if (typeof console !== 'undefined') {
2332 console.error(message);
2333 }
2334 try {
2335 // This error was thrown as a convenience so that you can use this stack
2336 // to find the callsite that caused this warning to fire.
2337 throw new Error(message);
2338 } catch(x) {}
2339 }
2340 };
2341 }
2342
2343 module.exports = warning;
2344
2345 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
2346
2347/***/ }),
2348/* 32 */
2349/***/ (function(module, exports) {
2350
2351 // shim for using process in browser
2352 var process = module.exports = {};
2353
2354 // cached from whatever global is present so that test runners that stub it
2355 // don't break things. But we need to wrap it in a try catch in case it is
2356 // wrapped in strict mode code which doesn't define any globals. It's inside a
2357 // function because try/catches deoptimize in certain engines.
2358
2359 var cachedSetTimeout;
2360 var cachedClearTimeout;
2361
2362 function defaultSetTimout() {
2363 throw new Error('setTimeout has not been defined');
2364 }
2365 function defaultClearTimeout () {
2366 throw new Error('clearTimeout has not been defined');
2367 }
2368 (function () {
2369 try {
2370 if (typeof setTimeout === 'function') {
2371 cachedSetTimeout = setTimeout;
2372 } else {
2373 cachedSetTimeout = defaultSetTimout;
2374 }
2375 } catch (e) {
2376 cachedSetTimeout = defaultSetTimout;
2377 }
2378 try {
2379 if (typeof clearTimeout === 'function') {
2380 cachedClearTimeout = clearTimeout;
2381 } else {
2382 cachedClearTimeout = defaultClearTimeout;
2383 }
2384 } catch (e) {
2385 cachedClearTimeout = defaultClearTimeout;
2386 }
2387 } ())
2388 function runTimeout(fun) {
2389 if (cachedSetTimeout === setTimeout) {
2390 //normal enviroments in sane situations
2391 return setTimeout(fun, 0);
2392 }
2393 // if setTimeout wasn't available but was latter defined
2394 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
2395 cachedSetTimeout = setTimeout;
2396 return setTimeout(fun, 0);
2397 }
2398 try {
2399 // when when somebody has screwed with setTimeout but no I.E. maddness
2400 return cachedSetTimeout(fun, 0);
2401 } catch(e){
2402 try {
2403 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
2404 return cachedSetTimeout.call(null, fun, 0);
2405 } catch(e){
2406 // 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
2407 return cachedSetTimeout.call(this, fun, 0);
2408 }
2409 }
2410
2411
2412 }
2413 function runClearTimeout(marker) {
2414 if (cachedClearTimeout === clearTimeout) {
2415 //normal enviroments in sane situations
2416 return clearTimeout(marker);
2417 }
2418 // if clearTimeout wasn't available but was latter defined
2419 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
2420 cachedClearTimeout = clearTimeout;
2421 return clearTimeout(marker);
2422 }
2423 try {
2424 // when when somebody has screwed with setTimeout but no I.E. maddness
2425 return cachedClearTimeout(marker);
2426 } catch (e){
2427 try {
2428 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
2429 return cachedClearTimeout.call(null, marker);
2430 } catch (e){
2431 // 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.
2432 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
2433 return cachedClearTimeout.call(this, marker);
2434 }
2435 }
2436
2437
2438
2439 }
2440 var queue = [];
2441 var draining = false;
2442 var currentQueue;
2443 var queueIndex = -1;
2444
2445 function cleanUpNextTick() {
2446 if (!draining || !currentQueue) {
2447 return;
2448 }
2449 draining = false;
2450 if (currentQueue.length) {
2451 queue = currentQueue.concat(queue);
2452 } else {
2453 queueIndex = -1;
2454 }
2455 if (queue.length) {
2456 drainQueue();
2457 }
2458 }
2459
2460 function drainQueue() {
2461 if (draining) {
2462 return;
2463 }
2464 var timeout = runTimeout(cleanUpNextTick);
2465 draining = true;
2466
2467 var len = queue.length;
2468 while(len) {
2469 currentQueue = queue;
2470 queue = [];
2471 while (++queueIndex < len) {
2472 if (currentQueue) {
2473 currentQueue[queueIndex].run();
2474 }
2475 }
2476 queueIndex = -1;
2477 len = queue.length;
2478 }
2479 currentQueue = null;
2480 draining = false;
2481 runClearTimeout(timeout);
2482 }
2483
2484 process.nextTick = function (fun) {
2485 var args = new Array(arguments.length - 1);
2486 if (arguments.length > 1) {
2487 for (var i = 1; i < arguments.length; i++) {
2488 args[i - 1] = arguments[i];
2489 }
2490 }
2491 queue.push(new Item(fun, args));
2492 if (queue.length === 1 && !draining) {
2493 runTimeout(drainQueue);
2494 }
2495 };
2496
2497 // v8 likes predictible objects
2498 function Item(fun, array) {
2499 this.fun = fun;
2500 this.array = array;
2501 }
2502 Item.prototype.run = function () {
2503 this.fun.apply(null, this.array);
2504 };
2505 process.title = 'browser';
2506 process.browser = true;
2507 process.env = {};
2508 process.argv = [];
2509 process.version = ''; // empty string to avoid regexp issues
2510 process.versions = {};
2511
2512 function noop() {}
2513
2514 process.on = noop;
2515 process.addListener = noop;
2516 process.once = noop;
2517 process.off = noop;
2518 process.removeListener = noop;
2519 process.removeAllListeners = noop;
2520 process.emit = noop;
2521 process.prependListener = noop;
2522 process.prependOnceListener = noop;
2523
2524 process.listeners = function (name) { return [] }
2525
2526 process.binding = function (name) {
2527 throw new Error('process.binding is not supported');
2528 };
2529
2530 process.cwd = function () { return '/' };
2531 process.chdir = function (dir) {
2532 throw new Error('process.chdir is not supported');
2533 };
2534 process.umask = function() { return 0; };
2535
2536
2537/***/ }),
2538/* 33 */
2539/***/ (function(module, exports, __webpack_require__) {
2540
2541 'use strict';
2542
2543 exports.__esModule = true;
2544
2545 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; }; /**
2546 * This source code is quoted from rc-util.
2547 * homepage: https://github.com/react-component/util
2548 */
2549
2550
2551 var _react = __webpack_require__(1);
2552
2553 var _react2 = _interopRequireDefault(_react);
2554
2555 var _createChainableTypeChecker = __webpack_require__(28);
2556
2557 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2558
2559 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2560
2561 function elementType(props, propName, componentName, location, propFullName) {
2562 var propValue = props[propName];
2563 var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
2564
2565 if (_react2.default.isValidElement(propValue)) {
2566 return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
2567 }
2568
2569 if (propType !== 'function' && propType !== 'string') {
2570 return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
2571 }
2572
2573 return null;
2574 }
2575
2576 exports.default = (0, _createChainableTypeChecker2.default)(elementType);
2577
2578/***/ }),
2579/* 34 */
2580/***/ (function(module, exports) {
2581
2582 'use strict';
2583
2584 exports.__esModule = true;
2585 exports.default = isRequiredForA11y;
2586 /**
2587 * This source code is quoted from rc-util.
2588 * homepage: https://github.com/react-component/util
2589 */
2590 function isRequiredForA11y(validator) {
2591 return function validate(props, propName, componentName, location, propFullName) {
2592 var componentNameSafe = componentName || '<<anonymous>>';
2593 var propFullNameSafe = propFullName || propName;
2594
2595 if (props[propName] == null) {
2596 return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.');
2597 }
2598
2599 for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
2600 args[_key - 5] = arguments[_key];
2601 }
2602
2603 return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
2604 };
2605 }
2606
2607/***/ }),
2608/* 35 */
2609/***/ (function(module, exports) {
2610
2611 "use strict";
2612
2613 exports.__esModule = true;
2614 exports.default = splitComponentProps;
2615 /**
2616 * This source code is quoted from rc-util.
2617 * homepage: https://github.com/react-component/util
2618 */
2619 function _objectEntries(obj) {
2620 var entries = [];
2621 var keys = Object.keys(obj);
2622
2623 for (var k = 0; k < keys.length; ++k) {
2624 entries.push([keys[k], obj[keys[k]]]);
2625 }return entries;
2626 }
2627
2628 /**
2629 * 分割要传入父元素和子元素的props
2630 * @param {[object]} props 传入的属性
2631 * @param {[reactElement]} Component 组件
2632 * @return {[array]} 返回数组,第一个元素为父元素props对象,第二个子元素props对象
2633 */
2634 function splitComponentProps(props, Component) {
2635 var componentPropTypes = Component.propTypes;
2636
2637 var parentProps = {};
2638 var childProps = {};
2639
2640 _objectEntries(props).forEach(function (_ref) {
2641 var propName = _ref[0],
2642 propValue = _ref[1];
2643
2644 if (componentPropTypes[propName]) {
2645 parentProps[propName] = propValue;
2646 } else {
2647 childProps[propName] = propValue;
2648 }
2649 });
2650
2651 return [parentProps, childProps];
2652 }
2653
2654/***/ }),
2655/* 36 */
2656/***/ (function(module, exports) {
2657
2658 'use strict';
2659
2660 exports.__esModule = true;
2661 /**
2662 * This source code is quoted from rc-util.
2663 * homepage: https://github.com/react-component/util
2664 */
2665 function createChainedFunction() {
2666 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
2667 funcs[_key] = arguments[_key];
2668 }
2669
2670 return funcs.filter(function (f) {
2671 return f != null;
2672 }).reduce(function (acc, f) {
2673 if (typeof f !== 'function') {
2674 throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
2675 }
2676
2677 if (acc === null) {
2678 return f;
2679 }
2680
2681 return function chainedFunction() {
2682 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2683 args[_key2] = arguments[_key2];
2684 }
2685
2686 acc.apply(this, args);
2687 f.apply(this, args);
2688 };
2689 }, null);
2690 }
2691 exports.default = createChainedFunction;
2692
2693/***/ }),
2694/* 37 */
2695/***/ (function(module, exports) {
2696
2697 /**
2698 * This source code is quoted from rc-util.
2699 * homepage: https://github.com/react-component/util
2700 */
2701 'use strict';
2702
2703 /**
2704 * @ignore
2705 * some key-codes definition and utils from closure-library
2706 * @author yiminghe@gmail.com
2707 */
2708
2709 var KeyCode = {
2710 /**
2711 * MAC_ENTER
2712 */
2713 MAC_ENTER: 3,
2714 /**
2715 * BACKSPACE
2716 */
2717 BACKSPACE: 8,
2718 /**
2719 * TAB
2720 */
2721 TAB: 9,
2722 /**
2723 * NUMLOCK on FF/Safari Mac
2724 */
2725 NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac
2726 /**
2727 * ENTER
2728 */
2729 ENTER: 13,
2730 /**
2731 * SHIFT
2732 */
2733 SHIFT: 16,
2734 /**
2735 * CTRL
2736 */
2737 CTRL: 17,
2738 /**
2739 * ALT
2740 */
2741 ALT: 18,
2742 /**
2743 * PAUSE
2744 */
2745 PAUSE: 19,
2746 /**
2747 * CAPS_LOCK
2748 */
2749 CAPS_LOCK: 20,
2750 /**
2751 * ESC
2752 */
2753 ESC: 27,
2754 /**
2755 * SPACE
2756 */
2757 SPACE: 32,
2758 /**
2759 * PAGE_UP
2760 */
2761 PAGE_UP: 33, // also NUM_NORTH_EAST
2762 /**
2763 * PAGE_DOWN
2764 */
2765 PAGE_DOWN: 34, // also NUM_SOUTH_EAST
2766 /**
2767 * END
2768 */
2769 END: 35, // also NUM_SOUTH_WEST
2770 /**
2771 * HOME
2772 */
2773 HOME: 36, // also NUM_NORTH_WEST
2774 /**
2775 * LEFT
2776 */
2777 LEFT: 37, // also NUM_WEST
2778 /**
2779 * UP
2780 */
2781 UP: 38, // also NUM_NORTH
2782 /**
2783 * RIGHT
2784 */
2785 RIGHT: 39, // also NUM_EAST
2786 /**
2787 * DOWN
2788 */
2789 DOWN: 40, // also NUM_SOUTH
2790 /**
2791 * PRINT_SCREEN
2792 */
2793 PRINT_SCREEN: 44,
2794 /**
2795 * INSERT
2796 */
2797 INSERT: 45, // also NUM_INSERT
2798 /**
2799 * DELETE
2800 */
2801 DELETE: 46, // also NUM_DELETE
2802 /**
2803 * ZERO
2804 */
2805 ZERO: 48,
2806 /**
2807 * ONE
2808 */
2809 ONE: 49,
2810 /**
2811 * TWO
2812 */
2813 TWO: 50,
2814 /**
2815 * THREE
2816 */
2817 THREE: 51,
2818 /**
2819 * FOUR
2820 */
2821 FOUR: 52,
2822 /**
2823 * FIVE
2824 */
2825 FIVE: 53,
2826 /**
2827 * SIX
2828 */
2829 SIX: 54,
2830 /**
2831 * SEVEN
2832 */
2833 SEVEN: 55,
2834 /**
2835 * EIGHT
2836 */
2837 EIGHT: 56,
2838 /**
2839 * NINE
2840 */
2841 NINE: 57,
2842 /**
2843 * QUESTION_MARK
2844 */
2845 QUESTION_MARK: 63, // needs localization
2846 /**
2847 * A
2848 */
2849 A: 65,
2850 /**
2851 * B
2852 */
2853 B: 66,
2854 /**
2855 * C
2856 */
2857 C: 67,
2858 /**
2859 * D
2860 */
2861 D: 68,
2862 /**
2863 * E
2864 */
2865 E: 69,
2866 /**
2867 * F
2868 */
2869 F: 70,
2870 /**
2871 * G
2872 */
2873 G: 71,
2874 /**
2875 * H
2876 */
2877 H: 72,
2878 /**
2879 * I
2880 */
2881 I: 73,
2882 /**
2883 * J
2884 */
2885 J: 74,
2886 /**
2887 * K
2888 */
2889 K: 75,
2890 /**
2891 * L
2892 */
2893 L: 76,
2894 /**
2895 * M
2896 */
2897 M: 77,
2898 /**
2899 * N
2900 */
2901 N: 78,
2902 /**
2903 * O
2904 */
2905 O: 79,
2906 /**
2907 * P
2908 */
2909 P: 80,
2910 /**
2911 * Q
2912 */
2913 Q: 81,
2914 /**
2915 * R
2916 */
2917 R: 82,
2918 /**
2919 * S
2920 */
2921 S: 83,
2922 /**
2923 * T
2924 */
2925 T: 84,
2926 /**
2927 * U
2928 */
2929 U: 85,
2930 /**
2931 * V
2932 */
2933 V: 86,
2934 /**
2935 * W
2936 */
2937 W: 87,
2938 /**
2939 * X
2940 */
2941 X: 88,
2942 /**
2943 * Y
2944 */
2945 Y: 89,
2946 /**
2947 * Z
2948 */
2949 Z: 90,
2950 /**
2951 * META
2952 */
2953 META: 91, // WIN_KEY_LEFT
2954 /**
2955 * WIN_KEY_RIGHT
2956 */
2957 WIN_KEY_RIGHT: 92,
2958 /**
2959 * CONTEXT_MENU
2960 */
2961 CONTEXT_MENU: 93,
2962 /**
2963 * NUM_ZERO
2964 */
2965 NUM_ZERO: 96,
2966 /**
2967 * NUM_ONE
2968 */
2969 NUM_ONE: 97,
2970 /**
2971 * NUM_TWO
2972 */
2973 NUM_TWO: 98,
2974 /**
2975 * NUM_THREE
2976 */
2977 NUM_THREE: 99,
2978 /**
2979 * NUM_FOUR
2980 */
2981 NUM_FOUR: 100,
2982 /**
2983 * NUM_FIVE
2984 */
2985 NUM_FIVE: 101,
2986 /**
2987 * NUM_SIX
2988 */
2989 NUM_SIX: 102,
2990 /**
2991 * NUM_SEVEN
2992 */
2993 NUM_SEVEN: 103,
2994 /**
2995 * NUM_EIGHT
2996 */
2997 NUM_EIGHT: 104,
2998 /**
2999 * NUM_NINE
3000 */
3001 NUM_NINE: 105,
3002 /**
3003 * NUM_MULTIPLY
3004 */
3005 NUM_MULTIPLY: 106,
3006 /**
3007 * NUM_PLUS
3008 */
3009 NUM_PLUS: 107,
3010 /**
3011 * NUM_MINUS
3012 */
3013 NUM_MINUS: 109,
3014 /**
3015 * NUM_PERIOD
3016 */
3017 NUM_PERIOD: 110,
3018 /**
3019 * NUM_DIVISION
3020 */
3021 NUM_DIVISION: 111,
3022 /**
3023 * F1
3024 */
3025 F1: 112,
3026 /**
3027 * F2
3028 */
3029 F2: 113,
3030 /**
3031 * F3
3032 */
3033 F3: 114,
3034 /**
3035 * F4
3036 */
3037 F4: 115,
3038 /**
3039 * F5
3040 */
3041 F5: 116,
3042 /**
3043 * F6
3044 */
3045 F6: 117,
3046 /**
3047 * F7
3048 */
3049 F7: 118,
3050 /**
3051 * F8
3052 */
3053 F8: 119,
3054 /**
3055 * F9
3056 */
3057 F9: 120,
3058 /**
3059 * F10
3060 */
3061 F10: 121,
3062 /**
3063 * F11
3064 */
3065 F11: 122,
3066 /**
3067 * F12
3068 */
3069 F12: 123,
3070 /**
3071 * NUMLOCK
3072 */
3073 NUMLOCK: 144,
3074 /**
3075 * SEMICOLON
3076 */
3077 SEMICOLON: 186, // needs localization
3078 /**
3079 * DASH
3080 */
3081 DASH: 189, // needs localization
3082 /**
3083 * EQUALS
3084 */
3085 EQUALS: 187, // needs localization
3086 /**
3087 * COMMA
3088 */
3089 COMMA: 188, // needs localization
3090 /**
3091 * PERIOD
3092 */
3093 PERIOD: 190, // needs localization
3094 /**
3095 * SLASH
3096 */
3097 SLASH: 191, // needs localization
3098 /**
3099 * APOSTROPHE
3100 */
3101 APOSTROPHE: 192, // needs localization
3102 /**
3103 * SINGLE_QUOTE
3104 */
3105 SINGLE_QUOTE: 222, // needs localization
3106 /**
3107 * OPEN_SQUARE_BRACKET
3108 */
3109 OPEN_SQUARE_BRACKET: 219, // needs localization
3110 /**
3111 * BACKSLASH
3112 */
3113 BACKSLASH: 220, // needs localization
3114 /**
3115 * CLOSE_SQUARE_BRACKET
3116 */
3117 CLOSE_SQUARE_BRACKET: 221, // needs localization
3118 /**
3119 * WIN_KEY
3120 */
3121 WIN_KEY: 224,
3122 /**
3123 * MAC_FF_META
3124 */
3125 MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91
3126 /**
3127 * WIN_IME
3128 */
3129 WIN_IME: 229
3130 };
3131
3132 /*
3133 whether text and modified key is entered at the same time.
3134 */
3135 KeyCode.isTextModifyingKeyEvent = function isTextModifyingKeyEvent(e) {
3136 var keyCode = e.keyCode;
3137 if (e.altKey && !e.ctrlKey || e.metaKey ||
3138 // Function keys don't generate text
3139 keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {
3140 return false;
3141 }
3142
3143 // The following keys are quite harmless, even in combination with
3144 // CTRL, ALT or SHIFT.
3145 switch (keyCode) {
3146 case KeyCode.ALT:
3147 case KeyCode.CAPS_LOCK:
3148 case KeyCode.CONTEXT_MENU:
3149 case KeyCode.CTRL:
3150 case KeyCode.DOWN:
3151 case KeyCode.END:
3152 case KeyCode.ESC:
3153 case KeyCode.HOME:
3154 case KeyCode.INSERT:
3155 case KeyCode.LEFT:
3156 case KeyCode.MAC_FF_META:
3157 case KeyCode.META:
3158 case KeyCode.NUMLOCK:
3159 case KeyCode.NUM_CENTER:
3160 case KeyCode.PAGE_DOWN:
3161 case KeyCode.PAGE_UP:
3162 case KeyCode.PAUSE:
3163 case KeyCode.PRINT_SCREEN:
3164 case KeyCode.RIGHT:
3165 case KeyCode.SHIFT:
3166 case KeyCode.UP:
3167 case KeyCode.WIN_KEY:
3168 case KeyCode.WIN_KEY_RIGHT:
3169 return false;
3170 default:
3171 return true;
3172 }
3173 };
3174
3175 /*
3176 whether character is entered.
3177 */
3178 KeyCode.isCharacterKey = function isCharacterKey(keyCode) {
3179 if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {
3180 return true;
3181 }
3182
3183 if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {
3184 return true;
3185 }
3186
3187 if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {
3188 return true;
3189 }
3190
3191 // Safari sends zero key code for non-latin characters.
3192 if (window.navigation.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {
3193 return true;
3194 }
3195
3196 switch (keyCode) {
3197 case KeyCode.SPACE:
3198 case KeyCode.QUESTION_MARK:
3199 case KeyCode.NUM_PLUS:
3200 case KeyCode.NUM_MINUS:
3201 case KeyCode.NUM_PERIOD:
3202 case KeyCode.NUM_DIVISION:
3203 case KeyCode.SEMICOLON:
3204 case KeyCode.DASH:
3205 case KeyCode.EQUALS:
3206 case KeyCode.COMMA:
3207 case KeyCode.PERIOD:
3208 case KeyCode.SLASH:
3209 case KeyCode.APOSTROPHE:
3210 case KeyCode.SINGLE_QUOTE:
3211 case KeyCode.OPEN_SQUARE_BRACKET:
3212 case KeyCode.BACKSLASH:
3213 case KeyCode.CLOSE_SQUARE_BRACKET:
3214 return true;
3215 default:
3216 return false;
3217 }
3218 };
3219
3220 module.exports = KeyCode;
3221
3222/***/ }),
3223/* 38 */
3224/***/ (function(module, exports) {
3225
3226 "use strict";
3227
3228 exports.__esModule = true;
3229 exports.default = contains;
3230 /**
3231 * This source code is quoted from rc-util.
3232 * homepage: https://github.com/react-component/util
3233 */
3234 function contains(root, n) {
3235 var node = n;
3236 while (node) {
3237 if (node === root) {
3238 return true;
3239 }
3240 node = node.parentNode;
3241 }
3242
3243 return false;
3244 }
3245
3246/***/ }),
3247/* 39 */
3248/***/ (function(module, exports, __webpack_require__) {
3249
3250 'use strict';
3251
3252 exports.__esModule = true;
3253 exports.default = addEventListenerWrap;
3254
3255 var _addDomEventListener = __webpack_require__(40);
3256
3257 var _addDomEventListener2 = _interopRequireDefault(_addDomEventListener);
3258
3259 var _reactDom = __webpack_require__(2);
3260
3261 var _reactDom2 = _interopRequireDefault(_reactDom);
3262
3263 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3264
3265 /**
3266 * This source code is quoted from rc-util.
3267 * homepage: https://github.com/react-component/util
3268 */
3269 function addEventListenerWrap(target, eventType, cb) {
3270 /* eslint camelcase: 2 */
3271 var callback = _reactDom2.default.unstable_batchedUpdates ? function run(e) {
3272 _reactDom2.default.unstable_batchedUpdates(cb, e);
3273 } : cb;
3274 return (0, _addDomEventListener2.default)(target, eventType, callback);
3275 }
3276
3277/***/ }),
3278/* 40 */
3279/***/ (function(module, exports, __webpack_require__) {
3280
3281 'use strict';
3282
3283 Object.defineProperty(exports, '__esModule', {
3284 value: true
3285 });
3286 exports['default'] = addEventListener;
3287
3288 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3289
3290 var _EventObject = __webpack_require__(41);
3291
3292 var _EventObject2 = _interopRequireDefault(_EventObject);
3293
3294 function addEventListener(target, eventType, callback, option) {
3295 function wrapCallback(e) {
3296 var ne = new _EventObject2['default'](e);
3297 callback.call(target, ne);
3298 }
3299
3300 if (target.addEventListener) {
3301 var _ret = (function () {
3302 var useCapture = false;
3303 if (typeof option === 'object') {
3304 useCapture = option.capture || false;
3305 } else if (typeof option === 'boolean') {
3306 useCapture = option;
3307 }
3308
3309 target.addEventListener(eventType, wrapCallback, option || false);
3310
3311 return {
3312 v: {
3313 remove: function remove() {
3314 target.removeEventListener(eventType, wrapCallback, useCapture);
3315 }
3316 }
3317 };
3318 })();
3319
3320 if (typeof _ret === 'object') return _ret.v;
3321 } else if (target.attachEvent) {
3322 target.attachEvent('on' + eventType, wrapCallback);
3323 return {
3324 remove: function remove() {
3325 target.detachEvent('on' + eventType, wrapCallback);
3326 }
3327 };
3328 }
3329 }
3330
3331 module.exports = exports['default'];
3332
3333/***/ }),
3334/* 41 */
3335/***/ (function(module, exports, __webpack_require__) {
3336
3337 /**
3338 * @ignore
3339 * event object for dom
3340 * @author yiminghe@gmail.com
3341 */
3342
3343 'use strict';
3344
3345 Object.defineProperty(exports, '__esModule', {
3346 value: true
3347 });
3348
3349 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3350
3351 var _EventBaseObject = __webpack_require__(42);
3352
3353 var _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);
3354
3355 var _objectAssign = __webpack_require__(43);
3356
3357 var _objectAssign2 = _interopRequireDefault(_objectAssign);
3358
3359 var TRUE = true;
3360 var FALSE = false;
3361 var commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];
3362
3363 function isNullOrUndefined(w) {
3364 return w === null || w === undefined;
3365 }
3366
3367 var eventNormalizers = [{
3368 reg: /^key/,
3369 props: ['char', 'charCode', 'key', 'keyCode', 'which'],
3370 fix: function fix(event, nativeEvent) {
3371 if (isNullOrUndefined(event.which)) {
3372 event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;
3373 }
3374
3375 // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)
3376 if (event.metaKey === undefined) {
3377 event.metaKey = event.ctrlKey;
3378 }
3379 }
3380 }, {
3381 reg: /^touch/,
3382 props: ['touches', 'changedTouches', 'targetTouches']
3383 }, {
3384 reg: /^hashchange$/,
3385 props: ['newURL', 'oldURL']
3386 }, {
3387 reg: /^gesturechange$/i,
3388 props: ['rotation', 'scale']
3389 }, {
3390 reg: /^(mousewheel|DOMMouseScroll)$/,
3391 props: [],
3392 fix: function fix(event, nativeEvent) {
3393 var deltaX = undefined;
3394 var deltaY = undefined;
3395 var delta = undefined;
3396 var wheelDelta = nativeEvent.wheelDelta;
3397 var axis = nativeEvent.axis;
3398 var wheelDeltaY = nativeEvent.wheelDeltaY;
3399 var wheelDeltaX = nativeEvent.wheelDeltaX;
3400 var detail = nativeEvent.detail;
3401
3402 // ie/webkit
3403 if (wheelDelta) {
3404 delta = wheelDelta / 120;
3405 }
3406
3407 // gecko
3408 if (detail) {
3409 // press control e.detail == 1 else e.detail == 3
3410 delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);
3411 }
3412
3413 // Gecko
3414 if (axis !== undefined) {
3415 if (axis === event.HORIZONTAL_AXIS) {
3416 deltaY = 0;
3417 deltaX = 0 - delta;
3418 } else if (axis === event.VERTICAL_AXIS) {
3419 deltaX = 0;
3420 deltaY = delta;
3421 }
3422 }
3423
3424 // Webkit
3425 if (wheelDeltaY !== undefined) {
3426 deltaY = wheelDeltaY / 120;
3427 }
3428 if (wheelDeltaX !== undefined) {
3429 deltaX = -1 * wheelDeltaX / 120;
3430 }
3431
3432 // 默认 deltaY (ie)
3433 if (!deltaX && !deltaY) {
3434 deltaY = delta;
3435 }
3436
3437 if (deltaX !== undefined) {
3438 /**
3439 * deltaX of mousewheel event
3440 * @property deltaX
3441 * @member Event.DomEvent.Object
3442 */
3443 event.deltaX = deltaX;
3444 }
3445
3446 if (deltaY !== undefined) {
3447 /**
3448 * deltaY of mousewheel event
3449 * @property deltaY
3450 * @member Event.DomEvent.Object
3451 */
3452 event.deltaY = deltaY;
3453 }
3454
3455 if (delta !== undefined) {
3456 /**
3457 * delta of mousewheel event
3458 * @property delta
3459 * @member Event.DomEvent.Object
3460 */
3461 event.delta = delta;
3462 }
3463 }
3464 }, {
3465 reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,
3466 props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],
3467 fix: function fix(event, nativeEvent) {
3468 var eventDoc = undefined;
3469 var doc = undefined;
3470 var body = undefined;
3471 var target = event.target;
3472 var button = nativeEvent.button;
3473
3474 // Calculate pageX/Y if missing and clientX/Y available
3475 if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {
3476 eventDoc = target.ownerDocument || document;
3477 doc = eventDoc.documentElement;
3478 body = eventDoc.body;
3479 event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
3480 event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
3481 }
3482
3483 // which for click: 1 === left; 2 === middle; 3 === right
3484 // do not use button
3485 if (!event.which && button !== undefined) {
3486 if (button & 1) {
3487 event.which = 1;
3488 } else if (button & 2) {
3489 event.which = 3;
3490 } else if (button & 4) {
3491 event.which = 2;
3492 } else {
3493 event.which = 0;
3494 }
3495 }
3496
3497 // add relatedTarget, if necessary
3498 if (!event.relatedTarget && event.fromElement) {
3499 event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;
3500 }
3501
3502 return event;
3503 }
3504 }];
3505
3506 function retTrue() {
3507 return TRUE;
3508 }
3509
3510 function retFalse() {
3511 return FALSE;
3512 }
3513
3514 function DomEventObject(nativeEvent) {
3515 var type = nativeEvent.type;
3516
3517 var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';
3518
3519 _EventBaseObject2['default'].call(this);
3520
3521 this.nativeEvent = nativeEvent;
3522
3523 // in case dom event has been mark as default prevented by lower dom node
3524 var isDefaultPrevented = retFalse;
3525 if ('defaultPrevented' in nativeEvent) {
3526 isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;
3527 } else if ('getPreventDefault' in nativeEvent) {
3528 // https://bugzilla.mozilla.org/show_bug.cgi?id=691151
3529 isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;
3530 } else if ('returnValue' in nativeEvent) {
3531 isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;
3532 }
3533
3534 this.isDefaultPrevented = isDefaultPrevented;
3535
3536 var fixFns = [];
3537 var fixFn = undefined;
3538 var l = undefined;
3539 var prop = undefined;
3540 var props = commonProps.concat();
3541
3542 eventNormalizers.forEach(function (normalizer) {
3543 if (type.match(normalizer.reg)) {
3544 props = props.concat(normalizer.props);
3545 if (normalizer.fix) {
3546 fixFns.push(normalizer.fix);
3547 }
3548 }
3549 });
3550
3551 l = props.length;
3552
3553 // clone properties of the original event object
3554 while (l) {
3555 prop = props[--l];
3556 this[prop] = nativeEvent[prop];
3557 }
3558
3559 // fix target property, if necessary
3560 if (!this.target && isNative) {
3561 this.target = nativeEvent.srcElement || document; // srcElement might not be defined either
3562 }
3563
3564 // check if target is a text node (safari)
3565 if (this.target && this.target.nodeType === 3) {
3566 this.target = this.target.parentNode;
3567 }
3568
3569 l = fixFns.length;
3570
3571 while (l) {
3572 fixFn = fixFns[--l];
3573 fixFn(this, nativeEvent);
3574 }
3575
3576 this.timeStamp = nativeEvent.timeStamp || Date.now();
3577 }
3578
3579 var EventBaseObjectProto = _EventBaseObject2['default'].prototype;
3580
3581 (0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {
3582 constructor: DomEventObject,
3583
3584 preventDefault: function preventDefault() {
3585 var e = this.nativeEvent;
3586
3587 // if preventDefault exists run it on the original event
3588 if (e.preventDefault) {
3589 e.preventDefault();
3590 } else {
3591 // otherwise set the returnValue property of the original event to FALSE (IE)
3592 e.returnValue = FALSE;
3593 }
3594
3595 EventBaseObjectProto.preventDefault.call(this);
3596 },
3597
3598 stopPropagation: function stopPropagation() {
3599 var e = this.nativeEvent;
3600
3601 // if stopPropagation exists run it on the original event
3602 if (e.stopPropagation) {
3603 e.stopPropagation();
3604 } else {
3605 // otherwise set the cancelBubble property of the original event to TRUE (IE)
3606 e.cancelBubble = TRUE;
3607 }
3608
3609 EventBaseObjectProto.stopPropagation.call(this);
3610 }
3611 });
3612
3613 exports['default'] = DomEventObject;
3614 module.exports = exports['default'];
3615
3616/***/ }),
3617/* 42 */
3618/***/ (function(module, exports) {
3619
3620 /**
3621 * @ignore
3622 * base event object for custom and dom event.
3623 * @author yiminghe@gmail.com
3624 */
3625
3626 "use strict";
3627
3628 Object.defineProperty(exports, "__esModule", {
3629 value: true
3630 });
3631 function returnFalse() {
3632 return false;
3633 }
3634
3635 function returnTrue() {
3636 return true;
3637 }
3638
3639 function EventBaseObject() {
3640 this.timeStamp = Date.now();
3641 this.target = undefined;
3642 this.currentTarget = undefined;
3643 }
3644
3645 EventBaseObject.prototype = {
3646 isEventObject: 1,
3647
3648 constructor: EventBaseObject,
3649
3650 isDefaultPrevented: returnFalse,
3651
3652 isPropagationStopped: returnFalse,
3653
3654 isImmediatePropagationStopped: returnFalse,
3655
3656 preventDefault: function preventDefault() {
3657 this.isDefaultPrevented = returnTrue;
3658 },
3659
3660 stopPropagation: function stopPropagation() {
3661 this.isPropagationStopped = returnTrue;
3662 },
3663
3664 stopImmediatePropagation: function stopImmediatePropagation() {
3665 this.isImmediatePropagationStopped = returnTrue;
3666 // fixed 1.2
3667 // call stopPropagation implicitly
3668 this.stopPropagation();
3669 },
3670
3671 halt: function halt(immediate) {
3672 if (immediate) {
3673 this.stopImmediatePropagation();
3674 } else {
3675 this.stopPropagation();
3676 }
3677 this.preventDefault();
3678 }
3679 };
3680
3681 exports["default"] = EventBaseObject;
3682 module.exports = exports["default"];
3683
3684/***/ }),
3685/* 43 */
3686/***/ (function(module, exports) {
3687
3688 /*
3689 object-assign
3690 (c) Sindre Sorhus
3691 @license MIT
3692 */
3693
3694 'use strict';
3695 /* eslint-disable no-unused-vars */
3696 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
3697 var hasOwnProperty = Object.prototype.hasOwnProperty;
3698 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
3699
3700 function toObject(val) {
3701 if (val === null || val === undefined) {
3702 throw new TypeError('Object.assign cannot be called with null or undefined');
3703 }
3704
3705 return Object(val);
3706 }
3707
3708 function shouldUseNative() {
3709 try {
3710 if (!Object.assign) {
3711 return false;
3712 }
3713
3714 // Detect buggy property enumeration order in older V8 versions.
3715
3716 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
3717 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
3718 test1[5] = 'de';
3719 if (Object.getOwnPropertyNames(test1)[0] === '5') {
3720 return false;
3721 }
3722
3723 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
3724 var test2 = {};
3725 for (var i = 0; i < 10; i++) {
3726 test2['_' + String.fromCharCode(i)] = i;
3727 }
3728 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
3729 return test2[n];
3730 });
3731 if (order2.join('') !== '0123456789') {
3732 return false;
3733 }
3734
3735 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
3736 var test3 = {};
3737 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
3738 test3[letter] = letter;
3739 });
3740 if (Object.keys(Object.assign({}, test3)).join('') !==
3741 'abcdefghijklmnopqrst') {
3742 return false;
3743 }
3744
3745 return true;
3746 } catch (err) {
3747 // We don't expect any of the above to throw, but better to be safe.
3748 return false;
3749 }
3750 }
3751
3752 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
3753 var from;
3754 var to = toObject(target);
3755 var symbols;
3756
3757 for (var s = 1; s < arguments.length; s++) {
3758 from = Object(arguments[s]);
3759
3760 for (var key in from) {
3761 if (hasOwnProperty.call(from, key)) {
3762 to[key] = from[key];
3763 }
3764 }
3765
3766 if (getOwnPropertySymbols) {
3767 symbols = getOwnPropertySymbols(from);
3768 for (var i = 0; i < symbols.length; i++) {
3769 if (propIsEnumerable.call(from, symbols[i])) {
3770 to[symbols[i]] = from[symbols[i]];
3771 }
3772 }
3773 }
3774 }
3775
3776 return to;
3777 };
3778
3779
3780/***/ }),
3781/* 44 */
3782/***/ (function(module, exports, __webpack_require__) {
3783
3784 'use strict';
3785
3786 exports.__esModule = true;
3787
3788 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; }; /**
3789 * This source code is quoted from rc-util.
3790 * homepage: https://github.com/react-component/util
3791 */
3792
3793
3794 var _Event = __webpack_require__(45);
3795
3796 var _Event2 = _interopRequireDefault(_Event);
3797
3798 var _componentClasses = __webpack_require__(46);
3799
3800 var _componentClasses2 = _interopRequireDefault(_componentClasses);
3801
3802 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3803
3804 var isCssAnimationSupported = _Event2.default.endEvents.length !== 0;
3805
3806
3807 var capitalPrefixes = ['Webkit', 'Moz', 'O',
3808 // ms is special .... !
3809 'ms'];
3810 var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];
3811
3812 function getStyleProperty(node, name) {
3813 var style = window.getComputedStyle(node);
3814
3815 var ret = '';
3816 for (var i = 0; i < prefixes.length; i++) {
3817 ret = style.getPropertyValue(prefixes[i] + name);
3818 if (ret) {
3819 break;
3820 }
3821 }
3822 return ret;
3823 }
3824
3825 function fixBrowserByTimeout(node) {
3826 if (isCssAnimationSupported) {
3827 var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;
3828 var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;
3829 var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;
3830 var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;
3831 var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);
3832 // sometimes, browser bug
3833 node.rcEndAnimTimeout = setTimeout(function () {
3834 node.rcEndAnimTimeout = null;
3835 if (node.rcEndListener) {
3836 node.rcEndListener();
3837 }
3838 }, time * 1000 + 200);
3839 }
3840 }
3841
3842 function clearBrowserBugTimeout(node) {
3843 if (node.rcEndAnimTimeout) {
3844 clearTimeout(node.rcEndAnimTimeout);
3845 node.rcEndAnimTimeout = null;
3846 }
3847 }
3848
3849 var cssAnimation = function cssAnimation(node, transitionName, endCallback) {
3850 var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';
3851 var className = nameIsObj ? transitionName.name : transitionName;
3852 var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';
3853 var end = endCallback;
3854 var start = void 0;
3855 var active = void 0;
3856 var nodeClasses = (0, _componentClasses2.default)(node);
3857
3858 if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {
3859 end = endCallback.end;
3860 start = endCallback.start;
3861 active = endCallback.active;
3862 }
3863
3864 if (node.rcEndListener) {
3865 node.rcEndListener();
3866 }
3867
3868 node.rcEndListener = function (e) {
3869 if (e && e.target !== node) {
3870 return;
3871 }
3872
3873 if (node.rcAnimTimeout) {
3874 clearTimeout(node.rcAnimTimeout);
3875 node.rcAnimTimeout = null;
3876 }
3877
3878 clearBrowserBugTimeout(node);
3879
3880 nodeClasses.remove(className);
3881 nodeClasses.remove(activeClassName);
3882
3883 _Event2.default.removeEndEventListener(node, node.rcEndListener);
3884 node.rcEndListener = null;
3885
3886 // Usually this optional end is used for informing an owner of
3887 // a leave animation and telling it to remove the child.
3888 if (end) {
3889 end();
3890 }
3891 };
3892
3893 _Event2.default.addEndEventListener(node, node.rcEndListener);
3894
3895 if (start) {
3896 start();
3897 }
3898 nodeClasses.add(className);
3899
3900 node.rcAnimTimeout = setTimeout(function () {
3901 node.rcAnimTimeout = null;
3902 nodeClasses.add(activeClassName);
3903 if (active) {
3904 setTimeout(active, 0);
3905 }
3906 fixBrowserByTimeout(node);
3907 // 30ms for firefox
3908 }, 30);
3909
3910 return {
3911 stop: function stop() {
3912 if (node.rcEndListener) {
3913 node.rcEndListener();
3914 }
3915 }
3916 };
3917 };
3918
3919 cssAnimation.style = function (node, style, callback) {
3920 if (node.rcEndListener) {
3921 node.rcEndListener();
3922 }
3923
3924 node.rcEndListener = function (e) {
3925 if (e && e.target !== node) {
3926 return;
3927 }
3928
3929 if (node.rcAnimTimeout) {
3930 clearTimeout(node.rcAnimTimeout);
3931 node.rcAnimTimeout = null;
3932 }
3933
3934 clearBrowserBugTimeout(node);
3935
3936 _Event2.default.removeEndEventListener(node, node.rcEndListener);
3937 node.rcEndListener = null;
3938
3939 // Usually this optional callback is used for informing an owner of
3940 // a leave animation and telling it to remove the child.
3941 if (callback) {
3942 callback();
3943 }
3944 };
3945
3946 _Event2.default.addEndEventListener(node, node.rcEndListener);
3947
3948 node.rcAnimTimeout = setTimeout(function () {
3949 for (var s in style) {
3950 if (style.hasOwnProperty(s)) {
3951 node.style[s] = style[s];
3952 }
3953 }
3954 node.rcAnimTimeout = null;
3955 fixBrowserByTimeout(node);
3956 }, 0);
3957 };
3958
3959 cssAnimation.setTransition = function (node, p, value) {
3960 var property = p;
3961 var v = value;
3962 if (value === undefined) {
3963 v = property;
3964 property = '';
3965 }
3966 property = property || '';
3967 capitalPrefixes.forEach(function (prefix) {
3968 node.style[prefix + 'Transition' + property] = v;
3969 });
3970 };
3971
3972 cssAnimation.isCssAnimationSupported = isCssAnimationSupported;
3973
3974 exports.default = cssAnimation;
3975
3976/***/ }),
3977/* 45 */
3978/***/ (function(module, exports) {
3979
3980 'use strict';
3981
3982 exports.__esModule = true;
3983 /**
3984 * This source code is quoted from rc-util.
3985 * homepage: https://github.com/react-component/util
3986 */
3987 var EVENT_NAME_MAP = {
3988 transitionend: {
3989 transition: 'transitionend',
3990 WebkitTransition: 'webkitTransitionEnd',
3991 MozTransition: 'mozTransitionEnd',
3992 OTransition: 'oTransitionEnd',
3993 msTransition: 'MSTransitionEnd'
3994 },
3995
3996 animationend: {
3997 animation: 'animationend',
3998 WebkitAnimation: 'webkitAnimationEnd',
3999 MozAnimation: 'mozAnimationEnd',
4000 OAnimation: 'oAnimationEnd',
4001 msAnimation: 'MSAnimationEnd'
4002 }
4003 };
4004
4005 var endEvents = [];
4006
4007 function detectEvents() {
4008 var testEl = document.createElement('div');
4009 var style = testEl.style;
4010
4011 if (!('AnimationEvent' in window)) {
4012 delete EVENT_NAME_MAP.animationend.animation;
4013 }
4014
4015 if (!('TransitionEvent' in window)) {
4016 delete EVENT_NAME_MAP.transitionend.transition;
4017 }
4018
4019 for (var baseEventName in EVENT_NAME_MAP) {
4020 if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {
4021 var baseEvents = EVENT_NAME_MAP[baseEventName];
4022 for (var styleName in baseEvents) {
4023 if (styleName in style) {
4024 endEvents.push(baseEvents[styleName]);
4025 break;
4026 }
4027 }
4028 }
4029 }
4030 }
4031
4032 if (typeof window !== 'undefined' && typeof document !== 'undefined') {
4033 detectEvents();
4034 }
4035
4036 function addEventListener(node, eventName, eventListener) {
4037 node.addEventListener(eventName, eventListener, false);
4038 }
4039
4040 function removeEventListener(node, eventName, eventListener) {
4041 node.removeEventListener(eventName, eventListener, false);
4042 }
4043
4044 var TransitionEvents = {
4045 addEndEventListener: function addEndEventListener(node, eventListener) {
4046 if (endEvents.length === 0) {
4047 window.setTimeout(eventListener, 0);
4048 return;
4049 }
4050 endEvents.forEach(function (endEvent) {
4051 addEventListener(node, endEvent, eventListener);
4052 });
4053 },
4054
4055
4056 endEvents: endEvents,
4057
4058 removeEndEventListener: function removeEndEventListener(node, eventListener) {
4059 if (endEvents.length === 0) {
4060 return;
4061 }
4062 endEvents.forEach(function (endEvent) {
4063 removeEventListener(node, endEvent, eventListener);
4064 });
4065 }
4066 };
4067
4068 exports.default = TransitionEvents;
4069
4070/***/ }),
4071/* 46 */
4072/***/ (function(module, exports, __webpack_require__) {
4073
4074 /**
4075 * Module dependencies.
4076 */
4077
4078 try {
4079 var index = __webpack_require__(47);
4080 } catch (err) {
4081 var index = __webpack_require__(47);
4082 }
4083
4084 /**
4085 * Whitespace regexp.
4086 */
4087
4088 var re = /\s+/;
4089
4090 /**
4091 * toString reference.
4092 */
4093
4094 var toString = Object.prototype.toString;
4095
4096 /**
4097 * Wrap `el` in a `ClassList`.
4098 *
4099 * @param {Element} el
4100 * @return {ClassList}
4101 * @api public
4102 */
4103
4104 module.exports = function(el){
4105 return new ClassList(el);
4106 };
4107
4108 /**
4109 * Initialize a new ClassList for `el`.
4110 *
4111 * @param {Element} el
4112 * @api private
4113 */
4114
4115 function ClassList(el) {
4116 if (!el || !el.nodeType) {
4117 throw new Error('A DOM element reference is required');
4118 }
4119 this.el = el;
4120 this.list = el.classList;
4121 }
4122
4123 /**
4124 * Add class `name` if not already present.
4125 *
4126 * @param {String} name
4127 * @return {ClassList}
4128 * @api public
4129 */
4130
4131 ClassList.prototype.add = function(name){
4132 // classList
4133 if (this.list) {
4134 this.list.add(name);
4135 return this;
4136 }
4137
4138 // fallback
4139 var arr = this.array();
4140 var i = index(arr, name);
4141 if (!~i) arr.push(name);
4142 this.el.className = arr.join(' ');
4143 return this;
4144 };
4145
4146 /**
4147 * Remove class `name` when present, or
4148 * pass a regular expression to remove
4149 * any which match.
4150 *
4151 * @param {String|RegExp} name
4152 * @return {ClassList}
4153 * @api public
4154 */
4155
4156 ClassList.prototype.remove = function(name){
4157 if ('[object RegExp]' == toString.call(name)) {
4158 return this.removeMatching(name);
4159 }
4160
4161 // classList
4162 if (this.list) {
4163 this.list.remove(name);
4164 return this;
4165 }
4166
4167 // fallback
4168 var arr = this.array();
4169 var i = index(arr, name);
4170 if (~i) arr.splice(i, 1);
4171 this.el.className = arr.join(' ');
4172 return this;
4173 };
4174
4175 /**
4176 * Remove all classes matching `re`.
4177 *
4178 * @param {RegExp} re
4179 * @return {ClassList}
4180 * @api private
4181 */
4182
4183 ClassList.prototype.removeMatching = function(re){
4184 var arr = this.array();
4185 for (var i = 0; i < arr.length; i++) {
4186 if (re.test(arr[i])) {
4187 this.remove(arr[i]);
4188 }
4189 }
4190 return this;
4191 };
4192
4193 /**
4194 * Toggle class `name`, can force state via `force`.
4195 *
4196 * For browsers that support classList, but do not support `force` yet,
4197 * the mistake will be detected and corrected.
4198 *
4199 * @param {String} name
4200 * @param {Boolean} force
4201 * @return {ClassList}
4202 * @api public
4203 */
4204
4205 ClassList.prototype.toggle = function(name, force){
4206 // classList
4207 if (this.list) {
4208 if ("undefined" !== typeof force) {
4209 if (force !== this.list.toggle(name, force)) {
4210 this.list.toggle(name); // toggle again to correct
4211 }
4212 } else {
4213 this.list.toggle(name);
4214 }
4215 return this;
4216 }
4217
4218 // fallback
4219 if ("undefined" !== typeof force) {
4220 if (!force) {
4221 this.remove(name);
4222 } else {
4223 this.add(name);
4224 }
4225 } else {
4226 if (this.has(name)) {
4227 this.remove(name);
4228 } else {
4229 this.add(name);
4230 }
4231 }
4232
4233 return this;
4234 };
4235
4236 /**
4237 * Return an array of classes.
4238 *
4239 * @return {Array}
4240 * @api public
4241 */
4242
4243 ClassList.prototype.array = function(){
4244 var className = this.el.getAttribute('class') || '';
4245 var str = className.replace(/^\s+|\s+$/g, '');
4246 var arr = str.split(re);
4247 if ('' === arr[0]) arr.shift();
4248 return arr;
4249 };
4250
4251 /**
4252 * Check if class `name` is present.
4253 *
4254 * @param {String} name
4255 * @return {ClassList}
4256 * @api public
4257 */
4258
4259 ClassList.prototype.has =
4260 ClassList.prototype.contains = function(name){
4261 return this.list
4262 ? this.list.contains(name)
4263 : !! ~index(this.array(), name);
4264 };
4265
4266
4267/***/ }),
4268/* 47 */
4269/***/ (function(module, exports) {
4270
4271 module.exports = function(arr, obj){
4272 if (arr.indexOf) return arr.indexOf(obj);
4273 for (var i = 0; i < arr.length; ++i) {
4274 if (arr[i] === obj) return i;
4275 }
4276 return -1;
4277 };
4278
4279/***/ }),
4280/* 48 */
4281/***/ (function(module, exports, __webpack_require__) {
4282
4283 'use strict';
4284
4285 exports.__esModule = true;
4286 exports.default = toArray;
4287
4288 var _react = __webpack_require__(1);
4289
4290 var _react2 = _interopRequireDefault(_react);
4291
4292 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4293
4294 function toArray(children) {
4295 var ret = [];
4296 _react2.default.Children.forEach(children, function (c) {
4297 ret.push(c);
4298 });
4299 return ret;
4300 } /**
4301 * This source code is quoted from rc-util.
4302 * homepage: https://github.com/react-component/util
4303 */
4304
4305/***/ }),
4306/* 49 */
4307/***/ (function(module, exports, __webpack_require__) {
4308
4309 'use strict';
4310
4311 exports.__esModule = true;
4312
4313 var _react = __webpack_require__(1);
4314
4315 var _react2 = _interopRequireDefault(_react);
4316
4317 var _propTypes = __webpack_require__(6);
4318
4319 var _propTypes2 = _interopRequireDefault(_propTypes);
4320
4321 var _reactDom = __webpack_require__(2);
4322
4323 var _reactDom2 = _interopRequireDefault(_reactDom);
4324
4325 var _domAlign = __webpack_require__(50);
4326
4327 var _domAlign2 = _interopRequireDefault(_domAlign);
4328
4329 var _addEventListener = __webpack_require__(39);
4330
4331 var _addEventListener2 = _interopRequireDefault(_addEventListener);
4332
4333 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4334
4335 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4336
4337 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; }
4338
4339 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; } /**
4340 * This source code is quoted from rc-util.
4341 * homepage: https://github.com/react-component/util
4342 */
4343
4344
4345 //import isWindow from './isWindow';
4346
4347 function isWindow(obj) {
4348 /* eslint no-eq-null: 0 */
4349 /* eslint eqeqeq: 0 */
4350 return obj != null && obj == obj.window;
4351 }
4352
4353 function buffer(fn, ms) {
4354 var timer = void 0;
4355
4356 function clear() {
4357 if (timer) {
4358 clearTimeout(timer);
4359 timer = null;
4360 }
4361 }
4362
4363 function bufferFn() {
4364 clear();
4365 timer = setTimeout(fn, ms);
4366 }
4367
4368 bufferFn.clear = clear;
4369
4370 return bufferFn;
4371 }
4372
4373 var propTypes = {
4374 childrenProps: _propTypes2.default.object,
4375 align: _propTypes2.default.object.isRequired,
4376 target: _propTypes2.default.func,
4377 onAlign: _propTypes2.default.func,
4378 monitorBufferTime: _propTypes2.default.number,
4379 monitorWindowResize: _propTypes2.default.bool,
4380 disabled: _propTypes2.default.bool,
4381 children: _propTypes2.default.any
4382 };
4383
4384 var defaultProps = {
4385 target: function target() {
4386 return window;
4387 },
4388 onAlign: function onAlign() {},
4389
4390 monitorBufferTime: 50,
4391 monitorWindowResize: false,
4392 disabled: false
4393 };
4394
4395 var Align = function (_React$Component) {
4396 _inherits(Align, _React$Component);
4397
4398 function Align(props) {
4399 _classCallCheck(this, Align);
4400
4401 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
4402
4403 _initialiseProps.call(_this);
4404
4405 return _this;
4406 }
4407
4408 Align.prototype.componentDidMount = function componentDidMount() {
4409 var props = this.props;
4410 // if parent ref not attached .... use document.getElementById
4411 this.forceAlign();
4412 if (!props.disabled && props.monitorWindowResize) {
4413 this.startMonitorWindowResize();
4414 }
4415 };
4416
4417 Align.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
4418 var reAlign = false;
4419 var props = this.props;
4420
4421 if (!props.disabled) {
4422 if (prevProps.disabled || prevProps.align !== props.align) {
4423 reAlign = true;
4424 } else {
4425 var lastTarget = prevProps.target();
4426 var currentTarget = props.target();
4427 if (isWindow(lastTarget) && isWindow(currentTarget)) {
4428 reAlign = false;
4429 } else if (lastTarget !== currentTarget) {
4430 reAlign = true;
4431 }
4432 }
4433 }
4434
4435 if (reAlign) {
4436 this.forceAlign();
4437 }
4438
4439 if (props.monitorWindowResize && !props.disabled) {
4440 this.startMonitorWindowResize();
4441 } else {
4442 this.stopMonitorWindowResize();
4443 }
4444 };
4445
4446 Align.prototype.componentWillUnmount = function componentWillUnmount() {
4447 this.stopMonitorWindowResize();
4448 };
4449
4450 Align.prototype.render = function render() {
4451 var _props = this.props,
4452 childrenProps = _props.childrenProps,
4453 children = _props.children;
4454
4455 var child = _react2.default.Children.only(children);
4456 if (childrenProps) {
4457 var newProps = {};
4458 for (var prop in childrenProps) {
4459 if (childrenProps.hasOwnProperty(prop)) {
4460 newProps[prop] = this.props[childrenProps[prop]];
4461 }
4462 }
4463 return _react2.default.cloneElement(child, newProps);
4464 }
4465 return child;
4466 };
4467
4468 return Align;
4469 }(_react2.default.Component);
4470
4471 var _initialiseProps = function _initialiseProps() {
4472 var _this2 = this;
4473
4474 this.startMonitorWindowResize = function () {
4475 if (!_this2.resizeHandler) {
4476 _this2.bufferMonitor = buffer(_this2.forceAlign, _this2.props.monitorBufferTime);
4477 _this2.resizeHandler = (0, _addEventListener2.default)(window, 'resize', _this2.bufferMonitor);
4478 }
4479 };
4480
4481 this.stopMonitorWindowResize = function () {
4482 if (_this2.resizeHandler) {
4483 _this2.bufferMonitor.clear();
4484 _this2.resizeHandler.remove();
4485 _this2.resizeHandler = null;
4486 }
4487 };
4488
4489 this.forceAlign = function () {
4490 var props = _this2.props;
4491 if (!props.disabled) {
4492 var source = _reactDom2.default.findDOMNode(_this2);
4493 props.onAlign(source, (0, _domAlign2.default)(source, props.target(), props.align));
4494 }
4495 };
4496 };
4497
4498 ;
4499
4500 Align.defaultProps = defaultProps;
4501 Align.propTypes = propTypes;
4502
4503 exports.default = Align;
4504
4505/***/ }),
4506/* 50 */
4507/***/ (function(module, exports, __webpack_require__) {
4508
4509 'use strict';
4510
4511 Object.defineProperty(exports, "__esModule", {
4512 value: true
4513 });
4514 exports.alignPoint = exports.alignElement = undefined;
4515
4516 var _alignElement = __webpack_require__(51);
4517
4518 var _alignElement2 = _interopRequireDefault(_alignElement);
4519
4520 var _alignPoint = __webpack_require__(62);
4521
4522 var _alignPoint2 = _interopRequireDefault(_alignPoint);
4523
4524 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
4525
4526 exports.alignElement = _alignElement2['default'];
4527 exports.alignPoint = _alignPoint2['default'];
4528 exports['default'] = _alignElement2['default'];
4529
4530/***/ }),
4531/* 51 */
4532/***/ (function(module, exports, __webpack_require__) {
4533
4534 'use strict';
4535
4536 Object.defineProperty(exports, "__esModule", {
4537 value: true
4538 });
4539
4540 var _align = __webpack_require__(52);
4541
4542 var _align2 = _interopRequireDefault(_align);
4543
4544 var _getOffsetParent = __webpack_require__(56);
4545
4546 var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);
4547
4548 var _getVisibleRectForElement = __webpack_require__(55);
4549
4550 var _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement);
4551
4552 var _getRegion = __webpack_require__(59);
4553
4554 var _getRegion2 = _interopRequireDefault(_getRegion);
4555
4556 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
4557
4558 function isOutOfVisibleRect(target) {
4559 var visibleRect = (0, _getVisibleRectForElement2['default'])(target);
4560 var targetRegion = (0, _getRegion2['default'])(target);
4561
4562 return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;
4563 }
4564
4565 function alignElement(el, refNode, align) {
4566 var target = align.target || refNode;
4567 var refNodeRegion = (0, _getRegion2['default'])(target);
4568
4569 var isTargetNotOutOfVisible = !isOutOfVisibleRect(target);
4570
4571 return (0, _align2['default'])(el, refNodeRegion, align, isTargetNotOutOfVisible);
4572 }
4573
4574 alignElement.__getOffsetParent = _getOffsetParent2['default'];
4575
4576 alignElement.__getVisibleRectForElement = _getVisibleRectForElement2['default'];
4577
4578 exports['default'] = alignElement;
4579 module.exports = exports['default'];
4580
4581/***/ }),
4582/* 52 */
4583/***/ (function(module, exports, __webpack_require__) {
4584
4585 'use strict';
4586
4587 Object.defineProperty(exports, "__esModule", {
4588 value: true
4589 });
4590
4591 var _utils = __webpack_require__(53);
4592
4593 var _utils2 = _interopRequireDefault(_utils);
4594
4595 var _getVisibleRectForElement = __webpack_require__(55);
4596
4597 var _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement);
4598
4599 var _adjustForViewport = __webpack_require__(58);
4600
4601 var _adjustForViewport2 = _interopRequireDefault(_adjustForViewport);
4602
4603 var _getRegion = __webpack_require__(59);
4604
4605 var _getRegion2 = _interopRequireDefault(_getRegion);
4606
4607 var _getElFuturePos = __webpack_require__(60);
4608
4609 var _getElFuturePos2 = _interopRequireDefault(_getElFuturePos);
4610
4611 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
4612
4613 // http://yiminghe.iteye.com/blog/1124720
4614
4615 function isFailX(elFuturePos, elRegion, visibleRect) {
4616 return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;
4617 } /**
4618 * align dom node flexibly
4619 * @author yiminghe@gmail.com
4620 */
4621
4622 function isFailY(elFuturePos, elRegion, visibleRect) {
4623 return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;
4624 }
4625
4626 function isCompleteFailX(elFuturePos, elRegion, visibleRect) {
4627 return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;
4628 }
4629
4630 function isCompleteFailY(elFuturePos, elRegion, visibleRect) {
4631 return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;
4632 }
4633
4634 function flip(points, reg, map) {
4635 var ret = [];
4636 _utils2['default'].each(points, function (p) {
4637 ret.push(p.replace(reg, function (m) {
4638 return map[m];
4639 }));
4640 });
4641 return ret;
4642 }
4643
4644 function flipOffset(offset, index) {
4645 offset[index] = -offset[index];
4646 return offset;
4647 }
4648
4649 function convertOffset(str, offsetLen) {
4650 var n = void 0;
4651 if (/%$/.test(str)) {
4652 n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;
4653 } else {
4654 n = parseInt(str, 10);
4655 }
4656 return n || 0;
4657 }
4658
4659 function normalizeOffset(offset, el) {
4660 offset[0] = convertOffset(offset[0], el.width);
4661 offset[1] = convertOffset(offset[1], el.height);
4662 }
4663
4664 /**
4665 * @param el
4666 * @param tgtRegion 参照节点所占的区域: { left, top, width, height }
4667 * @param align
4668 */
4669 function doAlign(el, tgtRegion, align, isTgtRegionVisible) {
4670 var points = align.points;
4671 var offset = align.offset || [0, 0];
4672 var targetOffset = align.targetOffset || [0, 0];
4673 var overflow = align.overflow;
4674 var source = align.source || el;
4675 offset = [].concat(offset);
4676 targetOffset = [].concat(targetOffset);
4677 overflow = overflow || {};
4678 var newOverflowCfg = {};
4679 var fail = 0;
4680 // 当前节点可以被放置的显示区域
4681 var visibleRect = (0, _getVisibleRectForElement2['default'])(source);
4682 // 当前节点所占的区域, left/top/width/height
4683 var elRegion = (0, _getRegion2['default'])(source);
4684 // 将 offset 转换成数值,支持百分比
4685 normalizeOffset(offset, elRegion);
4686 normalizeOffset(targetOffset, tgtRegion);
4687 // 当前节点将要被放置的位置
4688 var elFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, points, offset, targetOffset);
4689 // 当前节点将要所处的区域
4690 var newElRegion = _utils2['default'].merge(elRegion, elFuturePos);
4691
4692 // 如果可视区域不能完全放置当前节点时允许调整
4693 if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {
4694 if (overflow.adjustX) {
4695 // 如果横向不能放下
4696 if (isFailX(elFuturePos, elRegion, visibleRect)) {
4697 // 对齐位置反下
4698 var newPoints = flip(points, /[lr]/ig, {
4699 l: 'r',
4700 r: 'l'
4701 });
4702 // 偏移量也反下
4703 var newOffset = flipOffset(offset, 0);
4704 var newTargetOffset = flipOffset(targetOffset, 0);
4705 var newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);
4706
4707 if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {
4708 fail = 1;
4709 points = newPoints;
4710 offset = newOffset;
4711 targetOffset = newTargetOffset;
4712 }
4713 }
4714 }
4715
4716 if (overflow.adjustY) {
4717 // 如果纵向不能放下
4718 if (isFailY(elFuturePos, elRegion, visibleRect)) {
4719 // 对齐位置反下
4720 var _newPoints = flip(points, /[tb]/ig, {
4721 t: 'b',
4722 b: 't'
4723 });
4724 // 偏移量也反下
4725 var _newOffset = flipOffset(offset, 1);
4726 var _newTargetOffset = flipOffset(targetOffset, 1);
4727 var _newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);
4728
4729 if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {
4730 fail = 1;
4731 points = _newPoints;
4732 offset = _newOffset;
4733 targetOffset = _newTargetOffset;
4734 }
4735 }
4736 }
4737
4738 // 如果失败,重新计算当前节点将要被放置的位置
4739 if (fail) {
4740 elFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, points, offset, targetOffset);
4741 _utils2['default'].mix(newElRegion, elFuturePos);
4742 }
4743 var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);
4744 var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);
4745 // 检查反下后的位置是否可以放下了,如果仍然放不下:
4746 // 1. 复原修改过的定位参数
4747 if (isStillFailX || isStillFailY) {
4748 points = align.points;
4749 offset = align.offset || [0, 0];
4750 targetOffset = align.targetOffset || [0, 0];
4751 }
4752 // 2. 只有指定了可以调整当前方向才调整
4753 newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;
4754 newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;
4755
4756 // 确实要调整,甚至可能会调整高度宽度
4757 if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {
4758 newElRegion = (0, _adjustForViewport2['default'])(elFuturePos, elRegion, visibleRect, newOverflowCfg);
4759 }
4760 }
4761
4762 // need judge to in case set fixed with in css on height auto element
4763 if (newElRegion.width !== elRegion.width) {
4764 _utils2['default'].css(source, 'width', _utils2['default'].width(source) + newElRegion.width - elRegion.width);
4765 }
4766
4767 if (newElRegion.height !== elRegion.height) {
4768 _utils2['default'].css(source, 'height', _utils2['default'].height(source) + newElRegion.height - elRegion.height);
4769 }
4770
4771 // https://github.com/kissyteam/kissy/issues/190
4772 // 相对于屏幕位置没变,而 left/top 变了
4773 // 例如 <div 'relative'><el absolute></div>
4774 _utils2['default'].offset(source, {
4775 left: newElRegion.left,
4776 top: newElRegion.top
4777 }, {
4778 useCssRight: align.useCssRight,
4779 useCssBottom: align.useCssBottom,
4780 useCssTransform: align.useCssTransform,
4781 ignoreShake: align.ignoreShake
4782 });
4783
4784 return {
4785 points: points,
4786 offset: offset,
4787 targetOffset: targetOffset,
4788 overflow: newOverflowCfg
4789 };
4790 }
4791
4792 exports['default'] = doAlign;
4793 /**
4794 * 2012-04-26 yiminghe@gmail.com
4795 * - 优化智能对齐算法
4796 * - 慎用 resizeXX
4797 *
4798 * 2011-07-13 yiminghe@gmail.com note:
4799 * - 增加智能对齐,以及大小调整选项
4800 **/
4801
4802 module.exports = exports['default'];
4803
4804/***/ }),
4805/* 53 */
4806/***/ (function(module, exports, __webpack_require__) {
4807
4808 'use strict';
4809
4810 Object.defineProperty(exports, "__esModule", {
4811 value: true
4812 });
4813
4814 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; };
4815
4816 var _propertyUtils = __webpack_require__(54);
4817
4818 var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
4819
4820 var getComputedStyleX = void 0;
4821
4822 // https://stackoverflow.com/a/3485654/3040605
4823 function forceRelayout(elem) {
4824 var originalStyle = elem.style.display;
4825 elem.style.display = 'none';
4826 elem.offsetHeight; // eslint-disable-line
4827 elem.style.display = originalStyle;
4828 }
4829
4830 function css(el, name, v) {
4831 var value = v;
4832 if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
4833 for (var i in name) {
4834 if (name.hasOwnProperty(i)) {
4835 css(el, i, name[i]);
4836 }
4837 }
4838 return undefined;
4839 }
4840 if (typeof value !== 'undefined') {
4841 if (typeof value === 'number') {
4842 value = value + 'px';
4843 }
4844 el.style[name] = value;
4845 return undefined;
4846 }
4847 return getComputedStyleX(el, name);
4848 }
4849
4850 function getClientPosition(elem) {
4851 var box = void 0;
4852 var x = void 0;
4853 var y = void 0;
4854 var doc = elem.ownerDocument;
4855 var body = doc.body;
4856 var docElem = doc && doc.documentElement;
4857 // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
4858 box = elem.getBoundingClientRect();
4859
4860 // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
4861 // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
4862 // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
4863
4864 x = box.left;
4865 y = box.top;
4866
4867 // In IE, most of the time, 2 extra pixels are added to the top and left
4868 // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and
4869 // IE6 standards mode, this border can be overridden by setting the
4870 // document element's border to zero -- thus, we cannot rely on the
4871 // offset always being 2 pixels.
4872
4873 // In quirks mode, the offset can be determined by querying the body's
4874 // clientLeft/clientTop, but in standards mode, it is found by querying
4875 // the document element's clientLeft/clientTop. Since we already called
4876 // getClientBoundingRect we have already forced a reflow, so it is not
4877 // too expensive just to query them all.
4878
4879 // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
4880 // 窗口边框标准是设 documentElement ,quirks 时设置 body
4881 // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
4882 // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
4883 // 标准 ie 下 docElem.clientTop 就是 border-top
4884 // ie7 html 即窗口边框改变不了。永远为 2
4885 // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
4886
4887 x -= docElem.clientLeft || body.clientLeft || 0;
4888 y -= docElem.clientTop || body.clientTop || 0;
4889
4890 return {
4891 left: x,
4892 top: y
4893 };
4894 }
4895
4896 function getScroll(w, top) {
4897 var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
4898 var method = 'scroll' + (top ? 'Top' : 'Left');
4899 if (typeof ret !== 'number') {
4900 var d = w.document;
4901 // ie6,7,8 standard mode
4902 ret = d.documentElement[method];
4903 if (typeof ret !== 'number') {
4904 // quirks mode
4905 ret = d.body[method];
4906 }
4907 }
4908 return ret;
4909 }
4910
4911 function getScrollLeft(w) {
4912 return getScroll(w);
4913 }
4914
4915 function getScrollTop(w) {
4916 return getScroll(w, true);
4917 }
4918
4919 function getOffset(el) {
4920 var pos = getClientPosition(el);
4921 var doc = el.ownerDocument;
4922 var w = doc.defaultView || doc.parentWindow;
4923 pos.left += getScrollLeft(w);
4924 pos.top += getScrollTop(w);
4925 return pos;
4926 }
4927
4928 /**
4929 * A crude way of determining if an object is a window
4930 * @member util
4931 */
4932 function isWindow(obj) {
4933 // must use == for ie8
4934 /* eslint eqeqeq:0 */
4935 return obj !== null && obj !== undefined && obj == obj.window;
4936 }
4937
4938 function getDocument(node) {
4939 if (isWindow(node)) {
4940 return node.document;
4941 }
4942 if (node.nodeType === 9) {
4943 return node;
4944 }
4945 return node.ownerDocument;
4946 }
4947
4948 function _getComputedStyle(elem, name, cs) {
4949 var computedStyle = cs;
4950 var val = '';
4951 var d = getDocument(elem);
4952 computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);
4953
4954 // https://github.com/kissyteam/kissy/issues/61
4955 if (computedStyle) {
4956 val = computedStyle.getPropertyValue(name) || computedStyle[name];
4957 }
4958
4959 return val;
4960 }
4961
4962 var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
4963 var RE_POS = /^(top|right|bottom|left)$/;
4964 var CURRENT_STYLE = 'currentStyle';
4965 var RUNTIME_STYLE = 'runtimeStyle';
4966 var LEFT = 'left';
4967 var PX = 'px';
4968
4969 function _getComputedStyleIE(elem, name) {
4970 // currentStyle maybe null
4971 // http://msdn.microsoft.com/en-us/library/ms535231.aspx
4972 var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
4973
4974 // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
4975 // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
4976 // 在 ie 下不对,需要直接用 offset 方式
4977 // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
4978
4979 // From the awesome hack by Dean Edwards
4980 // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
4981 // If we're not dealing with a regular pixel number
4982 // but a number that has a weird ending, we need to convert it to pixels
4983 // exclude left right for relativity
4984 if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
4985 // Remember the original values
4986 var style = elem.style;
4987 var left = style[LEFT];
4988 var rsLeft = elem[RUNTIME_STYLE][LEFT];
4989
4990 // prevent flashing of content
4991 elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
4992
4993 // Put in the new values to get a computed value out
4994 style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
4995 ret = style.pixelLeft + PX;
4996
4997 // Revert the changed values
4998 style[LEFT] = left;
4999
5000 elem[RUNTIME_STYLE][LEFT] = rsLeft;
5001 }
5002 return ret === '' ? 'auto' : ret;
5003 }
5004
5005 if (typeof window !== 'undefined') {
5006 getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
5007 }
5008
5009 function getOffsetDirection(dir, option) {
5010 if (dir === 'left') {
5011 return option.useCssRight ? 'right' : dir;
5012 }
5013 return option.useCssBottom ? 'bottom' : dir;
5014 }
5015
5016 function oppositeOffsetDirection(dir) {
5017 if (dir === 'left') {
5018 return 'right';
5019 } else if (dir === 'right') {
5020 return 'left';
5021 } else if (dir === 'top') {
5022 return 'bottom';
5023 } else if (dir === 'bottom') {
5024 return 'top';
5025 }
5026 }
5027
5028 // 设置 elem 相对 elem.ownerDocument 的坐标
5029 function setLeftTop(elem, offset, option) {
5030 // set position first, in-case top/left are set even on static elem
5031 if (css(elem, 'position') === 'static') {
5032 elem.style.position = 'relative';
5033 }
5034 var presetH = -999;
5035 var presetV = -999;
5036 var horizontalProperty = getOffsetDirection('left', option);
5037 var verticalProperty = getOffsetDirection('top', option);
5038 var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);
5039 var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);
5040
5041 if (horizontalProperty !== 'left') {
5042 presetH = 999;
5043 }
5044
5045 if (verticalProperty !== 'top') {
5046 presetV = 999;
5047 }
5048 var originalTransition = '';
5049 var originalOffset = getOffset(elem);
5050 if ('left' in offset || 'top' in offset) {
5051 originalTransition = (0, _propertyUtils.getTransitionProperty)(elem) || '';
5052 (0, _propertyUtils.setTransitionProperty)(elem, 'none');
5053 }
5054 if ('left' in offset) {
5055 elem.style[oppositeHorizontalProperty] = '';
5056 elem.style[horizontalProperty] = presetH + 'px';
5057 }
5058 if ('top' in offset) {
5059 elem.style[oppositeVerticalProperty] = '';
5060 elem.style[verticalProperty] = presetV + 'px';
5061 }
5062 // force relayout
5063 forceRelayout(elem);
5064 var old = getOffset(elem);
5065 var originalStyle = {};
5066 for (var key in offset) {
5067 if (offset.hasOwnProperty(key)) {
5068 var dir = getOffsetDirection(key, option);
5069 var preset = key === 'left' ? presetH : presetV;
5070 var off = originalOffset[key] - old[key];
5071 if (dir === key) {
5072 originalStyle[dir] = preset + off;
5073 } else {
5074 originalStyle[dir] = preset - off;
5075 }
5076 }
5077 }
5078 css(elem, originalStyle);
5079 // force relayout
5080 forceRelayout(elem);
5081 if ('left' in offset || 'top' in offset) {
5082 (0, _propertyUtils.setTransitionProperty)(elem, originalTransition);
5083 }
5084 var ret = {};
5085 for (var _key in offset) {
5086 if (offset.hasOwnProperty(_key)) {
5087 var _dir = getOffsetDirection(_key, option);
5088 var _off = offset[_key] - originalOffset[_key];
5089 if (_key === _dir) {
5090 ret[_dir] = originalStyle[_dir] + _off;
5091 } else {
5092 ret[_dir] = originalStyle[_dir] - _off;
5093 }
5094 }
5095 }
5096 css(elem, ret);
5097 }
5098
5099 function setTransform(elem, offset) {
5100 var originalOffset = getOffset(elem);
5101 var originalXY = (0, _propertyUtils.getTransformXY)(elem);
5102 var resultXY = { x: originalXY.x, y: originalXY.y };
5103 if ('left' in offset) {
5104 resultXY.x = originalXY.x + offset.left - originalOffset.left;
5105 }
5106 if ('top' in offset) {
5107 resultXY.y = originalXY.y + offset.top - originalOffset.top;
5108 }
5109 (0, _propertyUtils.setTransformXY)(elem, resultXY);
5110 }
5111
5112 function setOffset(elem, offset, option) {
5113 if (option.ignoreShake) {
5114 var oriOffset = getOffset(elem);
5115
5116 var oLeft = oriOffset.left.toFixed(0);
5117 var oTop = oriOffset.top.toFixed(0);
5118 var tLeft = offset.left.toFixed(0);
5119 var tTop = offset.top.toFixed(0);
5120
5121 if (oLeft === tLeft && oTop === tTop) {
5122 return;
5123 }
5124 }
5125
5126 if (option.useCssRight || option.useCssBottom) {
5127 setLeftTop(elem, offset, option);
5128 } else if (option.useCssTransform && (0, _propertyUtils.getTransformName)() in document.body.style) {
5129 setTransform(elem, offset, option);
5130 } else {
5131 setLeftTop(elem, offset, option);
5132 }
5133 }
5134
5135 function each(arr, fn) {
5136 for (var i = 0; i < arr.length; i++) {
5137 fn(arr[i]);
5138 }
5139 }
5140
5141 function isBorderBoxFn(elem) {
5142 return getComputedStyleX(elem, 'boxSizing') === 'border-box';
5143 }
5144
5145 var BOX_MODELS = ['margin', 'border', 'padding'];
5146 var CONTENT_INDEX = -1;
5147 var PADDING_INDEX = 2;
5148 var BORDER_INDEX = 1;
5149 var MARGIN_INDEX = 0;
5150
5151 function swap(elem, options, callback) {
5152 var old = {};
5153 var style = elem.style;
5154 var name = void 0;
5155
5156 // Remember the old values, and insert the new ones
5157 for (name in options) {
5158 if (options.hasOwnProperty(name)) {
5159 old[name] = style[name];
5160 style[name] = options[name];
5161 }
5162 }
5163
5164 callback.call(elem);
5165
5166 // Revert the old values
5167 for (name in options) {
5168 if (options.hasOwnProperty(name)) {
5169 style[name] = old[name];
5170 }
5171 }
5172 }
5173
5174 function getPBMWidth(elem, props, which) {
5175 var value = 0;
5176 var prop = void 0;
5177 var j = void 0;
5178 var i = void 0;
5179 for (j = 0; j < props.length; j++) {
5180 prop = props[j];
5181 if (prop) {
5182 for (i = 0; i < which.length; i++) {
5183 var cssProp = void 0;
5184 if (prop === 'border') {
5185 cssProp = '' + prop + which[i] + 'Width';
5186 } else {
5187 cssProp = prop + which[i];
5188 }
5189 value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
5190 }
5191 }
5192 }
5193 return value;
5194 }
5195
5196 var domUtils = {};
5197
5198 each(['Width', 'Height'], function (name) {
5199 domUtils['doc' + name] = function (refWin) {
5200 var d = refWin.document;
5201 return Math.max(
5202 // firefox chrome documentElement.scrollHeight< body.scrollHeight
5203 // ie standard mode : documentElement.scrollHeight> body.scrollHeight
5204 d.documentElement['scroll' + name],
5205 // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
5206 d.body['scroll' + name], domUtils['viewport' + name](d));
5207 };
5208
5209 domUtils['viewport' + name] = function (win) {
5210 // pc browser includes scrollbar in window.innerWidth
5211 var prop = 'client' + name;
5212 var doc = win.document;
5213 var body = doc.body;
5214 var documentElement = doc.documentElement;
5215 var documentElementProp = documentElement[prop];
5216 // 标准模式取 documentElement
5217 // backcompat 取 body
5218 return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
5219 };
5220 });
5221
5222 /*
5223 得到元素的大小信息
5224 @param elem
5225 @param name
5226 @param {String} [extra] 'padding' : (css width) + padding
5227 'border' : (css width) + padding + border
5228 'margin' : (css width) + padding + border + margin
5229 */
5230 function getWH(elem, name, ex) {
5231 var extra = ex;
5232 if (isWindow(elem)) {
5233 return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
5234 } else if (elem.nodeType === 9) {
5235 return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
5236 }
5237 var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
5238 var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;
5239 var computedStyle = getComputedStyleX(elem);
5240 var isBorderBox = isBorderBoxFn(elem, computedStyle);
5241 var cssBoxValue = 0;
5242 if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {
5243 borderBoxValue = undefined;
5244 // Fall back to computed then un computed css if necessary
5245 cssBoxValue = getComputedStyleX(elem, name);
5246 if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {
5247 cssBoxValue = elem.style[name] || 0;
5248 }
5249 // Normalize '', auto, and prepare for extra
5250 cssBoxValue = parseFloat(cssBoxValue) || 0;
5251 }
5252 if (extra === undefined) {
5253 extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
5254 }
5255 var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
5256 var val = borderBoxValue || cssBoxValue;
5257 if (extra === CONTENT_INDEX) {
5258 if (borderBoxValueOrIsBorderBox) {
5259 return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
5260 }
5261 return cssBoxValue;
5262 } else if (borderBoxValueOrIsBorderBox) {
5263 if (extra === BORDER_INDEX) {
5264 return val;
5265 }
5266 return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle));
5267 }
5268 return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
5269 }
5270
5271 var cssShow = {
5272 position: 'absolute',
5273 visibility: 'hidden',
5274 display: 'block'
5275 };
5276
5277 // fix #119 : https://github.com/kissyteam/kissy/issues/119
5278 function getWHIgnoreDisplay() {
5279 for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {
5280 args[_key2] = arguments[_key2];
5281 }
5282
5283 var val = void 0;
5284 var elem = args[0];
5285 // in case elem is window
5286 // elem.offsetWidth === undefined
5287 if (elem.offsetWidth !== 0) {
5288 val = getWH.apply(undefined, args);
5289 } else {
5290 swap(elem, cssShow, function () {
5291 val = getWH.apply(undefined, args);
5292 });
5293 }
5294 return val;
5295 }
5296
5297 each(['width', 'height'], function (name) {
5298 var first = name.charAt(0).toUpperCase() + name.slice(1);
5299 domUtils['outer' + first] = function (el, includeMargin) {
5300 return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
5301 };
5302 var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
5303
5304 domUtils[name] = function (elem, v) {
5305 var val = v;
5306 if (val !== undefined) {
5307 if (elem) {
5308 var computedStyle = getComputedStyleX(elem);
5309 var isBorderBox = isBorderBoxFn(elem);
5310 if (isBorderBox) {
5311 val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
5312 }
5313 return css(elem, name, val);
5314 }
5315 return undefined;
5316 }
5317 return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
5318 };
5319 });
5320
5321 function mix(to, from) {
5322 for (var i in from) {
5323 if (from.hasOwnProperty(i)) {
5324 to[i] = from[i];
5325 }
5326 }
5327 return to;
5328 }
5329
5330 var utils = {
5331 getWindow: function getWindow(node) {
5332 if (node && node.document && node.setTimeout) {
5333 return node;
5334 }
5335 var doc = node.ownerDocument || node;
5336 return doc.defaultView || doc.parentWindow;
5337 },
5338
5339 getDocument: getDocument,
5340 offset: function offset(el, value, option) {
5341 if (typeof value !== 'undefined') {
5342 setOffset(el, value, option || {});
5343 } else {
5344 return getOffset(el);
5345 }
5346 },
5347
5348 isWindow: isWindow,
5349 each: each,
5350 css: css,
5351 clone: function clone(obj) {
5352 var i = void 0;
5353 var ret = {};
5354 for (i in obj) {
5355 if (obj.hasOwnProperty(i)) {
5356 ret[i] = obj[i];
5357 }
5358 }
5359 var overflow = obj.overflow;
5360 if (overflow) {
5361 for (i in obj) {
5362 if (obj.hasOwnProperty(i)) {
5363 ret.overflow[i] = obj.overflow[i];
5364 }
5365 }
5366 }
5367 return ret;
5368 },
5369
5370 mix: mix,
5371 getWindowScrollLeft: function getWindowScrollLeft(w) {
5372 return getScrollLeft(w);
5373 },
5374 getWindowScrollTop: function getWindowScrollTop(w) {
5375 return getScrollTop(w);
5376 },
5377 merge: function merge() {
5378 var ret = {};
5379
5380 for (var _len2 = arguments.length, args = Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {
5381 args[_key3] = arguments[_key3];
5382 }
5383
5384 for (var i = 0; i < args.length; i++) {
5385 utils.mix(ret, args[i]);
5386 }
5387 return ret;
5388 },
5389
5390 viewportWidth: 0,
5391 viewportHeight: 0
5392 };
5393
5394 mix(utils, domUtils);
5395
5396 exports['default'] = utils;
5397 module.exports = exports['default'];
5398
5399/***/ }),
5400/* 54 */
5401/***/ (function(module, exports) {
5402
5403 'use strict';
5404
5405 Object.defineProperty(exports, "__esModule", {
5406 value: true
5407 });
5408 exports.getTransformName = getTransformName;
5409 exports.setTransitionProperty = setTransitionProperty;
5410 exports.getTransitionProperty = getTransitionProperty;
5411 exports.getTransformXY = getTransformXY;
5412 exports.setTransformXY = setTransformXY;
5413 var vendorPrefix = void 0;
5414
5415 var jsCssMap = {
5416 Webkit: '-webkit-',
5417 Moz: '-moz-',
5418 // IE did it wrong again ...
5419 ms: '-ms-',
5420 O: '-o-'
5421 };
5422
5423 function getVendorPrefix() {
5424 if (vendorPrefix !== undefined) {
5425 return vendorPrefix;
5426 }
5427 vendorPrefix = '';
5428 var style = document.createElement('p').style;
5429 var testProp = 'Transform';
5430 for (var key in jsCssMap) {
5431 if (key + testProp in style) {
5432 vendorPrefix = key;
5433 }
5434 }
5435 return vendorPrefix;
5436 }
5437
5438 function getTransitionName() {
5439 return getVendorPrefix() ? getVendorPrefix() + 'TransitionProperty' : 'transitionProperty';
5440 }
5441
5442 function getTransformName() {
5443 return getVendorPrefix() ? getVendorPrefix() + 'Transform' : 'transform';
5444 }
5445
5446 function setTransitionProperty(node, value) {
5447 var name = getTransitionName();
5448 if (name) {
5449 node.style[name] = value;
5450 if (name !== 'transitionProperty') {
5451 node.style.transitionProperty = value;
5452 }
5453 }
5454 }
5455
5456 function setTransform(node, value) {
5457 var name = getTransformName();
5458 if (name) {
5459 node.style[name] = value;
5460 if (name !== 'transform') {
5461 node.style.transform = value;
5462 }
5463 }
5464 }
5465
5466 function getTransitionProperty(node) {
5467 return node.style.transitionProperty || node.style[getTransitionName()];
5468 }
5469
5470 function getTransformXY(node) {
5471 var style = window.getComputedStyle(node, null);
5472 var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
5473 if (transform && transform !== 'none') {
5474 var matrix = transform.replace(/[^0-9\-.,]/g, '').split(',');
5475 return { x: parseFloat(matrix[12] || matrix[4], 0), y: parseFloat(matrix[13] || matrix[5], 0) };
5476 }
5477 return {
5478 x: 0,
5479 y: 0
5480 };
5481 }
5482
5483 var matrix2d = /matrix\((.*)\)/;
5484 var matrix3d = /matrix3d\((.*)\)/;
5485
5486 function setTransformXY(node, xy) {
5487 var style = window.getComputedStyle(node, null);
5488 var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
5489 if (transform && transform !== 'none') {
5490 var arr = void 0;
5491 var match2d = transform.match(matrix2d);
5492 if (match2d) {
5493 match2d = match2d[1];
5494 arr = match2d.split(',').map(function (item) {
5495 return parseFloat(item, 10);
5496 });
5497 arr[4] = xy.x;
5498 arr[5] = xy.y;
5499 setTransform(node, 'matrix(' + arr.join(',') + ')');
5500 } else {
5501 var match3d = transform.match(matrix3d)[1];
5502 arr = match3d.split(',').map(function (item) {
5503 return parseFloat(item, 10);
5504 });
5505 arr[12] = xy.x;
5506 arr[13] = xy.y;
5507 setTransform(node, 'matrix3d(' + arr.join(',') + ')');
5508 }
5509 } else {
5510 setTransform(node, 'translateX(' + xy.x + 'px) translateY(' + xy.y + 'px) translateZ(0)');
5511 }
5512 }
5513
5514/***/ }),
5515/* 55 */
5516/***/ (function(module, exports, __webpack_require__) {
5517
5518 'use strict';
5519
5520 Object.defineProperty(exports, "__esModule", {
5521 value: true
5522 });
5523
5524 var _utils = __webpack_require__(53);
5525
5526 var _utils2 = _interopRequireDefault(_utils);
5527
5528 var _getOffsetParent = __webpack_require__(56);
5529
5530 var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);
5531
5532 var _isAncestorFixed = __webpack_require__(57);
5533
5534 var _isAncestorFixed2 = _interopRequireDefault(_isAncestorFixed);
5535
5536 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5537
5538 /**
5539 * 获得元素的显示部分的区域
5540 */
5541 function getVisibleRectForElement(element) {
5542 var visibleRect = {
5543 left: 0,
5544 right: Infinity,
5545 top: 0,
5546 bottom: Infinity
5547 };
5548 var el = (0, _getOffsetParent2['default'])(element);
5549 var doc = _utils2['default'].getDocument(element);
5550 var win = doc.defaultView || doc.parentWindow;
5551 var body = doc.body;
5552 var documentElement = doc.documentElement;
5553
5554 // Determine the size of the visible rect by climbing the dom accounting for
5555 // all scrollable containers.
5556 while (el) {
5557 // clientWidth is zero for inline block elements in ie.
5558 if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&
5559 // body may have overflow set on it, yet we still get the entire
5560 // viewport. In some browsers, el.offsetParent may be
5561 // document.documentElement, so check for that too.
5562 el !== body && el !== documentElement && _utils2['default'].css(el, 'overflow') !== 'visible') {
5563 var pos = _utils2['default'].offset(el);
5564 // add border
5565 pos.left += el.clientLeft;
5566 pos.top += el.clientTop;
5567 visibleRect.top = Math.max(visibleRect.top, pos.top);
5568 visibleRect.right = Math.min(visibleRect.right,
5569 // consider area without scrollBar
5570 pos.left + el.clientWidth);
5571 visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);
5572 visibleRect.left = Math.max(visibleRect.left, pos.left);
5573 } else if (el === body || el === documentElement) {
5574 break;
5575 }
5576 el = (0, _getOffsetParent2['default'])(el);
5577 }
5578
5579 // Set element position to fixed
5580 // make sure absolute element itself don't affect it's visible area
5581 // https://github.com/ant-design/ant-design/issues/7601
5582 var originalPosition = null;
5583 if (!_utils2['default'].isWindow(element) && element.nodeType !== 9) {
5584 originalPosition = element.style.position;
5585 var position = _utils2['default'].css(element, 'position');
5586 if (position === 'absolute') {
5587 element.style.position = 'fixed';
5588 }
5589 }
5590
5591 var scrollX = _utils2['default'].getWindowScrollLeft(win);
5592 var scrollY = _utils2['default'].getWindowScrollTop(win);
5593 var viewportWidth = _utils2['default'].viewportWidth(win);
5594 var viewportHeight = _utils2['default'].viewportHeight(win);
5595 var documentWidth = documentElement.scrollWidth;
5596 var documentHeight = documentElement.scrollHeight;
5597
5598 // scrollXXX on html is sync with body which means overflow: hidden on body gets wrong scrollXXX.
5599 // We should cut this ourself.
5600 var bodyStyle = window.getComputedStyle(body);
5601 if (bodyStyle.overflowX === 'hidden') {
5602 documentWidth = win.innerWidth;
5603 }
5604 if (bodyStyle.overflowY === 'hidden') {
5605 documentHeight = win.innerHeight;
5606 }
5607
5608 // Reset element position after calculate the visible area
5609 if (element.style) {
5610 element.style.position = originalPosition;
5611 }
5612
5613 if ((0, _isAncestorFixed2['default'])(element)) {
5614 // Clip by viewport's size.
5615 visibleRect.left = Math.max(visibleRect.left, scrollX);
5616 visibleRect.top = Math.max(visibleRect.top, scrollY);
5617 visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);
5618 visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);
5619 } else {
5620 // Clip by document's size.
5621 var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);
5622 visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);
5623
5624 var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);
5625 visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);
5626 }
5627
5628 return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;
5629 }
5630
5631 exports['default'] = getVisibleRectForElement;
5632 module.exports = exports['default'];
5633
5634/***/ }),
5635/* 56 */
5636/***/ (function(module, exports, __webpack_require__) {
5637
5638 'use strict';
5639
5640 Object.defineProperty(exports, "__esModule", {
5641 value: true
5642 });
5643
5644 var _utils = __webpack_require__(53);
5645
5646 var _utils2 = _interopRequireDefault(_utils);
5647
5648 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5649
5650 /**
5651 * 得到会导致元素显示不全的祖先元素
5652 */
5653
5654 function getOffsetParent(element) {
5655 if (_utils2['default'].isWindow(element) || element.nodeType === 9) {
5656 return null;
5657 }
5658 // ie 这个也不是完全可行
5659 /*
5660 <div style="width: 50px;height: 100px;overflow: hidden">
5661 <div style="width: 50px;height: 100px;position: relative;" id="d6">
5662 元素 6 高 100px 宽 50px<br/>
5663 </div>
5664 </div>
5665 */
5666 // element.offsetParent does the right thing in ie7 and below. Return parent with layout!
5667 // In other browsers it only includes elements with position absolute, relative or
5668 // fixed, not elements with overflow set to auto or scroll.
5669 // if (UA.ie && ieMode < 8) {
5670 // return element.offsetParent;
5671 // }
5672 // 统一的 offsetParent 方法
5673 var doc = _utils2['default'].getDocument(element);
5674 var body = doc.body;
5675 var parent = void 0;
5676 var positionStyle = _utils2['default'].css(element, 'position');
5677 var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';
5678
5679 if (!skipStatic) {
5680 return element.nodeName.toLowerCase() === 'html' ? null : element.parentNode;
5681 }
5682
5683 for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {
5684 positionStyle = _utils2['default'].css(parent, 'position');
5685 if (positionStyle !== 'static') {
5686 return parent;
5687 }
5688 }
5689 return null;
5690 }
5691
5692 exports['default'] = getOffsetParent;
5693 module.exports = exports['default'];
5694
5695/***/ }),
5696/* 57 */
5697/***/ (function(module, exports, __webpack_require__) {
5698
5699 'use strict';
5700
5701 Object.defineProperty(exports, "__esModule", {
5702 value: true
5703 });
5704 exports['default'] = isAncestorFixed;
5705
5706 var _utils = __webpack_require__(53);
5707
5708 var _utils2 = _interopRequireDefault(_utils);
5709
5710 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5711
5712 function isAncestorFixed(element) {
5713 if (_utils2['default'].isWindow(element) || element.nodeType === 9) {
5714 return false;
5715 }
5716
5717 var doc = _utils2['default'].getDocument(element);
5718 var body = doc.body;
5719 var parent = null;
5720 for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {
5721 var positionStyle = _utils2['default'].css(parent, 'position');
5722 if (positionStyle === 'fixed') {
5723 return true;
5724 }
5725 }
5726 return false;
5727 }
5728 module.exports = exports['default'];
5729
5730/***/ }),
5731/* 58 */
5732/***/ (function(module, exports, __webpack_require__) {
5733
5734 'use strict';
5735
5736 Object.defineProperty(exports, "__esModule", {
5737 value: true
5738 });
5739
5740 var _utils = __webpack_require__(53);
5741
5742 var _utils2 = _interopRequireDefault(_utils);
5743
5744 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5745
5746 function adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {
5747 var pos = _utils2['default'].clone(elFuturePos);
5748 var size = {
5749 width: elRegion.width,
5750 height: elRegion.height
5751 };
5752
5753 if (overflow.adjustX && pos.left < visibleRect.left) {
5754 pos.left = visibleRect.left;
5755 }
5756
5757 // Left edge inside and right edge outside viewport, try to resize it.
5758 if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {
5759 size.width -= pos.left + size.width - visibleRect.right;
5760 }
5761
5762 // Right edge outside viewport, try to move it.
5763 if (overflow.adjustX && pos.left + size.width > visibleRect.right) {
5764 // 保证左边界和可视区域左边界对齐
5765 pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);
5766 }
5767
5768 // Top edge outside viewport, try to move it.
5769 if (overflow.adjustY && pos.top < visibleRect.top) {
5770 pos.top = visibleRect.top;
5771 }
5772
5773 // Top edge inside and bottom edge outside viewport, try to resize it.
5774 if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {
5775 size.height -= pos.top + size.height - visibleRect.bottom;
5776 }
5777
5778 // Bottom edge outside viewport, try to move it.
5779 if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {
5780 // 保证上边界和可视区域上边界对齐
5781 pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);
5782 }
5783
5784 return _utils2['default'].mix(pos, size);
5785 }
5786
5787 exports['default'] = adjustForViewport;
5788 module.exports = exports['default'];
5789
5790/***/ }),
5791/* 59 */
5792/***/ (function(module, exports, __webpack_require__) {
5793
5794 'use strict';
5795
5796 Object.defineProperty(exports, "__esModule", {
5797 value: true
5798 });
5799
5800 var _utils = __webpack_require__(53);
5801
5802 var _utils2 = _interopRequireDefault(_utils);
5803
5804 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5805
5806 function getRegion(node) {
5807 var offset = void 0;
5808 var w = void 0;
5809 var h = void 0;
5810 if (!_utils2['default'].isWindow(node) && node.nodeType !== 9) {
5811 offset = _utils2['default'].offset(node);
5812 w = _utils2['default'].outerWidth(node);
5813 h = _utils2['default'].outerHeight(node);
5814 } else {
5815 var win = _utils2['default'].getWindow(node);
5816 offset = {
5817 left: _utils2['default'].getWindowScrollLeft(win),
5818 top: _utils2['default'].getWindowScrollTop(win)
5819 };
5820 w = _utils2['default'].viewportWidth(win);
5821 h = _utils2['default'].viewportHeight(win);
5822 }
5823 offset.width = w;
5824 offset.height = h;
5825 return offset;
5826 }
5827
5828 exports['default'] = getRegion;
5829 module.exports = exports['default'];
5830
5831/***/ }),
5832/* 60 */
5833/***/ (function(module, exports, __webpack_require__) {
5834
5835 'use strict';
5836
5837 Object.defineProperty(exports, "__esModule", {
5838 value: true
5839 });
5840
5841 var _getAlignOffset = __webpack_require__(61);
5842
5843 var _getAlignOffset2 = _interopRequireDefault(_getAlignOffset);
5844
5845 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5846
5847 function getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {
5848 var p1 = (0, _getAlignOffset2['default'])(refNodeRegion, points[1]);
5849 var p2 = (0, _getAlignOffset2['default'])(elRegion, points[0]);
5850 var diff = [p2.left - p1.left, p2.top - p1.top];
5851
5852 return {
5853 left: elRegion.left - diff[0] + offset[0] - targetOffset[0],
5854 top: elRegion.top - diff[1] + offset[1] - targetOffset[1]
5855 };
5856 }
5857
5858 exports['default'] = getElFuturePos;
5859 module.exports = exports['default'];
5860
5861/***/ }),
5862/* 61 */
5863/***/ (function(module, exports) {
5864
5865 'use strict';
5866
5867 Object.defineProperty(exports, "__esModule", {
5868 value: true
5869 });
5870 /**
5871 * 获取 node 上的 align 对齐点 相对于页面的坐标
5872 */
5873
5874 function getAlignOffset(region, align) {
5875 var V = align.charAt(0);
5876 var H = align.charAt(1);
5877 var w = region.width;
5878 var h = region.height;
5879
5880 var x = region.left;
5881 var y = region.top;
5882
5883 if (V === 'c') {
5884 y += h / 2;
5885 } else if (V === 'b') {
5886 y += h;
5887 }
5888
5889 if (H === 'c') {
5890 x += w / 2;
5891 } else if (H === 'r') {
5892 x += w;
5893 }
5894
5895 return {
5896 left: x,
5897 top: y
5898 };
5899 }
5900
5901 exports['default'] = getAlignOffset;
5902 module.exports = exports['default'];
5903
5904/***/ }),
5905/* 62 */
5906/***/ (function(module, exports, __webpack_require__) {
5907
5908 'use strict';
5909
5910 Object.defineProperty(exports, "__esModule", {
5911 value: true
5912 });
5913
5914 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; };
5915
5916 var _utils = __webpack_require__(53);
5917
5918 var _utils2 = _interopRequireDefault(_utils);
5919
5920 var _align = __webpack_require__(52);
5921
5922 var _align2 = _interopRequireDefault(_align);
5923
5924 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5925
5926 /**
5927 * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.
5928 * If client position provided, will internal convert to page position.
5929 */
5930
5931 function alignPoint(el, tgtPoint, align) {
5932 var pageX = void 0;
5933 var pageY = void 0;
5934
5935 var doc = _utils2['default'].getDocument(el);
5936 var win = doc.defaultView || doc.parentWindow;
5937
5938 var scrollX = _utils2['default'].getWindowScrollLeft(win);
5939 var scrollY = _utils2['default'].getWindowScrollTop(win);
5940 var viewportWidth = _utils2['default'].viewportWidth(win);
5941 var viewportHeight = _utils2['default'].viewportHeight(win);
5942
5943 if ('pageX' in tgtPoint) {
5944 pageX = tgtPoint.pageX;
5945 } else {
5946 pageX = scrollX + tgtPoint.clientX;
5947 }
5948
5949 if ('pageY' in tgtPoint) {
5950 pageY = tgtPoint.pageY;
5951 } else {
5952 pageY = scrollY + tgtPoint.clientY;
5953 }
5954
5955 var tgtRegion = {
5956 left: pageX,
5957 top: pageY,
5958 width: 0,
5959 height: 0
5960 };
5961
5962 var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight;
5963
5964 // Provide default target point
5965 var points = [align.points[0], 'cc'];
5966
5967 return (0, _align2['default'])(el, tgtRegion, _extends({}, align, { points: points }), pointInView);
5968 }
5969
5970 exports['default'] = alignPoint;
5971 module.exports = exports['default'];
5972
5973/***/ }),
5974/* 63 */
5975/***/ (function(module, exports, __webpack_require__) {
5976
5977 'use strict';
5978
5979 Object.defineProperty(exports, "__esModule", {
5980 value: true
5981 });
5982
5983 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; };
5984
5985 var _classnames = __webpack_require__(5);
5986
5987 var _classnames2 = _interopRequireDefault(_classnames);
5988
5989 var _react = __webpack_require__(1);
5990
5991 var _react2 = _interopRequireDefault(_react);
5992
5993 var _propTypes = __webpack_require__(6);
5994
5995 var _propTypes2 = _interopRequireDefault(_propTypes);
5996
5997 var _Transition = __webpack_require__(12);
5998
5999 var _Transition2 = _interopRequireDefault(_Transition);
6000
6001 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6002
6003 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; }
6004
6005 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6006
6007 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; }
6008
6009 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); }
6010
6011 var propTypes = {
6012 /**
6013 * Show the component; triggers the fade in or fade out animation
6014 */
6015 "in": _propTypes2["default"].bool,
6016
6017 /**
6018 * Unmount the component (remove it from the DOM) when it is faded out
6019 */
6020 unmountOnExit: _propTypes2["default"].bool,
6021
6022 /**
6023 * Run the fade in animation when the component mounts, if it is initially
6024 * shown
6025 */
6026 transitionAppear: _propTypes2["default"].bool,
6027
6028 /**
6029 * Duration of the fade animation in milliseconds, to ensure that finishing
6030 * callbacks are fired even if the original browser transition end events are
6031 * canceled
6032 */
6033 timeout: _propTypes2["default"].number,
6034
6035 /**
6036 * Callback fired before the component fades in
6037 */
6038 onEnter: _propTypes2["default"].func,
6039 /**
6040 * Callback fired after the component starts to fade in
6041 */
6042 onEntering: _propTypes2["default"].func,
6043 /**
6044 * Callback fired after the has component faded in
6045 */
6046 onEntered: _propTypes2["default"].func,
6047 /**
6048 * Callback fired before the component fades out
6049 */
6050 onExit: _propTypes2["default"].func,
6051 /**
6052 * Callback fired after the component starts to fade out
6053 */
6054 onExiting: _propTypes2["default"].func,
6055 /**
6056 * Callback fired after the component has faded out
6057 */
6058 onExited: _propTypes2["default"].func
6059 };
6060
6061 var defaultProps = {
6062 "in": false,
6063 timeout: 300,
6064 unmountOnExit: false,
6065 transitionAppear: false
6066 };
6067
6068 var Fade = function (_React$Component) {
6069 _inherits(Fade, _React$Component);
6070
6071 function Fade() {
6072 _classCallCheck(this, Fade);
6073
6074 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
6075 }
6076
6077 Fade.prototype.render = function render() {
6078 return _react2["default"].createElement(_Transition2["default"], _extends({}, this.props, {
6079 className: (0, _classnames2["default"])(this.props.className, 'fade'),
6080 enteredClassName: 'in',
6081 enteringClassName: 'in'
6082 }));
6083 };
6084
6085 return Fade;
6086 }(_react2["default"].Component);
6087
6088 Fade.propTypes = propTypes;
6089 Fade.defaultProps = defaultProps;
6090
6091 exports["default"] = Fade;
6092 module.exports = exports['default'];
6093
6094/***/ }),
6095/* 64 */
6096/***/ (function(module, exports, __webpack_require__) {
6097
6098 'use strict';
6099
6100 Object.defineProperty(exports, "__esModule", {
6101 value: true
6102 });
6103
6104 var _Message = __webpack_require__(65);
6105
6106 var _Message2 = _interopRequireDefault(_Message);
6107
6108 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6109
6110 exports["default"] = _Message2["default"];
6111 module.exports = exports['default'];
6112
6113/***/ }),
6114/* 65 */
6115/***/ (function(module, exports, __webpack_require__) {
6116
6117 'use strict';
6118
6119 Object.defineProperty(exports, "__esModule", {
6120 value: true
6121 });
6122
6123 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; };
6124
6125 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; };
6126
6127 var _react = __webpack_require__(1);
6128
6129 var _react2 = _interopRequireDefault(_react);
6130
6131 var _beeNotification = __webpack_require__(66);
6132
6133 var _beeNotification2 = _interopRequireDefault(_beeNotification);
6134
6135 var _classnames = __webpack_require__(5);
6136
6137 var _classnames2 = _interopRequireDefault(_classnames);
6138
6139 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6140
6141 var defaultDuration = 1.5;
6142 var defaultTop = 0;
6143 var defaultBottom = 48;
6144 var bottom = 90;
6145 var padding = 30;
6146 var width = 200;
6147 var messageInstance = void 0;
6148 var key = 1;
6149 var clsPrefix = 'u-message';
6150 var noop = function noop() {};
6151
6152 var positionObj = {
6153 "top": {
6154 messageStyle: {
6155 width: "100%"
6156 },
6157 notificationStyle: {
6158 top: defaultTop,
6159 width: "100%"
6160 },
6161 transitionName: 'top'
6162 },
6163 "bottom": {
6164 messageStyle: {
6165 width: "100%"
6166 },
6167 notificationStyle: {
6168 bottom: defaultBottom,
6169 width: "100%"
6170 },
6171 transitionName: 'bottom'
6172 },
6173 "topRight": {
6174 messageStyle: {
6175 width: width
6176 },
6177 notificationStyle: {
6178 top: padding,
6179 right: padding,
6180 width: width
6181 },
6182 transitionName: 'right'
6183 },
6184 "bottomRight": {
6185 messageStyle: {
6186 width: width
6187 },
6188 notificationStyle: {
6189 bottom: bottom,
6190 right: padding,
6191 width: width
6192 },
6193 transitionName: 'right'
6194 },
6195 "topLeft": {
6196 messageStyle: {
6197 width: width
6198 },
6199 notificationStyle: {
6200 top: padding,
6201 left: padding,
6202 width: width
6203 },
6204 transitionName: 'left'
6205 },
6206 "bottomLeft": {
6207 messageStyle: {
6208 width: width
6209 },
6210 notificationStyle: {
6211 bottom: bottom,
6212 left: padding,
6213 width: width
6214 },
6215 transitionName: 'left'
6216 }
6217 };
6218
6219 function getMessageInstance() {
6220 var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'top';
6221 var callback = arguments[1];
6222 var keyboard = arguments[2];
6223 var onEscapeKeyUp = arguments[3];
6224
6225 if (messageInstance) {
6226 callback(messageInstance);
6227 return;
6228 }
6229 var style = positionObj[position].notificationStyle;
6230 var instanceObj = {
6231 clsPrefix: clsPrefix,
6232 transitionName: clsPrefix + '-' + positionObj[position].transitionName,
6233 style: style, // 覆盖原来的样式
6234 position: ''
6235 };
6236 if (typeof keyboard === 'boolean') {
6237 instanceObj.keyboard = keyboard;
6238 }
6239 if (typeof onEscapeKeyUp === 'function') {
6240 instanceObj.onEscapeKeyUp = onEscapeKeyUp;
6241 }
6242 _beeNotification2["default"].newInstance(instanceObj, function (instance) {
6243 messageInstance = instance;
6244 callback(instance);
6245 });
6246 }
6247
6248 function notice(content, duration, type, onClose, position, style, keyboard, onEscapeKeyUp, showIcon) {
6249 var iconType = {
6250 info: 'uf uf-i-c-2',
6251 success: 'uf uf-correct',
6252 danger: 'uf uf-close-c',
6253 warning: 'uf uf-exc-t',
6254 light: 'uf uf-notification',
6255 dark: 'uf uf-bubble',
6256 news: 'uf uf-bell',
6257 infolight: 'uf uf-i-c-2',
6258 successlight: 'uf uf-correct',
6259 dangerlight: 'uf uf-close-c',
6260 warninglight: 'uf uf-exc-t'
6261 }[type];
6262
6263 var positionStyle = positionObj[position].messageStyle;
6264
6265 getMessageInstance(position, function (instance) {
6266 instance.notice({
6267 key: key,
6268 duration: duration,
6269 color: type,
6270 style: _extends({}, positionStyle, style),
6271 content: _react2["default"].createElement(
6272 'div',
6273 null,
6274 showIcon ? _react2["default"].createElement(
6275 'div',
6276 { className: clsPrefix + '-notice-description-icon' },
6277 _react2["default"].createElement('i', { className: (0, _classnames2["default"])(iconType) })
6278 ) : null,
6279 _react2["default"].createElement(
6280 'div',
6281 { className: clsPrefix + '-notice-description-content' },
6282 content
6283 )
6284 ),
6285 onClose: onClose
6286 });
6287 }, keyboard, onEscapeKeyUp);
6288 return function () {
6289 var target = key++;
6290 return function () {
6291 if (messageInstance) {
6292 messageInstance.removeNotice(target);
6293 }
6294 };
6295 }();
6296 }
6297
6298 exports["default"] = {
6299 create: function create(obj) {
6300 var content = obj.content || '';
6301 var duration = _typeof(obj.duration) == undefined ? defaultDuration : obj.duration;
6302 var color = obj.color || 'dark';
6303 var onClose = obj.onClose || noop;
6304 var position = obj.position || "top";
6305 var style = obj.style || {};
6306 var showIcon = obj.showIcon || false;
6307 return notice(content, duration, color, onClose, position, style, obj.keyboard, obj.onEscapeKeyUp, showIcon);
6308 },
6309 config: function config(options) {
6310 if (options.top !== undefined) {
6311 defaultTop = options.top;
6312 }
6313 if (options.duration !== undefined) {
6314 defaultDuration = options.duration;
6315 }
6316 if (options.clsPrefix !== undefined) {
6317 clsPrefix = options.clsPrefix;
6318 }
6319 if (options.defaultBottom !== undefined) {
6320 defaultBottom = options.defaultBottom;
6321 }
6322 if (options.bottom !== undefined) {
6323 bottom = options.bottom;
6324 }
6325 if (options.width !== undefined) {
6326 bottom = options.width;
6327 }
6328 },
6329 destroy: function destroy() {
6330 if (messageInstance) {
6331 messageInstance.destroy();
6332 messageInstance = null;
6333 }
6334 }
6335 };
6336 module.exports = exports['default'];
6337
6338/***/ }),
6339/* 66 */
6340/***/ (function(module, exports, __webpack_require__) {
6341
6342 'use strict';
6343
6344 Object.defineProperty(exports, "__esModule", {
6345 value: true
6346 });
6347
6348 var _Notification = __webpack_require__(67);
6349
6350 var _Notification2 = _interopRequireDefault(_Notification);
6351
6352 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6353
6354 exports["default"] = _Notification2["default"];
6355 module.exports = exports['default'];
6356
6357/***/ }),
6358/* 67 */
6359/***/ (function(module, exports, __webpack_require__) {
6360
6361 'use strict';
6362
6363 Object.defineProperty(exports, "__esModule", {
6364 value: true
6365 });
6366
6367 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; };
6368
6369 var _react = __webpack_require__(1);
6370
6371 var _react2 = _interopRequireDefault(_react);
6372
6373 var _propTypes = __webpack_require__(6);
6374
6375 var _propTypes2 = _interopRequireDefault(_propTypes);
6376
6377 var _reactDom = __webpack_require__(2);
6378
6379 var _reactDom2 = _interopRequireDefault(_reactDom);
6380
6381 var _beeAnimate = __webpack_require__(68);
6382
6383 var _beeAnimate2 = _interopRequireDefault(_beeAnimate);
6384
6385 var _createChainedFunction = __webpack_require__(36);
6386
6387 var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
6388
6389 var _ownerDocument = __webpack_require__(73);
6390
6391 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
6392
6393 var _addEventListener = __webpack_require__(75);
6394
6395 var _addEventListener2 = _interopRequireDefault(_addEventListener);
6396
6397 var _classnames = __webpack_require__(5);
6398
6399 var _classnames2 = _interopRequireDefault(_classnames);
6400
6401 var _Notice = __webpack_require__(77);
6402
6403 var _Notice2 = _interopRequireDefault(_Notice);
6404
6405 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6406
6407 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; }
6408
6409 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; }
6410
6411 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6412
6413 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; }
6414
6415 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); }
6416
6417 var seed = 0;
6418 var now = Date.now();
6419
6420 function getUuid() {
6421 return 'uNotification_' + now + '_' + seed++;
6422 }
6423
6424 var propTypes = {
6425 show: _propTypes2["default"].bool,
6426 clsPrefix: _propTypes2["default"].string,
6427 style: _propTypes2["default"].object,
6428 position: _propTypes2["default"].oneOf(['topRight', 'bottomRight', '']),
6429 transitionName: _propTypes2["default"].string,
6430 keyboard: _propTypes2["default"].bool, // 按esc键是否关闭notice
6431 onEscapeKeyUp: _propTypes2["default"].func, // 设置esc键特殊钩子函数
6432 animation: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].object])
6433 };
6434
6435 var defaultProps = {
6436 clsPrefix: 'u-notification',
6437 animation: 'fade',
6438 keyboard: true,
6439 position: 'topRight'
6440 };
6441
6442 var Notification = function (_Component) {
6443 _inherits(Notification, _Component);
6444
6445 function Notification(props) {
6446 _classCallCheck(this, Notification);
6447
6448 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
6449
6450 _this.handleDocumentKeyUp = function (e) {
6451 if (_this.props.keyboard && e.keyCode === 27 && _this.state.notices.length) {
6452 _this.setState(function (previousState) {
6453 previousState.notices.shift();
6454 return {
6455 notices: previousState.notices
6456 };
6457 });
6458 if (_this.props.onEscapeKeyUp) {
6459 _this.props.onEscapeKeyUp(e);
6460 }
6461 }
6462 };
6463
6464 _this.state = {
6465 notices: []
6466 };
6467 _this.add = _this.add.bind(_this);
6468 _this.remove = _this.remove.bind(_this);
6469
6470 return _this;
6471 }
6472
6473 Notification.prototype.componentDidMount = function componentDidMount() {
6474 // 给document绑定keyup事件
6475 var doc = (0, _ownerDocument2["default"])(this);
6476 this._onDocumentKeyupListener = (0, _addEventListener2["default"])(doc, 'keyup', this.handleDocumentKeyUp);
6477 };
6478
6479 Notification.prototype.componentWillUnmount = function componentWillUnmount() {
6480 this._onDocumentKeyupListener.remove();
6481 };
6482
6483 Notification.prototype.getTransitionName = function getTransitionName() {
6484 var props = this.props;
6485 var transitionName = props.transitionName;
6486 if (!transitionName && props.animation) {
6487 transitionName = props.clsPrefix + '-' + props.animation;
6488 }
6489 return transitionName;
6490 };
6491
6492 Notification.prototype.add = function add(notice) {
6493 var key = notice.key = notice.key || getUuid();
6494 this.setState(function (previousState) {
6495 var notices = previousState.notices;
6496 if (!notices.filter(function (v) {
6497 return v.key === key;
6498 }).length) {
6499 return {
6500 notices: notices.concat(notice)
6501 };
6502 }
6503 });
6504 };
6505
6506 Notification.prototype.remove = function remove(key) {
6507 this.setState(function (previousState) {
6508 return {
6509 notices: previousState.notices.filter(function (notice) {
6510 return notice.key !== key;
6511 })
6512 };
6513 });
6514 };
6515
6516 /**
6517 * 处理绑定在document上的keyup事件
6518 */
6519
6520
6521 Notification.prototype.render = function render() {
6522 var _this2 = this,
6523 _classes;
6524
6525 var _props = this.props,
6526 clsPrefix = _props.clsPrefix,
6527 className = _props.className,
6528 position = _props.position,
6529 style = _props.style;
6530
6531 var noticeNodes = this.state.notices.map(function (notice) {
6532 var onClose = (0, _createChainedFunction2["default"])(_this2.remove.bind(_this2, notice.key), notice.onClose);
6533 return _react2["default"].createElement(
6534 _Notice2["default"],
6535 _extends({
6536 clsPrefix: clsPrefix
6537 }, notice, {
6538 onClose: onClose
6539 }),
6540 notice.content
6541 );
6542 });
6543 var classes = (_classes = {}, _defineProperty(_classes, clsPrefix, 1), _defineProperty(_classes, className, !!className), _classes);
6544 if (position) {
6545 classes[clsPrefix + '-' + position] = !!position;
6546 }
6547
6548 return _react2["default"].createElement(
6549 'div',
6550 { className: (0, _classnames2["default"])(className, classes), style: style },
6551 _react2["default"].createElement(
6552 _beeAnimate2["default"],
6553 { transitionName: this.getTransitionName() },
6554 noticeNodes
6555 )
6556 );
6557 };
6558
6559 return Notification;
6560 }(_react.Component);
6561
6562 ;
6563
6564 Notification.propTypes = propTypes;
6565 Notification.defaultProps = defaultProps;
6566
6567 Notification.newInstance = function newNotificationInstance(properties, callback) {
6568 if (typeof callback !== 'function') {
6569 console.error('You must introduce callback as the second parameter of Notification.newInstance().');
6570 return;
6571 }
6572 var props = properties || {};
6573 var div = document.createElement('div');
6574 document.body.appendChild(div);
6575
6576 var called = false;
6577 function ref(notification) {
6578 if (called) {
6579 return;
6580 }
6581 called = true;
6582 callback({
6583 notice: function notice(noticeProps) {
6584 notification.add(noticeProps);
6585 },
6586 removeNotice: function removeNotice(key) {
6587 notification.remove(key);
6588 },
6589
6590 component: notification,
6591 destroy: function destroy() {
6592 _reactDom2["default"].unmountComponentAtNode(div);
6593 document.body.removeChild(div);
6594 }
6595 });
6596 }
6597 _reactDom2["default"].render(_react2["default"].createElement(Notification, _extends({}, props, { ref: ref })), div);
6598 };
6599
6600 exports["default"] = Notification;
6601 module.exports = exports['default'];
6602
6603/***/ }),
6604/* 68 */
6605/***/ (function(module, exports, __webpack_require__) {
6606
6607 'use strict';
6608
6609 Object.defineProperty(exports, "__esModule", {
6610 value: true
6611 });
6612
6613 var _Animate = __webpack_require__(69);
6614
6615 var _Animate2 = _interopRequireDefault(_Animate);
6616
6617 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6618
6619 exports["default"] = _Animate2["default"];
6620 module.exports = exports['default'];
6621
6622/***/ }),
6623/* 69 */
6624/***/ (function(module, exports, __webpack_require__) {
6625
6626 'use strict';
6627
6628 Object.defineProperty(exports, "__esModule", {
6629 value: true
6630 });
6631
6632 var _react = __webpack_require__(1);
6633
6634 var _react2 = _interopRequireDefault(_react);
6635
6636 var _propTypes = __webpack_require__(6);
6637
6638 var _propTypes2 = _interopRequireDefault(_propTypes);
6639
6640 var _ChildrenUtils = __webpack_require__(70);
6641
6642 var _AnimateChild = __webpack_require__(71);
6643
6644 var _AnimateChild2 = _interopRequireDefault(_AnimateChild);
6645
6646 var _util = __webpack_require__(72);
6647
6648 var _util2 = _interopRequireDefault(_util);
6649
6650 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6651
6652 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; }
6653
6654 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; }
6655
6656 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6657
6658 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; }
6659
6660 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); }
6661
6662 var defaultKey = 'u_animate_' + Date.now();
6663
6664
6665 function getChildrenFromProps(props) {
6666 var children = props.children;
6667 if (_react2["default"].isValidElement(children)) {
6668 if (!children.key) {
6669 return _react2["default"].cloneElement(children, {
6670 key: defaultKey
6671 });
6672 }
6673 }
6674 return children;
6675 }
6676
6677 function noop() {}
6678
6679 var propTypes = {
6680 component: _propTypes2["default"].any,
6681 animation: _propTypes2["default"].object,
6682 transitionName: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].object]),
6683 transitionEnter: _propTypes2["default"].bool,
6684 transitionAppear: _propTypes2["default"].bool,
6685 exclusive: _propTypes2["default"].bool,
6686 transitionLeave: _propTypes2["default"].bool,
6687 onEnd: _propTypes2["default"].func,
6688 onEnter: _propTypes2["default"].func,
6689 onLeave: _propTypes2["default"].func,
6690 onAppear: _propTypes2["default"].func,
6691 showProp: _propTypes2["default"].string
6692 };
6693
6694 var defaultProps = {
6695 animation: {},
6696 component: 'span',
6697 transitionEnter: true,
6698 transitionLeave: true,
6699 transitionAppear: false,
6700 onEnd: noop,
6701 onEnter: noop,
6702 onLeave: noop,
6703 onAppear: noop
6704 };
6705
6706 var Animate = function (_Component) {
6707 _inherits(Animate, _Component);
6708
6709 function Animate(props) {
6710 _classCallCheck(this, Animate);
6711
6712 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
6713
6714 _this.currentlyAnimatingKeys = {};
6715 _this.keysToEnter = [];
6716 _this.keysToLeave = [];
6717 _this.state = {
6718 children: (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(_this.props))
6719 };
6720
6721 _this.performEnter = _this.performEnter.bind(_this);
6722 _this.performAppear = _this.performAppear.bind(_this);
6723 _this.handleDoneAdding = _this.handleDoneAdding.bind(_this);
6724 _this.performLeave = _this.performLeave.bind(_this);
6725
6726 _this.performLeave = _this.performLeave.bind(_this);
6727 _this.handleDoneLeaving = _this.handleDoneLeaving.bind(_this);
6728 _this.isValidChildByKey = _this.isValidChildByKey.bind(_this);
6729 _this.stop = _this.stop.bind(_this);
6730 return _this;
6731 }
6732
6733 Animate.prototype.componentDidMount = function componentDidMount() {
6734 var _this2 = this;
6735
6736 this.mounted = true;
6737 var showProp = this.props.showProp;
6738 var children = this.state.children;
6739 if (showProp) {
6740 children = children.filter(function (child) {
6741 return !!child.props[showProp];
6742 });
6743 }
6744 children.forEach(function (child) {
6745 if (child) {
6746 _this2.performAppear(child.key);
6747 }
6748 });
6749 };
6750
6751 Animate.prototype.componentWillUnmount = function componentWillUnmount() {
6752 this.mounted = false;
6753 };
6754
6755 Animate.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
6756 var _this3 = this;
6757
6758 this.nextProps = nextProps;
6759 var nextChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(nextProps));
6760 var props = this.props;
6761 // exclusive needs immediate response
6762 if (props.exclusive) {
6763 Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {
6764 _this3.stop(key);
6765 });
6766 }
6767 var showProp = props.showProp;
6768 var currentlyAnimatingKeys = this.currentlyAnimatingKeys;
6769 // last props children if exclusive
6770 var currentChildren = props.exclusive ? (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) : this.state.children;
6771 // in case destroy in showProp mode
6772 var newChildren = [];
6773 if (showProp) {
6774 currentChildren.forEach(function (currentChild) {
6775 var nextChild = currentChild && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, currentChild.key);
6776 var newChild = void 0;
6777 if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {
6778 newChild = _react2["default"].cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));
6779 } else {
6780 newChild = nextChild;
6781 }
6782 if (newChild) {
6783 newChildren.push(newChild);
6784 }
6785 });
6786 nextChildren.forEach(function (nextChild) {
6787 if (!nextChild || !(0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, nextChild.key)) {
6788 newChildren.push(nextChild);
6789 }
6790 });
6791 } else {
6792 newChildren = (0, _ChildrenUtils.mergeChildren)(currentChildren, nextChildren);
6793 }
6794
6795 // need render to avoid update
6796 this.setState({
6797 children: newChildren
6798 });
6799
6800 nextChildren.forEach(function (child) {
6801 var key = child && child.key;
6802 if (child && currentlyAnimatingKeys[key]) {
6803 return;
6804 }
6805 var hasPrev = child && (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);
6806 if (showProp) {
6807 var showInNext = child.props[showProp];
6808 if (hasPrev) {
6809 var showInNow = (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);
6810 if (!showInNow && showInNext) {
6811 _this3.keysToEnter.push(key);
6812 }
6813 } else if (showInNext) {
6814 _this3.keysToEnter.push(key);
6815 }
6816 } else if (!hasPrev) {
6817 _this3.keysToEnter.push(key);
6818 }
6819 });
6820
6821 currentChildren.forEach(function (child) {
6822 var key = child && child.key;
6823 if (child && currentlyAnimatingKeys[key]) {
6824 return;
6825 }
6826 var hasNext = child && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, key);
6827 if (showProp) {
6828 var showInNow = child.props[showProp];
6829 if (hasNext) {
6830 var showInNext = (0, _ChildrenUtils.findShownChildInChildrenByKey)(nextChildren, key, showProp);
6831 if (!showInNext && showInNow) {
6832 _this3.keysToLeave.push(key);
6833 }
6834 } else if (showInNow) {
6835 _this3.keysToLeave.push(key);
6836 }
6837 } else if (!hasNext) {
6838 _this3.keysToLeave.push(key);
6839 }
6840 });
6841 };
6842
6843 Animate.prototype.componentDidUpdate = function componentDidUpdate() {
6844 var keysToEnter = this.keysToEnter;
6845 this.keysToEnter = [];
6846 keysToEnter.forEach(this.performEnter);
6847 var keysToLeave = this.keysToLeave;
6848 this.keysToLeave = [];
6849 keysToLeave.forEach(this.performLeave);
6850 };
6851
6852 Animate.prototype.performEnter = function performEnter(key) {
6853 // may already remove by exclusive
6854 if (this.refs[key]) {
6855 this.currentlyAnimatingKeys[key] = true;
6856 this.refs[key].componentWillEnter(this.handleDoneAdding.bind(this, key, 'enter'));
6857 }
6858 };
6859
6860 Animate.prototype.performAppear = function performAppear(key) {
6861 if (this.refs[key]) {
6862 this.currentlyAnimatingKeys[key] = true;
6863 this.refs[key].componentWillAppear(this.handleDoneAdding.bind(this, key, 'appear'));
6864 }
6865 };
6866
6867 Animate.prototype.handleDoneAdding = function handleDoneAdding(key, type) {
6868 var props = this.props;
6869 delete this.currentlyAnimatingKeys[key];
6870 // if update on exclusive mode, skip check
6871 if (props.exclusive && props !== this.nextProps) {
6872 return;
6873 }
6874 var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));
6875 if (!this.isValidChildByKey(currentChildren, key)) {
6876 // exclusive will not need this
6877 this.performLeave(key);
6878 } else {
6879 if (type === 'appear') {
6880 if (_util2["default"].allowAppearCallback(props)) {
6881 props.onAppear(key);
6882 props.onEnd(key, true);
6883 }
6884 } else {
6885 if (_util2["default"].allowEnterCallback(props)) {
6886 props.onEnter(key);
6887 props.onEnd(key, true);
6888 }
6889 }
6890 }
6891 };
6892
6893 Animate.prototype.performLeave = function performLeave(key) {
6894 // may already remove by exclusive
6895 if (this.refs[key]) {
6896 this.currentlyAnimatingKeys[key] = true;
6897 this.refs[key].componentWillLeave(this.handleDoneLeaving.bind(this, key));
6898 }
6899 };
6900
6901 Animate.prototype.handleDoneLeaving = function handleDoneLeaving(key) {
6902 var props = this.props;
6903 delete this.currentlyAnimatingKeys[key];
6904 // if update on exclusive mode, skip check
6905 if (props.exclusive && props !== this.nextProps) {
6906 return;
6907 }
6908 var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));
6909 // in case state change is too fast
6910 if (this.isValidChildByKey(currentChildren, key)) {
6911 this.performEnter(key);
6912 } else {
6913 var end = function end() {
6914 if (_util2["default"].allowLeaveCallback(props)) {
6915 props.onLeave(key);
6916 props.onEnd(key, false);
6917 }
6918 };
6919 /* eslint react/no-is-mounted:0 */
6920 if (this.mounted && !(0, _ChildrenUtils.isSameChildren)(this.state.children, currentChildren, props.showProp)) {
6921 this.setState({
6922 children: currentChildren
6923 }, end);
6924 } else {
6925 end();
6926 }
6927 }
6928 };
6929
6930 Animate.prototype.isValidChildByKey = function isValidChildByKey(currentChildren, key) {
6931 var showProp = this.props.showProp;
6932 if (showProp) {
6933 return (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);
6934 }
6935 return (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);
6936 };
6937
6938 Animate.prototype.stop = function stop(key) {
6939 delete this.currentlyAnimatingKeys[key];
6940 var component = this.refs[key];
6941 if (component) {
6942 component.stop();
6943 }
6944 };
6945
6946 Animate.prototype.render = function render() {
6947 var props = this.props;
6948 this.nextProps = props;
6949 var stateChildren = this.state.children;
6950 var children = null;
6951 if (stateChildren) {
6952 children = stateChildren.map(function (child) {
6953 if (child === null || child === undefined) {
6954 return child;
6955 }
6956 if (!child.key) {
6957 throw new Error('must set key for <rc-animate> children');
6958 }
6959 return _react2["default"].createElement(
6960 _AnimateChild2["default"],
6961 {
6962 key: child.key,
6963 ref: child.key,
6964 animation: props.animation,
6965 transitionName: props.transitionName,
6966 transitionEnter: props.transitionEnter,
6967 transitionAppear: props.transitionAppear,
6968 transitionLeave: props.transitionLeave
6969 },
6970 child
6971 );
6972 });
6973 }
6974 var Component = props.component;
6975 if (Component) {
6976 var passedProps = props;
6977 if (typeof Component === 'string') {
6978 passedProps = {
6979 className: props.className,
6980 style: props.style
6981 };
6982 }
6983 return _react2["default"].createElement(
6984 Component,
6985 passedProps,
6986 children
6987 );
6988 }
6989 return children[0] || null;
6990 };
6991
6992 return Animate;
6993 }(_react.Component);
6994
6995 ;
6996 Animate.defaultProps = defaultProps;
6997 Animate.propTypes = Animate.propTypes;
6998
6999 exports["default"] = Animate;
7000 module.exports = exports['default'];
7001
7002/***/ }),
7003/* 70 */
7004/***/ (function(module, exports, __webpack_require__) {
7005
7006 'use strict';
7007
7008 Object.defineProperty(exports, "__esModule", {
7009 value: true
7010 });
7011 exports.toArrayChildren = toArrayChildren;
7012 exports.findChildInChildrenByKey = findChildInChildrenByKey;
7013 exports.findShownChildInChildrenByKey = findShownChildInChildrenByKey;
7014 exports.findHiddenChildInChildrenByKey = findHiddenChildInChildrenByKey;
7015 exports.isSameChildren = isSameChildren;
7016 exports.mergeChildren = mergeChildren;
7017
7018 var _react = __webpack_require__(1);
7019
7020 var _react2 = _interopRequireDefault(_react);
7021
7022 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7023
7024 function toArrayChildren(children) {
7025 var ret = [];
7026 _react2["default"].Children.forEach(children, function (child) {
7027 ret.push(child);
7028 });
7029 return ret;
7030 }
7031
7032 function findChildInChildrenByKey(children, key) {
7033 var ret = null;
7034 if (children) {
7035 children.forEach(function (child) {
7036 if (ret) {
7037 return;
7038 }
7039 if (child && child.key === key) {
7040 ret = child;
7041 }
7042 });
7043 }
7044 return ret;
7045 }
7046
7047 function findShownChildInChildrenByKey(children, key, showProp) {
7048 var ret = null;
7049 if (children) {
7050 children.forEach(function (child) {
7051 if (child && child.key === key && child.props[showProp]) {
7052 if (ret) {
7053 throw new Error('two child with same key for <rc-animate> children');
7054 }
7055 ret = child;
7056 }
7057 });
7058 }
7059 return ret;
7060 }
7061
7062 function findHiddenChildInChildrenByKey(children, key, showProp) {
7063 var found = 0;
7064 if (children) {
7065 children.forEach(function (child) {
7066 if (found) {
7067 return;
7068 }
7069 found = child && child.key === key && !child.props[showProp];
7070 });
7071 }
7072 return found;
7073 }
7074
7075 function isSameChildren(c1, c2, showProp) {
7076 var same = c1.length === c2.length;
7077 if (same) {
7078 c1.forEach(function (child, index) {
7079 var child2 = c2[index];
7080 if (child && child2) {
7081 if (child && !child2 || !child && child2) {
7082 same = false;
7083 } else if (child.key !== child2.key) {
7084 same = false;
7085 } else if (showProp && child.props[showProp] !== child2.props[showProp]) {
7086 same = false;
7087 }
7088 }
7089 });
7090 }
7091 return same;
7092 }
7093
7094 function mergeChildren(prev, next) {
7095 var ret = [];
7096
7097 // For each key of `next`, the list of keys to insert before that key in
7098 // the combined list
7099 var nextChildrenPending = {};
7100 var pendingChildren = [];
7101 prev.forEach(function (child) {
7102 if (child && findChildInChildrenByKey(next, child.key)) {
7103 if (pendingChildren.length) {
7104 nextChildrenPending[child.key] = pendingChildren;
7105 pendingChildren = [];
7106 }
7107 } else {
7108 pendingChildren.push(child);
7109 }
7110 });
7111
7112 next.forEach(function (child) {
7113 if (child && nextChildrenPending.hasOwnProperty(child.key)) {
7114 ret = ret.concat(nextChildrenPending[child.key]);
7115 }
7116 ret.push(child);
7117 });
7118
7119 ret = ret.concat(pendingChildren);
7120
7121 return ret;
7122 }
7123
7124/***/ }),
7125/* 71 */
7126/***/ (function(module, exports, __webpack_require__) {
7127
7128 'use strict';
7129
7130 Object.defineProperty(exports, "__esModule", {
7131 value: true
7132 });
7133
7134 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; };
7135
7136 var _react = __webpack_require__(1);
7137
7138 var _react2 = _interopRequireDefault(_react);
7139
7140 var _propTypes = __webpack_require__(6);
7141
7142 var _propTypes2 = _interopRequireDefault(_propTypes);
7143
7144 var _reactDom = __webpack_require__(2);
7145
7146 var _reactDom2 = _interopRequireDefault(_reactDom);
7147
7148 var _tinperBeeCore = __webpack_require__(26);
7149
7150 var _util = __webpack_require__(72);
7151
7152 var _util2 = _interopRequireDefault(_util);
7153
7154 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7155
7156 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; }
7157
7158 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7159
7160 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; }
7161
7162 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); }
7163
7164 var transitionMap = {
7165 enter: 'transitionEnter',
7166 appear: 'transitionAppear',
7167 leave: 'transitionLeave'
7168 };
7169
7170 var propTypes = {
7171 children: _propTypes2["default"].any
7172 };
7173
7174 var AnimateChild = function (_Component) {
7175 _inherits(AnimateChild, _Component);
7176
7177 function AnimateChild(props) {
7178 _classCallCheck(this, AnimateChild);
7179
7180 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
7181
7182 _this.transition = _this.transition.bind(_this);
7183 _this.stop = _this.stop.bind(_this);
7184 return _this;
7185 }
7186
7187 AnimateChild.prototype.componentWillUnmount = function componentWillUnmount() {
7188 this.stop();
7189 };
7190
7191 AnimateChild.prototype.componentWillEnter = function componentWillEnter(done) {
7192 if (_util2["default"].isEnterSupported(this.props)) {
7193 this.transition('enter', done);
7194 } else {
7195 done();
7196 }
7197 };
7198
7199 AnimateChild.prototype.componentWillAppear = function componentWillAppear(done) {
7200 if (_util2["default"].isAppearSupported(this.props)) {
7201 this.transition('appear', done);
7202 } else {
7203 done();
7204 }
7205 };
7206
7207 AnimateChild.prototype.componentWillLeave = function componentWillLeave(done) {
7208 if (_util2["default"].isLeaveSupported(this.props)) {
7209 this.transition('leave', done);
7210 } else {
7211 // always sync, do not interupt with react component life cycle
7212 // update hidden -> animate hidden ->
7213 // didUpdate -> animate leave -> unmount (if animate is none)
7214 done();
7215 }
7216 };
7217
7218 AnimateChild.prototype.transition = function transition(animationType, finishCallback) {
7219 var _this2 = this;
7220
7221 var node = _reactDom2["default"].findDOMNode(this);
7222 var props = this.props;
7223 var transitionName = props.transitionName;
7224 var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';
7225 this.stop();
7226 var end = function end() {
7227 _this2.stopper = null;
7228 finishCallback();
7229 };
7230 if ((_tinperBeeCore.cssAnimation.isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {
7231 var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;
7232 var activeName = name + '-active';
7233 if (nameIsObj && transitionName[animationType + 'Active']) {
7234 activeName = transitionName[animationType + 'Active'];
7235 }
7236 this.stopper = (0, _tinperBeeCore.cssAnimation)(node, {
7237 name: name,
7238 active: activeName
7239 }, end);
7240 } else {
7241 this.stopper = props.animation[animationType](node, end);
7242 }
7243 };
7244
7245 AnimateChild.prototype.stop = function stop() {
7246 var stopper = this.stopper;
7247 if (stopper) {
7248 this.stopper = null;
7249 stopper.stop();
7250 }
7251 };
7252
7253 AnimateChild.prototype.render = function render() {
7254 return this.props.children;
7255 };
7256
7257 return AnimateChild;
7258 }(_react.Component);
7259
7260 ;
7261
7262 AnimateChild.propTypes = propTypes;
7263
7264 exports["default"] = AnimateChild;
7265 module.exports = exports['default'];
7266
7267/***/ }),
7268/* 72 */
7269/***/ (function(module, exports) {
7270
7271 "use strict";
7272
7273 Object.defineProperty(exports, "__esModule", {
7274 value: true
7275 });
7276 var util = {
7277 isAppearSupported: function isAppearSupported(props) {
7278 return props.transitionName && props.transitionAppear || props.animation.appear;
7279 },
7280 isEnterSupported: function isEnterSupported(props) {
7281 return props.transitionName && props.transitionEnter || props.animation.enter;
7282 },
7283 isLeaveSupported: function isLeaveSupported(props) {
7284 return props.transitionName && props.transitionLeave || props.animation.leave;
7285 },
7286 allowAppearCallback: function allowAppearCallback(props) {
7287 return props.transitionAppear || props.animation.appear;
7288 },
7289 allowEnterCallback: function allowEnterCallback(props) {
7290 return props.transitionEnter || props.animation.enter;
7291 },
7292 allowLeaveCallback: function allowLeaveCallback(props) {
7293 return props.transitionLeave || props.animation.leave;
7294 }
7295 };
7296 exports["default"] = util;
7297 module.exports = exports["default"];
7298
7299/***/ }),
7300/* 73 */
7301/***/ (function(module, exports, __webpack_require__) {
7302
7303 'use strict';
7304
7305 Object.defineProperty(exports, "__esModule", {
7306 value: true
7307 });
7308
7309 exports["default"] = function (componentOrElement) {
7310 return (0, _ownerDocument2["default"])(_reactDom2["default"].findDOMNode(componentOrElement));
7311 };
7312
7313 var _reactDom = __webpack_require__(2);
7314
7315 var _reactDom2 = _interopRequireDefault(_reactDom);
7316
7317 var _ownerDocument = __webpack_require__(74);
7318
7319 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
7320
7321 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7322
7323 module.exports = exports['default'];
7324
7325/***/ }),
7326/* 74 */
7327/***/ (function(module, exports) {
7328
7329 "use strict";
7330
7331 Object.defineProperty(exports, "__esModule", {
7332 value: true
7333 });
7334 exports.default = ownerDocument;
7335 function ownerDocument(node) {
7336 return node && node.ownerDocument || document;
7337 }
7338 module.exports = exports["default"];
7339
7340/***/ }),
7341/* 75 */
7342/***/ (function(module, exports, __webpack_require__) {
7343
7344 'use strict';
7345
7346 Object.defineProperty(exports, "__esModule", {
7347 value: true
7348 });
7349
7350 exports["default"] = function (node, event, handler, capture) {
7351 (0, _on2["default"])(node, event, handler, capture);
7352
7353 return {
7354 remove: function remove() {
7355 (0, _off2["default"])(node, event, handler, capture);
7356 }
7357 };
7358 };
7359
7360 var _on = __webpack_require__(15);
7361
7362 var _on2 = _interopRequireDefault(_on);
7363
7364 var _off = __webpack_require__(76);
7365
7366 var _off2 = _interopRequireDefault(_off);
7367
7368 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7369
7370 module.exports = exports['default'];
7371
7372/***/ }),
7373/* 76 */
7374/***/ (function(module, exports, __webpack_require__) {
7375
7376 'use strict';
7377
7378 Object.defineProperty(exports, "__esModule", {
7379 value: true
7380 });
7381
7382 var _inDOM = __webpack_require__(14);
7383
7384 var _inDOM2 = _interopRequireDefault(_inDOM);
7385
7386 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7387
7388 var off = function off() {};
7389 if (_inDOM2.default) {
7390 off = function () {
7391 if (document.addEventListener) return function (node, eventName, handler, capture) {
7392 return node.removeEventListener(eventName, handler, capture || false);
7393 };else if (document.attachEvent) return function (node, eventName, handler) {
7394 return node.detachEvent('on' + eventName, handler);
7395 };
7396 }();
7397 }
7398
7399 exports.default = off;
7400 module.exports = exports['default'];
7401
7402/***/ }),
7403/* 77 */
7404/***/ (function(module, exports, __webpack_require__) {
7405
7406 'use strict';
7407
7408 Object.defineProperty(exports, "__esModule", {
7409 value: true
7410 });
7411
7412 var _react = __webpack_require__(1);
7413
7414 var _react2 = _interopRequireDefault(_react);
7415
7416 var _classnames = __webpack_require__(5);
7417
7418 var _classnames2 = _interopRequireDefault(_classnames);
7419
7420 var _propTypes = __webpack_require__(6);
7421
7422 var _propTypes2 = _interopRequireDefault(_propTypes);
7423
7424 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7425
7426 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; }
7427
7428 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; }
7429
7430 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7431
7432 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; }
7433
7434 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); }
7435
7436 var propTypes = {
7437 duration: _propTypes2["default"].number,
7438 onClose: _propTypes2["default"].func,
7439 children: _propTypes2["default"].any,
7440 color: _propTypes2["default"].oneOf(['info', 'success', 'danger', 'warning', 'light', 'dark', 'news', 'infolight', 'successlight', 'dangerlight', 'warninglight']),
7441 title: _propTypes2["default"].any
7442 };
7443
7444 function noop() {}
7445
7446 var defaultProps = {
7447 onEnd: noop,
7448 onClose: noop,
7449 duration: 4.5,
7450 closable: true
7451 };
7452
7453 var Notice = function (_React$Component) {
7454 _inherits(Notice, _React$Component);
7455
7456 function Notice(props) {
7457 _classCallCheck(this, Notice);
7458
7459 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
7460
7461 _this.clearCloseTimer = _this.clearCloseTimer.bind(_this);
7462 _this.close = _this.close.bind(_this);
7463 return _this;
7464 }
7465
7466 Notice.prototype.componentDidMount = function componentDidMount() {
7467 var _this2 = this;
7468
7469 if (this.props.duration) {
7470 this.closeTimer = setTimeout(function () {
7471 _this2.close();
7472 }, this.props.duration * 1000);
7473 }
7474 };
7475
7476 Notice.prototype.componentWillUnmount = function componentWillUnmount() {
7477 this.clearCloseTimer();
7478 };
7479
7480 Notice.prototype.clearCloseTimer = function clearCloseTimer() {
7481 if (this.closeTimer) {
7482 clearTimeout(this.closeTimer);
7483 this.closeTimer = null;
7484 }
7485 };
7486
7487 Notice.prototype.close = function close() {
7488 this.clearCloseTimer();
7489 this.props.onClose();
7490 };
7491
7492 Notice.prototype.render = function render() {
7493 var _classes;
7494
7495 var _props = this.props,
7496 closable = _props.closable,
7497 clsPrefix = _props.clsPrefix,
7498 className = _props.className,
7499 style = _props.style,
7500 children = _props.children,
7501 color = _props.color,
7502 title = _props.title;
7503
7504 var componentClass = clsPrefix + '-notice';
7505 var classes = (_classes = {}, _defineProperty(_classes, '' + componentClass, 1), _defineProperty(_classes, componentClass + '-closable', closable), _defineProperty(_classes, className, !!className), _classes);
7506 if (color) {
7507 classes[componentClass + '-' + color] = true;
7508 }
7509 return _react2["default"].createElement(
7510 'div',
7511 { className: (0, _classnames2["default"])(classes), style: style, onClick: this.close },
7512 _react2["default"].createElement(
7513 'div',
7514 { className: componentClass + '-content' },
7515 title && _react2["default"].createElement(
7516 'div',
7517 { className: componentClass + '-title' },
7518 title
7519 ),
7520 _react2["default"].createElement(
7521 'div',
7522 { className: componentClass + '-description' },
7523 children
7524 )
7525 ),
7526 closable ? _react2["default"].createElement(
7527 'a',
7528 { tabIndex: '0', onClick: this.close, className: componentClass + '-close' },
7529 _react2["default"].createElement('span', { className: componentClass + '-close-x' })
7530 ) : null
7531 );
7532 };
7533
7534 return Notice;
7535 }(_react2["default"].Component);
7536
7537 ;
7538
7539 Notice.propTypes = propTypes;
7540 Notice.defaultProps = defaultProps;
7541
7542 exports["default"] = Notice;
7543 module.exports = exports['default'];
7544
7545/***/ }),
7546/* 78 */
7547/***/ (function(module, exports, __webpack_require__) {
7548
7549 'use strict';
7550
7551 var deselectCurrent = __webpack_require__(79);
7552
7553 var defaultMessage = 'Copy to clipboard: #{key}, Enter';
7554
7555 function format(message) {
7556 var copyKey = (/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl') + '+C';
7557 return message.replace(/#{\s*key\s*}/g, copyKey);
7558 }
7559
7560 function copy(text, options) {
7561 var debug, message, reselectPrevious, range, selection, mark, success = false;
7562 if (!options) { options = {}; }
7563 debug = options.debug || false;
7564 try {
7565 reselectPrevious = deselectCurrent();
7566
7567 range = document.createRange();
7568 selection = document.getSelection();
7569
7570 mark = document.createElement('span');
7571 mark.textContent = text;
7572 // reset user styles for span element
7573 mark.style.all = 'unset';
7574 // prevents scrolling to the end of the page
7575 mark.style.position = 'fixed';
7576 mark.style.top = 0;
7577 mark.style.clip = 'rect(0, 0, 0, 0)';
7578 // used to preserve spaces and line breaks
7579 mark.style.whiteSpace = 'pre';
7580 // do not inherit user-select (it may be `none`)
7581 mark.style.webkitUserSelect = 'text';
7582 mark.style.MozUserSelect = 'text';
7583 mark.style.msUserSelect = 'text';
7584 mark.style.userSelect = 'text';
7585
7586 document.body.appendChild(mark);
7587
7588 range.selectNode(mark);
7589 selection.addRange(range);
7590
7591 var successful = document.execCommand('copy');
7592 if (!successful) {
7593 throw new Error('copy command was unsuccessful');
7594 }
7595 success = true;
7596 } catch (err) {
7597 debug && console.error('unable to copy using execCommand: ', err);
7598 debug && console.warn('trying IE specific stuff');
7599 try {
7600 window.clipboardData.setData('text', text);
7601 success = true;
7602 } catch (err) {
7603 debug && console.error('unable to copy using clipboardData: ', err);
7604 debug && console.error('falling back to prompt');
7605 message = format('message' in options ? options.message : defaultMessage);
7606 window.prompt(message, text);
7607 }
7608 } finally {
7609 if (selection) {
7610 if (typeof selection.removeRange == 'function') {
7611 selection.removeRange(range);
7612 } else {
7613 selection.removeAllRanges();
7614 }
7615 }
7616
7617 if (mark) {
7618 document.body.removeChild(mark);
7619 }
7620 reselectPrevious();
7621 }
7622
7623 return success;
7624 }
7625
7626 module.exports = copy;
7627
7628
7629/***/ }),
7630/* 79 */
7631/***/ (function(module, exports) {
7632
7633
7634 module.exports = function () {
7635 var selection = document.getSelection();
7636 if (!selection.rangeCount) {
7637 return function () {};
7638 }
7639 var active = document.activeElement;
7640
7641 var ranges = [];
7642 for (var i = 0; i < selection.rangeCount; i++) {
7643 ranges.push(selection.getRangeAt(i));
7644 }
7645
7646 switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
7647 case 'INPUT':
7648 case 'TEXTAREA':
7649 active.blur();
7650 break;
7651
7652 default:
7653 active = null;
7654 break;
7655 }
7656
7657 selection.removeAllRanges();
7658 return function () {
7659 selection.type === 'Caret' &&
7660 selection.removeAllRanges();
7661
7662 if (!selection.rangeCount) {
7663 ranges.forEach(function(range) {
7664 selection.addRange(range);
7665 });
7666 }
7667
7668 active &&
7669 active.focus();
7670 };
7671 };
7672
7673
7674/***/ }),
7675/* 80 */
7676/***/ (function(module, exports, __webpack_require__) {
7677
7678 'use strict';
7679
7680 Object.defineProperty(exports, "__esModule", {
7681 value: true
7682 });
7683
7684 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; };
7685
7686 var _classnames = __webpack_require__(5);
7687
7688 var _classnames2 = _interopRequireDefault(_classnames);
7689
7690 var _react = __webpack_require__(1);
7691
7692 var _react2 = _interopRequireDefault(_react);
7693
7694 var _propTypes = __webpack_require__(6);
7695
7696 var _propTypes2 = _interopRequireDefault(_propTypes);
7697
7698 var _tinperBeeCore = __webpack_require__(26);
7699
7700 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7701
7702 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; }
7703
7704 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; }
7705
7706 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7707
7708 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; }
7709
7710 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); }
7711
7712 var propTypes = {
7713 //是否是手风琴效果
7714 accordion: _propTypes2["default"].bool,
7715 //激活的项
7716 activeKey: _propTypes2["default"].any,
7717 //默认的激活的项
7718 defaultActiveKey: _propTypes2["default"].any,
7719 //选中函数
7720 onSelect: _propTypes2["default"].func,
7721 role: _propTypes2["default"].string
7722 };
7723
7724 var defaultProps = {
7725 accordion: false,
7726 clsPrefix: 'u-panel-group'
7727 };
7728
7729 // TODO: Use uncontrollable.
7730
7731 var PanelGroup = function (_React$Component) {
7732 _inherits(PanelGroup, _React$Component);
7733
7734 function PanelGroup(props, context) {
7735 _classCallCheck(this, PanelGroup);
7736
7737 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
7738
7739 _this.handleSelect = _this.handleSelect.bind(_this);
7740
7741 _this.state = {
7742 activeKey: props.defaultActiveKey
7743 };
7744 return _this;
7745 }
7746
7747 PanelGroup.prototype.handleSelect = function handleSelect(key, e) {
7748 e.preventDefault();
7749
7750 if (this.props.onSelect) {
7751 this.props.onSelect(key, e);
7752 }
7753
7754 if (this.state.activeKey === key) {
7755 key = null;
7756 }
7757
7758 this.setState({ activeKey: key });
7759 };
7760
7761 PanelGroup.prototype.render = function render() {
7762 var _this2 = this;
7763
7764 var _props = this.props,
7765 accordion = _props.accordion,
7766 propsActiveKey = _props.activeKey,
7767 className = _props.className,
7768 children = _props.children,
7769 defaultActiveKey = _props.defaultActiveKey,
7770 onSelect = _props.onSelect,
7771 style = _props.style,
7772 clsPrefix = _props.clsPrefix,
7773 others = _objectWithoutProperties(_props, ['accordion', 'activeKey', 'className', 'children', 'defaultActiveKey', 'onSelect', 'style', 'clsPrefix']);
7774
7775 var activeKey = void 0;
7776 if (accordion) {
7777 activeKey = propsActiveKey != null ? propsActiveKey : this.state.activeKey;
7778 others.role = others.role || 'tablist';
7779 }
7780
7781 var classes = {};
7782 classes['' + clsPrefix] = true;
7783
7784 return _react2["default"].createElement(
7785 'div',
7786 _extends({}, others, {
7787 className: (0, _classnames2["default"])(className, classes)
7788 }),
7789 _react2["default"].Children.map(children, function (child) {
7790 if (!_react2["default"].isValidElement(child)) {
7791 return child;
7792 }
7793 var childProps = {
7794 style: child.props.style
7795 };
7796
7797 if (accordion) {
7798 _extends(childProps, {
7799 headerRole: 'tab',
7800 panelRole: 'tabpanel',
7801 collapsible: true,
7802 expanded: child.props.eventKey === activeKey,
7803 onSelect: (0, _tinperBeeCore.createChainedFunction)(_this2.handleSelect, child.props.onSelect)
7804 });
7805 }
7806
7807 return (0, _react.cloneElement)(child, childProps);
7808 })
7809 );
7810 };
7811
7812 return PanelGroup;
7813 }(_react2["default"].Component);
7814
7815 PanelGroup.propTypes = propTypes;
7816 PanelGroup.defaultProps = defaultProps;
7817
7818 exports["default"] = PanelGroup;
7819 module.exports = exports['default'];
7820
7821/***/ }),
7822/* 81 */
7823/***/ (function(module, exports, __webpack_require__) {
7824
7825 'use strict';
7826
7827 Object.defineProperty(exports, "__esModule", {
7828 value: true
7829 });
7830
7831 var _Drawer = __webpack_require__(82);
7832
7833 var _Drawer2 = _interopRequireDefault(_Drawer);
7834
7835 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7836
7837 exports["default"] = _Drawer2["default"];
7838 module.exports = exports['default'];
7839
7840/***/ }),
7841/* 82 */
7842/***/ (function(module, exports, __webpack_require__) {
7843
7844 'use strict';
7845
7846 Object.defineProperty(exports, "__esModule", {
7847 value: true
7848 });
7849
7850 var _react = __webpack_require__(1);
7851
7852 var _react2 = _interopRequireDefault(_react);
7853
7854 var _reactDom = __webpack_require__(2);
7855
7856 var _reactDom2 = _interopRequireDefault(_reactDom);
7857
7858 var _propTypes = __webpack_require__(6);
7859
7860 var _propTypes2 = _interopRequireDefault(_propTypes);
7861
7862 var _classnames = __webpack_require__(5);
7863
7864 var _classnames2 = _interopRequireDefault(_classnames);
7865
7866 var _common = __webpack_require__(83);
7867
7868 var _reactTransitionGroup = __webpack_require__(84);
7869
7870 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7871
7872 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; }
7873
7874 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7875
7876 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; }
7877
7878 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); }
7879
7880 var propTypes = {
7881 placement: _propTypes2["default"].oneOf(['left', 'right', 'top', 'bottom']),
7882 hasHeader: _propTypes2["default"].bool,
7883 show: _propTypes2["default"].bool,
7884 title: _propTypes2["default"].string,
7885 className: _propTypes2["default"].string,
7886 showMask: _propTypes2["default"].bool,
7887 maskClosable: _propTypes2["default"].bool,
7888 zIndex: _propTypes2["default"].number,
7889 showClose: _propTypes2["default"].bool,
7890 width: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]),
7891 height: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]),
7892 destroyOnClose: _propTypes2["default"].bool,
7893 container: _propTypes2["default"].string
7894 };
7895
7896 var defaultProps = {
7897 placement: 'left',
7898 hasHeader: true,
7899 show: false,
7900 showMask: true,
7901 maskClosable: true,
7902 zIndex: 100000,
7903 showClose: false,
7904 width: 'auto',
7905 height: 'auto',
7906 destroyOnClose: false,
7907 container: 'body'
7908 };
7909
7910 var DrawerContext = _react2["default"].createContext(null);
7911
7912 var Drawer = function (_Component) {
7913 _inherits(Drawer, _Component);
7914
7915 function Drawer(props) {
7916 _classCallCheck(this, Drawer);
7917
7918 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
7919
7920 _this.state = {
7921 showDrawer: true,
7922 width: '0',
7923 push: false
7924 };
7925 _this.drawer = null;
7926 _this.parentDrawer = null;
7927 (0, _common.bindAll)(_this, ['fMaskClick', 'fDrawerTransitionEnd', 'renderMask', 'renderClose', 'fCloseClick', 'renderBody', 'renderAll']);
7928 return _this;
7929 }
7930
7931 Drawer.prototype.componentDidUpdate = function componentDidUpdate(preProps) {
7932 //在有父级抽屉时候,子级触发父级向外移动一段距离
7933 if (preProps.show != this.props.show && this.parentDrawer) {
7934 if (this.props.show) {
7935 this.parentDrawer.push();
7936 } else {
7937 this.parentDrawer.pull();
7938 }
7939 }
7940 };
7941
7942 Drawer.prototype.push = function push() {
7943 this.setState({
7944 push: true
7945 });
7946 };
7947
7948 Drawer.prototype.pull = function pull() {
7949 this.setState({
7950 push: false
7951 });
7952 };
7953
7954 Drawer.prototype.fMaskClick = function fMaskClick() {
7955 var maskClosable = this.props.maskClosable;
7956
7957 if (maskClosable) {
7958 var onClose = this.props.onClose;
7959
7960 onClose && onClose();
7961 }
7962 };
7963
7964 Drawer.prototype.fCloseClick = function fCloseClick() {
7965 var onClose = this.props.onClose;
7966
7967 onClose && onClose();
7968 };
7969
7970 Drawer.prototype.fDrawerTransitionEnd = function fDrawerTransitionEnd(e) {};
7971
7972 Drawer.prototype.renderMask = function renderMask() {
7973 var _props = this.props,
7974 show = _props.show,
7975 showMask = _props.showMask,
7976 fMaskClick = _props.fMaskClick;
7977 //mask样式
7978
7979 var maskStyle = void 0;
7980 if (show) {
7981 maskStyle = {
7982 opacity: 1,
7983 width: '100%'
7984 };
7985 } else {
7986 maskStyle = {
7987 opacity: 0,
7988 width: 0
7989 };
7990 }
7991 return showMask ? _react2["default"].createElement('div', { className: 'drawer-mask', style: maskStyle, onClick: this.fMaskClick }) : null;
7992 };
7993
7994 Drawer.prototype.renderClose = function renderClose() {
7995 var showClose = this.props.showClose;
7996
7997 return showClose ? _react2["default"].createElement(
7998 'i',
7999 { className: 'drawer-close', onClick: this.fCloseClick },
8000 '\xD7'
8001 ) : null;
8002 };
8003
8004 Drawer.prototype.renderBody = function renderBody() {
8005 var _this2 = this;
8006
8007 var _props2 = this.props,
8008 destroyOnClose = _props2.destroyOnClose,
8009 show = _props2.show;
8010
8011 if (destroyOnClose && !show) {
8012 return null;
8013 }
8014 var _props3 = this.props,
8015 hasHeader = _props3.hasHeader,
8016 title = _props3.title,
8017 children = _props3.children,
8018 width = _props3.width,
8019 height = _props3.height,
8020 placement = _props3.placement;
8021 var push = this.state.push;
8022 //抽屉类
8023
8024 var drawerClass = (0, _classnames2["default"])('drawer', 'drawer-' + placement);
8025 //根据位置获取抽屉样式
8026 var translateHideMap = {
8027 left: 'translateX(-100%)',
8028 right: 'translateX(100%)',
8029 top: 'translateY(-100%)',
8030 bottom: 'translateY(100%)'
8031 };
8032 var translateShow = 'translate(0,0)';
8033 if (push) {
8034 var pushNum = 50;
8035 var translateShowMap = {
8036 left: 'translate(' + pushNum + 'px,0)',
8037 right: 'translate(-' + pushNum + 'px,0)',
8038 top: 'translate(0,' + pushNum + 'px)',
8039 bottom: 'translate(0,-' + pushNum + 'px)'
8040 };
8041 translateShow = translateShowMap[placement];
8042 }
8043 var translate = show ? translateShow : translateHideMap[placement];
8044 //抽屉面板样式
8045 if ((0, _common.isNumber)(width)) {
8046 width = width + 'px';
8047 }
8048 if ((0, _common.isNumber)(height)) {
8049 height = height + 'px';
8050 }
8051 if (placement == 'top' || placement == 'bottom') {
8052 if (width == 'auto') {
8053 width = '100%';
8054 }
8055 }
8056 if (placement == 'left' || placement == 'right') {
8057 if (height == 'auto') {
8058 height = '100%';
8059 }
8060 }
8061 var drawerStyle = {
8062 transform: translate,
8063 WebkitTransform: translate,
8064 width: width,
8065 height: height
8066 };
8067 var closer = this.renderClose();
8068 var header = hasHeader ? _react2["default"].createElement(
8069 'div',
8070 { className: 'drawer-header' },
8071 _react2["default"].createElement(
8072 'div',
8073 { className: 'drawer-header-title' },
8074 title
8075 )
8076 ) : '';
8077 return _react2["default"].createElement(
8078 DrawerContext.Provider,
8079 { value: this },
8080 _react2["default"].createElement(
8081 'div',
8082 { ref: function ref(drawer) {
8083 _this2.drawer = drawer;
8084 }, onTransitionEnd: this.fDrawerTransitionEnd, className: drawerClass, style: drawerStyle },
8085 closer,
8086 header,
8087 _react2["default"].createElement(
8088 'div',
8089 { className: 'drawer-body' },
8090 children
8091 )
8092 )
8093 );
8094 };
8095
8096 Drawer.prototype.renderAll = function renderAll(value) {
8097 var _props4 = this.props,
8098 show = _props4.show,
8099 className = _props4.className,
8100 zIndex = _props4.zIndex;
8101 //容器类
8102
8103 var drawercClass = (0, _classnames2["default"])('drawerc', className);
8104 //容器样式
8105 var drawercStyle = { zIndex: zIndex };
8106 if (show) {
8107 drawercStyle.width = '100%';
8108 } else {
8109 drawercStyle.width = 0;
8110 }
8111 //获取父级抽屉
8112 this.parentDrawer = value;
8113
8114 return _react2["default"].createElement(
8115 'div',
8116 { className: drawercClass, style: drawercStyle },
8117 this.renderMask(),
8118 this.renderBody()
8119 );
8120 };
8121
8122 Drawer.prototype.render = function render() {
8123 var container = this.props.container;
8124
8125 var conDom = document.querySelector(container);
8126
8127 return _reactDom2["default"].createPortal(_react2["default"].createElement(
8128 DrawerContext.Consumer,
8129 null,
8130 this.renderAll
8131 ), conDom);
8132 };
8133
8134 return Drawer;
8135 }(_react.Component);
8136
8137 Drawer.propTypes = propTypes;
8138 Drawer.defaultProps = defaultProps;
8139
8140 exports["default"] = Drawer;
8141 module.exports = exports['default'];
8142
8143/***/ }),
8144/* 83 */
8145/***/ (function(module, exports) {
8146
8147 'use strict';
8148
8149 Object.defineProperty(exports, "__esModule", {
8150 value: true
8151 });
8152 exports.bindAll = bindAll;
8153 exports.type = type;
8154 exports.isNumber = isNumber;
8155 function bindAll(context, arrFunc) {
8156 arrFunc.forEach(function (item) {
8157 context[item] = context[item].bind(context);
8158 });
8159 }
8160
8161 function type(obj) {
8162 var toString = Object.prototype.toString;
8163 return toString.call(obj);
8164 }
8165
8166 function isNumber(obj) {
8167 return type(obj) == '[object Number]';
8168 }
8169
8170/***/ }),
8171/* 84 */
8172/***/ (function(module, exports, __webpack_require__) {
8173
8174 "use strict";
8175
8176 var _CSSTransition = _interopRequireDefault(__webpack_require__(85));
8177
8178 var _ReplaceTransition = _interopRequireDefault(__webpack_require__(92));
8179
8180 var _TransitionGroup = _interopRequireDefault(__webpack_require__(93));
8181
8182 var _Transition = _interopRequireDefault(__webpack_require__(89));
8183
8184 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8185
8186 module.exports = {
8187 Transition: _Transition.default,
8188 TransitionGroup: _TransitionGroup.default,
8189 ReplaceTransition: _ReplaceTransition.default,
8190 CSSTransition: _CSSTransition.default
8191 };
8192
8193/***/ }),
8194/* 85 */
8195/***/ (function(module, exports, __webpack_require__) {
8196
8197 /* WEBPACK VAR INJECTION */(function(process) {"use strict";
8198
8199 exports.__esModule = true;
8200 exports.default = void 0;
8201
8202 var PropTypes = _interopRequireWildcard(__webpack_require__(6));
8203
8204 var _addClass = _interopRequireDefault(__webpack_require__(86));
8205
8206 var _removeClass = _interopRequireDefault(__webpack_require__(88));
8207
8208 var _react = _interopRequireDefault(__webpack_require__(1));
8209
8210 var _Transition = _interopRequireDefault(__webpack_require__(89));
8211
8212 var _PropTypes = __webpack_require__(91);
8213
8214 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8215
8216 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
8217
8218 function _extends() { _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; }; return _extends.apply(this, arguments); }
8219
8220 function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
8221
8222 var addClass = function addClass(node, classes) {
8223 return node && classes && classes.split(' ').forEach(function (c) {
8224 return (0, _addClass.default)(node, c);
8225 });
8226 };
8227
8228 var removeClass = function removeClass(node, classes) {
8229 return node && classes && classes.split(' ').forEach(function (c) {
8230 return (0, _removeClass.default)(node, c);
8231 });
8232 };
8233 /**
8234 * A transition component inspired by the excellent
8235 * [ng-animate](http://www.nganimate.org/) library, you should use it if you're
8236 * using CSS transitions or animations. It's built upon the
8237 * [`Transition`](https://reactcommunity.org/react-transition-group/transition)
8238 * component, so it inherits all of its props.
8239 *
8240 * `CSSTransition` applies a pair of class names during the `appear`, `enter`,
8241 * and `exit` states of the transition. The first class is applied and then a
8242 * second `*-active` class in order to activate the CSSS transition. After the
8243 * transition, matching `*-done` class names are applied to persist the
8244 * transition state.
8245 *
8246 * ```jsx
8247 * function App() {
8248 * const [inProp, setInProp] = useState(false);
8249 * return (
8250 * <div>
8251 * <CSSTransition in={inProp} timeout={200} classNames="my-node">
8252 * <div>
8253 * {"I'll receive my-node-* classes"}
8254 * </div>
8255 * </CSSTransition>
8256 * <button type="button" onClick={() => setInProp(true)}>
8257 * Click to Enter
8258 * </button>
8259 * </div>
8260 * );
8261 * }
8262 * ```
8263 *
8264 * When the `in` prop is set to `true`, the child component will first receive
8265 * the class `example-enter`, then the `example-enter-active` will be added in
8266 * the next tick. `CSSTransition` [forces a
8267 * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)
8268 * between before adding the `example-enter-active`. This is an important trick
8269 * because it allows us to transition between `example-enter` and
8270 * `example-enter-active` even though they were added immediately one after
8271 * another. Most notably, this is what makes it possible for us to animate
8272 * _appearance_.
8273 *
8274 * ```css
8275 * .my-node-enter {
8276 * opacity: 0;
8277 * }
8278 * .my-node-enter-active {
8279 * opacity: 1;
8280 * transition: opacity 200ms;
8281 * }
8282 * .my-node-exit {
8283 * opacity: 1;
8284 * }
8285 * .my-node-exit-active {
8286 * opacity: 0;
8287 * transition: opacity: 200ms;
8288 * }
8289 * ```
8290 *
8291 * `*-active` classes represent which styles you want to animate **to**.
8292 */
8293
8294
8295 var CSSTransition =
8296 /*#__PURE__*/
8297 function (_React$Component) {
8298 _inheritsLoose(CSSTransition, _React$Component);
8299
8300 function CSSTransition() {
8301 var _this;
8302
8303 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
8304 args[_key] = arguments[_key];
8305 }
8306
8307 _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
8308
8309 _this.onEnter = function (node, appearing) {
8310 var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),
8311 className = _this$getClassNames.className;
8312
8313 _this.removeClasses(node, 'exit');
8314
8315 addClass(node, className);
8316
8317 if (_this.props.onEnter) {
8318 _this.props.onEnter(node, appearing);
8319 }
8320 };
8321
8322 _this.onEntering = function (node, appearing) {
8323 var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),
8324 activeClassName = _this$getClassNames2.activeClassName;
8325
8326 _this.reflowAndAddClass(node, activeClassName);
8327
8328 if (_this.props.onEntering) {
8329 _this.props.onEntering(node, appearing);
8330 }
8331 };
8332
8333 _this.onEntered = function (node, appearing) {
8334 var _this$getClassNames3 = _this.getClassNames('enter'),
8335 doneClassName = _this$getClassNames3.doneClassName;
8336
8337 _this.removeClasses(node, appearing ? 'appear' : 'enter');
8338
8339 addClass(node, doneClassName);
8340
8341 if (_this.props.onEntered) {
8342 _this.props.onEntered(node, appearing);
8343 }
8344 };
8345
8346 _this.onExit = function (node) {
8347 var _this$getClassNames4 = _this.getClassNames('exit'),
8348 className = _this$getClassNames4.className;
8349
8350 _this.removeClasses(node, 'appear');
8351
8352 _this.removeClasses(node, 'enter');
8353
8354 addClass(node, className);
8355
8356 if (_this.props.onExit) {
8357 _this.props.onExit(node);
8358 }
8359 };
8360
8361 _this.onExiting = function (node) {
8362 var _this$getClassNames5 = _this.getClassNames('exit'),
8363 activeClassName = _this$getClassNames5.activeClassName;
8364
8365 _this.reflowAndAddClass(node, activeClassName);
8366
8367 if (_this.props.onExiting) {
8368 _this.props.onExiting(node);
8369 }
8370 };
8371
8372 _this.onExited = function (node) {
8373 var _this$getClassNames6 = _this.getClassNames('exit'),
8374 doneClassName = _this$getClassNames6.doneClassName;
8375
8376 _this.removeClasses(node, 'exit');
8377
8378 addClass(node, doneClassName);
8379
8380 if (_this.props.onExited) {
8381 _this.props.onExited(node);
8382 }
8383 };
8384
8385 _this.getClassNames = function (type) {
8386 var classNames = _this.props.classNames;
8387 var className = typeof classNames !== 'string' ? classNames[type] : classNames + '-' + type;
8388 var activeClassName = typeof classNames !== 'string' ? classNames[type + 'Active'] : className + '-active';
8389 var doneClassName = typeof classNames !== 'string' ? classNames[type + 'Done'] : className + '-done';
8390 return {
8391 className: className,
8392 activeClassName: activeClassName,
8393 doneClassName: doneClassName
8394 };
8395 };
8396
8397 return _this;
8398 }
8399
8400 var _proto = CSSTransition.prototype;
8401
8402 _proto.removeClasses = function removeClasses(node, type) {
8403 var _this$getClassNames7 = this.getClassNames(type),
8404 className = _this$getClassNames7.className,
8405 activeClassName = _this$getClassNames7.activeClassName,
8406 doneClassName = _this$getClassNames7.doneClassName;
8407
8408 className && removeClass(node, className);
8409 activeClassName && removeClass(node, activeClassName);
8410 doneClassName && removeClass(node, doneClassName);
8411 };
8412
8413 _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {
8414 // This is for to force a repaint,
8415 // which is necessary in order to transition styles when adding a class name.
8416 if (className) {
8417 /* eslint-disable no-unused-expressions */
8418 node && node.scrollTop;
8419 /* eslint-enable no-unused-expressions */
8420
8421 addClass(node, className);
8422 }
8423 };
8424
8425 _proto.render = function render() {
8426 var props = _extends({}, this.props);
8427
8428 delete props.classNames;
8429 return _react.default.createElement(_Transition.default, _extends({}, props, {
8430 onEnter: this.onEnter,
8431 onEntered: this.onEntered,
8432 onEntering: this.onEntering,
8433 onExit: this.onExit,
8434 onExiting: this.onExiting,
8435 onExited: this.onExited
8436 }));
8437 };
8438
8439 return CSSTransition;
8440 }(_react.default.Component);
8441
8442 CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends({}, _Transition.default.propTypes, {
8443 /**
8444 * The animation classNames applied to the component as it enters, exits or has finished the transition.
8445 * A single name can be provided and it will be suffixed for each stage: e.g.
8446 *
8447 * `classNames="fade"` applies `fade-enter`, `fade-enter-active`, `fade-enter-done`,
8448 * `fade-exit`, `fade-exit-active`, `fade-exit-done`, `fade-appear`, and `fade-appear-active`.
8449 * Each individual classNames can also be specified independently like:
8450 *
8451 * ```js
8452 * classNames={{
8453 * appear: 'my-appear',
8454 * appearActive: 'my-active-appear',
8455 * enter: 'my-enter',
8456 * enterActive: 'my-active-enter',
8457 * enterDone: 'my-done-enter',
8458 * exit: 'my-exit',
8459 * exitActive: 'my-active-exit',
8460 * exitDone: 'my-done-exit',
8461 * }}
8462 * ```
8463 *
8464 * If you want to set these classes using CSS Modules:
8465 *
8466 * ```js
8467 * import styles from './styles.css';
8468 * ```
8469 *
8470 * you might want to use camelCase in your CSS file, that way could simply spread
8471 * them instead of listing them one by one:
8472 *
8473 * ```js
8474 * classNames={{ ...styles }}
8475 * ```
8476 *
8477 * @type {string | {
8478 * appear?: string,
8479 * appearActive?: string,
8480 * enter?: string,
8481 * enterActive?: string,
8482 * enterDone?: string,
8483 * exit?: string,
8484 * exitActive?: string,
8485 * exitDone?: string,
8486 * }}
8487 */
8488 classNames: _PropTypes.classNamesShape,
8489
8490 /**
8491 * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is
8492 * applied.
8493 *
8494 * @type Function(node: HtmlElement, isAppearing: bool)
8495 */
8496 onEnter: PropTypes.func,
8497
8498 /**
8499 * A `<Transition>` callback fired immediately after the 'enter-active' or
8500 * 'appear-active' class is applied.
8501 *
8502 * @type Function(node: HtmlElement, isAppearing: bool)
8503 */
8504 onEntering: PropTypes.func,
8505
8506 /**
8507 * A `<Transition>` callback fired immediately after the 'enter' or
8508 * 'appear' classes are **removed** and the `done` class is added to the DOM node.
8509 *
8510 * @type Function(node: HtmlElement, isAppearing: bool)
8511 */
8512 onEntered: PropTypes.func,
8513
8514 /**
8515 * A `<Transition>` callback fired immediately after the 'exit' class is
8516 * applied.
8517 *
8518 * @type Function(node: HtmlElement)
8519 */
8520 onExit: PropTypes.func,
8521
8522 /**
8523 * A `<Transition>` callback fired immediately after the 'exit-active' is applied.
8524 *
8525 * @type Function(node: HtmlElement)
8526 */
8527 onExiting: PropTypes.func,
8528
8529 /**
8530 * A `<Transition>` callback fired immediately after the 'exit' classes
8531 * are **removed** and the `exit-done` class is added to the DOM node.
8532 *
8533 * @type Function(node: HtmlElement)
8534 */
8535 onExited: PropTypes.func
8536 }) : {};
8537 var _default = CSSTransition;
8538 exports.default = _default;
8539 module.exports = exports["default"];
8540 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
8541
8542/***/ }),
8543/* 86 */
8544/***/ (function(module, exports, __webpack_require__) {
8545
8546 'use strict';
8547
8548 Object.defineProperty(exports, "__esModule", {
8549 value: true
8550 });
8551 exports.default = addClass;
8552
8553 var _hasClass = __webpack_require__(87);
8554
8555 var _hasClass2 = _interopRequireDefault(_hasClass);
8556
8557 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8558
8559 function addClass(element, className) {
8560 if (element.classList) element.classList.add(className);else if (!(0, _hasClass2.default)(element)) element.className = element.className + ' ' + className;
8561 }
8562 module.exports = exports['default'];
8563
8564/***/ }),
8565/* 87 */
8566/***/ (function(module, exports) {
8567
8568 "use strict";
8569
8570 Object.defineProperty(exports, "__esModule", {
8571 value: true
8572 });
8573 exports.default = hasClass;
8574 function hasClass(element, className) {
8575 if (element.classList) return !!className && element.classList.contains(className);else return (" " + element.className + " ").indexOf(" " + className + " ") !== -1;
8576 }
8577 module.exports = exports["default"];
8578
8579/***/ }),
8580/* 88 */
8581/***/ (function(module, exports) {
8582
8583 'use strict';
8584
8585 module.exports = function removeClass(element, className) {
8586 if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
8587 };
8588
8589/***/ }),
8590/* 89 */
8591/***/ (function(module, exports, __webpack_require__) {
8592
8593 /* WEBPACK VAR INJECTION */(function(process) {"use strict";
8594
8595 exports.__esModule = true;
8596 exports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;
8597
8598 var PropTypes = _interopRequireWildcard(__webpack_require__(6));
8599
8600 var _react = _interopRequireDefault(__webpack_require__(1));
8601
8602 var _reactDom = _interopRequireDefault(__webpack_require__(2));
8603
8604 var _reactLifecyclesCompat = __webpack_require__(90);
8605
8606 var _PropTypes = __webpack_require__(91);
8607
8608 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8609
8610 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
8611
8612 function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
8613
8614 function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
8615
8616 var UNMOUNTED = 'unmounted';
8617 exports.UNMOUNTED = UNMOUNTED;
8618 var EXITED = 'exited';
8619 exports.EXITED = EXITED;
8620 var ENTERING = 'entering';
8621 exports.ENTERING = ENTERING;
8622 var ENTERED = 'entered';
8623 exports.ENTERED = ENTERED;
8624 var EXITING = 'exiting';
8625 /**
8626 * The Transition component lets you describe a transition from one component
8627 * state to another _over time_ with a simple declarative API. Most commonly
8628 * it's used to animate the mounting and unmounting of a component, but can also
8629 * be used to describe in-place transition states as well.
8630 *
8631 * ---
8632 *
8633 * **Note**: `Transition` is a platform-agnostic base component. If you're using
8634 * transitions in CSS, you'll probably want to use
8635 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
8636 * instead. It inherits all the features of `Transition`, but contains
8637 * additional features necessary to play nice with CSS transitions (hence the
8638 * name of the component).
8639 *
8640 * ---
8641 *
8642 * By default the `Transition` component does not alter the behavior of the
8643 * component it renders, it only tracks "enter" and "exit" states for the
8644 * components. It's up to you to give meaning and effect to those states. For
8645 * example we can add styles to a component when it enters or exits:
8646 *
8647 * ```jsx
8648 * import { Transition } from 'react-transition-group';
8649 *
8650 * const duration = 300;
8651 *
8652 * const defaultStyle = {
8653 * transition: `opacity ${duration}ms ease-in-out`,
8654 * opacity: 0,
8655 * }
8656 *
8657 * const transitionStyles = {
8658 * entering: { opacity: 0 },
8659 * entered: { opacity: 1 },
8660 * };
8661 *
8662 * const Fade = ({ in: inProp }) => (
8663 * <Transition in={inProp} timeout={duration}>
8664 * {state => (
8665 * <div style={{
8666 * ...defaultStyle,
8667 * ...transitionStyles[state]
8668 * }}>
8669 * I'm a fade Transition!
8670 * </div>
8671 * )}
8672 * </Transition>
8673 * );
8674 * ```
8675 *
8676 * There are 4 main states a Transition can be in:
8677 * - `'entering'`
8678 * - `'entered'`
8679 * - `'exiting'`
8680 * - `'exited'`
8681 *
8682 * Transition state is toggled via the `in` prop. When `true` the component
8683 * begins the "Enter" stage. During this stage, the component will shift from
8684 * its current transition state, to `'entering'` for the duration of the
8685 * transition and then to the `'entered'` stage once it's complete. Let's take
8686 * the following example (we'll use the
8687 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
8688 *
8689 * ```jsx
8690 * function App() {
8691 * const [inProp, setInProp] = useState(false);
8692 * return (
8693 * <div>
8694 * <Transition in={inProp} timeout={500}>
8695 * {state => (
8696 * // ...
8697 * )}
8698 * </Transition>
8699 * <button onClick={() => setInProp(true)}>
8700 * Click to Enter
8701 * </button>
8702 * </div>
8703 * );
8704 * }
8705 * ```
8706 *
8707 * When the button is clicked the component will shift to the `'entering'` state
8708 * and stay there for 500ms (the value of `timeout`) before it finally switches
8709 * to `'entered'`.
8710 *
8711 * When `in` is `false` the same thing happens except the state moves from
8712 * `'exiting'` to `'exited'`.
8713 */
8714
8715 exports.EXITING = EXITING;
8716
8717 var Transition =
8718 /*#__PURE__*/
8719 function (_React$Component) {
8720 _inheritsLoose(Transition, _React$Component);
8721
8722 function Transition(props, context) {
8723 var _this;
8724
8725 _this = _React$Component.call(this, props, context) || this;
8726 var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears
8727
8728 var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
8729 var initialStatus;
8730 _this.appearStatus = null;
8731
8732 if (props.in) {
8733 if (appear) {
8734 initialStatus = EXITED;
8735 _this.appearStatus = ENTERING;
8736 } else {
8737 initialStatus = ENTERED;
8738 }
8739 } else {
8740 if (props.unmountOnExit || props.mountOnEnter) {
8741 initialStatus = UNMOUNTED;
8742 } else {
8743 initialStatus = EXITED;
8744 }
8745 }
8746
8747 _this.state = {
8748 status: initialStatus
8749 };
8750 _this.nextCallback = null;
8751 return _this;
8752 }
8753
8754 var _proto = Transition.prototype;
8755
8756 _proto.getChildContext = function getChildContext() {
8757 return {
8758 transitionGroup: null // allows for nested Transitions
8759
8760 };
8761 };
8762
8763 Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
8764 var nextIn = _ref.in;
8765
8766 if (nextIn && prevState.status === UNMOUNTED) {
8767 return {
8768 status: EXITED
8769 };
8770 }
8771
8772 return null;
8773 }; // getSnapshotBeforeUpdate(prevProps) {
8774 // let nextStatus = null
8775 // if (prevProps !== this.props) {
8776 // const { status } = this.state
8777 // if (this.props.in) {
8778 // if (status !== ENTERING && status !== ENTERED) {
8779 // nextStatus = ENTERING
8780 // }
8781 // } else {
8782 // if (status === ENTERING || status === ENTERED) {
8783 // nextStatus = EXITING
8784 // }
8785 // }
8786 // }
8787 // return { nextStatus }
8788 // }
8789
8790
8791 _proto.componentDidMount = function componentDidMount() {
8792 this.updateStatus(true, this.appearStatus);
8793 };
8794
8795 _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
8796 var nextStatus = null;
8797
8798 if (prevProps !== this.props) {
8799 var status = this.state.status;
8800
8801 if (this.props.in) {
8802 if (status !== ENTERING && status !== ENTERED) {
8803 nextStatus = ENTERING;
8804 }
8805 } else {
8806 if (status === ENTERING || status === ENTERED) {
8807 nextStatus = EXITING;
8808 }
8809 }
8810 }
8811
8812 this.updateStatus(false, nextStatus);
8813 };
8814
8815 _proto.componentWillUnmount = function componentWillUnmount() {
8816 this.cancelNextCallback();
8817 };
8818
8819 _proto.getTimeouts = function getTimeouts() {
8820 var timeout = this.props.timeout;
8821 var exit, enter, appear;
8822 exit = enter = appear = timeout;
8823
8824 if (timeout != null && typeof timeout !== 'number') {
8825 exit = timeout.exit;
8826 enter = timeout.enter; // TODO: remove fallback for next major
8827
8828 appear = timeout.appear !== undefined ? timeout.appear : enter;
8829 }
8830
8831 return {
8832 exit: exit,
8833 enter: enter,
8834 appear: appear
8835 };
8836 };
8837
8838 _proto.updateStatus = function updateStatus(mounting, nextStatus) {
8839 if (mounting === void 0) {
8840 mounting = false;
8841 }
8842
8843 if (nextStatus !== null) {
8844 // nextStatus will always be ENTERING or EXITING.
8845 this.cancelNextCallback();
8846
8847 var node = _reactDom.default.findDOMNode(this);
8848
8849 if (nextStatus === ENTERING) {
8850 this.performEnter(node, mounting);
8851 } else {
8852 this.performExit(node);
8853 }
8854 } else if (this.props.unmountOnExit && this.state.status === EXITED) {
8855 this.setState({
8856 status: UNMOUNTED
8857 });
8858 }
8859 };
8860
8861 _proto.performEnter = function performEnter(node, mounting) {
8862 var _this2 = this;
8863
8864 var enter = this.props.enter;
8865 var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;
8866 var timeouts = this.getTimeouts();
8867 var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
8868 // if we are mounting and running this it means appear _must_ be set
8869
8870 if (!mounting && !enter) {
8871 this.safeSetState({
8872 status: ENTERED
8873 }, function () {
8874 _this2.props.onEntered(node);
8875 });
8876 return;
8877 }
8878
8879 this.props.onEnter(node, appearing);
8880 this.safeSetState({
8881 status: ENTERING
8882 }, function () {
8883 _this2.props.onEntering(node, appearing);
8884
8885 _this2.onTransitionEnd(node, enterTimeout, function () {
8886 _this2.safeSetState({
8887 status: ENTERED
8888 }, function () {
8889 _this2.props.onEntered(node, appearing);
8890 });
8891 });
8892 });
8893 };
8894
8895 _proto.performExit = function performExit(node) {
8896 var _this3 = this;
8897
8898 var exit = this.props.exit;
8899 var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED
8900
8901 if (!exit) {
8902 this.safeSetState({
8903 status: EXITED
8904 }, function () {
8905 _this3.props.onExited(node);
8906 });
8907 return;
8908 }
8909
8910 this.props.onExit(node);
8911 this.safeSetState({
8912 status: EXITING
8913 }, function () {
8914 _this3.props.onExiting(node);
8915
8916 _this3.onTransitionEnd(node, timeouts.exit, function () {
8917 _this3.safeSetState({
8918 status: EXITED
8919 }, function () {
8920 _this3.props.onExited(node);
8921 });
8922 });
8923 });
8924 };
8925
8926 _proto.cancelNextCallback = function cancelNextCallback() {
8927 if (this.nextCallback !== null) {
8928 this.nextCallback.cancel();
8929 this.nextCallback = null;
8930 }
8931 };
8932
8933 _proto.safeSetState = function safeSetState(nextState, callback) {
8934 // This shouldn't be necessary, but there are weird race conditions with
8935 // setState callbacks and unmounting in testing, so always make sure that
8936 // we can cancel any pending setState callbacks after we unmount.
8937 callback = this.setNextCallback(callback);
8938 this.setState(nextState, callback);
8939 };
8940
8941 _proto.setNextCallback = function setNextCallback(callback) {
8942 var _this4 = this;
8943
8944 var active = true;
8945
8946 this.nextCallback = function (event) {
8947 if (active) {
8948 active = false;
8949 _this4.nextCallback = null;
8950 callback(event);
8951 }
8952 };
8953
8954 this.nextCallback.cancel = function () {
8955 active = false;
8956 };
8957
8958 return this.nextCallback;
8959 };
8960
8961 _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {
8962 this.setNextCallback(handler);
8963 var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
8964
8965 if (!node || doesNotHaveTimeoutOrListener) {
8966 setTimeout(this.nextCallback, 0);
8967 return;
8968 }
8969
8970 if (this.props.addEndListener) {
8971 this.props.addEndListener(node, this.nextCallback);
8972 }
8973
8974 if (timeout != null) {
8975 setTimeout(this.nextCallback, timeout);
8976 }
8977 };
8978
8979 _proto.render = function render() {
8980 var status = this.state.status;
8981
8982 if (status === UNMOUNTED) {
8983 return null;
8984 }
8985
8986 var _this$props = this.props,
8987 children = _this$props.children,
8988 childProps = _objectWithoutPropertiesLoose(_this$props, ["children"]); // filter props for Transtition
8989
8990
8991 delete childProps.in;
8992 delete childProps.mountOnEnter;
8993 delete childProps.unmountOnExit;
8994 delete childProps.appear;
8995 delete childProps.enter;
8996 delete childProps.exit;
8997 delete childProps.timeout;
8998 delete childProps.addEndListener;
8999 delete childProps.onEnter;
9000 delete childProps.onEntering;
9001 delete childProps.onEntered;
9002 delete childProps.onExit;
9003 delete childProps.onExiting;
9004 delete childProps.onExited;
9005
9006 if (typeof children === 'function') {
9007 return children(status, childProps);
9008 }
9009
9010 var child = _react.default.Children.only(children);
9011
9012 return _react.default.cloneElement(child, childProps);
9013 };
9014
9015 return Transition;
9016 }(_react.default.Component);
9017
9018 Transition.contextTypes = {
9019 transitionGroup: PropTypes.object
9020 };
9021 Transition.childContextTypes = {
9022 transitionGroup: function transitionGroup() {}
9023 };
9024 Transition.propTypes = process.env.NODE_ENV !== "production" ? {
9025 /**
9026 * A `function` child can be used instead of a React element. This function is
9027 * called with the current transition status (`'entering'`, `'entered'`,
9028 * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context
9029 * specific props to a component.
9030 *
9031 * ```jsx
9032 * <Transition in={this.state.in} timeout={150}>
9033 * {state => (
9034 * <MyComponent className={`fade fade-${state}`} />
9035 * )}
9036 * </Transition>
9037 * ```
9038 */
9039 children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,
9040
9041 /**
9042 * Show the component; triggers the enter or exit states
9043 */
9044 in: PropTypes.bool,
9045
9046 /**
9047 * By default the child component is mounted immediately along with
9048 * the parent `Transition` component. If you want to "lazy mount" the component on the
9049 * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
9050 * mounted, even on "exited", unless you also specify `unmountOnExit`.
9051 */
9052 mountOnEnter: PropTypes.bool,
9053
9054 /**
9055 * By default the child component stays mounted after it reaches the `'exited'` state.
9056 * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
9057 */
9058 unmountOnExit: PropTypes.bool,
9059
9060 /**
9061 * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.
9062 * If you want to transition on the first mount set `appear` to `true`, and the
9063 * component will transition in as soon as the `<Transition>` mounts.
9064 *
9065 * > Note: there are no specific "appear" states. `appear` only adds an additional `enter` transition.
9066 */
9067 appear: PropTypes.bool,
9068
9069 /**
9070 * Enable or disable enter transitions.
9071 */
9072 enter: PropTypes.bool,
9073
9074 /**
9075 * Enable or disable exit transitions.
9076 */
9077 exit: PropTypes.bool,
9078
9079 /**
9080 * The duration of the transition, in milliseconds.
9081 * Required unless `addEndListener` is provided.
9082 *
9083 * You may specify a single timeout for all transitions:
9084 *
9085 * ```jsx
9086 * timeout={500}
9087 * ```
9088 *
9089 * or individually:
9090 *
9091 * ```jsx
9092 * timeout={{
9093 * appear: 500,
9094 * enter: 300,
9095 * exit: 500,
9096 * }}
9097 * ```
9098 *
9099 * - `appear` defaults to the value of `enter`
9100 * - `enter` defaults to `0`
9101 * - `exit` defaults to `0`
9102 *
9103 * @type {number | { enter?: number, exit?: number, appear?: number }}
9104 */
9105 timeout: function timeout(props) {
9106 var pt = process.env.NODE_ENV !== "production" ? _PropTypes.timeoutsShape : {};;
9107 if (!props.addEndListener) pt = pt.isRequired;
9108
9109 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
9110 args[_key - 1] = arguments[_key];
9111 }
9112
9113 return pt.apply(void 0, [props].concat(args));
9114 },
9115
9116 /**
9117 * Add a custom transition end trigger. Called with the transitioning
9118 * DOM node and a `done` callback. Allows for more fine grained transition end
9119 * logic. **Note:** Timeouts are still used as a fallback if provided.
9120 *
9121 * ```jsx
9122 * addEndListener={(node, done) => {
9123 * // use the css transitionend event to mark the finish of a transition
9124 * node.addEventListener('transitionend', done, false);
9125 * }}
9126 * ```
9127 */
9128 addEndListener: PropTypes.func,
9129
9130 /**
9131 * Callback fired before the "entering" status is applied. An extra parameter
9132 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
9133 *
9134 * @type Function(node: HtmlElement, isAppearing: bool) -> void
9135 */
9136 onEnter: PropTypes.func,
9137
9138 /**
9139 * Callback fired after the "entering" status is applied. An extra parameter
9140 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
9141 *
9142 * @type Function(node: HtmlElement, isAppearing: bool)
9143 */
9144 onEntering: PropTypes.func,
9145
9146 /**
9147 * Callback fired after the "entered" status is applied. An extra parameter
9148 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
9149 *
9150 * @type Function(node: HtmlElement, isAppearing: bool) -> void
9151 */
9152 onEntered: PropTypes.func,
9153
9154 /**
9155 * Callback fired before the "exiting" status is applied.
9156 *
9157 * @type Function(node: HtmlElement) -> void
9158 */
9159 onExit: PropTypes.func,
9160
9161 /**
9162 * Callback fired after the "exiting" status is applied.
9163 *
9164 * @type Function(node: HtmlElement) -> void
9165 */
9166 onExiting: PropTypes.func,
9167
9168 /**
9169 * Callback fired after the "exited" status is applied.
9170 *
9171 * @type Function(node: HtmlElement) -> void
9172 */
9173 onExited: PropTypes.func // Name the function so it is clearer in the documentation
9174
9175 } : {};
9176
9177 function noop() {}
9178
9179 Transition.defaultProps = {
9180 in: false,
9181 mountOnEnter: false,
9182 unmountOnExit: false,
9183 appear: false,
9184 enter: true,
9185 exit: true,
9186 onEnter: noop,
9187 onEntering: noop,
9188 onEntered: noop,
9189 onExit: noop,
9190 onExiting: noop,
9191 onExited: noop
9192 };
9193 Transition.UNMOUNTED = 0;
9194 Transition.EXITED = 1;
9195 Transition.ENTERING = 2;
9196 Transition.ENTERED = 3;
9197 Transition.EXITING = 4;
9198
9199 var _default = (0, _reactLifecyclesCompat.polyfill)(Transition);
9200
9201 exports.default = _default;
9202 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
9203
9204/***/ }),
9205/* 90 */
9206/***/ (function(module, exports) {
9207
9208 'use strict';
9209
9210 Object.defineProperty(exports, '__esModule', { value: true });
9211
9212 /**
9213 * Copyright (c) 2013-present, Facebook, Inc.
9214 *
9215 * This source code is licensed under the MIT license found in the
9216 * LICENSE file in the root directory of this source tree.
9217 */
9218
9219 function componentWillMount() {
9220 // Call this.constructor.gDSFP to support sub-classes.
9221 var state = this.constructor.getDerivedStateFromProps(this.props, this.state);
9222 if (state !== null && state !== undefined) {
9223 this.setState(state);
9224 }
9225 }
9226
9227 function componentWillReceiveProps(nextProps) {
9228 // Call this.constructor.gDSFP to support sub-classes.
9229 // Use the setState() updater to ensure state isn't stale in certain edge cases.
9230 function updater(prevState) {
9231 var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
9232 return state !== null && state !== undefined ? state : null;
9233 }
9234 // Binding "this" is important for shallow renderer support.
9235 this.setState(updater.bind(this));
9236 }
9237
9238 function componentWillUpdate(nextProps, nextState) {
9239 try {
9240 var prevProps = this.props;
9241 var prevState = this.state;
9242 this.props = nextProps;
9243 this.state = nextState;
9244 this.__reactInternalSnapshotFlag = true;
9245 this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(
9246 prevProps,
9247 prevState
9248 );
9249 } finally {
9250 this.props = prevProps;
9251 this.state = prevState;
9252 }
9253 }
9254
9255 // React may warn about cWM/cWRP/cWU methods being deprecated.
9256 // Add a flag to suppress these warnings for this special case.
9257 componentWillMount.__suppressDeprecationWarning = true;
9258 componentWillReceiveProps.__suppressDeprecationWarning = true;
9259 componentWillUpdate.__suppressDeprecationWarning = true;
9260
9261 function polyfill(Component) {
9262 var prototype = Component.prototype;
9263
9264 if (!prototype || !prototype.isReactComponent) {
9265 throw new Error('Can only polyfill class components');
9266 }
9267
9268 if (
9269 typeof Component.getDerivedStateFromProps !== 'function' &&
9270 typeof prototype.getSnapshotBeforeUpdate !== 'function'
9271 ) {
9272 return Component;
9273 }
9274
9275 // If new component APIs are defined, "unsafe" lifecycles won't be called.
9276 // Error if any of these lifecycles are present,
9277 // Because they would work differently between older and newer (16.3+) versions of React.
9278 var foundWillMountName = null;
9279 var foundWillReceivePropsName = null;
9280 var foundWillUpdateName = null;
9281 if (typeof prototype.componentWillMount === 'function') {
9282 foundWillMountName = 'componentWillMount';
9283 } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
9284 foundWillMountName = 'UNSAFE_componentWillMount';
9285 }
9286 if (typeof prototype.componentWillReceiveProps === 'function') {
9287 foundWillReceivePropsName = 'componentWillReceiveProps';
9288 } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
9289 foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
9290 }
9291 if (typeof prototype.componentWillUpdate === 'function') {
9292 foundWillUpdateName = 'componentWillUpdate';
9293 } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
9294 foundWillUpdateName = 'UNSAFE_componentWillUpdate';
9295 }
9296 if (
9297 foundWillMountName !== null ||
9298 foundWillReceivePropsName !== null ||
9299 foundWillUpdateName !== null
9300 ) {
9301 var componentName = Component.displayName || Component.name;
9302 var newApiName =
9303 typeof Component.getDerivedStateFromProps === 'function'
9304 ? 'getDerivedStateFromProps()'
9305 : 'getSnapshotBeforeUpdate()';
9306
9307 throw Error(
9308 'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' +
9309 componentName +
9310 ' uses ' +
9311 newApiName +
9312 ' but also contains the following legacy lifecycles:' +
9313 (foundWillMountName !== null ? '\n ' + foundWillMountName : '') +
9314 (foundWillReceivePropsName !== null
9315 ? '\n ' + foundWillReceivePropsName
9316 : '') +
9317 (foundWillUpdateName !== null ? '\n ' + foundWillUpdateName : '') +
9318 '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' +
9319 'https://fb.me/react-async-component-lifecycle-hooks'
9320 );
9321 }
9322
9323 // React <= 16.2 does not support static getDerivedStateFromProps.
9324 // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
9325 // Newer versions of React will ignore these lifecycles if gDSFP exists.
9326 if (typeof Component.getDerivedStateFromProps === 'function') {
9327 prototype.componentWillMount = componentWillMount;
9328 prototype.componentWillReceiveProps = componentWillReceiveProps;
9329 }
9330
9331 // React <= 16.2 does not support getSnapshotBeforeUpdate.
9332 // As a workaround, use cWU to invoke the new lifecycle.
9333 // Newer versions of React will ignore that lifecycle if gSBU exists.
9334 if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
9335 if (typeof prototype.componentDidUpdate !== 'function') {
9336 throw new Error(
9337 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'
9338 );
9339 }
9340
9341 prototype.componentWillUpdate = componentWillUpdate;
9342
9343 var componentDidUpdate = prototype.componentDidUpdate;
9344
9345 prototype.componentDidUpdate = function componentDidUpdatePolyfill(
9346 prevProps,
9347 prevState,
9348 maybeSnapshot
9349 ) {
9350 // 16.3+ will not execute our will-update method;
9351 // It will pass a snapshot value to did-update though.
9352 // Older versions will require our polyfilled will-update value.
9353 // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
9354 // Because for <= 15.x versions this might be a "prevContext" object.
9355 // We also can't just check "__reactInternalSnapshot",
9356 // Because get-snapshot might return a falsy value.
9357 // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
9358 var snapshot = this.__reactInternalSnapshotFlag
9359 ? this.__reactInternalSnapshot
9360 : maybeSnapshot;
9361
9362 componentDidUpdate.call(this, prevProps, prevState, snapshot);
9363 };
9364 }
9365
9366 return Component;
9367 }
9368
9369 exports.polyfill = polyfill;
9370
9371
9372/***/ }),
9373/* 91 */
9374/***/ (function(module, exports, __webpack_require__) {
9375
9376 /* WEBPACK VAR INJECTION */(function(process) {"use strict";
9377
9378 exports.__esModule = true;
9379 exports.classNamesShape = exports.timeoutsShape = void 0;
9380
9381 var _propTypes = _interopRequireDefault(__webpack_require__(6));
9382
9383 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9384
9385 var timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
9386 enter: _propTypes.default.number,
9387 exit: _propTypes.default.number,
9388 appear: _propTypes.default.number
9389 }).isRequired]) : null;
9390 exports.timeoutsShape = timeoutsShape;
9391 var classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({
9392 enter: _propTypes.default.string,
9393 exit: _propTypes.default.string,
9394 active: _propTypes.default.string
9395 }), _propTypes.default.shape({
9396 enter: _propTypes.default.string,
9397 enterDone: _propTypes.default.string,
9398 enterActive: _propTypes.default.string,
9399 exit: _propTypes.default.string,
9400 exitDone: _propTypes.default.string,
9401 exitActive: _propTypes.default.string
9402 })]) : null;
9403 exports.classNamesShape = classNamesShape;
9404 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
9405
9406/***/ }),
9407/* 92 */
9408/***/ (function(module, exports, __webpack_require__) {
9409
9410 /* WEBPACK VAR INJECTION */(function(process) {"use strict";
9411
9412 exports.__esModule = true;
9413 exports.default = void 0;
9414
9415 var _propTypes = _interopRequireDefault(__webpack_require__(6));
9416
9417 var _react = _interopRequireDefault(__webpack_require__(1));
9418
9419 var _reactDom = __webpack_require__(2);
9420
9421 var _TransitionGroup = _interopRequireDefault(__webpack_require__(93));
9422
9423 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9424
9425 function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9426
9427 function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
9428
9429 /**
9430 * The `<ReplaceTransition>` component is a specialized `Transition` component
9431 * that animates between two children.
9432 *
9433 * ```jsx
9434 * <ReplaceTransition in>
9435 * <Fade><div>I appear first</div></Fade>
9436 * <Fade><div>I replace the above</div></Fade>
9437 * </ReplaceTransition>
9438 * ```
9439 */
9440 var ReplaceTransition =
9441 /*#__PURE__*/
9442 function (_React$Component) {
9443 _inheritsLoose(ReplaceTransition, _React$Component);
9444
9445 function ReplaceTransition() {
9446 var _this;
9447
9448 for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
9449 _args[_key] = arguments[_key];
9450 }
9451
9452 _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;
9453
9454 _this.handleEnter = function () {
9455 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
9456 args[_key2] = arguments[_key2];
9457 }
9458
9459 return _this.handleLifecycle('onEnter', 0, args);
9460 };
9461
9462 _this.handleEntering = function () {
9463 for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
9464 args[_key3] = arguments[_key3];
9465 }
9466
9467 return _this.handleLifecycle('onEntering', 0, args);
9468 };
9469
9470 _this.handleEntered = function () {
9471 for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
9472 args[_key4] = arguments[_key4];
9473 }
9474
9475 return _this.handleLifecycle('onEntered', 0, args);
9476 };
9477
9478 _this.handleExit = function () {
9479 for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
9480 args[_key5] = arguments[_key5];
9481 }
9482
9483 return _this.handleLifecycle('onExit', 1, args);
9484 };
9485
9486 _this.handleExiting = function () {
9487 for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
9488 args[_key6] = arguments[_key6];
9489 }
9490
9491 return _this.handleLifecycle('onExiting', 1, args);
9492 };
9493
9494 _this.handleExited = function () {
9495 for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
9496 args[_key7] = arguments[_key7];
9497 }
9498
9499 return _this.handleLifecycle('onExited', 1, args);
9500 };
9501
9502 return _this;
9503 }
9504
9505 var _proto = ReplaceTransition.prototype;
9506
9507 _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {
9508 var _child$props;
9509
9510 var children = this.props.children;
9511
9512 var child = _react.default.Children.toArray(children)[idx];
9513
9514 if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);
9515 if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));
9516 };
9517
9518 _proto.render = function render() {
9519 var _this$props = this.props,
9520 children = _this$props.children,
9521 inProp = _this$props.in,
9522 props = _objectWithoutPropertiesLoose(_this$props, ["children", "in"]);
9523
9524 var _React$Children$toArr = _react.default.Children.toArray(children),
9525 first = _React$Children$toArr[0],
9526 second = _React$Children$toArr[1];
9527
9528 delete props.onEnter;
9529 delete props.onEntering;
9530 delete props.onEntered;
9531 delete props.onExit;
9532 delete props.onExiting;
9533 delete props.onExited;
9534 return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {
9535 key: 'first',
9536 onEnter: this.handleEnter,
9537 onEntering: this.handleEntering,
9538 onEntered: this.handleEntered
9539 }) : _react.default.cloneElement(second, {
9540 key: 'second',
9541 onEnter: this.handleExit,
9542 onEntering: this.handleExiting,
9543 onEntered: this.handleExited
9544 }));
9545 };
9546
9547 return ReplaceTransition;
9548 }(_react.default.Component);
9549
9550 ReplaceTransition.propTypes = process.env.NODE_ENV !== "production" ? {
9551 in: _propTypes.default.bool.isRequired,
9552 children: function children(props, propName) {
9553 if (_react.default.Children.count(props[propName]) !== 2) return new Error("\"" + propName + "\" must be exactly two transition components.");
9554 return null;
9555 }
9556 } : {};
9557 var _default = ReplaceTransition;
9558 exports.default = _default;
9559 module.exports = exports["default"];
9560 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
9561
9562/***/ }),
9563/* 93 */
9564/***/ (function(module, exports, __webpack_require__) {
9565
9566 /* WEBPACK VAR INJECTION */(function(process) {"use strict";
9567
9568 exports.__esModule = true;
9569 exports.default = void 0;
9570
9571 var _propTypes = _interopRequireDefault(__webpack_require__(6));
9572
9573 var _react = _interopRequireDefault(__webpack_require__(1));
9574
9575 var _reactLifecyclesCompat = __webpack_require__(90);
9576
9577 var _ChildMapping = __webpack_require__(94);
9578
9579 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9580
9581 function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
9582
9583 function _extends() { _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; }; return _extends.apply(this, arguments); }
9584
9585 function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
9586
9587 function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
9588
9589 var values = Object.values || function (obj) {
9590 return Object.keys(obj).map(function (k) {
9591 return obj[k];
9592 });
9593 };
9594
9595 var defaultProps = {
9596 component: 'div',
9597 childFactory: function childFactory(child) {
9598 return child;
9599 }
9600 /**
9601 * The `<TransitionGroup>` component manages a set of transition components
9602 * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
9603 * components, `<TransitionGroup>` is a state machine for managing the mounting
9604 * and unmounting of components over time.
9605 *
9606 * Consider the example below. As items are removed or added to the TodoList the
9607 * `in` prop is toggled automatically by the `<TransitionGroup>`.
9608 *
9609 * Note that `<TransitionGroup>` does not define any animation behavior!
9610 * Exactly _how_ a list item animates is up to the individual transition
9611 * component. This means you can mix and match animations across different list
9612 * items.
9613 */
9614
9615 };
9616
9617 var TransitionGroup =
9618 /*#__PURE__*/
9619 function (_React$Component) {
9620 _inheritsLoose(TransitionGroup, _React$Component);
9621
9622 function TransitionGroup(props, context) {
9623 var _this;
9624
9625 _this = _React$Component.call(this, props, context) || this;
9626
9627 var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear
9628
9629
9630 _this.state = {
9631 handleExited: handleExited,
9632 firstRender: true
9633 };
9634 return _this;
9635 }
9636
9637 var _proto = TransitionGroup.prototype;
9638
9639 _proto.getChildContext = function getChildContext() {
9640 return {
9641 transitionGroup: {
9642 isMounting: !this.appeared
9643 }
9644 };
9645 };
9646
9647 _proto.componentDidMount = function componentDidMount() {
9648 this.appeared = true;
9649 this.mounted = true;
9650 };
9651
9652 _proto.componentWillUnmount = function componentWillUnmount() {
9653 this.mounted = false;
9654 };
9655
9656 TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
9657 var prevChildMapping = _ref.children,
9658 handleExited = _ref.handleExited,
9659 firstRender = _ref.firstRender;
9660 return {
9661 children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),
9662 firstRender: false
9663 };
9664 };
9665
9666 _proto.handleExited = function handleExited(child, node) {
9667 var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);
9668 if (child.key in currentChildMapping) return;
9669
9670 if (child.props.onExited) {
9671 child.props.onExited(node);
9672 }
9673
9674 if (this.mounted) {
9675 this.setState(function (state) {
9676 var children = _extends({}, state.children);
9677
9678 delete children[child.key];
9679 return {
9680 children: children
9681 };
9682 });
9683 }
9684 };
9685
9686 _proto.render = function render() {
9687 var _this$props = this.props,
9688 Component = _this$props.component,
9689 childFactory = _this$props.childFactory,
9690 props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]);
9691
9692 var children = values(this.state.children).map(childFactory);
9693 delete props.appear;
9694 delete props.enter;
9695 delete props.exit;
9696
9697 if (Component === null) {
9698 return children;
9699 }
9700
9701 return _react.default.createElement(Component, props, children);
9702 };
9703
9704 return TransitionGroup;
9705 }(_react.default.Component);
9706
9707 TransitionGroup.childContextTypes = {
9708 transitionGroup: _propTypes.default.object.isRequired
9709 };
9710 TransitionGroup.propTypes = process.env.NODE_ENV !== "production" ? {
9711 /**
9712 * `<TransitionGroup>` renders a `<div>` by default. You can change this
9713 * behavior by providing a `component` prop.
9714 * If you use React v16+ and would like to avoid a wrapping `<div>` element
9715 * you can pass in `component={null}`. This is useful if the wrapping div
9716 * borks your css styles.
9717 */
9718 component: _propTypes.default.any,
9719
9720 /**
9721 * A set of `<Transition>` components, that are toggled `in` and out as they
9722 * leave. the `<TransitionGroup>` will inject specific transition props, so
9723 * remember to spread them through if you are wrapping the `<Transition>` as
9724 * with our `<Fade>` example.
9725 *
9726 * While this component is meant for multiple `Transition` or `CSSTransition`
9727 * children, sometimes you may want to have a single transition child with
9728 * content that you want to be transitioned out and in when you change it
9729 * (e.g. routes, images etc.) In that case you can change the `key` prop of
9730 * the transition child as you change its content, this will cause
9731 * `TransitionGroup` to transition the child out and back in.
9732 */
9733 children: _propTypes.default.node,
9734
9735 /**
9736 * A convenience prop that enables or disables appear animations
9737 * for all children. Note that specifying this will override any defaults set
9738 * on individual children Transitions.
9739 */
9740 appear: _propTypes.default.bool,
9741
9742 /**
9743 * A convenience prop that enables or disables enter animations
9744 * for all children. Note that specifying this will override any defaults set
9745 * on individual children Transitions.
9746 */
9747 enter: _propTypes.default.bool,
9748
9749 /**
9750 * A convenience prop that enables or disables exit animations
9751 * for all children. Note that specifying this will override any defaults set
9752 * on individual children Transitions.
9753 */
9754 exit: _propTypes.default.bool,
9755
9756 /**
9757 * You may need to apply reactive updates to a child as it is exiting.
9758 * This is generally done by using `cloneElement` however in the case of an exiting
9759 * child the element has already been removed and not accessible to the consumer.
9760 *
9761 * If you do need to update a child as it leaves you can provide a `childFactory`
9762 * to wrap every child, even the ones that are leaving.
9763 *
9764 * @type Function(child: ReactElement) -> ReactElement
9765 */
9766 childFactory: _propTypes.default.func
9767 } : {};
9768 TransitionGroup.defaultProps = defaultProps;
9769
9770 var _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);
9771
9772 exports.default = _default;
9773 module.exports = exports["default"];
9774 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(32)))
9775
9776/***/ }),
9777/* 94 */
9778/***/ (function(module, exports, __webpack_require__) {
9779
9780 "use strict";
9781
9782 exports.__esModule = true;
9783 exports.getChildMapping = getChildMapping;
9784 exports.mergeChildMappings = mergeChildMappings;
9785 exports.getInitialChildMapping = getInitialChildMapping;
9786 exports.getNextChildMapping = getNextChildMapping;
9787
9788 var _react = __webpack_require__(1);
9789
9790 /**
9791 * Given `this.props.children`, return an object mapping key to child.
9792 *
9793 * @param {*} children `this.props.children`
9794 * @return {object} Mapping of key to child
9795 */
9796 function getChildMapping(children, mapFn) {
9797 var mapper = function mapper(child) {
9798 return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;
9799 };
9800
9801 var result = Object.create(null);
9802 if (children) _react.Children.map(children, function (c) {
9803 return c;
9804 }).forEach(function (child) {
9805 // run the map function here instead so that the key is the computed one
9806 result[child.key] = mapper(child);
9807 });
9808 return result;
9809 }
9810 /**
9811 * When you're adding or removing children some may be added or removed in the
9812 * same render pass. We want to show *both* since we want to simultaneously
9813 * animate elements in and out. This function takes a previous set of keys
9814 * and a new set of keys and merges them with its best guess of the correct
9815 * ordering. In the future we may expose some of the utilities in
9816 * ReactMultiChild to make this easy, but for now React itself does not
9817 * directly have this concept of the union of prevChildren and nextChildren
9818 * so we implement it here.
9819 *
9820 * @param {object} prev prev children as returned from
9821 * `ReactTransitionChildMapping.getChildMapping()`.
9822 * @param {object} next next children as returned from
9823 * `ReactTransitionChildMapping.getChildMapping()`.
9824 * @return {object} a key set that contains all keys in `prev` and all keys
9825 * in `next` in a reasonable order.
9826 */
9827
9828
9829 function mergeChildMappings(prev, next) {
9830 prev = prev || {};
9831 next = next || {};
9832
9833 function getValueForKey(key) {
9834 return key in next ? next[key] : prev[key];
9835 } // For each key of `next`, the list of keys to insert before that key in
9836 // the combined list
9837
9838
9839 var nextKeysPending = Object.create(null);
9840 var pendingKeys = [];
9841
9842 for (var prevKey in prev) {
9843 if (prevKey in next) {
9844 if (pendingKeys.length) {
9845 nextKeysPending[prevKey] = pendingKeys;
9846 pendingKeys = [];
9847 }
9848 } else {
9849 pendingKeys.push(prevKey);
9850 }
9851 }
9852
9853 var i;
9854 var childMapping = {};
9855
9856 for (var nextKey in next) {
9857 if (nextKeysPending[nextKey]) {
9858 for (i = 0; i < nextKeysPending[nextKey].length; i++) {
9859 var pendingNextKey = nextKeysPending[nextKey][i];
9860 childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
9861 }
9862 }
9863
9864 childMapping[nextKey] = getValueForKey(nextKey);
9865 } // Finally, add the keys which didn't appear before any key in `next`
9866
9867
9868 for (i = 0; i < pendingKeys.length; i++) {
9869 childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
9870 }
9871
9872 return childMapping;
9873 }
9874
9875 function getProp(child, prop, props) {
9876 return props[prop] != null ? props[prop] : child.props[prop];
9877 }
9878
9879 function getInitialChildMapping(props, onExited) {
9880 return getChildMapping(props.children, function (child) {
9881 return (0, _react.cloneElement)(child, {
9882 onExited: onExited.bind(null, child),
9883 in: true,
9884 appear: getProp(child, 'appear', props),
9885 enter: getProp(child, 'enter', props),
9886 exit: getProp(child, 'exit', props)
9887 });
9888 });
9889 }
9890
9891 function getNextChildMapping(nextProps, prevChildMapping, onExited) {
9892 var nextChildMapping = getChildMapping(nextProps.children);
9893 var children = mergeChildMappings(prevChildMapping, nextChildMapping);
9894 Object.keys(children).forEach(function (key) {
9895 var child = children[key];
9896 if (!(0, _react.isValidElement)(child)) return;
9897 var hasPrev = key in prevChildMapping;
9898 var hasNext = key in nextChildMapping;
9899 var prevChild = prevChildMapping[key];
9900 var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)
9901
9902 if (hasNext && (!hasPrev || isLeaving)) {
9903 // console.log('entering', key)
9904 children[key] = (0, _react.cloneElement)(child, {
9905 onExited: onExited.bind(null, child),
9906 in: true,
9907 exit: getProp(child, 'exit', nextProps),
9908 enter: getProp(child, 'enter', nextProps)
9909 });
9910 } else if (!hasNext && hasPrev && !isLeaving) {
9911 // item is old (exiting)
9912 // console.log('leaving', key)
9913 children[key] = (0, _react.cloneElement)(child, {
9914 in: false
9915 });
9916 } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {
9917 // item hasn't changed transition states
9918 // copy over the last transition props;
9919 // console.log('unchanged', key)
9920 children[key] = (0, _react.cloneElement)(child, {
9921 onExited: onExited.bind(null, child),
9922 in: prevChild.props.in,
9923 exit: getProp(child, 'exit', nextProps),
9924 enter: getProp(child, 'enter', nextProps)
9925 });
9926 }
9927 });
9928 return children;
9929 }
9930
9931/***/ }),
9932/* 95 */
9933/***/ (function(module, exports, __webpack_require__) {
9934
9935 'use strict';
9936
9937 Object.defineProperty(exports, "__esModule", {
9938 value: true
9939 });
9940
9941 var _Clipboard = __webpack_require__(96);
9942
9943 var _Clipboard2 = _interopRequireDefault(_Clipboard);
9944
9945 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
9946
9947 exports["default"] = _Clipboard2["default"];
9948 module.exports = exports['default'];
9949
9950/***/ }),
9951/* 96 */
9952/***/ (function(module, exports, __webpack_require__) {
9953
9954 'use strict';
9955
9956 Object.defineProperty(exports, "__esModule", {
9957 value: true
9958 });
9959
9960 var _react = __webpack_require__(1);
9961
9962 var _react2 = _interopRequireDefault(_react);
9963
9964 var _clipboard = __webpack_require__(97);
9965
9966 var _clipboard2 = _interopRequireDefault(_clipboard);
9967
9968 var _classnames = __webpack_require__(5);
9969
9970 var _classnames2 = _interopRequireDefault(_classnames);
9971
9972 var _beeIcon = __webpack_require__(105);
9973
9974 var _beeIcon2 = _interopRequireDefault(_beeIcon);
9975
9976 var _reactDom = __webpack_require__(2);
9977
9978 var _reactDom2 = _interopRequireDefault(_reactDom);
9979
9980 var _beeTooltip = __webpack_require__(107);
9981
9982 var _beeTooltip2 = _interopRequireDefault(_beeTooltip);
9983
9984 var _propTypes = __webpack_require__(6);
9985
9986 var _propTypes2 = _interopRequireDefault(_propTypes);
9987
9988 var _tool = __webpack_require__(130);
9989
9990 var _i18n = __webpack_require__(131);
9991
9992 var _i18n2 = _interopRequireDefault(_i18n);
9993
9994 var _beeModal = __webpack_require__(132);
9995
9996 var _beeModal2 = _interopRequireDefault(_beeModal);
9997
9998 var _beeFormControl = __webpack_require__(151);
9999
10000 var _beeFormControl2 = _interopRequireDefault(_beeFormControl);
10001
10002 var _beeButton = __webpack_require__(153);
10003
10004 var _beeButton2 = _interopRequireDefault(_beeButton);
10005
10006 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10007
10008 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; }
10009
10010 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10011
10012 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; }
10013
10014 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); }
10015
10016 //text和target都写的时候,target无效。 text的cut改为copy。
10017 // target可以传css3选择器
10018 var propTypes = {
10019 action: _propTypes2["default"].oneOf(['copy', 'cut', null]),
10020 text: _propTypes2["default"].string,
10021 success: _propTypes2["default"].func,
10022 error: _propTypes2["default"].func,
10023 locale: _propTypes2["default"].object
10024 };
10025 var defaultProps = {
10026 action: 'copy',
10027 text: '',
10028 target: '',
10029 success: function success() {},
10030 error: function error() {},
10031 locale: {}
10032 };
10033
10034 var Clipboard = function (_Component) {
10035 _inherits(Clipboard, _Component);
10036
10037 function Clipboard(props, context) {
10038 _classCallCheck(this, Clipboard);
10039
10040 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
10041
10042 _this.blur = function () {
10043 _this.setState({
10044 currect: false,
10045 ready: false
10046 });
10047 };
10048
10049 _this.close = function () {
10050 _this.setState({
10051 modalShow: false
10052 });
10053 };
10054
10055 _this.state = {
10056 currect: false,
10057 html: '',
10058 ready: false,
10059 id: 'id' + Math.round(Math.random() * 1000 + 1) + new Date().getTime(),
10060 modalShow: false
10061 };
10062 return _this;
10063 }
10064
10065 Clipboard.prototype.componentWillMount = function componentWillMount() {
10066 var self = this;
10067 var _props = this.props,
10068 success = _props.success,
10069 error = _props.error;
10070
10071
10072 var id = this.state.id;
10073 var cb = new _clipboard2["default"]('#' + id);
10074 cb.on('success', function (e) {
10075 self.setState({
10076 currect: true,
10077 ready: true
10078 });
10079 e.clearSelection();
10080 if (success instanceof Function) success();
10081 });
10082 cb.on('error', function (e) {
10083 self.setState({
10084 modalShow: true,
10085 html: e.text
10086 });
10087 _reactDom2["default"].findDOMNode(self.refs.text).select();
10088 if (error instanceof Function) error();
10089 });
10090 };
10091
10092 Clipboard.prototype.render = function render() {
10093 var _props2 = this.props,
10094 action = _props2.action,
10095 text = _props2.text,
10096 target = _props2.target;
10097
10098 if (text) action = 'copy';
10099
10100 var locale = (0, _tool.getComponentLocale)(this.props, this.context, 'Clipboard', function () {
10101 return _i18n2["default"];
10102 });
10103 var tootipContent = locale[action];
10104 if (this.state.ready) {
10105 tootipContent = locale[action + 'Ready'];
10106 }
10107
10108 return _react2["default"].createElement(
10109 _beeTooltip2["default"],
10110 {
10111 positionTop: '20px',
10112 overlay: tootipContent,
10113 placement: 'top' },
10114 _react2["default"].createElement(
10115 'span',
10116 {
10117 onMouseOut: this.blur,
10118 className: 'u-clipboard',
10119 id: this.state.id,
10120 'data-clipboard-action': action,
10121 'data-clipboard-target': target,
10122 'data-clipboard-text': text },
10123 this.props.children ? this.props.children : _react2["default"].createElement(_beeIcon2["default"], {
10124 className: (0, _classnames2["default"])({
10125 'uf-correct': this.state.currect,
10126 'uf-copy': !this.state.currect
10127 })
10128 }),
10129 _react2["default"].createElement(
10130 _beeModal2["default"],
10131 { show: this.state.modalShow, onHide: this.close },
10132 _react2["default"].createElement(
10133 _beeModal2["default"].Header,
10134 { closeButton: true },
10135 _react2["default"].createElement(
10136 _beeModal2["default"].Title,
10137 null,
10138 ' Ctrl+C ',
10139 locale['copyToClipboard'],
10140 ' '
10141 )
10142 ),
10143 _react2["default"].createElement(
10144 _beeModal2["default"].Body,
10145 null,
10146 _react2["default"].createElement(_beeFormControl2["default"], { ref: 'text', type: 'text', readOnly: true, value: this.state.html })
10147 ),
10148 _react2["default"].createElement(
10149 _beeModal2["default"].Footer,
10150 null,
10151 _react2["default"].createElement(
10152 _beeButton2["default"],
10153 { onClick: this.close },
10154 ' ',
10155 locale['close'],
10156 ' '
10157 )
10158 )
10159 )
10160 )
10161 );
10162 };
10163
10164 return Clipboard;
10165 }(_react.Component);
10166
10167 ;
10168 Clipboard.propTypes = propTypes;
10169 Clipboard.defaultProps = defaultProps;
10170 exports["default"] = Clipboard;
10171 module.exports = exports['default'];
10172
10173/***/ }),
10174/* 97 */
10175/***/ (function(module, exports, __webpack_require__) {
10176
10177 var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
10178 if (true) {
10179 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(98), __webpack_require__(100), __webpack_require__(101)], __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__));
10180 } else if (typeof exports !== "undefined") {
10181 factory(module, require('./clipboard-action'), require('tiny-emitter'), require('good-listener'));
10182 } else {
10183 var mod = {
10184 exports: {}
10185 };
10186 factory(mod, global.clipboardAction, global.tinyEmitter, global.goodListener);
10187 global.clipboard = mod.exports;
10188 }
10189 })(this, function (module, _clipboardAction, _tinyEmitter, _goodListener) {
10190 'use strict';
10191
10192 var _clipboardAction2 = _interopRequireDefault(_clipboardAction);
10193
10194 var _tinyEmitter2 = _interopRequireDefault(_tinyEmitter);
10195
10196 var _goodListener2 = _interopRequireDefault(_goodListener);
10197
10198 function _interopRequireDefault(obj) {
10199 return obj && obj.__esModule ? obj : {
10200 default: obj
10201 };
10202 }
10203
10204 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
10205 return typeof obj;
10206 } : function (obj) {
10207 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
10208 };
10209
10210 function _classCallCheck(instance, Constructor) {
10211 if (!(instance instanceof Constructor)) {
10212 throw new TypeError("Cannot call a class as a function");
10213 }
10214 }
10215
10216 var _createClass = function () {
10217 function defineProperties(target, props) {
10218 for (var i = 0; i < props.length; i++) {
10219 var descriptor = props[i];
10220 descriptor.enumerable = descriptor.enumerable || false;
10221 descriptor.configurable = true;
10222 if ("value" in descriptor) descriptor.writable = true;
10223 Object.defineProperty(target, descriptor.key, descriptor);
10224 }
10225 }
10226
10227 return function (Constructor, protoProps, staticProps) {
10228 if (protoProps) defineProperties(Constructor.prototype, protoProps);
10229 if (staticProps) defineProperties(Constructor, staticProps);
10230 return Constructor;
10231 };
10232 }();
10233
10234 function _possibleConstructorReturn(self, call) {
10235 if (!self) {
10236 throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
10237 }
10238
10239 return call && (typeof call === "object" || typeof call === "function") ? call : self;
10240 }
10241
10242 function _inherits(subClass, superClass) {
10243 if (typeof superClass !== "function" && superClass !== null) {
10244 throw new TypeError("Super expression must either be null or a function, not " + typeof superClass);
10245 }
10246
10247 subClass.prototype = Object.create(superClass && superClass.prototype, {
10248 constructor: {
10249 value: subClass,
10250 enumerable: false,
10251 writable: true,
10252 configurable: true
10253 }
10254 });
10255 if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;
10256 }
10257
10258 var Clipboard = function (_Emitter) {
10259 _inherits(Clipboard, _Emitter);
10260
10261 /**
10262 * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
10263 * @param {Object} options
10264 */
10265 function Clipboard(trigger, options) {
10266 _classCallCheck(this, Clipboard);
10267
10268 var _this = _possibleConstructorReturn(this, (Clipboard.__proto__ || Object.getPrototypeOf(Clipboard)).call(this));
10269
10270 _this.resolveOptions(options);
10271 _this.listenClick(trigger);
10272 return _this;
10273 }
10274
10275 /**
10276 * Defines if attributes would be resolved using internal setter functions
10277 * or custom functions that were passed in the constructor.
10278 * @param {Object} options
10279 */
10280
10281
10282 _createClass(Clipboard, [{
10283 key: 'resolveOptions',
10284 value: function resolveOptions() {
10285 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10286
10287 this.action = typeof options.action === 'function' ? options.action : this.defaultAction;
10288 this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;
10289 this.text = typeof options.text === 'function' ? options.text : this.defaultText;
10290 this.container = _typeof(options.container) === 'object' ? options.container : document.body;
10291 }
10292 }, {
10293 key: 'listenClick',
10294 value: function listenClick(trigger) {
10295 var _this2 = this;
10296
10297 this.listener = (0, _goodListener2.default)(trigger, 'click', function (e) {
10298 return _this2.onClick(e);
10299 });
10300 }
10301 }, {
10302 key: 'onClick',
10303 value: function onClick(e) {
10304 var trigger = e.delegateTarget || e.currentTarget;
10305
10306 if (this.clipboardAction) {
10307 this.clipboardAction = null;
10308 }
10309
10310 this.clipboardAction = new _clipboardAction2.default({
10311 action: this.action(trigger),
10312 target: this.target(trigger),
10313 text: this.text(trigger),
10314 container: this.container,
10315 trigger: trigger,
10316 emitter: this
10317 });
10318 }
10319 }, {
10320 key: 'defaultAction',
10321 value: function defaultAction(trigger) {
10322 return getAttributeValue('action', trigger);
10323 }
10324 }, {
10325 key: 'defaultTarget',
10326 value: function defaultTarget(trigger) {
10327 var selector = getAttributeValue('target', trigger);
10328
10329 if (selector) {
10330 return document.querySelector(selector);
10331 }
10332 }
10333 }, {
10334 key: 'defaultText',
10335 value: function defaultText(trigger) {
10336 return getAttributeValue('text', trigger);
10337 }
10338 }, {
10339 key: 'destroy',
10340 value: function destroy() {
10341 this.listener.destroy();
10342
10343 if (this.clipboardAction) {
10344 this.clipboardAction.destroy();
10345 this.clipboardAction = null;
10346 }
10347 }
10348 }], [{
10349 key: 'isSupported',
10350 value: function isSupported() {
10351 var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];
10352
10353 var actions = typeof action === 'string' ? [action] : action;
10354 var support = !!document.queryCommandSupported;
10355
10356 actions.forEach(function (action) {
10357 support = support && !!document.queryCommandSupported(action);
10358 });
10359
10360 return support;
10361 }
10362 }]);
10363
10364 return Clipboard;
10365 }(_tinyEmitter2.default);
10366
10367 /**
10368 * Helper function to retrieve attribute value.
10369 * @param {String} suffix
10370 * @param {Element} element
10371 */
10372 function getAttributeValue(suffix, element) {
10373 var attribute = 'data-clipboard-' + suffix;
10374
10375 if (!element.hasAttribute(attribute)) {
10376 return;
10377 }
10378
10379 return element.getAttribute(attribute);
10380 }
10381
10382 module.exports = Clipboard;
10383 });
10384
10385/***/ }),
10386/* 98 */
10387/***/ (function(module, exports, __webpack_require__) {
10388
10389 var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (global, factory) {
10390 if (true) {
10391 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [module, __webpack_require__(99)], __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__));
10392 } else if (typeof exports !== "undefined") {
10393 factory(module, require('select'));
10394 } else {
10395 var mod = {
10396 exports: {}
10397 };
10398 factory(mod, global.select);
10399 global.clipboardAction = mod.exports;
10400 }
10401 })(this, function (module, _select) {
10402 'use strict';
10403
10404 var _select2 = _interopRequireDefault(_select);
10405
10406 function _interopRequireDefault(obj) {
10407 return obj && obj.__esModule ? obj : {
10408 default: obj
10409 };
10410 }
10411
10412 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) {
10413 return typeof obj;
10414 } : function (obj) {
10415 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
10416 };
10417
10418 function _classCallCheck(instance, Constructor) {
10419 if (!(instance instanceof Constructor)) {
10420 throw new TypeError("Cannot call a class as a function");
10421 }
10422 }
10423
10424 var _createClass = function () {
10425 function defineProperties(target, props) {
10426 for (var i = 0; i < props.length; i++) {
10427 var descriptor = props[i];
10428 descriptor.enumerable = descriptor.enumerable || false;
10429 descriptor.configurable = true;
10430 if ("value" in descriptor) descriptor.writable = true;
10431 Object.defineProperty(target, descriptor.key, descriptor);
10432 }
10433 }
10434
10435 return function (Constructor, protoProps, staticProps) {
10436 if (protoProps) defineProperties(Constructor.prototype, protoProps);
10437 if (staticProps) defineProperties(Constructor, staticProps);
10438 return Constructor;
10439 };
10440 }();
10441
10442 var ClipboardAction = function () {
10443 /**
10444 * @param {Object} options
10445 */
10446 function ClipboardAction(options) {
10447 _classCallCheck(this, ClipboardAction);
10448
10449 this.resolveOptions(options);
10450 this.initSelection();
10451 }
10452
10453 /**
10454 * Defines base properties passed from constructor.
10455 * @param {Object} options
10456 */
10457
10458
10459 _createClass(ClipboardAction, [{
10460 key: 'resolveOptions',
10461 value: function resolveOptions() {
10462 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10463
10464 this.action = options.action;
10465 this.container = options.container;
10466 this.emitter = options.emitter;
10467 this.target = options.target;
10468 this.text = options.text;
10469 this.trigger = options.trigger;
10470
10471 this.selectedText = '';
10472 }
10473 }, {
10474 key: 'initSelection',
10475 value: function initSelection() {
10476 if (this.text) {
10477 this.selectFake();
10478 } else if (this.target) {
10479 this.selectTarget();
10480 }
10481 }
10482 }, {
10483 key: 'selectFake',
10484 value: function selectFake() {
10485 var _this = this;
10486
10487 var isRTL = document.documentElement.getAttribute('dir') == 'rtl';
10488
10489 this.removeFake();
10490
10491 this.fakeHandlerCallback = function () {
10492 return _this.removeFake();
10493 };
10494 this.fakeHandler = this.container.addEventListener('click', this.fakeHandlerCallback) || true;
10495
10496 this.fakeElem = document.createElement('textarea');
10497 // Prevent zooming on iOS
10498 this.fakeElem.style.fontSize = '12pt';
10499 // Reset box model
10500 this.fakeElem.style.border = '0';
10501 this.fakeElem.style.padding = '0';
10502 this.fakeElem.style.margin = '0';
10503 // Move element out of screen horizontally
10504 this.fakeElem.style.position = 'absolute';
10505 this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
10506 // Move element to the same position vertically
10507 var yPosition = window.pageYOffset || document.documentElement.scrollTop;
10508 this.fakeElem.style.top = yPosition + 'px';
10509
10510 this.fakeElem.setAttribute('readonly', '');
10511 this.fakeElem.value = this.text;
10512
10513 this.container.appendChild(this.fakeElem);
10514
10515 this.selectedText = (0, _select2.default)(this.fakeElem);
10516 this.copyText();
10517 }
10518 }, {
10519 key: 'removeFake',
10520 value: function removeFake() {
10521 if (this.fakeHandler) {
10522 this.container.removeEventListener('click', this.fakeHandlerCallback);
10523 this.fakeHandler = null;
10524 this.fakeHandlerCallback = null;
10525 }
10526
10527 if (this.fakeElem) {
10528 this.container.removeChild(this.fakeElem);
10529 this.fakeElem = null;
10530 }
10531 }
10532 }, {
10533 key: 'selectTarget',
10534 value: function selectTarget() {
10535 this.selectedText = (0, _select2.default)(this.target);
10536 this.copyText();
10537 }
10538 }, {
10539 key: 'copyText',
10540 value: function copyText() {
10541 var succeeded = void 0;
10542
10543 try {
10544 succeeded = document.execCommand(this.action);
10545 } catch (err) {
10546 succeeded = false;
10547 }
10548
10549 this.handleResult(succeeded);
10550 }
10551 }, {
10552 key: 'handleResult',
10553 value: function handleResult(succeeded) {
10554 this.emitter.emit(succeeded ? 'success' : 'error', {
10555 action: this.action,
10556 text: this.selectedText,
10557 trigger: this.trigger,
10558 clearSelection: this.clearSelection.bind(this)
10559 });
10560 }
10561 }, {
10562 key: 'clearSelection',
10563 value: function clearSelection() {
10564 if (this.trigger) {
10565 this.trigger.focus();
10566 }
10567
10568 window.getSelection().removeAllRanges();
10569 }
10570 }, {
10571 key: 'destroy',
10572 value: function destroy() {
10573 this.removeFake();
10574 }
10575 }, {
10576 key: 'action',
10577 set: function set() {
10578 var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'copy';
10579
10580 this._action = action;
10581
10582 if (this._action !== 'copy' && this._action !== 'cut') {
10583 throw new Error('Invalid "action" value, use either "copy" or "cut"');
10584 }
10585 },
10586 get: function get() {
10587 return this._action;
10588 }
10589 }, {
10590 key: 'target',
10591 set: function set(target) {
10592 if (target !== undefined) {
10593 if (target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object' && target.nodeType === 1) {
10594 if (this.action === 'copy' && target.hasAttribute('disabled')) {
10595 throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');
10596 }
10597
10598 if (this.action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {
10599 throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');
10600 }
10601
10602 this._target = target;
10603 } else {
10604 throw new Error('Invalid "target" value, use a valid Element');
10605 }
10606 }
10607 },
10608 get: function get() {
10609 return this._target;
10610 }
10611 }]);
10612
10613 return ClipboardAction;
10614 }();
10615
10616 module.exports = ClipboardAction;
10617 });
10618
10619/***/ }),
10620/* 99 */
10621/***/ (function(module, exports) {
10622
10623 function select(element) {
10624 var selectedText;
10625
10626 if (element.nodeName === 'SELECT') {
10627 element.focus();
10628
10629 selectedText = element.value;
10630 }
10631 else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
10632 var isReadOnly = element.hasAttribute('readonly');
10633
10634 if (!isReadOnly) {
10635 element.setAttribute('readonly', '');
10636 }
10637
10638 element.select();
10639 element.setSelectionRange(0, element.value.length);
10640
10641 if (!isReadOnly) {
10642 element.removeAttribute('readonly');
10643 }
10644
10645 selectedText = element.value;
10646 }
10647 else {
10648 if (element.hasAttribute('contenteditable')) {
10649 element.focus();
10650 }
10651
10652 var selection = window.getSelection();
10653 var range = document.createRange();
10654
10655 range.selectNodeContents(element);
10656 selection.removeAllRanges();
10657 selection.addRange(range);
10658
10659 selectedText = selection.toString();
10660 }
10661
10662 return selectedText;
10663 }
10664
10665 module.exports = select;
10666
10667
10668/***/ }),
10669/* 100 */
10670/***/ (function(module, exports) {
10671
10672 function E () {
10673 // Keep this empty so it's easier to inherit from
10674 // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
10675 }
10676
10677 E.prototype = {
10678 on: function (name, callback, ctx) {
10679 var e = this.e || (this.e = {});
10680
10681 (e[name] || (e[name] = [])).push({
10682 fn: callback,
10683 ctx: ctx
10684 });
10685
10686 return this;
10687 },
10688
10689 once: function (name, callback, ctx) {
10690 var self = this;
10691 function listener () {
10692 self.off(name, listener);
10693 callback.apply(ctx, arguments);
10694 };
10695
10696 listener._ = callback
10697 return this.on(name, listener, ctx);
10698 },
10699
10700 emit: function (name) {
10701 var data = [].slice.call(arguments, 1);
10702 var evtArr = ((this.e || (this.e = {}))[name] || []).slice();
10703 var i = 0;
10704 var len = evtArr.length;
10705
10706 for (i; i < len; i++) {
10707 evtArr[i].fn.apply(evtArr[i].ctx, data);
10708 }
10709
10710 return this;
10711 },
10712
10713 off: function (name, callback) {
10714 var e = this.e || (this.e = {});
10715 var evts = e[name];
10716 var liveEvents = [];
10717
10718 if (evts && callback) {
10719 for (var i = 0, len = evts.length; i < len; i++) {
10720 if (evts[i].fn !== callback && evts[i].fn._ !== callback)
10721 liveEvents.push(evts[i]);
10722 }
10723 }
10724
10725 // Remove event from queue to prevent memory leak
10726 // Suggested by https://github.com/lazd
10727 // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910
10728
10729 (liveEvents.length)
10730 ? e[name] = liveEvents
10731 : delete e[name];
10732
10733 return this;
10734 }
10735 };
10736
10737 module.exports = E;
10738 module.exports.TinyEmitter = E;
10739
10740
10741/***/ }),
10742/* 101 */
10743/***/ (function(module, exports, __webpack_require__) {
10744
10745 var is = __webpack_require__(102);
10746 var delegate = __webpack_require__(103);
10747
10748 /**
10749 * Validates all params and calls the right
10750 * listener function based on its target type.
10751 *
10752 * @param {String|HTMLElement|HTMLCollection|NodeList} target
10753 * @param {String} type
10754 * @param {Function} callback
10755 * @return {Object}
10756 */
10757 function listen(target, type, callback) {
10758 if (!target && !type && !callback) {
10759 throw new Error('Missing required arguments');
10760 }
10761
10762 if (!is.string(type)) {
10763 throw new TypeError('Second argument must be a String');
10764 }
10765
10766 if (!is.fn(callback)) {
10767 throw new TypeError('Third argument must be a Function');
10768 }
10769
10770 if (is.node(target)) {
10771 return listenNode(target, type, callback);
10772 }
10773 else if (is.nodeList(target)) {
10774 return listenNodeList(target, type, callback);
10775 }
10776 else if (is.string(target)) {
10777 return listenSelector(target, type, callback);
10778 }
10779 else {
10780 throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');
10781 }
10782 }
10783
10784 /**
10785 * Adds an event listener to a HTML element
10786 * and returns a remove listener function.
10787 *
10788 * @param {HTMLElement} node
10789 * @param {String} type
10790 * @param {Function} callback
10791 * @return {Object}
10792 */
10793 function listenNode(node, type, callback) {
10794 node.addEventListener(type, callback);
10795
10796 return {
10797 destroy: function() {
10798 node.removeEventListener(type, callback);
10799 }
10800 }
10801 }
10802
10803 /**
10804 * Add an event listener to a list of HTML elements
10805 * and returns a remove listener function.
10806 *
10807 * @param {NodeList|HTMLCollection} nodeList
10808 * @param {String} type
10809 * @param {Function} callback
10810 * @return {Object}
10811 */
10812 function listenNodeList(nodeList, type, callback) {
10813 Array.prototype.forEach.call(nodeList, function(node) {
10814 node.addEventListener(type, callback);
10815 });
10816
10817 return {
10818 destroy: function() {
10819 Array.prototype.forEach.call(nodeList, function(node) {
10820 node.removeEventListener(type, callback);
10821 });
10822 }
10823 }
10824 }
10825
10826 /**
10827 * Add an event listener to a selector
10828 * and returns a remove listener function.
10829 *
10830 * @param {String} selector
10831 * @param {String} type
10832 * @param {Function} callback
10833 * @return {Object}
10834 */
10835 function listenSelector(selector, type, callback) {
10836 return delegate(document.body, selector, type, callback);
10837 }
10838
10839 module.exports = listen;
10840
10841
10842/***/ }),
10843/* 102 */
10844/***/ (function(module, exports) {
10845
10846 /**
10847 * Check if argument is a HTML element.
10848 *
10849 * @param {Object} value
10850 * @return {Boolean}
10851 */
10852 exports.node = function(value) {
10853 return value !== undefined
10854 && value instanceof HTMLElement
10855 && value.nodeType === 1;
10856 };
10857
10858 /**
10859 * Check if argument is a list of HTML elements.
10860 *
10861 * @param {Object} value
10862 * @return {Boolean}
10863 */
10864 exports.nodeList = function(value) {
10865 var type = Object.prototype.toString.call(value);
10866
10867 return value !== undefined
10868 && (type === '[object NodeList]' || type === '[object HTMLCollection]')
10869 && ('length' in value)
10870 && (value.length === 0 || exports.node(value[0]));
10871 };
10872
10873 /**
10874 * Check if argument is a string.
10875 *
10876 * @param {Object} value
10877 * @return {Boolean}
10878 */
10879 exports.string = function(value) {
10880 return typeof value === 'string'
10881 || value instanceof String;
10882 };
10883
10884 /**
10885 * Check if argument is a function.
10886 *
10887 * @param {Object} value
10888 * @return {Boolean}
10889 */
10890 exports.fn = function(value) {
10891 var type = Object.prototype.toString.call(value);
10892
10893 return type === '[object Function]';
10894 };
10895
10896
10897/***/ }),
10898/* 103 */
10899/***/ (function(module, exports, __webpack_require__) {
10900
10901 var closest = __webpack_require__(104);
10902
10903 /**
10904 * Delegates event to a selector.
10905 *
10906 * @param {Element} element
10907 * @param {String} selector
10908 * @param {String} type
10909 * @param {Function} callback
10910 * @param {Boolean} useCapture
10911 * @return {Object}
10912 */
10913 function _delegate(element, selector, type, callback, useCapture) {
10914 var listenerFn = listener.apply(this, arguments);
10915
10916 element.addEventListener(type, listenerFn, useCapture);
10917
10918 return {
10919 destroy: function() {
10920 element.removeEventListener(type, listenerFn, useCapture);
10921 }
10922 }
10923 }
10924
10925 /**
10926 * Delegates event to a selector.
10927 *
10928 * @param {Element|String|Array} [elements]
10929 * @param {String} selector
10930 * @param {String} type
10931 * @param {Function} callback
10932 * @param {Boolean} useCapture
10933 * @return {Object}
10934 */
10935 function delegate(elements, selector, type, callback, useCapture) {
10936 // Handle the regular Element usage
10937 if (typeof elements.addEventListener === 'function') {
10938 return _delegate.apply(null, arguments);
10939 }
10940
10941 // Handle Element-less usage, it defaults to global delegation
10942 if (typeof type === 'function') {
10943 // Use `document` as the first parameter, then apply arguments
10944 // This is a short way to .unshift `arguments` without running into deoptimizations
10945 return _delegate.bind(null, document).apply(null, arguments);
10946 }
10947
10948 // Handle Selector-based usage
10949 if (typeof elements === 'string') {
10950 elements = document.querySelectorAll(elements);
10951 }
10952
10953 // Handle Array-like based usage
10954 return Array.prototype.map.call(elements, function (element) {
10955 return _delegate(element, selector, type, callback, useCapture);
10956 });
10957 }
10958
10959 /**
10960 * Finds closest match and invokes callback.
10961 *
10962 * @param {Element} element
10963 * @param {String} selector
10964 * @param {String} type
10965 * @param {Function} callback
10966 * @return {Function}
10967 */
10968 function listener(element, selector, type, callback) {
10969 return function(e) {
10970 e.delegateTarget = closest(e.target, selector);
10971
10972 if (e.delegateTarget) {
10973 callback.call(element, e);
10974 }
10975 }
10976 }
10977
10978 module.exports = delegate;
10979
10980
10981/***/ }),
10982/* 104 */
10983/***/ (function(module, exports) {
10984
10985 var DOCUMENT_NODE_TYPE = 9;
10986
10987 /**
10988 * A polyfill for Element.matches()
10989 */
10990 if (typeof Element !== 'undefined' && !Element.prototype.matches) {
10991 var proto = Element.prototype;
10992
10993 proto.matches = proto.matchesSelector ||
10994 proto.mozMatchesSelector ||
10995 proto.msMatchesSelector ||
10996 proto.oMatchesSelector ||
10997 proto.webkitMatchesSelector;
10998 }
10999
11000 /**
11001 * Finds the closest parent that matches a selector.
11002 *
11003 * @param {Element} element
11004 * @param {String} selector
11005 * @return {Function}
11006 */
11007 function closest (element, selector) {
11008 while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {
11009 if (typeof element.matches === 'function' &&
11010 element.matches(selector)) {
11011 return element;
11012 }
11013 element = element.parentNode;
11014 }
11015 }
11016
11017 module.exports = closest;
11018
11019
11020/***/ }),
11021/* 105 */
11022/***/ (function(module, exports, __webpack_require__) {
11023
11024 'use strict';
11025
11026 Object.defineProperty(exports, "__esModule", {
11027 value: true
11028 });
11029
11030 var _Icon = __webpack_require__(106);
11031
11032 var _Icon2 = _interopRequireDefault(_Icon);
11033
11034 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11035
11036 exports["default"] = _Icon2["default"];
11037 module.exports = exports['default'];
11038
11039/***/ }),
11040/* 106 */
11041/***/ (function(module, exports, __webpack_require__) {
11042
11043 'use strict';
11044
11045 Object.defineProperty(exports, "__esModule", {
11046 value: true
11047 });
11048
11049 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; };
11050
11051 var _react = __webpack_require__(1);
11052
11053 var _react2 = _interopRequireDefault(_react);
11054
11055 var _classnames = __webpack_require__(5);
11056
11057 var _classnames2 = _interopRequireDefault(_classnames);
11058
11059 var _propTypes = __webpack_require__(6);
11060
11061 var _propTypes2 = _interopRequireDefault(_propTypes);
11062
11063 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11064
11065 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; }
11066
11067 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; }
11068
11069 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11070
11071 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; }
11072
11073 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); }
11074
11075 var propTypes = {
11076 type: _propTypes2["default"].string
11077
11078 };
11079 /**
11080 * badge 默认显示内容1
11081 */
11082 var defaultProps = {
11083 clsPrefix: 'uf'
11084 };
11085
11086 var Icon = function (_Component) {
11087 _inherits(Icon, _Component);
11088
11089 function Icon(props) {
11090 _classCallCheck(this, Icon);
11091
11092 return _possibleConstructorReturn(this, _Component.call(this, props));
11093 }
11094
11095 Icon.prototype.render = function render() {
11096 var _props = this.props,
11097 type = _props.type,
11098 className = _props.className,
11099 clsPrefix = _props.clsPrefix,
11100 others = _objectWithoutProperties(_props, ['type', 'className', 'clsPrefix']);
11101
11102 var clsObj = {};
11103
11104 var classNames = (0, _classnames2["default"])(clsPrefix, type);
11105
11106 return _react2["default"].createElement('i', _extends({}, others, { className: (0, _classnames2["default"])(classNames, className) }));
11107 };
11108
11109 return Icon;
11110 }(_react.Component);
11111
11112 Icon.defaultProps = defaultProps;
11113 Icon.propTypes = propTypes;
11114
11115 exports["default"] = Icon;
11116 module.exports = exports['default'];
11117
11118/***/ }),
11119/* 107 */
11120/***/ (function(module, exports, __webpack_require__) {
11121
11122 'use strict';
11123
11124 Object.defineProperty(exports, "__esModule", {
11125 value: true
11126 });
11127
11128 var _Tooltip = __webpack_require__(108);
11129
11130 var _Tooltip2 = _interopRequireDefault(_Tooltip);
11131
11132 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11133
11134 exports["default"] = _Tooltip2["default"];
11135 module.exports = exports['default'];
11136
11137/***/ }),
11138/* 108 */
11139/***/ (function(module, exports, __webpack_require__) {
11140
11141 'use strict';
11142
11143 Object.defineProperty(exports, "__esModule", {
11144 value: true
11145 });
11146
11147 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; };
11148
11149 var _classnames = __webpack_require__(5);
11150
11151 var _classnames2 = _interopRequireDefault(_classnames);
11152
11153 var _react = __webpack_require__(1);
11154
11155 var _react2 = _interopRequireDefault(_react);
11156
11157 var _propTypes = __webpack_require__(6);
11158
11159 var _propTypes2 = _interopRequireDefault(_propTypes);
11160
11161 var _OverlayTrigger = __webpack_require__(109);
11162
11163 var _OverlayTrigger2 = _interopRequireDefault(_OverlayTrigger);
11164
11165 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11166
11167 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; }
11168
11169 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; }
11170
11171 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; }
11172
11173 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11174
11175 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; }
11176
11177 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); }
11178
11179 var propTypes = {
11180 /**
11181 * @required
11182 */
11183 id: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]),
11184 inverse: _propTypes2["default"].bool,
11185 visible: _propTypes2["default"].bool,
11186 onVisibleChange: _propTypes2["default"].func,
11187 /**
11188 * 相对目标元素显示上下左右的位置
11189 */
11190 placement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']),
11191
11192 /**
11193 * 绝对定位上边距.
11194 */
11195 positionTop: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]),
11196 /**
11197 * 绝对定位左边距
11198 */
11199 positionLeft: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]),
11200
11201 /**
11202 * 与目标Top的距离
11203 */
11204 arrowOffsetTop: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string]),
11205 /**
11206 * 与目标Left的距离
11207 */
11208 arrowOffsetLeft: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string])
11209 };
11210
11211 var defaultProps = {
11212 placement: 'right',
11213 clsPrefix: 'u-tooltip'
11214 };
11215 function OverlayNode(props) {
11216 var className = props.className,
11217 classNames = props.classNames,
11218 style = props.style,
11219 overlay = props.overlay,
11220 arrowOffsetTop = props.arrowOffsetTop,
11221 arrowOffsetLeft = props.arrowOffsetLeft;
11222
11223 return _react2["default"].createElement(
11224 'div',
11225 {
11226 className: (0, _classnames2["default"])(className, classNames),
11227 onMouseEnter: props.onMouseEnter,
11228 onMouseLeave: props.onMouseLeave,
11229 style: style
11230 },
11231 overlay ? _react2["default"].createElement('div', { className: 'tooltip-arrow', style: {
11232 top: arrowOffsetTop,
11233 left: arrowOffsetLeft
11234 } }) : '',
11235 overlay ? _react2["default"].createElement(
11236 'div',
11237 { className: 'tooltip-inner' },
11238 overlay
11239 ) : ''
11240 );
11241 }
11242
11243 var Tooltip = function (_React$Component) {
11244 _inherits(Tooltip, _React$Component);
11245
11246 function Tooltip(props) {
11247 _classCallCheck(this, Tooltip);
11248
11249 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
11250
11251 _this.onMouseEnter = function () {
11252 _this.setState({
11253 isHoverShow: true
11254 });
11255 };
11256
11257 _this.onMouseLeave = function () {
11258 _this.setState({
11259 isHoverShow: false
11260 });
11261 };
11262
11263 var initState = {
11264 isHoverShow: false
11265 };
11266 if ('visible' in props) {
11267 _extends(initState, {
11268 visible: props.visible
11269 });
11270 }
11271 _this.state = initState;
11272 return _this;
11273 }
11274
11275 Tooltip.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
11276 var _props = this.props,
11277 visible = _props.visible,
11278 onVisibleChange = _props.onVisibleChange;
11279
11280 if ('visible' in this.props && prevProps.visible !== visible) {
11281 this.setState({
11282 visible: visible
11283 });
11284 onVisibleChange && onVisibleChange(visible);
11285 }
11286 };
11287
11288 /**
11289 * @desc 鼠标划入时候的事件
11290 */
11291
11292
11293 /**
11294 * @desc 鼠标划出时候的事件
11295 */
11296
11297
11298 Tooltip.prototype.render = function render() {
11299 var _classes,
11300 _this2 = this;
11301
11302 var _props2 = this.props,
11303 placement = _props2.placement,
11304 positionTop = _props2.positionTop,
11305 positionLeft = _props2.positionLeft,
11306 arrowOffsetTop = _props2.arrowOffsetTop,
11307 arrowOffsetLeft = _props2.arrowOffsetLeft,
11308 className = _props2.className,
11309 style = _props2.style,
11310 children = _props2.children,
11311 clsPrefix = _props2.clsPrefix,
11312 overlay = _props2.overlay,
11313 inverse = _props2.inverse,
11314 others = _objectWithoutProperties(_props2, ['placement', 'positionTop', 'positionLeft', 'arrowOffsetTop', 'arrowOffsetLeft', 'className', 'style', 'children', 'clsPrefix', 'overlay', 'inverse']);
11315
11316 var classes = (_classes = {}, _defineProperty(_classes, placement, true), _defineProperty(_classes, 'inverse', inverse), _classes);
11317
11318 var outerStyle = _extends({
11319 top: positionTop,
11320 left: positionLeft
11321 }, style);
11322
11323 var arrowStyle = {
11324 top: arrowOffsetTop,
11325 left: arrowOffsetLeft
11326 };
11327
11328 var classNames = (0, _classnames2["default"])(clsPrefix, classes);
11329
11330 var overlayNode = _react2["default"].createElement(OverlayNode, {
11331 className: className,
11332 classNames: classNames,
11333 overlay: overlay,
11334 onMouseEnter: this.onMouseEnter,
11335 onMouseLeave: this.onMouseLeave,
11336 style: true,
11337 arrowOffsetTop: true,
11338 arrowOffsetLeft: true
11339 });
11340 return 'visible' in this.props ? _react2["default"].createElement(
11341 _OverlayTrigger2["default"],
11342 _extends({ visible: this.state.visible, ref: function ref(_ref) {
11343 return _this2.trigger = _ref;
11344 }, shouldUpdatePosition: true, placement: placement }, others, { overlay: overlayNode }),
11345 children
11346 ) : _react2["default"].createElement(
11347 _OverlayTrigger2["default"],
11348 _extends({ isHoverShow: this.state.isHoverShow, ref: function ref(_ref2) {
11349 return _this2.trigger = _ref2;
11350 }, shouldUpdatePosition: true, placement: placement }, others, { overlay: overlayNode }),
11351 children
11352 );
11353 };
11354
11355 return Tooltip;
11356 }(_react2["default"].Component);
11357
11358 Tooltip.propTypes = propTypes;
11359 Tooltip.defaultProps = defaultProps;
11360
11361 exports["default"] = Tooltip;
11362 module.exports = exports['default'];
11363
11364/***/ }),
11365/* 109 */
11366/***/ (function(module, exports, __webpack_require__) {
11367
11368 'use strict';
11369
11370 Object.defineProperty(exports, "__esModule", {
11371 value: true
11372 });
11373
11374 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; };
11375
11376 var _contains = __webpack_require__(110);
11377
11378 var _contains2 = _interopRequireDefault(_contains);
11379
11380 var _react = __webpack_require__(1);
11381
11382 var _react2 = _interopRequireDefault(_react);
11383
11384 var _propTypes = __webpack_require__(6);
11385
11386 var _propTypes2 = _interopRequireDefault(_propTypes);
11387
11388 var _reactDom = __webpack_require__(2);
11389
11390 var _reactDom2 = _interopRequireDefault(_reactDom);
11391
11392 var _warning = __webpack_require__(31);
11393
11394 var _warning2 = _interopRequireDefault(_warning);
11395
11396 var _Portal = __webpack_require__(111);
11397
11398 var _Portal2 = _interopRequireDefault(_Portal);
11399
11400 var _Overlay = __webpack_require__(113);
11401
11402 var _Overlay2 = _interopRequireDefault(_Overlay);
11403
11404 var _createChainedFunction = __webpack_require__(129);
11405
11406 var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
11407
11408 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11409
11410 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; }
11411
11412 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; }
11413
11414 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11415
11416 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; }
11417
11418 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); }
11419
11420 var isReact16 = _reactDom2["default"].createPortal !== undefined;
11421 var createPortal = isReact16 ? _reactDom2["default"].createPortal : _reactDom2["default"].unstable_renderSubtreeIntoContainer;
11422
11423 /**
11424 * 检查值是属于这个值,还是等于这个值
11425 *
11426 * @param {string} one
11427 * @param {string|array} of
11428 * @returns {boolean}
11429 */
11430 function isOneOf(one, of) {
11431 if (Array.isArray(of)) {
11432 return of.indexOf(one) >= 0;
11433 }
11434 return one === of;
11435 }
11436
11437 var triggerType = _propTypes2["default"].oneOf(['click', 'hover', 'focus']);
11438
11439 var propTypes = _extends({}, _Portal2["default"].propTypes, _Overlay2["default"].propTypes, {
11440
11441 /**
11442 * 指定哪些操作或操作触发叠加层可见性
11443 */
11444 trigger: _propTypes2["default"].oneOfType([triggerType, _propTypes2["default"].arrayOf(triggerType)]),
11445
11446 /**
11447 * 显示和隐藏覆盖一旦触发的毫秒延迟量
11448 */
11449 delay: _propTypes2["default"].number,
11450 /**
11451 * 触发后显示叠加层之前的延迟毫秒
11452 */
11453 delayShow: _propTypes2["default"].number,
11454 /**
11455 * 触发后隐藏叠加层的延迟毫秒
11456 */
11457 delayHide: _propTypes2["default"].number,
11458
11459 // FIXME: This should be `defaultShow`.
11460 /**
11461 * 覆盖的初始可见性状态。对于更细微的可见性控制,请考虑直接使用覆盖组件。
11462 */
11463 defaultOverlayShown: _propTypes2["default"].bool,
11464 visible: _propTypes2["default"].bool,
11465
11466 /**
11467 * 要覆盖在目标旁边的元素或文本。
11468 */
11469 overlay: _propTypes2["default"].node.isRequired,
11470
11471 /**
11472 * @private
11473 */
11474 onBlur: _propTypes2["default"].func,
11475 /**
11476 * @private
11477 */
11478 onClick: _propTypes2["default"].func,
11479 /**
11480 * @private
11481 */
11482 onFocus: _propTypes2["default"].func,
11483 /**
11484 * @private
11485 */
11486 onMouseOut: _propTypes2["default"].func,
11487 /**
11488 * @private
11489 */
11490 onMouseOver: _propTypes2["default"].func,
11491
11492 // Overridden props from `<Overlay>`.
11493 /**
11494 * @private
11495 */
11496 target: _propTypes2["default"].oneOf([null]),
11497 /**
11498 * @private
11499 */
11500 onHide: _propTypes2["default"].oneOf([null]),
11501 /**
11502 * @private
11503 */
11504 show: _propTypes2["default"].oneOf([null])
11505 });
11506
11507 var defaultProps = {
11508 defaultOverlayShown: false,
11509 trigger: ['hover', 'focus']
11510 };
11511
11512 var OverlayTrigger = function (_Component) {
11513 _inherits(OverlayTrigger, _Component);
11514
11515 function OverlayTrigger(props, context) {
11516 _classCallCheck(this, OverlayTrigger);
11517
11518 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
11519
11520 _this.handleToggle = _this.handleToggle.bind(_this);
11521 _this.handleDelayedShow = _this.handleDelayedShow.bind(_this);
11522 _this.handleDelayedHide = _this.handleDelayedHide.bind(_this);
11523 _this.handleHide = _this.handleHide.bind(_this);
11524 _this.makeOverlay = _this.makeOverlay.bind(_this);
11525
11526 _this.handleMouseOver = function (e) {
11527 return _this.handleMouseOverOut(_this.handleDelayedShow, e);
11528 };
11529 _this.handleMouseOut = function (e) {
11530 return _this.handleMouseOverOut(_this.handleDelayedHide, e);
11531 };
11532
11533 _this._mountNode = null;
11534
11535 var visible = void 0;
11536 if ('visible' in props) {
11537 visible = !!props.visible;
11538 } else {
11539 visible = !!props.defaultOverlayShown;
11540 }
11541
11542 _this.state = {
11543 show: visible
11544 };
11545 return _this;
11546 }
11547
11548 OverlayTrigger.prototype.componentDidMount = function componentDidMount() {
11549 this._mountNode = document.createElement('div');
11550 !isReact16 && this.renderOverlay();
11551 };
11552
11553 OverlayTrigger.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
11554 !isReact16 && this.renderOverlay();
11555 if ('visible' in this.props && prevProps.visible !== this.props.visible) {
11556 this.setState({
11557 show: this.props.visible
11558 });
11559 }
11560 if ('isHoverShow' in this.props && prevProps.isHoverShow !== this.props.isHoverShow) {
11561 this.setState({
11562 show: this.props.isHoverShow
11563 });
11564 }
11565 };
11566
11567 OverlayTrigger.prototype.componentWillUnmount = function componentWillUnmount() {
11568 !isReact16 && _reactDom2["default"].unmountComponentAtNode(this._mountNode);
11569 this._mountNode = null;
11570 // 加判断去掉 clearTimeout
11571 this._hoverShowDelay && clearTimeout(this._hoverShowDelay);
11572 this._hoverShowDelay && clearTimeout(this._hoverHideDelay);
11573 };
11574
11575 OverlayTrigger.prototype.handleToggle = function handleToggle() {
11576 if (this.state.show) {
11577 this.hide();
11578 } else {
11579 this.show();
11580 }
11581 };
11582
11583 OverlayTrigger.prototype.handleDelayedShow = function handleDelayedShow() {
11584 var _this2 = this;
11585
11586 if (this._hoverHideDelay != null) {
11587 clearTimeout(this._hoverHideDelay);
11588 this._hoverHideDelay = null;
11589 return;
11590 }
11591
11592 if (this.state.show || this._hoverShowDelay != null) {
11593 return;
11594 }
11595
11596 var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay;
11597
11598 if (!delay) {
11599 this.show();
11600 return;
11601 }
11602
11603 this._hoverShowDelay = setTimeout(function () {
11604 _this2._hoverShowDelay = null;
11605 _this2.show();
11606 }, delay);
11607 };
11608
11609 OverlayTrigger.prototype.handleDelayedHide = function handleDelayedHide() {
11610 var _this3 = this;
11611
11612 if (this._hoverShowDelay != null) {
11613 clearTimeout(this._hoverShowDelay);
11614 this._hoverShowDelay = null;
11615 return;
11616 }
11617
11618 if (!this.state.show || this._hoverHideDelay != null) {
11619 return;
11620 }
11621
11622 var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay;
11623
11624 if (!delay) {
11625 this.hide();
11626 return;
11627 }
11628
11629 this._hoverHideDelay = setTimeout(function () {
11630 _this3._hoverHideDelay = null;
11631 _this3.hide();
11632 }, delay);
11633 };
11634
11635 // 简单实现mouseEnter和mouseLeave。
11636 // React的内置版本是有问题的:https://github.com/facebook/react/issues/4251
11637 //在触发器被禁用的情况下,mouseOut / Over可能导致闪烁
11638 //从一个子元素移动到另一个子元素。
11639
11640
11641 OverlayTrigger.prototype.handleMouseOverOut = function handleMouseOverOut(handler, e) {
11642 var target = e.currentTarget;
11643 var related = e.relatedTarget || e.nativeEvent.toElement;
11644
11645 if (!related || related !== target && !(0, _contains2["default"])(target, related)) {
11646 handler(e);
11647 }
11648 };
11649
11650 OverlayTrigger.prototype.handleHide = function handleHide() {
11651 this.hide();
11652 };
11653
11654 OverlayTrigger.prototype.show = function show() {
11655 this.setState({ show: true });
11656 };
11657
11658 OverlayTrigger.prototype.hide = function hide() {
11659 this.setState({ show: false });
11660 };
11661
11662 OverlayTrigger.prototype.makeOverlay = function makeOverlay(overlay, props) {
11663 return _react2["default"].createElement(
11664 _Overlay2["default"],
11665 _extends({}, props, {
11666 show: this.state.show,
11667 onHide: this.handleHide,
11668 target: this
11669 }),
11670 overlay
11671 );
11672 };
11673
11674 OverlayTrigger.prototype.renderOverlay = function renderOverlay() {
11675 _reactDom2["default"].unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);
11676 };
11677
11678 OverlayTrigger.prototype.render = function render() {
11679 var _props = this.props,
11680 trigger = _props.trigger,
11681 overlay = _props.overlay,
11682 children = _props.children,
11683 onBlur = _props.onBlur,
11684 onClick = _props.onClick,
11685 onFocus = _props.onFocus,
11686 onMouseOut = _props.onMouseOut,
11687 onMouseOver = _props.onMouseOver,
11688 props = _objectWithoutProperties(_props, ['trigger', 'overlay', 'children', 'onBlur', 'onClick', 'onFocus', 'onMouseOut', 'onMouseOver']);
11689
11690 delete props.delay;
11691 delete props.delayShow;
11692 delete props.delayHide;
11693 delete props.defaultOverlayShown;
11694
11695 var child = _react2["default"].Children.only(children);
11696 var childProps = child.props;
11697
11698 var triggerProps = {
11699 'aria-describedby': overlay.props.id
11700 };
11701
11702 // FIXME: 这里用于传递这个组件上的处理程序的逻辑是不一致的。我们不应该通过任何这些道具。
11703
11704 triggerProps.onClick = (0, _createChainedFunction2["default"])(childProps.onClick, onClick);
11705
11706 if (isOneOf('click', trigger) && !('visible' in this.props)) {
11707 triggerProps.onClick = (0, _createChainedFunction2["default"])(triggerProps.onClick, this.handleToggle);
11708 }
11709
11710 if (isOneOf('hover', trigger) && !('visible' in this.props)) {
11711 (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.');
11712
11713 triggerProps.onMouseOver = (0, _createChainedFunction2["default"])(childProps.onMouseOver, onMouseOver, this.handleMouseOver);
11714 triggerProps.onMouseOut = (0, _createChainedFunction2["default"])(childProps.onMouseOut, onMouseOut, this.handleMouseOut);
11715 }
11716
11717 if (isOneOf('focus', trigger) && !('visible' in this.props)) {
11718 triggerProps.onFocus = (0, _createChainedFunction2["default"])(childProps.onFocus, onFocus, this.handleDelayedShow);
11719 triggerProps.onBlur = (0, _createChainedFunction2["default"])(childProps.onBlur, onBlur, this.handleDelayedHide);
11720 }
11721
11722 this._overlay = this.makeOverlay(overlay, props);
11723
11724 if (!isReact16) {
11725 return (0, _react.cloneElement)(child, triggerProps);
11726 }
11727 triggerProps.key = 'overlay';
11728
11729 var portal = _react2["default"].createElement(
11730 _Portal2["default"],
11731 {
11732 key: 'portal',
11733 container: props.container },
11734 this._overlay
11735 );
11736
11737 return [(0, _react.cloneElement)(child, triggerProps), portal];
11738 };
11739
11740 return OverlayTrigger;
11741 }(_react.Component);
11742
11743 OverlayTrigger.propTypes = propTypes;
11744 OverlayTrigger.defaultProps = defaultProps;
11745
11746 exports["default"] = OverlayTrigger;
11747 module.exports = exports['default'];
11748
11749/***/ }),
11750/* 110 */
11751/***/ (function(module, exports, __webpack_require__) {
11752
11753 'use strict';
11754
11755 Object.defineProperty(exports, "__esModule", {
11756 value: true
11757 });
11758
11759 var _inDOM = __webpack_require__(14);
11760
11761 var _inDOM2 = _interopRequireDefault(_inDOM);
11762
11763 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11764
11765 exports.default = function () {
11766 var root = _inDOM2.default && document.documentElement;
11767
11768 return root && root.contains ? function (context, node) {
11769 return context.contains(node);
11770 } : root && root.compareDocumentPosition ? function (context, node) {
11771 return context === node || !!(context.compareDocumentPosition(node) & 16);
11772 } : function (context, node) {
11773 if (node) do {
11774 if (node === context) return true;
11775 } while (node = node.parentNode);
11776
11777 return false;
11778 };
11779 }();
11780
11781 module.exports = exports['default'];
11782
11783/***/ }),
11784/* 111 */
11785/***/ (function(module, exports, __webpack_require__) {
11786
11787 'use strict';
11788
11789 Object.defineProperty(exports, "__esModule", {
11790 value: true
11791 });
11792
11793 var _react = __webpack_require__(1);
11794
11795 var _react2 = _interopRequireDefault(_react);
11796
11797 var _reactDom = __webpack_require__(2);
11798
11799 var _reactDom2 = _interopRequireDefault(_reactDom);
11800
11801 var _propTypes = __webpack_require__(6);
11802
11803 var _propTypes2 = _interopRequireDefault(_propTypes);
11804
11805 var _ownerDocument = __webpack_require__(73);
11806
11807 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
11808
11809 var _getContainer = __webpack_require__(112);
11810
11811 var _getContainer2 = _interopRequireDefault(_getContainer);
11812
11813 var _tinperBeeCore = __webpack_require__(26);
11814
11815 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11816
11817 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; }
11818
11819 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11820
11821 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; }
11822
11823 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); }
11824
11825 var isReact16 = _reactDom2["default"].createPortal !== undefined;
11826 var createPortal = isReact16 ? _reactDom2["default"].createPortal : _reactDom2["default"].unstable_renderSubtreeIntoContainer;
11827
11828 var propTypes = {
11829 /**
11830 * 存放子组件的容器
11831 */
11832 container: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func])
11833 };
11834
11835 var defaultProps = {};
11836
11837 /**
11838 * Portal组件是将子组件渲染
11839 */
11840
11841 var Portal = function (_Component) {
11842 _inherits(Portal, _Component);
11843
11844 function Portal(props) {
11845 _classCallCheck(this, Portal);
11846
11847 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
11848
11849 _this.getMountNode = _this.getMountNode.bind(_this);
11850 _this.getOverlayDOMNode = _this.getOverlayDOMNode.bind(_this);
11851 _this.mountOverlayTarget = _this.mountOverlayTarget.bind(_this);
11852 _this.unmountOverlayTarget = _this.unmountOverlayTarget.bind(_this);
11853 _this.renderOverlay = _this.renderOverlay.bind(_this);
11854 _this.unrenderOverlay = _this.unrenderOverlay.bind(_this);
11855
11856 _this.overlayTarget = isReact16 ? document.createElement('div') : null;
11857 return _this;
11858 }
11859
11860 Portal.prototype.componentDidMount = function componentDidMount() {
11861 if (isReact16) {
11862 this.portalContainerNode = (0, _getContainer2["default"])(this.props.container, (0, _ownerDocument2["default"])(this).body);
11863 this.portalContainerNode.appendChild(this.overlayTarget);
11864 } else {
11865 this.renderOverlay();
11866 }
11867
11868 this.mounted = true;
11869 };
11870
11871 Portal.prototype.componentDidUpdate = function componentDidUpdate() {
11872 if (isReact16) {
11873 var overlay = !this.props.children ? null : _react2["default"].Children.only(this.props.children);
11874 if (overlay === null) {
11875 this.unrenderOverlay();
11876 this.unmountOverlayTarget();
11877 } else {}
11878 } else {
11879 this.renderOverlay();
11880 }
11881 };
11882 //this._overlayTarget为当前的要添加的子组件, this._portalContainerNode要添加组件的容器元素
11883
11884
11885 Portal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
11886 if (this.overlayTarget && nextProps.container !== this.props.container) {
11887 this.portalContainerNode.removeChild(this.overlayTarget);
11888 this.portalContainerNode = (0, _getContainer2["default"])(nextProps.container, (0, _ownerDocument2["default"])(this).body);
11889 this.portalContainerNode.appendChild(this.overlayTarget);
11890 }
11891 };
11892
11893 Portal.prototype.componentWillUnmount = function componentWillUnmount() {
11894 this.unrenderOverlay();
11895 this.unmountOverlayTarget();
11896
11897 this.mounted = false;
11898 };
11899
11900 Portal.prototype.getMountNode = function getMountNode() {
11901 return this.overlayTarget;
11902 };
11903
11904 Portal.prototype.getOverlayDOMNode = function getOverlayDOMNode() {
11905 if (!this.mounted) {
11906 throw new Error('getOverlayDOMNode(): A component must be mounted to have a DOM node.');
11907 }
11908
11909 if (this.overlayInstance) {
11910 return _reactDom2["default"].findDOMNode(this.overlayInstance);
11911 }
11912
11913 return null;
11914 };
11915
11916 /**
11917 * 如果要添加的子组件不存在,就将div添加到要添加容器的DOM中;
11918 */
11919
11920 Portal.prototype.mountOverlayTarget = function mountOverlayTarget() {
11921 if (!this.overlayTarget) {
11922 this.overlayTarget = document.createElement('div');
11923 this.portalContainerNode = (0, _getContainer2["default"])(this.props.container, (0, _ownerDocument2["default"])(this).body);
11924 this.portalContainerNode.appendChild(this.overlayTarget);
11925 }
11926 };
11927 /**
11928 * 将要添加的子元素从容器中移除,并把变量置为null
11929 */
11930
11931
11932 Portal.prototype.unmountOverlayTarget = function unmountOverlayTarget() {
11933 if (this.overlayTarget) {
11934 this.portalContainerNode.removeChild(this.overlayTarget);
11935 this.overlayTarget = null;
11936 }
11937 this.portalContainerNode = null;
11938 };
11939 /**
11940 * 手动渲染_overlayTarget
11941 */
11942
11943
11944 Portal.prototype.renderOverlay = function renderOverlay() {
11945
11946 var overlay = !this.props.children ? null : _react2["default"].Children.only(this.props.children);
11947
11948 // Save reference for future access.
11949 if (overlay !== null) {
11950 this.mountOverlayTarget();
11951 this.overlayInstance = _reactDom2["default"].unstable_renderSubtreeIntoContainer(this, overlay, this.overlayTarget);
11952 } else {
11953 // Unrender if the component is null for transitions to null
11954 this.unrenderOverlay();
11955 this.unmountOverlayTarget();
11956 }
11957 };
11958 /**
11959 * 销毁_overlayTarget组件。并把_overlayInstance置为null
11960 */
11961
11962
11963 Portal.prototype.unrenderOverlay = function unrenderOverlay() {
11964 if (this.overlayTarget) {
11965 !isReact16 && _reactDom2["default"].unmountComponentAtNode(this.overlayTarget);
11966 this.overlayInstance = null;
11967 }
11968 };
11969
11970 Portal.prototype.render = function render() {
11971 if (!isReact16) {
11972 return null;
11973 }
11974
11975 var overlay = !this.props.children ? null : _react2["default"].Children.only(this.props.children);
11976
11977 return _reactDom2["default"].createPortal(overlay, this.overlayTarget);
11978 };
11979
11980 return Portal;
11981 }(_react.Component);
11982
11983 ;
11984
11985 Portal.propTypes = propTypes;
11986 Portal.defaultProps = defaultProps;
11987
11988 exports["default"] = Portal;
11989 module.exports = exports['default'];
11990
11991/***/ }),
11992/* 112 */
11993/***/ (function(module, exports, __webpack_require__) {
11994
11995 'use strict';
11996
11997 Object.defineProperty(exports, "__esModule", {
11998 value: true
11999 });
12000 exports["default"] = getContainer;
12001
12002 var _reactDom = __webpack_require__(2);
12003
12004 var _reactDom2 = _interopRequireDefault(_reactDom);
12005
12006 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12007
12008 /**
12009 * 获取容器组件
12010 * @param {[type]} container [description]
12011 * @param {[type]} defaultContainer [description]
12012 * @return {[type]} [description]
12013 */
12014 function getContainer(container, defaultContainer) {
12015 container = typeof container === 'function' ? container() : container;
12016 return _reactDom2["default"].findDOMNode(container) || defaultContainer;
12017 }
12018 module.exports = exports['default'];
12019
12020/***/ }),
12021/* 113 */
12022/***/ (function(module, exports, __webpack_require__) {
12023
12024 'use strict';
12025
12026 Object.defineProperty(exports, "__esModule", {
12027 value: true
12028 });
12029
12030 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; };
12031
12032 var _classnames = __webpack_require__(5);
12033
12034 var _classnames2 = _interopRequireDefault(_classnames);
12035
12036 var _react = __webpack_require__(1);
12037
12038 var _react2 = _interopRequireDefault(_react);
12039
12040 var _propTypes = __webpack_require__(6);
12041
12042 var _propTypes2 = _interopRequireDefault(_propTypes);
12043
12044 var _BaseOverlay = __webpack_require__(114);
12045
12046 var _BaseOverlay2 = _interopRequireDefault(_BaseOverlay);
12047
12048 var _tinperBeeCore = __webpack_require__(26);
12049
12050 var _Fade = __webpack_require__(127);
12051
12052 var _Fade2 = _interopRequireDefault(_Fade);
12053
12054 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12055
12056 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; }
12057
12058 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; }
12059
12060 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12061
12062 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; }
12063
12064 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); }
12065
12066 var propTypes = _extends({}, _BaseOverlay2["default"].propTypes, {
12067
12068 /**
12069 * 是否显示
12070 */
12071 show: _propTypes2["default"].bool,
12072 /**
12073 * 是
12074 */
12075 rootClose: _propTypes2["default"].bool,
12076 /**
12077 * 当点击rootClose触发close时的回调函数
12078 */
12079 onHide: _propTypes2["default"].func,
12080
12081 /**
12082 * 使用动画
12083 */
12084 animation: _propTypes2["default"].oneOfType([_tinperBeeCore.elementType, _propTypes2["default"].func]),
12085
12086 /**
12087 * Callback fired before the Overlay transitions in
12088 */
12089 onEnter: _propTypes2["default"].func,
12090
12091 /**
12092 * Callback fired as the Overlay begins to transition in
12093 */
12094 onEntering: _propTypes2["default"].func,
12095
12096 /**
12097 * Callback fired after the Overlay finishes transitioning in
12098 */
12099 onEntered: _propTypes2["default"].func,
12100
12101 /**
12102 * Callback fired right before the Overlay transitions out
12103 */
12104 onExit: _propTypes2["default"].func,
12105
12106 /**
12107 * Callback fired as the Overlay begins to transition out
12108 */
12109 onExiting: _propTypes2["default"].func,
12110
12111 /**
12112 * Callback fired after the Overlay finishes transitioning out
12113 */
12114 onExited: _propTypes2["default"].func,
12115
12116 /**
12117 * Sets the direction of the Overlay.
12118 */
12119 placement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']),
12120
12121 /**
12122 * 当Overlay在placement方向放不下时的第二优先级方向
12123 */
12124 secondPlacement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left'])
12125 });
12126
12127 var defaultProps = {
12128 animation: _Fade2["default"],
12129 rootClose: false,
12130 show: false,
12131 placement: 'right'
12132 };
12133
12134 var Overlay = function (_Component) {
12135 _inherits(Overlay, _Component);
12136
12137 function Overlay() {
12138 _classCallCheck(this, Overlay);
12139
12140 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
12141 }
12142
12143 Overlay.prototype.render = function render() {
12144 var _props = this.props,
12145 animation = _props.animation,
12146 children = _props.children,
12147 props = _objectWithoutProperties(_props, ['animation', 'children']);
12148
12149 var transition = animation === true ? _Fade2["default"] : animation || null;
12150
12151 var child = void 0;
12152
12153 if (!transition) {
12154 child = (0, _react.cloneElement)(children, {
12155 className: (0, _classnames2["default"])(children.props.className, 'in')
12156 });
12157 } else {
12158 child = children;
12159 }
12160
12161 return _react2["default"].createElement(
12162 _BaseOverlay2["default"],
12163 _extends({}, props, {
12164 transition: transition
12165 }),
12166 child
12167 );
12168 };
12169
12170 return Overlay;
12171 }(_react.Component);
12172
12173 Overlay.propTypes = propTypes;
12174 Overlay.defaultProps = defaultProps;
12175
12176 exports["default"] = Overlay;
12177 module.exports = exports['default'];
12178
12179/***/ }),
12180/* 114 */
12181/***/ (function(module, exports, __webpack_require__) {
12182
12183 'use strict';
12184
12185 Object.defineProperty(exports, "__esModule", {
12186 value: true
12187 });
12188
12189 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; };
12190
12191 var _react = __webpack_require__(1);
12192
12193 var _react2 = _interopRequireDefault(_react);
12194
12195 var _reactDom = __webpack_require__(2);
12196
12197 var _reactDom2 = _interopRequireDefault(_reactDom);
12198
12199 var _propTypes = __webpack_require__(6);
12200
12201 var _propTypes2 = _interopRequireDefault(_propTypes);
12202
12203 var _Portal = __webpack_require__(111);
12204
12205 var _Portal2 = _interopRequireDefault(_Portal);
12206
12207 var _Position = __webpack_require__(115);
12208
12209 var _Position2 = _interopRequireDefault(_Position);
12210
12211 var _RootCloseWrapper = __webpack_require__(126);
12212
12213 var _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);
12214
12215 var _tinperBeeCore = __webpack_require__(26);
12216
12217 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12218
12219 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; }
12220
12221 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; }
12222
12223 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12224
12225 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; }
12226
12227 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); }
12228
12229 var isReact16 = _reactDom2["default"].createPortal !== undefined;
12230
12231 var propTypes = _extends({}, _Position2["default"].propTypes, {
12232
12233 /**
12234 * 是否显示
12235 */
12236 show: _propTypes2["default"].bool,
12237
12238 /**
12239 * 点击其他地方,是否隐藏overlay
12240 */
12241 rootClose: _propTypes2["default"].bool,
12242
12243 /**
12244 * 当rootClose为true的时候,触发的隐藏方法
12245 * @type func
12246 */
12247 onHide: function onHide(props) {
12248 var propType = _propTypes2["default"].func;
12249 if (props.rootClose) {
12250 propType = propType.isRequired;
12251 }
12252
12253 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
12254 args[_key - 1] = arguments[_key];
12255 }
12256
12257 return propType.apply(undefined, [props].concat(args));
12258 },
12259
12260
12261 /**
12262 * 过渡动画组件
12263 */
12264 transition: _propTypes2["default"].oneOfType([_tinperBeeCore.elementType, _propTypes2["default"].func]),
12265
12266 /**
12267 * overlay添加动画前的钩子函数
12268 */
12269 onEnter: _propTypes2["default"].func,
12270
12271 /**
12272 * 开始动画的钩子函数
12273 */
12274 onEntering: _propTypes2["default"].func,
12275
12276 /**
12277 * 渲染之后的钩子函数
12278 */
12279 onEntered: _propTypes2["default"].func,
12280
12281 /**
12282 * 关闭开始时的钩子函数
12283 */
12284 onExit: _propTypes2["default"].func,
12285
12286 /**
12287 * 关闭时的钩子函数
12288 */
12289 onExiting: _propTypes2["default"].func,
12290
12291 /**
12292 * 关闭后的钩子函数
12293 */
12294 onExited: _propTypes2["default"].func
12295 });
12296
12297 function noop() {}
12298
12299 var defaultProps = {
12300 show: false,
12301 rootClose: true
12302 };
12303
12304 /**
12305 * 悬浮组件
12306 */
12307
12308 var BaseOverlay = function (_Component) {
12309 _inherits(BaseOverlay, _Component);
12310
12311 function BaseOverlay(props, context) {
12312 _classCallCheck(this, BaseOverlay);
12313
12314 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
12315
12316 _this.state = { exited: !props.show };
12317 _this.onHiddenListener = _this.handleHidden.bind(_this);
12318 return _this;
12319 }
12320
12321 BaseOverlay.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
12322 if (nextProps.show) {
12323 this.setState({ exited: false });
12324 } else if (!nextProps.transition) {
12325 // Otherwise let handleHidden take care of marking exited.
12326 this.setState({ exited: true });
12327 }
12328 };
12329
12330 BaseOverlay.prototype.handleHidden = function handleHidden() {
12331 this.setState({ exited: true });
12332
12333 if (this.props.onExited) {
12334 var _props;
12335
12336 (_props = this.props).onExited.apply(_props, arguments);
12337 }
12338 };
12339
12340 BaseOverlay.prototype.render = function render() {
12341 var _props2 = this.props,
12342 container = _props2.container,
12343 containerPadding = _props2.containerPadding,
12344 target = _props2.target,
12345 placement = _props2.placement,
12346 secondPlacement = _props2.secondPlacement,
12347 shouldUpdatePosition = _props2.shouldUpdatePosition,
12348 rootClose = _props2.rootClose,
12349 positionLeft = _props2.positionLeft,
12350 positionTop = _props2.positionTop,
12351 children = _props2.children,
12352 Transition = _props2.transition,
12353 props = _objectWithoutProperties(_props2, ['container', 'containerPadding', 'target', 'placement', 'secondPlacement', 'shouldUpdatePosition', 'rootClose', 'positionLeft', 'positionTop', 'children', 'transition']);
12354
12355 // Don't un-render the overlay while it's transitioning out.
12356
12357
12358 var mountOverlay = props.show || Transition && !this.state.exited;
12359 if (!mountOverlay) {
12360 // Don't bother showing anything if we don't have to.
12361 return null;
12362 }
12363
12364 var child = children;
12365
12366 // Position is be inner-most because it adds inline styles into the child,
12367 // which the other wrappers don't forward correctly.
12368 child = _react2["default"].createElement(
12369 _Position2["default"],
12370 {
12371 container: container,
12372 containerPadding: containerPadding,
12373 target: target,
12374 positionLeft: positionLeft,
12375 positionTop: positionTop,
12376 placement: placement,
12377 secondPlacement: secondPlacement,
12378 shouldUpdatePosition: shouldUpdatePosition },
12379 child
12380 );
12381
12382 if (Transition) {
12383 var onExit = props.onExit,
12384 onExiting = props.onExiting,
12385 onEnter = props.onEnter,
12386 onEntering = props.onEntering,
12387 onEntered = props.onEntered;
12388
12389 // This animates the child node by injecting props, so it must precede
12390 // anything that adds a wrapping div.
12391
12392 child = _react2["default"].createElement(
12393 Transition,
12394 {
12395 'in': props.show,
12396 transitionAppear: true,
12397 onExit: onExit,
12398 onExiting: onExiting,
12399 onExited: this.onHiddenListener,
12400 onEnter: onEnter,
12401 onEntering: onEntering,
12402 onEntered: onEntered
12403 },
12404 child
12405 );
12406 }
12407
12408 // This goes after everything else because it adds a wrapping div.
12409 if (rootClose) {
12410 child = _react2["default"].createElement(
12411 _RootCloseWrapper2["default"],
12412 { onRootClose: props.onHide },
12413 child
12414 );
12415 }
12416
12417 if (isReact16) {
12418 return child;
12419 } else {
12420 return _react2["default"].createElement(
12421 _Portal2["default"],
12422 { container: container },
12423 child
12424 );
12425 }
12426 };
12427
12428 return BaseOverlay;
12429 }(_react.Component);
12430
12431 BaseOverlay.propTypes = propTypes;
12432 BaseOverlay.defaultProps = defaultProps;
12433
12434 exports["default"] = BaseOverlay;
12435 module.exports = exports['default'];
12436
12437/***/ }),
12438/* 115 */
12439/***/ (function(module, exports, __webpack_require__) {
12440
12441 'use strict';
12442
12443 Object.defineProperty(exports, "__esModule", {
12444 value: true
12445 });
12446
12447 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; };
12448
12449 var _classnames = __webpack_require__(5);
12450
12451 var _classnames2 = _interopRequireDefault(_classnames);
12452
12453 var _react = __webpack_require__(1);
12454
12455 var _react2 = _interopRequireDefault(_react);
12456
12457 var _propTypes = __webpack_require__(6);
12458
12459 var _propTypes2 = _interopRequireDefault(_propTypes);
12460
12461 var _reactDom = __webpack_require__(2);
12462
12463 var _reactDom2 = _interopRequireDefault(_reactDom);
12464
12465 var _tinperBeeCore = __webpack_require__(26);
12466
12467 var _requestAnimationFrame = __webpack_require__(116);
12468
12469 var _requestAnimationFrame2 = _interopRequireDefault(_requestAnimationFrame);
12470
12471 var _calculatePosition = __webpack_require__(117);
12472
12473 var _calculatePosition2 = _interopRequireDefault(_calculatePosition);
12474
12475 var _getContainer = __webpack_require__(112);
12476
12477 var _getContainer2 = _interopRequireDefault(_getContainer);
12478
12479 var _ownerDocument = __webpack_require__(73);
12480
12481 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
12482
12483 var _ownerWindow = __webpack_require__(124);
12484
12485 var _ownerWindow2 = _interopRequireDefault(_ownerWindow);
12486
12487 var _addEventListener = __webpack_require__(75);
12488
12489 var _addEventListener2 = _interopRequireDefault(_addEventListener);
12490
12491 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12492
12493 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; }
12494
12495 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; }
12496
12497 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12498
12499 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; }
12500
12501 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); }
12502
12503 var propTypes = {
12504 /**
12505 * 要设置定位的元素
12506 */
12507 target: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]),
12508
12509 /**
12510 * 存放的容器元素
12511 */
12512 container: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]),
12513 /**
12514 * 容器padding值
12515 */
12516 containerPadding: _propTypes2["default"].number,
12517 /**
12518 * 位置设置
12519 */
12520 placement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']),
12521
12522 /**
12523 * 第二优先级位置设置
12524 */
12525 secondPlacement: _propTypes2["default"].oneOf(['top', 'right', 'bottom', 'left']),
12526
12527 /**
12528 * 是否需要更新位置
12529 */
12530 shouldUpdatePosition: _propTypes2["default"].bool
12531 };
12532
12533 var defaultProps = {
12534 containerPadding: 0,
12535 placement: 'right',
12536 shouldUpdatePosition: false
12537 };
12538
12539 /**
12540 * 计算子组件的位置的组件
12541 */
12542
12543 var Position = function (_Component) {
12544 _inherits(Position, _Component);
12545
12546 function Position(props, context) {
12547 _classCallCheck(this, Position);
12548
12549 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
12550
12551 _this.state = {
12552 positionLeft: 0,
12553 positionTop: 0,
12554 arrowOffsetLeft: null,
12555 arrowOffsetTop: null
12556 };
12557
12558 _this.needsFlush = false;
12559 _this.lastTarget = null;
12560
12561 _this.getTarget = _this.getTarget.bind(_this);
12562 _this.maybeUpdatePosition = _this.maybeUpdatePosition.bind(_this);
12563 _this.updatePosition = _this.updatePosition.bind(_this);
12564 _this.onWindowResize = _this.onWindowResize.bind(_this);
12565 return _this;
12566 }
12567
12568 Position.prototype.componentDidMount = function componentDidMount() {
12569 var _this2 = this;
12570
12571 this._isMounted = true;
12572
12573 this._windowResizeListener = (0, _addEventListener2["default"])((0, _ownerWindow2["default"])(this), 'resize', function () {
12574 return _this2.onWindowResize();
12575 });
12576
12577 this.updatePosition(this.getTarget());
12578 };
12579
12580 Position.prototype.componentWillReceiveProps = function componentWillReceiveProps() {
12581 this.needsFlush = true;
12582 };
12583
12584 Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
12585 if (this.needsFlush) {
12586 this.needsFlush = false;
12587
12588 this.maybeUpdatePosition();
12589 }
12590 };
12591
12592 Position.prototype.componentWillUnmount = function componentWillUnmount() {
12593 this._isMounted = false;
12594
12595 if (this._windowResizeListener) {
12596 this._windowResizeListener.remove();
12597 }
12598 };
12599
12600 /**
12601 * 获取要设置位置的子元素
12602 */
12603
12604
12605 Position.prototype.getTarget = function getTarget() {
12606 var target = this.props.target;
12607
12608 var targetElement = typeof target === 'function' ? target() : target;
12609 return targetElement && _reactDom2["default"].findDOMNode(targetElement) || null;
12610 };
12611
12612 /**
12613 * 验证是否需要更新位置
12614 */
12615
12616
12617 Position.prototype.maybeUpdatePosition = function maybeUpdatePosition(placementChanged) {
12618 var target = this.getTarget();
12619 if (!this.props.shouldUpdatePosition && target === this.lastTarget && !placementChanged) {
12620 return;
12621 }
12622
12623 this.updatePosition(target);
12624 };
12625
12626 Position.prototype.onWindowResize = function onWindowResize() {
12627 var _this3 = this;
12628
12629 (0, _requestAnimationFrame2["default"])(function () {
12630 return _this3.updatePosition(_this3.getTarget());
12631 });
12632 };
12633
12634 /**
12635 * 更新位置
12636 */
12637
12638 Position.prototype.updatePosition = function updatePosition(target) {
12639 var _props = this.props,
12640 placement = _props.placement,
12641 secondPlacement = _props.secondPlacement;
12642
12643
12644 if (!this._isMounted) {
12645 return;
12646 }
12647 this.lastTarget = target;
12648
12649 if (!target) {
12650 this.setState({
12651 positionLeft: 0,
12652 positionTop: 0,
12653 arrowOffsetLeft: null,
12654 arrowOffsetTop: null
12655 });
12656
12657 return;
12658 }
12659
12660 var overlay = _reactDom2["default"].findDOMNode(this);
12661 var container = (0, _getContainer2["default"])(this.props.container, (0, _ownerDocument2["default"])(this).body);
12662
12663 // 若设置了第二渲染位置,placement的优先级是: placement > secondPlacement > placement的反方向
12664 if ("secondPlacement" in this.props && secondPlacement) {
12665 var initPosition = (0, _calculatePosition2["default"])(placement, overlay, target, container, this.props.containerPadding);
12666 if (initPosition.inverseArrow) {
12667 var secondPosition = (0, _calculatePosition2["default"])(secondPlacement, overlay, target, container, this.props.containerPadding);
12668
12669 if (secondPosition.inverseArrow) {
12670 this.setState(_extends({}, initPosition, {
12671 renderPlacement: placement
12672 }));
12673 } else {
12674 this.setState(_extends({}, secondPosition, {
12675 renderPlacement: secondPlacement
12676 }));
12677 }
12678 } else {
12679 this.setState(_extends({}, initPosition, {
12680 renderPlacement: placement
12681 }));
12682 }
12683 } else {
12684 this.setState((0, _calculatePosition2["default"])(placement, overlay, target, container, this.props.containerPadding));
12685 }
12686 };
12687
12688 Position.prototype.render = function render() {
12689 var _props2 = this.props,
12690 children = _props2.children,
12691 className = _props2.className,
12692 props = _objectWithoutProperties(_props2, ['children', 'className']);
12693
12694 var _state = this.state,
12695 positionLeft = _state.positionLeft,
12696 positionTop = _state.positionTop,
12697 inverseArrow = _state.inverseArrow,
12698 width = _state.width,
12699 arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop', 'inverseArrow', 'width']);
12700
12701 // These should not be forwarded to the child.
12702
12703
12704 delete props.target;
12705 delete props.container;
12706 delete props.containerPadding;
12707 delete props.shouldUpdatePosition;
12708
12709 var child = _react2["default"].Children.only(children);
12710 return (0, _react.cloneElement)(child, _extends({
12711 className: (0, _classnames2["default"])(className, child.props.className, { 'inverse-arrow': inverseArrow })
12712 }, arrowPosition, {
12713 style: _extends({}, child.props.style, {
12714 width: width,
12715 left: positionLeft,
12716 top: positionTop
12717 })
12718 }));
12719 };
12720
12721 return Position;
12722 }(_react.Component);
12723
12724 Position.propTypes = propTypes;
12725 Position.defaultProps = defaultProps;
12726
12727 exports["default"] = Position;
12728 module.exports = exports['default'];
12729
12730/***/ }),
12731/* 116 */
12732/***/ (function(module, exports, __webpack_require__) {
12733
12734 'use strict';
12735
12736 Object.defineProperty(exports, "__esModule", {
12737 value: true
12738 });
12739
12740 var _inDOM = __webpack_require__(14);
12741
12742 var _inDOM2 = _interopRequireDefault(_inDOM);
12743
12744 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12745
12746 var vendors = ['', 'webkit', 'moz', 'o', 'ms'];
12747 var cancel = 'clearTimeout';
12748 var raf = fallback;
12749 var compatRaf = void 0;
12750
12751 var getKey = function getKey(vendor, k) {
12752 return vendor + (!vendor ? k : k[0].toUpperCase() + k.substr(1)) + 'AnimationFrame';
12753 };
12754
12755 if (_inDOM2.default) {
12756 vendors.some(function (vendor) {
12757 var rafKey = getKey(vendor, 'request');
12758
12759 if (rafKey in window) {
12760 cancel = getKey(vendor, 'cancel');
12761 return raf = function raf(cb) {
12762 return window[rafKey](cb);
12763 };
12764 }
12765 });
12766 }
12767
12768 /* https://github.com/component/raf */
12769 var prev = new Date().getTime();
12770
12771 function fallback(fn) {
12772 var curr = new Date().getTime(),
12773 ms = Math.max(0, 16 - (curr - prev)),
12774 req = setTimeout(fn, ms);
12775
12776 prev = curr;
12777 return req;
12778 }
12779
12780 compatRaf = function compatRaf(cb) {
12781 return raf(cb);
12782 };
12783 compatRaf.cancel = function (id) {
12784 return window[cancel](id);
12785 };
12786
12787 exports.default = compatRaf;
12788 module.exports = exports['default'];
12789
12790/***/ }),
12791/* 117 */
12792/***/ (function(module, exports, __webpack_require__) {
12793
12794 'use strict';
12795
12796 Object.defineProperty(exports, "__esModule", {
12797 value: true
12798 });
12799 exports["default"] = calculatePosition;
12800
12801 var _offset = __webpack_require__(118);
12802
12803 var _offset2 = _interopRequireDefault(_offset);
12804
12805 var _position = __webpack_require__(120);
12806
12807 var _position2 = _interopRequireDefault(_position);
12808
12809 var _scrollTop = __webpack_require__(122);
12810
12811 var _scrollTop2 = _interopRequireDefault(_scrollTop);
12812
12813 var _ownerDocument = __webpack_require__(73);
12814
12815 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
12816
12817 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
12818
12819 function getContainerDimensions(containerNode) {
12820 var width = void 0,
12821 height = void 0,
12822 scroll = void 0;
12823
12824 if (containerNode.tagName === 'BODY') {
12825 width = document.body.scrollWidth;
12826 height = document.body.scrollHeight;
12827
12828 scroll = (0, _scrollTop2["default"])((0, _ownerDocument2["default"])(containerNode).documentElement) || (0, _scrollTop2["default"])(containerNode);
12829 } else {
12830 var _getOffset = (0, _offset2["default"])(containerNode);
12831
12832 width = _getOffset.width;
12833 height = _getOffset.height;
12834
12835 scroll = (0, _scrollTop2["default"])(containerNode);
12836 }
12837
12838 return { width: width, height: height, scroll: scroll };
12839 }
12840
12841 function getTopDelta(top, overlayHeight, container, padding) {
12842 var containerDimensions = getContainerDimensions(container);
12843 var containerScroll = containerDimensions.scroll;
12844 var containerHeight = containerDimensions.height;
12845
12846 var topEdgeOffset = top - padding - containerScroll;
12847 var bottomEdgeOffset = top + padding - containerScroll + overlayHeight;
12848
12849 if (topEdgeOffset < 0) {
12850 return -topEdgeOffset;
12851 } else if (bottomEdgeOffset > containerHeight) {
12852 return containerHeight - bottomEdgeOffset;
12853 } else {
12854 return 0;
12855 }
12856 }
12857
12858 function getLeftDelta(left, overlayWidth, container, padding) {
12859 var containerDimensions = getContainerDimensions(container);
12860 var containerWidth = containerDimensions.width;
12861
12862 var leftEdgeOffset = left - padding;
12863 var rightEdgeOffset = left + padding + overlayWidth;
12864
12865 if (leftEdgeOffset < 0) {
12866 return -leftEdgeOffset;
12867 } else if (rightEdgeOffset > containerWidth) {
12868 return containerWidth - rightEdgeOffset;
12869 }
12870
12871 return 0;
12872 }
12873
12874 function calculatePosition(placement, overlayNode, target, container, padding) {
12875 var childOffset = container.tagName === 'BODY' ? (0, _offset2["default"])(target) : (0, _position2["default"])(target, container);
12876
12877 var _getOffset2 = (0, _offset2["default"])(overlayNode),
12878 overlayHeight = _getOffset2.height,
12879 overlayWidth = _getOffset2.width;
12880
12881 var positionLeft = void 0,
12882 positionTop = void 0,
12883 arrowOffsetLeft = void 0,
12884 arrowOffsetTop = void 0,
12885 inverseArrow = void 0;
12886
12887 if (/^left|^right/.test(placement)) {
12888 positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;
12889
12890 if (/left/.test(placement)) {
12891 positionLeft = childOffset.left - overlayWidth;
12892 } else {
12893 positionLeft = childOffset.left + childOffset.width;
12894 }
12895
12896 if (/Top/.test(placement)) {
12897 positionTop = childOffset.top;
12898 } else if (/Bottom/.test(placement)) {
12899 positionTop = childOffset.top + childOffset.height - overlayHeight;
12900 }
12901
12902 var topDelta = getTopDelta(positionTop, overlayHeight, container, padding);
12903 var leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding);
12904 //内容超出
12905 if (leftDelta > 0) {
12906 inverseArrow = true;
12907 positionLeft = childOffset.left + childOffset.width + 6;
12908 } else if (leftDelta < 0) {
12909 inverseArrow = true;
12910 positionLeft = childOffset.left - overlayWidth - 6;
12911 } else {
12912 positionLeft += leftDelta;
12913 }
12914 positionTop += topDelta;
12915 arrowOffsetTop = 50 * (1 - 2 * topDelta / overlayHeight) + '%';
12916 arrowOffsetLeft = void 0;
12917 } else if (/^top|^bottom/.test(placement)) {
12918 positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;
12919
12920 if (/top/.test(placement)) {
12921 positionTop = childOffset.top - overlayHeight;
12922 } else {
12923 positionTop = childOffset.top + childOffset.height;
12924 }
12925
12926 if (/Left/.test(placement)) {
12927 positionLeft = childOffset.left;
12928 } else if (/Right/.test(placement)) {
12929 positionLeft = childOffset.left + (childOffset.width - overlayWidth);
12930 }
12931
12932 var _leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding);
12933 var _topDelta = getTopDelta(positionTop, overlayHeight, container, padding);
12934 positionLeft += _leftDelta;
12935 arrowOffsetLeft = 50 * (1 - 2 * _leftDelta / overlayWidth) + '%';
12936 arrowOffsetTop = void 0;
12937 if (_topDelta > 0) {
12938 inverseArrow = true;
12939 positionTop = childOffset.top + childOffset.height + 6;
12940 } else if (_topDelta < 0) {
12941 inverseArrow = true;
12942 positionTop = childOffset.top - overlayHeight - 6;
12943 } else {
12944 positionTop += _topDelta;
12945 }
12946
12947 // if((positionLeft + panelWidth) > docWidth)
12948 // left = docWidth - panelWidth - 10;
12949 // if(left < 0)
12950 // left = 0;
12951
12952 // if((top + panelHeight) > docHeight) {
12953 // top = docHeight - panelHeight - 10;
12954 // }
12955
12956 // if(top < 0)
12957 // top = 0;
12958 } else {
12959 throw new Error('calcOverlayPosition(): No such placement of "' + placement + '" found.');
12960 }
12961
12962 return { positionLeft: positionLeft, positionTop: positionTop, arrowOffsetLeft: arrowOffsetLeft, arrowOffsetTop: arrowOffsetTop, inverseArrow: inverseArrow, width: overlayWidth };
12963 }
12964 module.exports = exports['default'];
12965
12966/***/ }),
12967/* 118 */
12968/***/ (function(module, exports, __webpack_require__) {
12969
12970 'use strict';
12971
12972 Object.defineProperty(exports, "__esModule", {
12973 value: true
12974 });
12975 exports.default = offset;
12976
12977 var _contains = __webpack_require__(110);
12978
12979 var _contains2 = _interopRequireDefault(_contains);
12980
12981 var _isWindow = __webpack_require__(119);
12982
12983 var _isWindow2 = _interopRequireDefault(_isWindow);
12984
12985 var _ownerDocument = __webpack_require__(74);
12986
12987 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
12988
12989 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12990
12991 function offset(node) {
12992 var doc = (0, _ownerDocument2.default)(node),
12993 win = (0, _isWindow2.default)(doc),
12994 docElem = doc && doc.documentElement,
12995 box = { top: 0, left: 0, height: 0, width: 0 };
12996
12997 if (!doc) return;
12998
12999 // Make sure it's not a disconnected DOM node
13000 if (!(0, _contains2.default)(docElem, node)) return box;
13001
13002 if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();
13003
13004 if (box.width || box.height) {
13005
13006 box = {
13007 top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),
13008 left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),
13009 width: (box.width == null ? node.offsetWidth : box.width) || 0,
13010 height: (box.height == null ? node.offsetHeight : box.height) || 0
13011 };
13012 }
13013
13014 return box;
13015 }
13016 module.exports = exports['default'];
13017
13018/***/ }),
13019/* 119 */
13020/***/ (function(module, exports) {
13021
13022 "use strict";
13023
13024 Object.defineProperty(exports, "__esModule", {
13025 value: true
13026 });
13027 exports.default = getWindow;
13028 function getWindow(node) {
13029 return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;
13030 }
13031 module.exports = exports["default"];
13032
13033/***/ }),
13034/* 120 */
13035/***/ (function(module, exports, __webpack_require__) {
13036
13037 'use strict';
13038
13039 Object.defineProperty(exports, "__esModule", {
13040 value: true
13041 });
13042
13043 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; };
13044
13045 exports.default = position;
13046
13047 var _offset = __webpack_require__(118);
13048
13049 var _offset2 = _interopRequireDefault(_offset);
13050
13051 var _offsetParent = __webpack_require__(121);
13052
13053 var _offsetParent2 = _interopRequireDefault(_offsetParent);
13054
13055 var _scrollTop = __webpack_require__(122);
13056
13057 var _scrollTop2 = _interopRequireDefault(_scrollTop);
13058
13059 var _scrollLeft = __webpack_require__(123);
13060
13061 var _scrollLeft2 = _interopRequireDefault(_scrollLeft);
13062
13063 var _style = __webpack_require__(17);
13064
13065 var _style2 = _interopRequireDefault(_style);
13066
13067 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13068
13069 function nodeName(node) {
13070 return node.nodeName && node.nodeName.toLowerCase();
13071 }
13072
13073 function position(node, offsetParent) {
13074 var parentOffset = { top: 0, left: 0 },
13075 offset;
13076
13077 // Fixed elements are offset from window (parentOffset = {top:0, left: 0},
13078 // because it is its only offset parent
13079 if ((0, _style2.default)(node, 'position') === 'fixed') {
13080 offset = node.getBoundingClientRect();
13081 } else {
13082 offsetParent = offsetParent || (0, _offsetParent2.default)(node);
13083 offset = (0, _offset2.default)(node);
13084
13085 if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset2.default)(offsetParent);
13086
13087 parentOffset.top += parseInt((0, _style2.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop2.default)(offsetParent) || 0;
13088 parentOffset.left += parseInt((0, _style2.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft2.default)(offsetParent) || 0;
13089 }
13090
13091 // Subtract parent offsets and node margins
13092 return _extends({}, offset, {
13093 top: offset.top - parentOffset.top - (parseInt((0, _style2.default)(node, 'marginTop'), 10) || 0),
13094 left: offset.left - parentOffset.left - (parseInt((0, _style2.default)(node, 'marginLeft'), 10) || 0)
13095 });
13096 }
13097 module.exports = exports['default'];
13098
13099/***/ }),
13100/* 121 */
13101/***/ (function(module, exports, __webpack_require__) {
13102
13103 'use strict';
13104
13105 Object.defineProperty(exports, "__esModule", {
13106 value: true
13107 });
13108 exports.default = offsetParent;
13109
13110 var _ownerDocument = __webpack_require__(74);
13111
13112 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
13113
13114 var _style = __webpack_require__(17);
13115
13116 var _style2 = _interopRequireDefault(_style);
13117
13118 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13119
13120 function nodeName(node) {
13121 return node.nodeName && node.nodeName.toLowerCase();
13122 }
13123
13124 function offsetParent(node) {
13125 var doc = (0, _ownerDocument2.default)(node),
13126 offsetParent = node && node.offsetParent;
13127
13128 while (offsetParent && nodeName(node) !== 'html' && (0, _style2.default)(offsetParent, 'position') === 'static') {
13129 offsetParent = offsetParent.offsetParent;
13130 }
13131
13132 return offsetParent || doc.documentElement;
13133 }
13134 module.exports = exports['default'];
13135
13136/***/ }),
13137/* 122 */
13138/***/ (function(module, exports, __webpack_require__) {
13139
13140 'use strict';
13141
13142 Object.defineProperty(exports, "__esModule", {
13143 value: true
13144 });
13145 exports.default = scrollTop;
13146
13147 var _isWindow = __webpack_require__(119);
13148
13149 var _isWindow2 = _interopRequireDefault(_isWindow);
13150
13151 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13152
13153 function scrollTop(node, val) {
13154 var win = (0, _isWindow2.default)(node);
13155
13156 if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;
13157
13158 if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;
13159 }
13160 module.exports = exports['default'];
13161
13162/***/ }),
13163/* 123 */
13164/***/ (function(module, exports, __webpack_require__) {
13165
13166 'use strict';
13167
13168 Object.defineProperty(exports, "__esModule", {
13169 value: true
13170 });
13171 exports.default = scrollTop;
13172
13173 var _isWindow = __webpack_require__(119);
13174
13175 var _isWindow2 = _interopRequireDefault(_isWindow);
13176
13177 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13178
13179 function scrollTop(node, val) {
13180 var win = (0, _isWindow2.default)(node);
13181
13182 if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;
13183
13184 if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;
13185 }
13186 module.exports = exports['default'];
13187
13188/***/ }),
13189/* 124 */
13190/***/ (function(module, exports, __webpack_require__) {
13191
13192 'use strict';
13193
13194 Object.defineProperty(exports, "__esModule", {
13195 value: true
13196 });
13197
13198 exports["default"] = function (componentOrElement) {
13199 return (0, _ownerWindow2["default"])(_reactDom2["default"].findDOMNode(componentOrElement));
13200 };
13201
13202 var _reactDom = __webpack_require__(2);
13203
13204 var _reactDom2 = _interopRequireDefault(_reactDom);
13205
13206 var _ownerWindow = __webpack_require__(125);
13207
13208 var _ownerWindow2 = _interopRequireDefault(_ownerWindow);
13209
13210 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13211
13212 module.exports = exports['default'];
13213
13214/***/ }),
13215/* 125 */
13216/***/ (function(module, exports, __webpack_require__) {
13217
13218 'use strict';
13219
13220 Object.defineProperty(exports, "__esModule", {
13221 value: true
13222 });
13223 exports.default = ownerWindow;
13224
13225 var _ownerDocument = __webpack_require__(74);
13226
13227 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
13228
13229 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13230
13231 function ownerWindow(node) {
13232 var doc = (0, _ownerDocument2.default)(node);
13233 return doc && doc.defaultView || doc.parentWindow;
13234 }
13235 module.exports = exports['default'];
13236
13237/***/ }),
13238/* 126 */
13239/***/ (function(module, exports, __webpack_require__) {
13240
13241 'use strict';
13242
13243 Object.defineProperty(exports, "__esModule", {
13244 value: true
13245 });
13246
13247 var _contains = __webpack_require__(110);
13248
13249 var _contains2 = _interopRequireDefault(_contains);
13250
13251 var _react = __webpack_require__(1);
13252
13253 var _react2 = _interopRequireDefault(_react);
13254
13255 var _propTypes = __webpack_require__(6);
13256
13257 var _propTypes2 = _interopRequireDefault(_propTypes);
13258
13259 var _reactDom = __webpack_require__(2);
13260
13261 var _reactDom2 = _interopRequireDefault(_reactDom);
13262
13263 var _addEventListener = __webpack_require__(75);
13264
13265 var _addEventListener2 = _interopRequireDefault(_addEventListener);
13266
13267 var _ownerDocument = __webpack_require__(73);
13268
13269 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
13270
13271 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13272
13273 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; }
13274
13275 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13276
13277 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; }
13278
13279 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); }
13280
13281 var propTypes = {
13282 onRootClose: _propTypes2["default"].func,
13283 children: _propTypes2["default"].element,
13284 /**
13285 * 是否禁用
13286 */
13287 disabled: _propTypes2["default"].bool,
13288 /**
13289 * 触发事件选择
13290 */
13291 event: _propTypes2["default"].oneOf(['click', 'mousedown'])
13292 };
13293
13294 var defaultProps = {
13295 event: 'click'
13296 };
13297
13298 function isLeftClickEvent(event) {
13299 return event.button === 0;
13300 }
13301
13302 function isModifiedEvent(event) {
13303 return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
13304 }
13305
13306 var RootCloseWrapper = function (_Component) {
13307 _inherits(RootCloseWrapper, _Component);
13308
13309 function RootCloseWrapper(props, context) {
13310 _classCallCheck(this, RootCloseWrapper);
13311
13312 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
13313
13314 _this.handleMouseCapture = function (e) {
13315 _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains2["default"])(_reactDom2["default"].findDOMNode(_this), e.target);
13316 };
13317
13318 _this.handleMouse = function () {
13319 if (!_this.preventMouseRootClose && _this.props.onRootClose) {
13320 _this.props.onRootClose();
13321 }
13322 };
13323
13324 _this.handleKeyUp = function (e) {
13325 if (e.keyCode === 27 && _this.props.onRootClose) {
13326 _this.props.onRootClose();
13327 }
13328 };
13329
13330 _this.preventMouseRootClose = false;
13331
13332 _this.addEventListeners = _this.addEventListeners.bind(_this);
13333 _this.removeEventListeners = _this.removeEventListeners.bind(_this);
13334
13335 return _this;
13336 }
13337
13338 RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {
13339 if (!this.props.disabled) {
13340 this.addEventListeners();
13341 }
13342 };
13343
13344 RootCloseWrapper.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
13345 if (!this.props.disabled && prevProps.disabled) {
13346 this.addEventListeners();
13347 } else if (this.props.disabled && !prevProps.disabled) {
13348 this.removeEventListeners();
13349 }
13350 };
13351
13352 RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {
13353 if (!this.props.disabled) {
13354 this.removeEventListeners();
13355 }
13356 };
13357
13358 RootCloseWrapper.prototype.addEventListeners = function addEventListeners() {
13359 var event = this.props.event;
13360
13361 var doc = (0, _ownerDocument2["default"])(this);
13362
13363 // 避免react的监听事件触发引起判断的不准确
13364 this.documentMouseCaptureListener = (0, _addEventListener2["default"])(doc, event, this.handleMouseCapture, true);
13365
13366 this.documentMouseListener = (0, _addEventListener2["default"])(doc, event, this.handleMouse);
13367
13368 this.documentKeyupListener = (0, _addEventListener2["default"])(doc, 'keyup', this.handleKeyUp);
13369 };
13370
13371 RootCloseWrapper.prototype.removeEventListeners = function removeEventListeners() {
13372 if (this.documentMouseCaptureListener) {
13373 this.documentMouseCaptureListener.remove();
13374 }
13375
13376 if (this.documentMouseListener) {
13377 this.documentMouseListener.remove();
13378 }
13379
13380 if (this.documentKeyupListener) {
13381 this.documentKeyupListener.remove();
13382 }
13383 };
13384
13385 RootCloseWrapper.prototype.render = function render() {
13386 return this.props.children;
13387 };
13388
13389 return RootCloseWrapper;
13390 }(_react.Component);
13391
13392 RootCloseWrapper.propTypes = propTypes;
13393
13394 RootCloseWrapper.defaultProps = defaultProps;
13395
13396 exports["default"] = RootCloseWrapper;
13397 module.exports = exports['default'];
13398
13399/***/ }),
13400/* 127 */
13401/***/ (function(module, exports, __webpack_require__) {
13402
13403 'use strict';
13404
13405 Object.defineProperty(exports, "__esModule", {
13406 value: true
13407 });
13408
13409 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; };
13410
13411 var _classnames = __webpack_require__(5);
13412
13413 var _classnames2 = _interopRequireDefault(_classnames);
13414
13415 var _propTypes = __webpack_require__(6);
13416
13417 var _propTypes2 = _interopRequireDefault(_propTypes);
13418
13419 var _react = __webpack_require__(1);
13420
13421 var _react2 = _interopRequireDefault(_react);
13422
13423 var _Transition = __webpack_require__(128);
13424
13425 var _Transition2 = _interopRequireDefault(_Transition);
13426
13427 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13428
13429 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; }
13430
13431 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13432
13433 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; }
13434
13435 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); }
13436
13437 var propTypes = {
13438 /**
13439 * Show the component; triggers the fade in or fade out animation
13440 */
13441 "in": _propTypes2["default"].bool,
13442
13443 /**
13444 * Unmount the component (remove it from the DOM) when it is faded out
13445 */
13446 unmountOnExit: _propTypes2["default"].bool,
13447
13448 /**
13449 * Run the fade in animation when the component mounts, if it is initially
13450 * shown
13451 */
13452 transitionAppear: _propTypes2["default"].bool,
13453
13454 /**
13455 * Duration of the fade animation in milliseconds, to ensure that finishing
13456 * callbacks are fired even if the original browser transition end events are
13457 * canceled
13458 */
13459 timeout: _propTypes2["default"].number,
13460
13461 /**
13462 * Callback fired before the component fades in
13463 */
13464 onEnter: _propTypes2["default"].func,
13465 /**
13466 * Callback fired after the component starts to fade in
13467 */
13468 onEntering: _propTypes2["default"].func,
13469 /**
13470 * Callback fired after the has component faded in
13471 */
13472 onEntered: _propTypes2["default"].func,
13473 /**
13474 * Callback fired before the component fades out
13475 */
13476 onExit: _propTypes2["default"].func,
13477 /**
13478 * Callback fired after the component starts to fade out
13479 */
13480 onExiting: _propTypes2["default"].func,
13481 /**
13482 * Callback fired after the component has faded out
13483 */
13484 onExited: _propTypes2["default"].func
13485 };
13486
13487 var defaultProps = {
13488 "in": false,
13489 timeout: 300,
13490 unmountOnExit: false,
13491 transitionAppear: false
13492 };
13493
13494 var Fade = function (_React$Component) {
13495 _inherits(Fade, _React$Component);
13496
13497 function Fade() {
13498 _classCallCheck(this, Fade);
13499
13500 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
13501 }
13502
13503 Fade.prototype.render = function render() {
13504 return _react2["default"].createElement(_Transition2["default"], _extends({}, this.props, {
13505 className: (0, _classnames2["default"])(this.props.className, 'fade'),
13506 enteredClassName: 'in',
13507 enteringClassName: 'in'
13508 }));
13509 };
13510
13511 return Fade;
13512 }(_react2["default"].Component);
13513
13514 Fade.propTypes = propTypes;
13515 Fade.defaultProps = defaultProps;
13516
13517 exports["default"] = Fade;
13518 module.exports = exports['default'];
13519
13520/***/ }),
13521/* 128 */
13522/***/ (function(module, exports, __webpack_require__) {
13523
13524 'use strict';
13525
13526 Object.defineProperty(exports, "__esModule", {
13527 value: true
13528 });
13529 exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined;
13530
13531 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; };
13532
13533 var _react = __webpack_require__(1);
13534
13535 var _react2 = _interopRequireDefault(_react);
13536
13537 var _propTypes = __webpack_require__(6);
13538
13539 var _propTypes2 = _interopRequireDefault(_propTypes);
13540
13541 var _reactDom = __webpack_require__(2);
13542
13543 var _reactDom2 = _interopRequireDefault(_reactDom);
13544
13545 var _properties = __webpack_require__(13);
13546
13547 var _properties2 = _interopRequireDefault(_properties);
13548
13549 var _on = __webpack_require__(15);
13550
13551 var _on2 = _interopRequireDefault(_on);
13552
13553 var _classnames = __webpack_require__(5);
13554
13555 var _classnames2 = _interopRequireDefault(_classnames);
13556
13557 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13558
13559 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; }
13560
13561 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; }
13562
13563 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13564
13565 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; }
13566
13567 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); }
13568
13569 var transitionEndEvent = _properties2["default"].end;
13570
13571 //设置状态码
13572 var UNMOUNTED = exports.UNMOUNTED = 0;
13573 var EXITED = exports.EXITED = 1;
13574 var ENTERING = exports.ENTERING = 2;
13575 var ENTERED = exports.ENTERED = 3;
13576 var EXITING = exports.EXITING = 4;
13577
13578 var propTypes = {
13579 /**
13580 * 是否触发动画
13581 */
13582 "in": _propTypes2["default"].bool,
13583
13584 /**
13585 * 不显示的时候是否移除组件
13586 */
13587 unmountOnExit: _propTypes2["default"].bool,
13588
13589 /**
13590 * 如果设置为默认显示,挂载时显示动画
13591 */
13592 transitionAppear: _propTypes2["default"].bool,
13593
13594 /**
13595 * 设置超时时间,防止出现问题,可设置为>=动画时间
13596 */
13597 timeout: _propTypes2["default"].number,
13598
13599 /**
13600 * 退出组件时添加的class
13601 */
13602 exitedClassName: _propTypes2["default"].string,
13603 /**
13604 * 退出组件中添加的class
13605 */
13606 exitingClassName: _propTypes2["default"].string,
13607 /**
13608 * 进入动画后添加的class
13609 */
13610 enteredClassName: _propTypes2["default"].string,
13611 /**
13612 * 进入动画时添加的class
13613 */
13614 enteringClassName: _propTypes2["default"].string,
13615
13616 /**
13617 * 进入动画开始时的钩子函数
13618 */
13619 onEnter: _propTypes2["default"].func,
13620 /**
13621 * 进入动画中的钩子函数
13622 */
13623 onEntering: _propTypes2["default"].func,
13624 /**
13625 * 进入动画后的钩子函数
13626 */
13627 onEntered: _propTypes2["default"].func,
13628 /**
13629 * 退出动画开始时的钩子函数
13630 */
13631 onExit: _propTypes2["default"].func,
13632 /**
13633 * 退出动画中的钩子函数
13634 */
13635 onExiting: _propTypes2["default"].func,
13636 /**
13637 * 退出动画后的钩子函数
13638 */
13639 onExited: _propTypes2["default"].func
13640 };
13641
13642 function noop() {}
13643
13644 var defaultProps = {
13645 "in": false,
13646 unmountOnExit: false,
13647 transitionAppear: false,
13648 timeout: 5000,
13649 onEnter: noop,
13650 onEntering: noop,
13651 onEntered: noop,
13652 onExit: noop,
13653 onExiting: noop,
13654 onExited: noop
13655 };
13656
13657 /**
13658 * 动画组件
13659 */
13660
13661 var Transition = function (_Component) {
13662 _inherits(Transition, _Component);
13663
13664 function Transition(props, context) {
13665 _classCallCheck(this, Transition);
13666
13667 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
13668
13669 var initialStatus = void 0;
13670 if (props["in"]) {
13671 // 在componentdidmount时开始执行动画
13672 initialStatus = props.transitionAppear ? EXITED : ENTERED;
13673 } else {
13674 initialStatus = props.unmountOnExit ? UNMOUNTED : EXITED;
13675 }
13676 _this.state = { status: initialStatus };
13677
13678 _this.nextCallback = null;
13679
13680 _this.performEnter = _this.performEnter.bind(_this);
13681 _this.performExit = _this.performExit.bind(_this);
13682 _this.cancelNextCallback = _this.cancelNextCallback.bind(_this);
13683 _this.onTransitionEnd = _this.onTransitionEnd.bind(_this);
13684 _this.safeSetState = _this.safeSetState.bind(_this);
13685 _this.setNextCallback = _this.setNextCallback.bind(_this);
13686
13687 return _this;
13688 }
13689
13690 Transition.prototype.componentDidMount = function componentDidMount() {
13691 if (this.props.transitionAppear && this.props["in"]) {
13692 this.performEnter(this.props);
13693 }
13694 };
13695
13696 Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
13697 if (nextProps["in"] && this.props.unmountOnExit) {
13698 if (this.state.status === UNMOUNTED) {
13699 // 在componentDidUpdate执行动画.
13700 this.setState({ status: EXITED });
13701 }
13702 } else {
13703 this._needsUpdate = true;
13704 }
13705 };
13706
13707 Transition.prototype.componentDidUpdate = function componentDidUpdate() {
13708 var status = this.state.status;
13709
13710 if (this.props.unmountOnExit && status === EXITED) {
13711 // 当使用unmountOnExit时,exited为exiting和unmont的过渡状态
13712 if (this.props["in"]) {
13713 this.performEnter(this.props);
13714 } else {
13715 this.setState({ status: UNMOUNTED });
13716 }
13717
13718 return;
13719 }
13720
13721 // 确保只响应prop变化
13722 if (this._needsUpdate) {
13723 this._needsUpdate = false;
13724
13725 if (this.props["in"]) {
13726 if (status === EXITING) {
13727 this.performEnter(this.props);
13728 } else if (status === EXITED) {
13729 this.performEnter(this.props);
13730 }
13731 // 其他,当我们已经输入或输出
13732 } else {
13733 if (status === ENTERING || status === ENTERED) {
13734 this.performExit(this.props);
13735 }
13736 // 我们已经输入或输出完成
13737 }
13738 }
13739 };
13740
13741 Transition.prototype.componentWillUnmount = function componentWillUnmount() {
13742 this.cancelNextCallback();
13743 };
13744
13745 Transition.prototype.performEnter = function performEnter(props) {
13746 var _this2 = this;
13747
13748 this.cancelNextCallback();
13749 var node = _reactDom2["default"].findDOMNode(this);
13750
13751 // 这里接收新props
13752 props.onEnter(node);
13753
13754 this.safeSetState({ status: ENTERING }, function () {
13755 _this2.props.onEntering(node);
13756
13757 _this2.onTransitionEnd(node, function () {
13758 _this2.safeSetState({ status: ENTERED }, function () {
13759 _this2.props.onEntered(node);
13760 });
13761 });
13762 });
13763 };
13764
13765 Transition.prototype.performExit = function performExit(props) {
13766 var _this3 = this;
13767
13768 this.cancelNextCallback();
13769 var node = _reactDom2["default"].findDOMNode(this);
13770
13771 props.onExit(node);
13772
13773 this.safeSetState({ status: EXITING }, function () {
13774 _this3.props.onExiting(node);
13775
13776 _this3.onTransitionEnd(node, function () {
13777 _this3.safeSetState({ status: EXITED }, function () {
13778 _this3.props.onExited(node);
13779 });
13780 });
13781 });
13782 };
13783
13784 Transition.prototype.cancelNextCallback = function cancelNextCallback() {
13785 if (this.nextCallback !== null) {
13786 this.nextCallback.cancel();
13787 this.nextCallback = null;
13788 }
13789 };
13790
13791 Transition.prototype.safeSetState = function safeSetState(nextState, callback) {
13792 // 确保在组件销毁后挂起的setState被消除
13793 this.setState(nextState, this.setNextCallback(callback));
13794 };
13795
13796 Transition.prototype.setNextCallback = function setNextCallback(callback) {
13797 var _this4 = this;
13798
13799 var active = true;
13800
13801 this.nextCallback = function (event) {
13802 if (active) {
13803 active = false;
13804 _this4.nextCallback = null;
13805
13806 callback(event);
13807 }
13808 };
13809
13810 this.nextCallback.cancel = function () {
13811 active = false;
13812 };
13813
13814 return this.nextCallback;
13815 };
13816
13817 Transition.prototype.onTransitionEnd = function onTransitionEnd(node, handler) {
13818 this.setNextCallback(handler);
13819
13820 if (node) {
13821 (0, _on2["default"])(node, transitionEndEvent, this.nextCallback);
13822 setTimeout(this.nextCallback, this.props.timeout);
13823 } else {
13824 setTimeout(this.nextCallback, 0);
13825 }
13826 };
13827
13828 Transition.prototype.render = function render() {
13829 var status = this.state.status;
13830 if (status === UNMOUNTED) {
13831 return null;
13832 }
13833
13834 var _props = this.props,
13835 children = _props.children,
13836 className = _props.className,
13837 childProps = _objectWithoutProperties(_props, ['children', 'className']);
13838
13839 Object.keys(Transition.propTypes).forEach(function (key) {
13840 return delete childProps[key];
13841 });
13842
13843 var transitionClassName = void 0;
13844 if (status === EXITED) {
13845 transitionClassName = this.props.exitedClassName;
13846 } else if (status === ENTERING) {
13847 transitionClassName = this.props.enteringClassName;
13848 } else if (status === ENTERED) {
13849 transitionClassName = this.props.enteredClassName;
13850 } else if (status === EXITING) {
13851 transitionClassName = this.props.exitingClassName;
13852 }
13853
13854 var child = _react2["default"].Children.only(children);
13855 return _react2["default"].cloneElement(child, _extends({}, childProps, {
13856 className: (0, _classnames2["default"])(child.props.className, className, transitionClassName)
13857 }));
13858 };
13859
13860 return Transition;
13861 }(_react.Component);
13862
13863 Transition.propTypes = propTypes;
13864
13865 Transition.defaultProps = defaultProps;
13866
13867 exports["default"] = Transition;
13868
13869/***/ }),
13870/* 129 */
13871/***/ (function(module, exports) {
13872
13873 'use strict';
13874
13875 Object.defineProperty(exports, "__esModule", {
13876 value: true
13877 });
13878 /**
13879 * Safe chained function
13880 *
13881 * Will only create a new function if needed,
13882 * otherwise will pass back existing functions or null.
13883 *
13884 * @param {function} functions to chain
13885 * @returns {function|null}
13886 */
13887 function createChainedFunction() {
13888 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
13889 funcs[_key] = arguments[_key];
13890 }
13891
13892 return funcs.filter(function (f) {
13893 return f != null;
13894 }).reduce(function (acc, f) {
13895 if (typeof f !== 'function') {
13896 throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
13897 }
13898
13899 if (acc === null) {
13900 return f;
13901 }
13902
13903 return function chainedFunction() {
13904 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
13905 args[_key2] = arguments[_key2];
13906 }
13907
13908 acc.apply(this, args);
13909 f.apply(this, args);
13910 };
13911 }, null);
13912 }
13913
13914 exports["default"] = createChainedFunction;
13915 module.exports = exports['default'];
13916
13917/***/ }),
13918/* 130 */
13919/***/ (function(module, exports) {
13920
13921 'use strict';
13922
13923 Object.defineProperty(exports, "__esModule", {
13924 value: true
13925 });
13926
13927 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; };
13928
13929 exports.getComponentLocale = getComponentLocale;
13930 exports.getLocaleCode = getLocaleCode;
13931 function getComponentLocale(props, context, componentName, getDefaultLocale) {
13932 var locale = {};
13933 if (context && context.beeLocale && context.beeLocale[componentName]) {
13934 locale = context.beeLocale[componentName];
13935 } else {
13936 var defaultLocale = getDefaultLocale();
13937
13938 locale = defaultLocale["default"] || defaultLocale;
13939 }
13940
13941 var result = _extends({}, locale, props.locale);
13942 if (props.locale) {
13943 result.lang = _extends({}, locale.lang, props.locale.lang);
13944 } else {
13945 result.lang = _extends({}, locale.lang);
13946 }
13947
13948 return result;
13949 }
13950
13951 function getLocaleCode(context) {
13952 var localeCode = context.beeLocale && context.beeLocale.lang;
13953 // Had use LocaleProvide but didn't set locale
13954 if (context.beeLocale && context.beeLocale.exist && !localeCode) {
13955 return 'zh-cn';
13956 }
13957 return localeCode;
13958 }
13959
13960/***/ }),
13961/* 131 */
13962/***/ (function(module, exports) {
13963
13964 'use strict';
13965
13966 module.exports = {
13967 'lang': 'zh-cn',
13968 'copy': '复制',
13969 'cut': '剪切',
13970 'copyReady': '已复制',
13971 'cutReady': '已剪切',
13972 'copyToClipboard': '复制到剪切板',
13973 'close': '关闭',
13974
13975 'en-us': {
13976 'copy': 'copy',
13977 'cut': 'cut',
13978 'copyReady': 'copied',
13979 'cutReady': 'cut',
13980 'copyToClipboard': 'copy to clipboard',
13981 'close': 'close'
13982 },
13983 'zh-tw': {
13984 'copy': '複製',
13985 'cut': '剪切',
13986 'copyReady': '已複製',
13987 'cutReady': '已剪切',
13988 'copyToClipboard': '複製到剪切板',
13989 'close': '關閉'
13990 }
13991 };
13992
13993/***/ }),
13994/* 132 */
13995/***/ (function(module, exports, __webpack_require__) {
13996
13997 'use strict';
13998
13999 Object.defineProperty(exports, "__esModule", {
14000 value: true
14001 });
14002
14003 var _Modal = __webpack_require__(133);
14004
14005 var _Modal2 = _interopRequireDefault(_Modal);
14006
14007 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14008
14009 exports["default"] = _Modal2["default"];
14010 module.exports = exports['default'];
14011
14012/***/ }),
14013/* 133 */
14014/***/ (function(module, exports, __webpack_require__) {
14015
14016 'use strict';
14017
14018 Object.defineProperty(exports, "__esModule", {
14019 value: true
14020 });
14021
14022 var _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"]) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } }; }();
14023
14024 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; };
14025
14026 var _classnames = __webpack_require__(5);
14027
14028 var _classnames2 = _interopRequireDefault(_classnames);
14029
14030 var _events = __webpack_require__(134);
14031
14032 var _events2 = _interopRequireDefault(_events);
14033
14034 var _ownerDocument = __webpack_require__(74);
14035
14036 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
14037
14038 var _inDOM = __webpack_require__(14);
14039
14040 var _inDOM2 = _interopRequireDefault(_inDOM);
14041
14042 var _scrollbarSize = __webpack_require__(138);
14043
14044 var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);
14045
14046 var _react = __webpack_require__(1);
14047
14048 var _react2 = _interopRequireDefault(_react);
14049
14050 var _reactDom = __webpack_require__(2);
14051
14052 var _reactDom2 = _interopRequireDefault(_reactDom);
14053
14054 var _Modal = __webpack_require__(139);
14055
14056 var _Modal2 = _interopRequireDefault(_Modal);
14057
14058 var _isOverflowing = __webpack_require__(142);
14059
14060 var _isOverflowing2 = _interopRequireDefault(_isOverflowing);
14061
14062 var _tinperBeeCore = __webpack_require__(26);
14063
14064 var _beeTransition = __webpack_require__(11);
14065
14066 var _ModalBody = __webpack_require__(146);
14067
14068 var _ModalBody2 = _interopRequireDefault(_ModalBody);
14069
14070 var _ModalDialog = __webpack_require__(147);
14071
14072 var _ModalDialog2 = _interopRequireDefault(_ModalDialog);
14073
14074 var _ModalFooter = __webpack_require__(148);
14075
14076 var _ModalFooter2 = _interopRequireDefault(_ModalFooter);
14077
14078 var _ModalHeader = __webpack_require__(149);
14079
14080 var _ModalHeader2 = _interopRequireDefault(_ModalHeader);
14081
14082 var _ModalTitle = __webpack_require__(150);
14083
14084 var _ModalTitle2 = _interopRequireDefault(_ModalTitle);
14085
14086 var _propTypes = __webpack_require__(6);
14087
14088 var _propTypes2 = _interopRequireDefault(_propTypes);
14089
14090 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14091
14092 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; }
14093
14094 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; }
14095
14096 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; }
14097
14098 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14099
14100 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; }
14101
14102 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); }
14103
14104 var propTypes = _extends({}, _Modal2["default"].propTypes, _ModalDialog2["default"].propTypes, {
14105
14106 /**
14107 * 是否弹出遮罩层/遮罩层点击是否触发关闭
14108 */
14109 backdrop: _propTypes2["default"].oneOf(['static', true, false]),
14110
14111 /**
14112 * 点击遮罩层是否允许关闭
14113 */
14114 backdropClosable: _propTypes2["default"].bool,
14115 /**
14116 * esc触发关闭
14117 */
14118 keyboard: _propTypes2["default"].bool,
14119
14120 /**
14121 * 显隐时是否使用动画
14122 */
14123 animation: _propTypes2["default"].bool,
14124
14125 /**
14126 * 传递给模态框的样式
14127 */
14128 dialogComponentClass: _tinperBeeCore.elementType,
14129
14130 /**
14131 * 自动设置焦点
14132 */
14133 autoFocus: _propTypes2["default"].bool,
14134
14135 /**
14136 * 防止打开时焦点离开模态框
14137 */
14138 enforceFocus: _propTypes2["default"].bool,
14139
14140 /**
14141 * 是否打开模态框
14142 */
14143 show: _propTypes2["default"].bool,
14144
14145 /**
14146 * 关闭时的钩子函数
14147 */
14148 onHide: _propTypes2["default"].func,
14149
14150 onEnter: _propTypes2["default"].func,
14151
14152 onEntering: _propTypes2["default"].func,
14153
14154 onEntered: _propTypes2["default"].func,
14155
14156 onExit: _propTypes2["default"].func,
14157
14158 onExiting: _propTypes2["default"].func,
14159
14160 onExited: _propTypes2["default"].func,
14161
14162 /**
14163 * 要添加到的元素
14164 */
14165 container: _Modal2["default"].propTypes.container,
14166
14167 /**
14168 * 尺寸
14169 */
14170 size: _propTypes2["default"].oneOf(["sm", "lg", "xlg", ""]),
14171 /**
14172 * 自定义宽度
14173 */
14174 width: _propTypes2["default"].oneOfType([_propTypes2["default"].number, _propTypes2["default"].string])
14175 });
14176
14177 var defaultProps = _extends({}, _Modal2["default"].defaultProps, {
14178 backdropClosable: true,
14179 animation: true,
14180 dialogComponentClass: _ModalDialog2["default"],
14181 clsPrefix: 'u-modal'
14182 });
14183
14184 var childContextTypes = {
14185 $u_modal: _propTypes2["default"].shape({
14186 onHide: _propTypes2["default"].func
14187 })
14188 };
14189
14190 var Modal = function (_React$Component) {
14191 _inherits(Modal, _React$Component);
14192
14193 function Modal(props, context) {
14194 _classCallCheck(this, Modal);
14195
14196 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
14197
14198 _this.handleEntering = _this.handleEntering.bind(_this);
14199 _this.handleExited = _this.handleExited.bind(_this);
14200 _this.handleWindowResize = _this.handleWindowResize.bind(_this);
14201 _this.handleDialogClick = _this.handleDialogClick.bind(_this);
14202
14203 _this.state = {
14204 style: {}
14205 };
14206 return _this;
14207 }
14208
14209 Modal.prototype.getChildContext = function getChildContext() {
14210 return {
14211 $u_modal: {
14212 onHide: this.props.onHide
14213 }
14214 };
14215 };
14216
14217 Modal.prototype.componentWillUnmount = function componentWillUnmount() {
14218 // Clean up the listener if we need to.
14219 this.handleExited();
14220 };
14221
14222 Modal.prototype.handleEntering = function handleEntering() {
14223 // FIXME: This should work even when animation is disabled.
14224 _events2["default"].on(window, 'resize', this.handleWindowResize);
14225 this.updateStyle();
14226 };
14227
14228 Modal.prototype.handleExited = function handleExited() {
14229 // FIXME: This should work even when animation is disabled.
14230 _events2["default"].off(window, 'resize', this.handleWindowResize);
14231 };
14232
14233 Modal.prototype.handleWindowResize = function handleWindowResize() {
14234 this.updateStyle();
14235 };
14236
14237 Modal.prototype.handleDialogClick = function handleDialogClick(e) {
14238 if (e.target !== e.currentTarget) {
14239 return;
14240 }
14241
14242 this.props.onHide();
14243 };
14244
14245 Modal.prototype.updateStyle = function updateStyle() {
14246 if (!_inDOM2["default"] || !this._modal) {
14247 return;
14248 }
14249
14250 var dialogNode = this._modal.getDialogElement();
14251 var dialogHeight = dialogNode.scrollHeight;
14252
14253 var document = (0, _ownerDocument2["default"])(dialogNode);
14254 var bodyIsOverflowing = (0, _isOverflowing2["default"])(_reactDom2["default"].findDOMNode(this.props.container || document.body));
14255 var modalIsOverflowing = dialogHeight > document.documentElement.clientHeight;
14256
14257 this.setState({
14258 style: {
14259 paddingRight: bodyIsOverflowing && !modalIsOverflowing ? (0, _scrollbarSize2["default"])() : undefined,
14260 paddingLeft: !bodyIsOverflowing && modalIsOverflowing ? (0, _scrollbarSize2["default"])() : undefined
14261 }
14262 });
14263 };
14264
14265 Modal.prototype.render = function render() {
14266 var _this2 = this;
14267
14268 var _props = this.props,
14269 backdrop = _props.backdrop,
14270 backdropClosable = _props.backdropClosable,
14271 animation = _props.animation,
14272 show = _props.show,
14273 Dialog = _props.dialogComponentClass,
14274 className = _props.className,
14275 clsPrefix = _props.clsPrefix,
14276 _props$style = _props.style,
14277 style = _props$style === undefined ? {} : _props$style,
14278 size = _props.size,
14279 width = _props.width,
14280 children = _props.children,
14281 onEntering = _props.onEntering,
14282 onExited = _props.onExited,
14283 props = _objectWithoutProperties(_props, ['backdrop', 'backdropClosable', 'animation', 'show', 'dialogComponentClass', 'className', 'clsPrefix', 'style', 'size', 'width', 'children', 'onEntering', 'onExited']);
14284
14285 var _splitComponent = (0, _tinperBeeCore.splitComponent)(props, _Modal2["default"]),
14286 _splitComponent2 = _slicedToArray(_splitComponent, 2),
14287 baseModalProps = _splitComponent2[0],
14288 dialogProps = _splitComponent2[1];
14289
14290 var inClassName = show && !animation && 'in';
14291
14292 var backdropClasses = _defineProperty({}, clsPrefix + '-backdrop', true);
14293 var containerClasses = _defineProperty({}, clsPrefix + '-open', true);
14294 if (Number(width)) width += 'px';
14295
14296 var styleRes = _extends({}, this.state.style, style);
14297 if (width) {
14298 _extends(styleRes, { width: width });
14299 }
14300 return _react2["default"].createElement(
14301 _Modal2["default"],
14302 _extends({}, baseModalProps, {
14303 ref: function ref(c) {
14304 _this2._modal = c;
14305 },
14306 show: show,
14307 onEntering: (0, _tinperBeeCore.createChainedFunction)(onEntering, this.handleEntering),
14308 onExited: (0, _tinperBeeCore.createChainedFunction)(onExited, this.handleExited),
14309 backdrop: backdrop,
14310 backdropClassName: (0, _classnames2["default"])(backdropClasses, inClassName),
14311 containerClassName: (0, _classnames2["default"])(containerClasses),
14312 transition: animation ? _beeTransition.Fade : undefined,
14313 dialogTransitionTimeout: Modal.TRANSITION_DURATION,
14314 backdropTransitionTimeout: Modal.BACKDROP_TRANSITION_DURATION
14315 }),
14316 _react2["default"].createElement(
14317 Dialog,
14318 _extends({}, dialogProps, {
14319 style: styleRes,
14320 className: (0, _classnames2["default"])(className, inClassName),
14321 onClick: backdrop === true && !!backdropClosable ? this.handleDialogClick : null,
14322 size: size
14323 }),
14324 children
14325 )
14326 );
14327 };
14328
14329 return Modal;
14330 }(_react2["default"].Component);
14331
14332 Modal.propTypes = propTypes;
14333 Modal.defaultProps = defaultProps;
14334 Modal.childContextTypes = childContextTypes;
14335
14336 Modal.Body = _ModalBody2["default"];
14337 Modal.Header = _ModalHeader2["default"];
14338 Modal.Title = _ModalTitle2["default"];
14339 Modal.Footer = _ModalFooter2["default"];
14340
14341 Modal.Dialog = _ModalDialog2["default"];
14342
14343 Modal.TRANSITION_DURATION = 200000;
14344 Modal.BACKDROP_TRANSITION_DURATION = 10000;
14345
14346 exports["default"] = Modal;
14347 module.exports = exports['default'];
14348
14349/***/ }),
14350/* 134 */
14351/***/ (function(module, exports, __webpack_require__) {
14352
14353 'use strict';
14354
14355 Object.defineProperty(exports, "__esModule", {
14356 value: true
14357 });
14358 exports.listen = exports.filter = exports.off = exports.on = undefined;
14359
14360 var _on = __webpack_require__(15);
14361
14362 var _on2 = _interopRequireDefault(_on);
14363
14364 var _off = __webpack_require__(76);
14365
14366 var _off2 = _interopRequireDefault(_off);
14367
14368 var _filter = __webpack_require__(135);
14369
14370 var _filter2 = _interopRequireDefault(_filter);
14371
14372 var _listen = __webpack_require__(137);
14373
14374 var _listen2 = _interopRequireDefault(_listen);
14375
14376 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14377
14378 exports.on = _on2.default;
14379 exports.off = _off2.default;
14380 exports.filter = _filter2.default;
14381 exports.listen = _listen2.default;
14382 exports.default = { on: _on2.default, off: _off2.default, filter: _filter2.default, listen: _listen2.default };
14383
14384/***/ }),
14385/* 135 */
14386/***/ (function(module, exports, __webpack_require__) {
14387
14388 'use strict';
14389
14390 Object.defineProperty(exports, "__esModule", {
14391 value: true
14392 });
14393 exports.default = filterEvents;
14394
14395 var _contains = __webpack_require__(110);
14396
14397 var _contains2 = _interopRequireDefault(_contains);
14398
14399 var _querySelectorAll = __webpack_require__(136);
14400
14401 var _querySelectorAll2 = _interopRequireDefault(_querySelectorAll);
14402
14403 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14404
14405 function filterEvents(selector, handler) {
14406 return function filterHandler(e) {
14407 var top = e.currentTarget,
14408 target = e.target,
14409 matches = (0, _querySelectorAll2.default)(top, selector);
14410
14411 if (matches.some(function (match) {
14412 return (0, _contains2.default)(match, target);
14413 })) handler.call(this, e);
14414 };
14415 }
14416 module.exports = exports['default'];
14417
14418/***/ }),
14419/* 136 */
14420/***/ (function(module, exports) {
14421
14422 'use strict';
14423
14424 Object.defineProperty(exports, "__esModule", {
14425 value: true
14426 });
14427 exports.default = qsa;
14428 // Zepto.js
14429 // (c) 2010-2015 Thomas Fuchs
14430 // Zepto.js may be freely distributed under the MIT license.
14431 var simpleSelectorRE = /^[\w-]*$/;
14432 var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);
14433
14434 function qsa(element, selector) {
14435 var maybeID = selector[0] === '#',
14436 maybeClass = selector[0] === '.',
14437 nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,
14438 isSimple = simpleSelectorRE.test(nameOnly),
14439 found;
14440
14441 if (isSimple) {
14442 if (maybeID) {
14443 element = element.getElementById ? element : document;
14444 return (found = element.getElementById(nameOnly)) ? [found] : [];
14445 }
14446
14447 if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly));
14448
14449 return toArray(element.getElementsByTagName(selector));
14450 }
14451
14452 return toArray(element.querySelectorAll(selector));
14453 }
14454 module.exports = exports['default'];
14455
14456/***/ }),
14457/* 137 */
14458/***/ (function(module, exports, __webpack_require__) {
14459
14460 'use strict';
14461
14462 Object.defineProperty(exports, "__esModule", {
14463 value: true
14464 });
14465
14466 var _inDOM = __webpack_require__(14);
14467
14468 var _inDOM2 = _interopRequireDefault(_inDOM);
14469
14470 var _on = __webpack_require__(15);
14471
14472 var _on2 = _interopRequireDefault(_on);
14473
14474 var _off = __webpack_require__(76);
14475
14476 var _off2 = _interopRequireDefault(_off);
14477
14478 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14479
14480 var listen = function listen() {};
14481
14482 if (_inDOM2.default) {
14483 listen = function listen(node, eventName, handler, capture) {
14484 (0, _on2.default)(node, eventName, handler, capture);
14485 return function () {
14486 (0, _off2.default)(node, eventName, handler, capture);
14487 };
14488 };
14489 }
14490
14491 exports.default = listen;
14492 module.exports = exports['default'];
14493
14494/***/ }),
14495/* 138 */
14496/***/ (function(module, exports, __webpack_require__) {
14497
14498 'use strict';
14499
14500 Object.defineProperty(exports, "__esModule", {
14501 value: true
14502 });
14503
14504 exports.default = function (recalc) {
14505 if (!size || recalc) {
14506 if (_inDOM2.default) {
14507 var scrollDiv = document.createElement('div');
14508
14509 scrollDiv.style.position = 'absolute';
14510 scrollDiv.style.top = '-9999px';
14511 scrollDiv.style.width = '50px';
14512 scrollDiv.style.height = '50px';
14513 scrollDiv.style.overflow = 'scroll';
14514
14515 document.body.appendChild(scrollDiv);
14516 size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
14517 document.body.removeChild(scrollDiv);
14518 }
14519 }
14520
14521 return size;
14522 };
14523
14524 var _inDOM = __webpack_require__(14);
14525
14526 var _inDOM2 = _interopRequireDefault(_inDOM);
14527
14528 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14529
14530 var size = void 0;
14531
14532 module.exports = exports['default'];
14533
14534/***/ }),
14535/* 139 */
14536/***/ (function(module, exports, __webpack_require__) {
14537
14538 'use strict';
14539
14540 Object.defineProperty(exports, "__esModule", {
14541 value: true
14542 });
14543
14544 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; }; /*eslint-disable react/prop-types */
14545
14546
14547 var _react = __webpack_require__(1);
14548
14549 var _react2 = _interopRequireDefault(_react);
14550
14551 var _propTypes = __webpack_require__(6);
14552
14553 var _propTypes2 = _interopRequireDefault(_propTypes);
14554
14555 var _warning = __webpack_require__(31);
14556
14557 var _warning2 = _interopRequireDefault(_warning);
14558
14559 var _tinperBeeCore = __webpack_require__(26);
14560
14561 var _Portal = __webpack_require__(111);
14562
14563 var _Portal2 = _interopRequireDefault(_Portal);
14564
14565 var _ModalManager = __webpack_require__(140);
14566
14567 var _ModalManager2 = _interopRequireDefault(_ModalManager);
14568
14569 var _ownerDocument = __webpack_require__(73);
14570
14571 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
14572
14573 var _addEventListener = __webpack_require__(75);
14574
14575 var _addEventListener2 = _interopRequireDefault(_addEventListener);
14576
14577 var _addFocusListener = __webpack_require__(144);
14578
14579 var _addFocusListener2 = _interopRequireDefault(_addFocusListener);
14580
14581 var _inDOM = __webpack_require__(14);
14582
14583 var _inDOM2 = _interopRequireDefault(_inDOM);
14584
14585 var _activeElement = __webpack_require__(145);
14586
14587 var _activeElement2 = _interopRequireDefault(_activeElement);
14588
14589 var _contains = __webpack_require__(110);
14590
14591 var _contains2 = _interopRequireDefault(_contains);
14592
14593 var _getContainer = __webpack_require__(112);
14594
14595 var _getContainer2 = _interopRequireDefault(_getContainer);
14596
14597 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14598
14599 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; }
14600
14601 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14602
14603 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; }
14604
14605 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); }
14606
14607 var modalManager = new _ModalManager2["default"]();
14608
14609 /**
14610 * 模态框
14611 */
14612
14613 var propTypes = _extends({}, _Portal2["default"].propTypes, {
14614
14615 /**
14616 * 是否显示
14617 */
14618 show: _propTypes2["default"].bool,
14619
14620 /**
14621 * 容器
14622 */
14623 container: _propTypes2["default"].oneOfType([_tinperBeeCore.componentOrElement, _propTypes2["default"].func]),
14624
14625 /**
14626 * 当模态框打开时的钩子函数
14627 */
14628 onShow: _propTypes2["default"].func,
14629
14630 /**
14631 * 当show参数为false时触发的模态框关闭时的钩子函数
14632 */
14633 onHide: _propTypes2["default"].func,
14634
14635 /**
14636 * 是否包含背景
14637 */
14638 backdrop: _propTypes2["default"].oneOfType([_propTypes2["default"].bool, _propTypes2["default"].oneOf(['static'])]),
14639
14640 /**
14641 *返回背景组件的函数
14642 */
14643 renderBackdrop: _propTypes2["default"].func,
14644
14645 /**
14646 * 设置esc键特殊钩子函数
14647 */
14648 onEscapeKeyUp: _propTypes2["default"].func,
14649
14650 /**
14651 * 当点击背景时触发的函数
14652 */
14653 onBackdropClick: _propTypes2["default"].func,
14654
14655 /**
14656 * 背景的style
14657 */
14658 backdropStyle: _propTypes2["default"].object,
14659
14660 /**
14661 * 背景的class
14662 */
14663 backdropClassName: _propTypes2["default"].string,
14664
14665 /**
14666 *容器的class
14667 */
14668 containerClassName: _propTypes2["default"].string,
14669
14670 /**
14671 * 按esc键是否关闭模态框
14672 */
14673 keyboard: _propTypes2["default"].bool,
14674
14675 /**
14676 * 动画组件
14677 */
14678 transition: _tinperBeeCore.elementType,
14679
14680 /**
14681 * 设置动画超时时间
14682 */
14683 dialogTransitionTimeout: _propTypes2["default"].number,
14684
14685 /**
14686 * 设置背景动画超时时间
14687 */
14688 backdropTransitionTimeout: _propTypes2["default"].number,
14689
14690 /**
14691 * 是否自动设置焦点
14692 */
14693 autoFocus: _propTypes2["default"].bool,
14694
14695 /**
14696 * 防止焦点离开模态框
14697 */
14698 enforceFocus: _propTypes2["default"].bool,
14699
14700 /**
14701 * 模态框进入时的钩子函数
14702 */
14703 onEnter: _propTypes2["default"].func,
14704
14705 /**
14706 * 模态框开始进入时的钩子函数
14707 */
14708 onEntering: _propTypes2["default"].func,
14709
14710 /**
14711 * 模态框进入后的钩子函数
14712 */
14713 onEntered: _propTypes2["default"].func,
14714
14715 /**
14716 * 模态框退出时的钩子函数
14717 */
14718 onExit: _propTypes2["default"].func,
14719
14720 /**
14721 * 模态框开始退出时的钩子函数
14722 */
14723 onExiting: _propTypes2["default"].func,
14724
14725 /**
14726 * 模态框推出后的钩子函数
14727 */
14728 onExited: _propTypes2["default"].func,
14729
14730 /**
14731 *管理model状态的实例
14732 */
14733 manager: _propTypes2["default"].object.isRequired
14734 });
14735
14736 var defaultProps = {
14737 show: false,
14738 backdrop: true,
14739 keyboard: true,
14740 autoFocus: true,
14741 enforceFocus: true,
14742 onHide: function onHide() {},
14743 manager: modalManager,
14744 renderBackdrop: function renderBackdrop(props) {
14745 return _react2["default"].createElement('div', props);
14746 }
14747 };
14748
14749 var BaseModal = function (_Component) {
14750 _inherits(BaseModal, _Component);
14751
14752 function BaseModal(props, content) {
14753 _classCallCheck(this, BaseModal);
14754
14755 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
14756
14757 _this.state = {
14758 exited: !_this.props.show
14759 };
14760
14761 _this.onShow = _this.onShow.bind(_this);
14762 _this.onHide = _this.onHide.bind(_this);
14763 _this.setMountNode = _this.setMountNode.bind(_this);
14764 _this.handleHidden = _this.handleHidden.bind(_this);
14765 _this.handleBackdropClick = _this.handleBackdropClick.bind(_this);
14766 _this.handleDocumentKeyUp = _this.handleDocumentKeyUp.bind(_this);
14767 _this.checkForFocus = _this.checkForFocus.bind(_this);
14768 _this.focus = _this.focus.bind(_this);
14769 _this.restoreLastFocus = _this.restoreLastFocus.bind(_this);
14770 _this.enforceFocus = _this.enforceFocus.bind(_this);
14771 _this.getDialogElement = _this.getDialogElement.bind(_this);
14772 _this.isTopModal = _this.isTopModal.bind(_this);
14773 _this.renderBackdrop = _this.renderBackdrop.bind(_this);
14774 return _this;
14775 }
14776
14777 BaseModal.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
14778 if (nextProps.show) {
14779 this.setState({ exited: false });
14780 } else if (!nextProps.transition) {
14781 // Otherwise let handleHidden take care of marking exited.
14782 this.setState({ exited: true });
14783 }
14784 };
14785
14786 BaseModal.prototype.componentWillUpdate = function componentWillUpdate(nextProps) {
14787 if (!this.props.show && nextProps.show) {
14788 this.checkForFocus();
14789 }
14790 };
14791
14792 BaseModal.prototype.componentDidMount = function componentDidMount() {
14793 if (this.props.show) {
14794 this.onShow();
14795 }
14796 this.mounted = true;
14797 };
14798
14799 BaseModal.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
14800 var transition = this.props.transition;
14801
14802
14803 if (prevProps.show && !this.props.show && !transition) {
14804 // Otherwise handleHidden will call this.
14805 this.onHide();
14806 } else if (!prevProps.show && this.props.show) {
14807 this.onShow();
14808 }
14809 };
14810
14811 BaseModal.prototype.componentWillUnmount = function componentWillUnmount() {
14812 var _props = this.props,
14813 show = _props.show,
14814 transition = _props.transition;
14815
14816
14817 if (show || transition && !this.state.exited) {
14818 this.onHide();
14819 }
14820
14821 this.mounted = false;
14822 };
14823
14824 BaseModal.prototype.onShow = function onShow() {
14825 var doc = (0, _ownerDocument2["default"])(this);
14826 var container = (0, _getContainer2["default"])(this.props.container, doc.body);
14827
14828 this.props.manager.add(this, container, this.props.containerClassName);
14829
14830 this._onDocumentKeyupListener = (0, _addEventListener2["default"])(doc, 'keyup', this.handleDocumentKeyUp);
14831
14832 this._onFocusinListener = (0, _addFocusListener2["default"])(this.enforceFocus);
14833
14834 this.focus();
14835
14836 if (this.props.onShow) {
14837 this.props.onShow();
14838 }
14839 };
14840
14841 BaseModal.prototype.onHide = function onHide() {
14842 this.props.manager.remove(this);
14843
14844 this._onDocumentKeyupListener.remove();
14845
14846 this._onFocusinListener.remove();
14847
14848 this.restoreLastFocus();
14849 };
14850
14851 BaseModal.prototype.setMountNode = function setMountNode(ref) {
14852 this.mountNode = ref ? ref.getMountNode() : ref;
14853 };
14854
14855 BaseModal.prototype.handleHidden = function handleHidden() {
14856 this.setState({ exited: true });
14857 this.onHide();
14858
14859 if (this.props.onExited) {
14860 var _props2;
14861
14862 (_props2 = this.props).onExited.apply(_props2, arguments);
14863 }
14864 };
14865
14866 BaseModal.prototype.handleBackdropClick = function handleBackdropClick(e) {
14867 if (e.target !== e.currentTarget) {
14868 return;
14869 }
14870
14871 if (this.props.onBackdropClick) {
14872 this.props.onBackdropClick(e);
14873 }
14874
14875 if (this.props.backdrop === true) {
14876 this.props.onHide();
14877 }
14878 };
14879
14880 BaseModal.prototype.handleDocumentKeyUp = function handleDocumentKeyUp(e) {
14881 if (this.props.keyboard && e.keyCode === 27 && this.isTopModal()) {
14882 if (this.props.onEscapeKeyUp) {
14883 this.props.onEscapeKeyUp(e);
14884 }
14885 this.props.onHide();
14886 }
14887 };
14888
14889 BaseModal.prototype.checkForFocus = function checkForFocus() {
14890 if (_inDOM2["default"]) {
14891 this.lastFocus = (0, _activeElement2["default"])();
14892 }
14893 };
14894
14895 BaseModal.prototype.focus = function focus() {
14896 var autoFocus = this.props.autoFocus;
14897 var modalContent = this.getDialogElement();
14898 var current = (0, _activeElement2["default"])((0, _ownerDocument2["default"])(this));
14899 var focusInModal = current && (0, _contains2["default"])(modalContent, current);
14900
14901 if (modalContent && autoFocus && !focusInModal) {
14902 this.lastFocus = current;
14903
14904 if (!modalContent.hasAttribute('tabIndex')) {
14905 modalContent.setAttribute('tabIndex', -1);
14906 (0, _warning2["default"])(false, 'The modal content node does not accept focus. ' + 'For the benefit of assistive technologies, the tabIndex of the node is being set to "-1".');
14907 }
14908
14909 modalContent.focus();
14910 }
14911 };
14912
14913 BaseModal.prototype.restoreLastFocus = function restoreLastFocus() {
14914 // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917)
14915 if (this.lastFocus && this.lastFocus.focus) {
14916 this.lastFocus.focus();
14917 this.lastFocus = null;
14918 }
14919 };
14920
14921 BaseModal.prototype.enforceFocus = function enforceFocus() {
14922 var enforceFocus = this.props.enforceFocus;
14923
14924
14925 if (!enforceFocus || !this.mounted || !this.isTopModal()) {
14926 return;
14927 }
14928
14929 var active = (0, _activeElement2["default"])((0, _ownerDocument2["default"])(this));
14930 var modal = this.getDialogElement();
14931
14932 if (modal && modal !== active && !(0, _contains2["default"])(modal, active)) {
14933 modal.focus();
14934 }
14935 };
14936
14937 //instead of a ref, which might conflict with one the parent applied.
14938
14939
14940 BaseModal.prototype.getDialogElement = function getDialogElement() {
14941 var node = this.refs.modal;
14942 return node && node.lastChild;
14943 };
14944
14945 BaseModal.prototype.isTopModal = function isTopModal() {
14946 return this.props.manager.isTopModal(this);
14947 };
14948
14949 BaseModal.prototype.renderBackdrop = function renderBackdrop() {
14950 var _this2 = this;
14951
14952 var _props3 = this.props,
14953 backdropStyle = _props3.backdropStyle,
14954 backdropClassName = _props3.backdropClassName,
14955 renderBackdrop = _props3.renderBackdrop,
14956 Transition = _props3.transition,
14957 backdropTransitionTimeout = _props3.backdropTransitionTimeout;
14958
14959
14960 var backdropRef = function backdropRef(ref) {
14961 return _this2.backdrop = ref;
14962 };
14963
14964 var backdrop = _react2["default"].createElement('div', {
14965 ref: backdropRef,
14966 style: this.props.backdropStyle,
14967 className: this.props.backdropClassName,
14968 onClick: this.handleBackdropClick
14969 });
14970
14971 if (Transition) {
14972 backdrop = _react2["default"].createElement(
14973 Transition,
14974 { transitionAppear: true,
14975 'in': this.props.show,
14976 timeout: backdropTransitionTimeout
14977 },
14978 renderBackdrop({
14979 ref: backdropRef,
14980 style: backdropStyle,
14981 className: backdropClassName,
14982 onClick: this.handleBackdropClick
14983 })
14984 );
14985 }
14986
14987 return backdrop;
14988 };
14989
14990 BaseModal.prototype.render = function render() {
14991 var _props4 = this.props,
14992 show = _props4.show,
14993 container = _props4.container,
14994 children = _props4.children,
14995 Transition = _props4.transition,
14996 backdrop = _props4.backdrop,
14997 dialogTransitionTimeout = _props4.dialogTransitionTimeout,
14998 className = _props4.className,
14999 style = _props4.style,
15000 onExit = _props4.onExit,
15001 onExiting = _props4.onExiting,
15002 onEnter = _props4.onEnter,
15003 onEntering = _props4.onEntering,
15004 onEntered = _props4.onEntered;
15005
15006
15007 var dialog = _react2["default"].Children.only(children);
15008
15009 var mountModal = show || Transition && !this.state.exited;
15010 if (!mountModal) {
15011 return null;
15012 }
15013
15014 var _dialog$props = dialog.props,
15015 role = _dialog$props.role,
15016 tabIndex = _dialog$props.tabIndex;
15017
15018
15019 if (role === undefined || tabIndex === undefined) {
15020 dialog = (0, _react.cloneElement)(dialog, {
15021 role: role === undefined ? 'document' : role,
15022 tabIndex: tabIndex == null ? '-1' : tabIndex
15023 });
15024 }
15025
15026 if (Transition) {
15027 dialog = _react2["default"].createElement(
15028 Transition,
15029 {
15030 transitionAppear: true,
15031 unmountOnExit: true,
15032 'in': show,
15033 timeout: dialogTransitionTimeout,
15034 onExit: onExit,
15035 onExiting: onExiting,
15036 onExited: this.handleHidden,
15037 onEnter: onEnter,
15038 onEntering: onEntering,
15039 onEntered: onEntered
15040 },
15041 dialog
15042 );
15043 }
15044
15045 return _react2["default"].createElement(
15046 _Portal2["default"],
15047 {
15048 ref: this.setMountNode,
15049 container: container
15050 },
15051 _react2["default"].createElement(
15052 'div',
15053 {
15054 ref: 'modal',
15055 role: role || 'dialog',
15056 style: style,
15057 className: className
15058 },
15059 backdrop && this.renderBackdrop(),
15060 dialog
15061 )
15062 );
15063 };
15064
15065 return BaseModal;
15066 }(_react.Component);
15067
15068 ;
15069
15070 BaseModal.Manager = _ModalManager2["default"];
15071
15072 BaseModal.propTypes = propTypes;
15073 BaseModal.defaultProps = defaultProps;
15074
15075 exports["default"] = BaseModal;
15076 module.exports = exports['default'];
15077
15078/***/ }),
15079/* 140 */
15080/***/ (function(module, exports, __webpack_require__) {
15081
15082 'use strict';
15083
15084 Object.defineProperty(exports, "__esModule", {
15085 value: true
15086 });
15087
15088 var _style = __webpack_require__(17);
15089
15090 var _style2 = _interopRequireDefault(_style);
15091
15092 var _class = __webpack_require__(141);
15093
15094 var _class2 = _interopRequireDefault(_class);
15095
15096 var _scrollbarSize = __webpack_require__(138);
15097
15098 var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);
15099
15100 var _isOverflowing = __webpack_require__(142);
15101
15102 var _isOverflowing2 = _interopRequireDefault(_isOverflowing);
15103
15104 var _manageAriaHidden = __webpack_require__(143);
15105
15106 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15107
15108 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15109
15110 function findIndexOf(arr, cb) {
15111 var idx = -1;
15112 arr.some(function (d, i) {
15113 if (cb(d, i)) {
15114 idx = i;
15115 return true;
15116 }
15117 });
15118 return idx;
15119 }
15120
15121 //查找容器
15122 function findContainer(data, modal) {
15123 return findIndexOf(data, function (d) {
15124 return d.modals.indexOf(modal) !== -1;
15125 });
15126 }
15127
15128 //设置容器style
15129 function setContainerStyle(state, container) {
15130 var style = { overflow: 'hidden' };
15131
15132 state.style = {
15133 overflow: container.style.overflow,
15134 paddingRight: container.style.paddingRight
15135 };
15136
15137 if (state.overflowing) {
15138 //设置内边距,和添加滚动条宽度
15139 style.paddingRight = parseInt((0, _style2["default"])(container, 'paddingRight') || 0, 10) + (0, _scrollbarSize2["default"])() + 'px';
15140 }
15141
15142 (0, _style2["default"])(container, style);
15143 }
15144 //移除容器style
15145 function removeContainerStyle(_ref, container) {
15146 var style = _ref.style;
15147
15148
15149 Object.keys(style).forEach(function (key) {
15150 return container.style[key] = style[key];
15151 });
15152 }
15153 /**
15154 * 容器的正确状态管理和那些容器中的模态。
15155 */
15156
15157 var ModalManager = function () {
15158 function ModalManager() {
15159 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
15160 _ref2$hideSiblingNode = _ref2.hideSiblingNodes,
15161 hideSiblingNodes = _ref2$hideSiblingNode === undefined ? true : _ref2$hideSiblingNode,
15162 _ref2$handleContainer = _ref2.handleContainerOverflow,
15163 handleContainerOverflow = _ref2$handleContainer === undefined ? true : _ref2$handleContainer;
15164
15165 _classCallCheck(this, ModalManager);
15166
15167 this.hideSiblingNodes = hideSiblingNodes;
15168 this.handleContainerOverflow = handleContainerOverflow;
15169 this.modals = [];
15170 this.containers = [];
15171 this.data = [];
15172 }
15173
15174 ModalManager.prototype.add = function add(modal, container, className) {
15175 var modalIdx = this.modals.indexOf(modal);
15176 var containerIdx = this.containers.indexOf(container);
15177
15178 if (modalIdx !== -1) {
15179 return modalIdx;
15180 }
15181
15182 modalIdx = this.modals.length;
15183 this.modals.push(modal);
15184
15185 if (this.hideSiblingNodes) {
15186 (0, _manageAriaHidden.hideSiblings)(container, modal.mountNode);
15187 }
15188
15189 if (containerIdx !== -1) {
15190 this.data[containerIdx].modals.push(modal);
15191 return modalIdx;
15192 }
15193
15194 var data = {
15195 modals: [modal],
15196 //right now only the first modal of a container will have its classes applied
15197 classes: className ? className.split(/\s+/) : [],
15198
15199 overflowing: (0, _isOverflowing2["default"])(container)
15200 };
15201
15202 if (this.handleContainerOverflow) {
15203 setContainerStyle(data, container);
15204 }
15205
15206 data.classes.forEach(_class2["default"].addClass.bind(null, container));
15207
15208 this.containers.push(container);
15209 this.data.push(data);
15210
15211 return modalIdx;
15212 };
15213
15214 ModalManager.prototype.remove = function remove(modal) {
15215 var modalIdx = this.modals.indexOf(modal);
15216
15217 if (modalIdx === -1) {
15218 return;
15219 }
15220
15221 var containerIdx = findContainer(this.data, modal);
15222 var data = this.data[containerIdx];
15223 var container = this.containers[containerIdx];
15224
15225 data.modals.splice(data.modals.indexOf(modal), 1);
15226
15227 this.modals.splice(modalIdx, 1);
15228
15229 // if that was the last modal in a container,
15230 // clean up the container
15231 if (data.modals.length === 0) {
15232 data.classes.forEach(_class2["default"].removeClass.bind(null, container));
15233
15234 if (this.handleContainerOverflow) {
15235 removeContainerStyle(data, container);
15236 }
15237
15238 if (this.hideSiblingNodes) {
15239 (0, _manageAriaHidden.showSiblings)(container, modal.mountNode);
15240 }
15241 this.containers.splice(containerIdx, 1);
15242 this.data.splice(containerIdx, 1);
15243 } else if (this.hideSiblingNodes) {
15244 //otherwise make sure the next top modal is visible to a SR
15245 (0, _manageAriaHidden.ariaHidden)(false, data.modals[data.modals.length - 1].mountNode);
15246 }
15247 };
15248
15249 ModalManager.prototype.isTopModal = function isTopModal(modal) {
15250 return !!this.modals.length && this.modals[this.modals.length - 1] === modal;
15251 };
15252
15253 return ModalManager;
15254 }();
15255
15256 exports["default"] = ModalManager;
15257 module.exports = exports['default'];
15258
15259/***/ }),
15260/* 141 */
15261/***/ (function(module, exports, __webpack_require__) {
15262
15263 'use strict';
15264
15265 Object.defineProperty(exports, "__esModule", {
15266 value: true
15267 });
15268 exports.hasClass = exports.removeClass = exports.addClass = undefined;
15269
15270 var _addClass = __webpack_require__(86);
15271
15272 var _addClass2 = _interopRequireDefault(_addClass);
15273
15274 var _removeClass = __webpack_require__(88);
15275
15276 var _removeClass2 = _interopRequireDefault(_removeClass);
15277
15278 var _hasClass = __webpack_require__(87);
15279
15280 var _hasClass2 = _interopRequireDefault(_hasClass);
15281
15282 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15283
15284 exports.addClass = _addClass2.default;
15285 exports.removeClass = _removeClass2.default;
15286 exports.hasClass = _hasClass2.default;
15287 exports.default = { addClass: _addClass2.default, removeClass: _removeClass2.default, hasClass: _hasClass2.default };
15288
15289/***/ }),
15290/* 142 */
15291/***/ (function(module, exports, __webpack_require__) {
15292
15293 'use strict';
15294
15295 Object.defineProperty(exports, "__esModule", {
15296 value: true
15297 });
15298 exports["default"] = isOverflowing;
15299
15300 var _isWindow = __webpack_require__(119);
15301
15302 var _isWindow2 = _interopRequireDefault(_isWindow);
15303
15304 var _ownerDocument = __webpack_require__(74);
15305
15306 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
15307
15308 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15309
15310 function isBody(node) {
15311 return node && node.tagName.toLowerCase() === 'body';
15312 }
15313
15314 function bodyIsOverflowing(node) {
15315 var doc = (0, _ownerDocument2["default"])(node);
15316 var win = (0, _isWindow2["default"])(doc);
15317 var fullWidth = win.innerWidth;
15318
15319 // Support: ie8, no innerWidth
15320 if (!fullWidth) {
15321 var documentElementRect = doc.documentElement.getBoundingClientRect();
15322 fullWidth = documentElementRect.right - Math.abs(documentElementRect.left);
15323 }
15324
15325 return doc.body.clientWidth < fullWidth;
15326 }
15327
15328 function isOverflowing(container) {
15329 var win = (0, _isWindow2["default"])(container);
15330
15331 return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight;
15332 }
15333 module.exports = exports['default'];
15334
15335/***/ }),
15336/* 143 */
15337/***/ (function(module, exports) {
15338
15339 'use strict';
15340
15341 Object.defineProperty(exports, "__esModule", {
15342 value: true
15343 });
15344 exports.ariaHidden = ariaHidden;
15345 exports.hideSiblings = hideSiblings;
15346 exports.showSiblings = showSiblings;
15347
15348 var BLACKLIST = ['template', 'script', 'style'];
15349
15350 var isHidable = function isHidable(_ref) {
15351 var nodeType = _ref.nodeType,
15352 tagName = _ref.tagName;
15353 return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1;
15354 };
15355
15356 var siblings = function siblings(container, mount, cb) {
15357 mount = [].concat(mount);
15358
15359 [].forEach.call(container.children, function (node) {
15360 if (mount.indexOf(node) === -1 && isHidable(node)) {
15361 cb(node);
15362 }
15363 });
15364 };
15365
15366 function ariaHidden(show, node) {
15367 if (!node) {
15368 return;
15369 }
15370 if (show) {
15371 node.setAttribute('aria-hidden', 'true');
15372 } else {
15373 node.removeAttribute('aria-hidden');
15374 }
15375 }
15376
15377 function hideSiblings(container, mountNode) {
15378 siblings(container, mountNode, function (node) {
15379 return ariaHidden(true, node);
15380 });
15381 }
15382
15383 function showSiblings(container, mountNode) {
15384 siblings(container, mountNode, function (node) {
15385 return ariaHidden(false, node);
15386 });
15387 }
15388
15389/***/ }),
15390/* 144 */
15391/***/ (function(module, exports) {
15392
15393 'use strict';
15394
15395 Object.defineProperty(exports, "__esModule", {
15396 value: true
15397 });
15398 exports["default"] = addFocusListener;
15399 /**
15400 * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling
15401 * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8
15402 *
15403 * We only allow one Listener at a time to avoid stack overflows
15404 */
15405 function addFocusListener(handler) {
15406 var useFocusin = !document.addEventListener;
15407 var remove = void 0;
15408
15409 if (useFocusin) {
15410 document.attachEvent('onfocusin', handler);
15411 remove = function remove() {
15412 return document.detachEvent('onfocusin', handler);
15413 };
15414 } else {
15415 document.addEventListener('focus', handler, true);
15416 remove = function remove() {
15417 return document.removeEventListener('focus', handler, true);
15418 };
15419 }
15420
15421 return { remove: remove };
15422 }
15423 module.exports = exports['default'];
15424
15425/***/ }),
15426/* 145 */
15427/***/ (function(module, exports, __webpack_require__) {
15428
15429 'use strict';
15430
15431 Object.defineProperty(exports, "__esModule", {
15432 value: true
15433 });
15434 exports.default = activeElement;
15435
15436 var _ownerDocument = __webpack_require__(74);
15437
15438 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
15439
15440 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15441
15442 function activeElement() {
15443 var doc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _ownerDocument2.default)();
15444
15445 try {
15446 return doc.activeElement;
15447 } catch (e) {/* ie throws if no active element */}
15448 }
15449 module.exports = exports['default'];
15450
15451/***/ }),
15452/* 146 */
15453/***/ (function(module, exports, __webpack_require__) {
15454
15455 'use strict';
15456
15457 Object.defineProperty(exports, "__esModule", {
15458 value: true
15459 });
15460
15461 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; };
15462
15463 var _classnames = __webpack_require__(5);
15464
15465 var _classnames2 = _interopRequireDefault(_classnames);
15466
15467 var _react = __webpack_require__(1);
15468
15469 var _react2 = _interopRequireDefault(_react);
15470
15471 var _tinperBeeCore = __webpack_require__(26);
15472
15473 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15474
15475 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; }
15476
15477 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; }
15478
15479 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15480
15481 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; }
15482
15483 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); }
15484
15485 var propTypes = {
15486 componentClass: _tinperBeeCore.elementType
15487 };
15488
15489 var defaultProps = {
15490 componentClass: 'div',
15491 clsPrefix: 'u-modal-body'
15492 };
15493
15494 var ModalBody = function (_React$Component) {
15495 _inherits(ModalBody, _React$Component);
15496
15497 function ModalBody() {
15498 _classCallCheck(this, ModalBody);
15499
15500 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
15501 }
15502
15503 ModalBody.prototype.render = function render() {
15504 var _props = this.props,
15505 Component = _props.componentClass,
15506 clsPrefix = _props.clsPrefix,
15507 className = _props.className,
15508 props = _objectWithoutProperties(_props, ['componentClass', 'clsPrefix', 'className']);
15509
15510 var classes = {};
15511 classes['' + clsPrefix] = true;
15512
15513 return _react2["default"].createElement(Component, _extends({}, props, {
15514 className: (0, _classnames2["default"])(className, classes)
15515 }));
15516 };
15517
15518 return ModalBody;
15519 }(_react2["default"].Component);
15520
15521 ModalBody.propTypes = propTypes;
15522 ModalBody.defaultProps = defaultProps;
15523
15524 exports["default"] = ModalBody;
15525 module.exports = exports['default'];
15526
15527/***/ }),
15528/* 147 */
15529/***/ (function(module, exports, __webpack_require__) {
15530
15531 'use strict';
15532
15533 Object.defineProperty(exports, "__esModule", {
15534 value: true
15535 });
15536
15537 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; };
15538
15539 var _classnames = __webpack_require__(5);
15540
15541 var _classnames2 = _interopRequireDefault(_classnames);
15542
15543 var _react = __webpack_require__(1);
15544
15545 var _react2 = _interopRequireDefault(_react);
15546
15547 var _propTypes = __webpack_require__(6);
15548
15549 var _propTypes2 = _interopRequireDefault(_propTypes);
15550
15551 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15552
15553 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; }
15554
15555 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; }
15556
15557 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; }
15558
15559 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15560
15561 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; }
15562
15563 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); }
15564
15565 var propTypes = {
15566 /**
15567 * 传给dialog的classname
15568 */
15569 dialogClassName: _propTypes2["default"].string,
15570 contentStyle: _propTypes2["default"].object
15571
15572 };
15573
15574 var defaultProps = {
15575 clsPrefix: 'u-modal'
15576 };
15577
15578 var ModalDialog = function (_React$Component) {
15579 _inherits(ModalDialog, _React$Component);
15580
15581 function ModalDialog() {
15582 _classCallCheck(this, ModalDialog);
15583
15584 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
15585 }
15586
15587 ModalDialog.prototype.render = function render() {
15588 var _dialogClasses;
15589
15590 var _props = this.props,
15591 dialogClassName = _props.dialogClassName,
15592 className = _props.className,
15593 clsPrefix = _props.clsPrefix,
15594 size = _props.size,
15595 style = _props.style,
15596 contentStyle = _props.contentStyle,
15597 children = _props.children,
15598 props = _objectWithoutProperties(_props, ['dialogClassName', 'className', 'clsPrefix', 'size', 'style', 'contentStyle', 'children']);
15599 // const [bsProps, elementProps] = splitBsProps(props);
15600 //
15601
15602
15603 var uClassName = _defineProperty({}, '' + clsPrefix, true);
15604
15605 var modalStyle = { display: 'block' };
15606
15607 var dialogClasses = (_dialogClasses = {}, _defineProperty(_dialogClasses, uClassName, false), _defineProperty(_dialogClasses, clsPrefix + '-dialog', true), _dialogClasses);
15608 if (size) {
15609 dialogClasses[clsPrefix + '-' + size] = true;
15610 }
15611
15612 return _react2["default"].createElement(
15613 'div',
15614 _extends({}, props, {
15615 tabIndex: '-1',
15616 role: 'dialog',
15617 style: modalStyle,
15618 className: (0, _classnames2["default"])(className, uClassName)
15619 }),
15620 _react2["default"].createElement(
15621 'div',
15622 { className: (0, _classnames2["default"])(dialogClassName, dialogClasses), style: style },
15623 _react2["default"].createElement(
15624 'div',
15625 { style: contentStyle, className: (0, _classnames2["default"])([clsPrefix + '-content']), role: 'document' },
15626 children
15627 )
15628 )
15629 );
15630 };
15631
15632 return ModalDialog;
15633 }(_react2["default"].Component);
15634
15635 ModalDialog.propTypes = propTypes;
15636 ModalDialog.defaultProps = defaultProps;
15637
15638 exports["default"] = ModalDialog;
15639 module.exports = exports['default'];
15640
15641/***/ }),
15642/* 148 */
15643/***/ (function(module, exports, __webpack_require__) {
15644
15645 'use strict';
15646
15647 Object.defineProperty(exports, "__esModule", {
15648 value: true
15649 });
15650
15651 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; };
15652
15653 var _classnames = __webpack_require__(5);
15654
15655 var _classnames2 = _interopRequireDefault(_classnames);
15656
15657 var _react = __webpack_require__(1);
15658
15659 var _react2 = _interopRequireDefault(_react);
15660
15661 var _tinperBeeCore = __webpack_require__(26);
15662
15663 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15664
15665 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; }
15666
15667 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; }
15668
15669 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15670
15671 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; }
15672
15673 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); }
15674
15675 var propTypes = {
15676 componentClass: _tinperBeeCore.elementType
15677 };
15678
15679 var defaultProps = {
15680 componentClass: 'div',
15681 clsPrefix: 'u-modal-footer'
15682 };
15683
15684 var ModalFooter = function (_React$Component) {
15685 _inherits(ModalFooter, _React$Component);
15686
15687 function ModalFooter() {
15688 _classCallCheck(this, ModalFooter);
15689
15690 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
15691 }
15692
15693 ModalFooter.prototype.render = function render() {
15694 var _props = this.props,
15695 Component = _props.componentClass,
15696 clsPrefix = _props.clsPrefix,
15697 className = _props.className,
15698 props = _objectWithoutProperties(_props, ['componentClass', 'clsPrefix', 'className']);
15699
15700 var classes = {};
15701 classes['' + clsPrefix] = true;
15702
15703 return _react2["default"].createElement(Component, _extends({}, props, {
15704 className: (0, _classnames2["default"])(className, classes)
15705 }));
15706 };
15707
15708 return ModalFooter;
15709 }(_react2["default"].Component);
15710
15711 ModalFooter.propTypes = propTypes;
15712 ModalFooter.defaultProps = defaultProps;
15713
15714 exports["default"] = ModalFooter;
15715 module.exports = exports['default'];
15716
15717/***/ }),
15718/* 149 */
15719/***/ (function(module, exports, __webpack_require__) {
15720
15721 'use strict';
15722
15723 Object.defineProperty(exports, "__esModule", {
15724 value: true
15725 });
15726
15727 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; };
15728
15729 var _classnames = __webpack_require__(5);
15730
15731 var _classnames2 = _interopRequireDefault(_classnames);
15732
15733 var _react = __webpack_require__(1);
15734
15735 var _react2 = _interopRequireDefault(_react);
15736
15737 var _propTypes = __webpack_require__(6);
15738
15739 var _propTypes2 = _interopRequireDefault(_propTypes);
15740
15741 var _tinperBeeCore = __webpack_require__(26);
15742
15743 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15744
15745 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; }
15746
15747 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; }
15748
15749 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15750
15751 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; }
15752
15753 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); }
15754
15755 var propTypes = {
15756
15757 /**
15758 * 是否显示关闭按钮
15759 */
15760 closeButton: _propTypes2["default"].bool,
15761
15762 /**
15763 * 关闭时的钩子函数
15764 */
15765 onHide: _propTypes2["default"].func
15766 };
15767
15768 var defaultProps = {
15769 'aria-label': 'Close',
15770 closeButton: false,
15771 clsPrefix: 'u-modal-header'
15772 };
15773
15774 var contextTypes = {
15775 $u_modal: _propTypes2["default"].shape({
15776 onHide: _propTypes2["default"].func
15777 })
15778 };
15779
15780 var ModalHeader = function (_React$Component) {
15781 _inherits(ModalHeader, _React$Component);
15782
15783 function ModalHeader() {
15784 _classCallCheck(this, ModalHeader);
15785
15786 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
15787 }
15788
15789 ModalHeader.prototype.render = function render() {
15790 var _props = this.props,
15791 label = _props['aria-label'],
15792 closeButton = _props.closeButton,
15793 onHide = _props.onHide,
15794 className = _props.className,
15795 clsPrefix = _props.clsPrefix,
15796 children = _props.children,
15797 props = _objectWithoutProperties(_props, ['aria-label', 'closeButton', 'onHide', 'className', 'clsPrefix', 'children']);
15798
15799 var modal = this.context.$u_modal;
15800
15801 var classes = {};
15802 classes['' + clsPrefix] = true;
15803
15804 return _react2["default"].createElement(
15805 'div',
15806 _extends({}, props, {
15807 className: (0, _classnames2["default"])(className, classes)
15808 }),
15809 closeButton && _react2["default"].createElement(
15810 'button',
15811 {
15812 type: 'button',
15813 className: 'u-close',
15814 'aria-label': label,
15815 onClick: (0, _tinperBeeCore.createChainedFunction)(modal.onHide, onHide)
15816 },
15817 _react2["default"].createElement(
15818 'span',
15819 { 'aria-hidden': 'true' },
15820 _react2["default"].createElement('i', { className: 'uf uf-close' })
15821 )
15822 ),
15823 children
15824 );
15825 };
15826
15827 return ModalHeader;
15828 }(_react2["default"].Component);
15829
15830 ModalHeader.propTypes = propTypes;
15831 ModalHeader.defaultProps = defaultProps;
15832 ModalHeader.contextTypes = contextTypes;
15833
15834 exports["default"] = ModalHeader;
15835 module.exports = exports['default'];
15836
15837/***/ }),
15838/* 150 */
15839/***/ (function(module, exports, __webpack_require__) {
15840
15841 'use strict';
15842
15843 Object.defineProperty(exports, "__esModule", {
15844 value: true
15845 });
15846
15847 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; };
15848
15849 var _classnames = __webpack_require__(5);
15850
15851 var _classnames2 = _interopRequireDefault(_classnames);
15852
15853 var _react = __webpack_require__(1);
15854
15855 var _react2 = _interopRequireDefault(_react);
15856
15857 var _tinperBeeCore = __webpack_require__(26);
15858
15859 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15860
15861 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; }
15862
15863 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; }
15864
15865 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15866
15867 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; }
15868
15869 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); }
15870
15871 var propTypes = {
15872 componentClass: _tinperBeeCore.elementType
15873 };
15874
15875 var defaultProps = {
15876 componentClass: 'h4',
15877 clsPrefix: 'u-modal-title'
15878 };
15879
15880 var ModalTitle = function (_React$Component) {
15881 _inherits(ModalTitle, _React$Component);
15882
15883 function ModalTitle() {
15884 _classCallCheck(this, ModalTitle);
15885
15886 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
15887 }
15888
15889 ModalTitle.prototype.render = function render() {
15890 var _props = this.props,
15891 Component = _props.componentClass,
15892 className = _props.className,
15893 clsPrefix = _props.clsPrefix,
15894 props = _objectWithoutProperties(_props, ['componentClass', 'className', 'clsPrefix']);
15895
15896 var classes = {};
15897 classes['' + clsPrefix] = true;
15898
15899 return _react2["default"].createElement(Component, _extends({}, props, {
15900 className: (0, _classnames2["default"])(className, classes)
15901 }));
15902 };
15903
15904 return ModalTitle;
15905 }(_react2["default"].Component);
15906
15907 ModalTitle.propTypes = propTypes;
15908 ModalTitle.defaultProps = defaultProps;
15909
15910 exports["default"] = ModalTitle;
15911 module.exports = exports['default'];
15912
15913/***/ }),
15914/* 151 */
15915/***/ (function(module, exports, __webpack_require__) {
15916
15917 'use strict';
15918
15919 Object.defineProperty(exports, "__esModule", {
15920 value: true
15921 });
15922
15923 var _FormControl = __webpack_require__(152);
15924
15925 var _FormControl2 = _interopRequireDefault(_FormControl);
15926
15927 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15928
15929 exports["default"] = _FormControl2["default"];
15930 module.exports = exports['default'];
15931
15932/***/ }),
15933/* 152 */
15934/***/ (function(module, exports, __webpack_require__) {
15935
15936 'use strict';
15937
15938 Object.defineProperty(exports, "__esModule", {
15939 value: true
15940 });
15941
15942 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; };
15943
15944 var _react = __webpack_require__(1);
15945
15946 var _react2 = _interopRequireDefault(_react);
15947
15948 var _classnames = __webpack_require__(5);
15949
15950 var _classnames2 = _interopRequireDefault(_classnames);
15951
15952 var _beeIcon = __webpack_require__(105);
15953
15954 var _beeIcon2 = _interopRequireDefault(_beeIcon);
15955
15956 var _propTypes = __webpack_require__(6);
15957
15958 var _propTypes2 = _interopRequireDefault(_propTypes);
15959
15960 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15961
15962 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; }
15963
15964 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; }
15965
15966 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
15967
15968 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; }
15969
15970 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); }
15971
15972 var propTypes = {
15973 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string]),
15974 type: _propTypes2["default"].string,
15975 size: _propTypes2["default"].oneOf(['sm', 'md', 'lg']),
15976 onSearch: _propTypes2["default"].func,
15977 onChange: _propTypes2["default"].func,
15978 onBlur: _propTypes2["default"].func,
15979 showClose: _propTypes2["default"].bool,
15980 focusSelect: _propTypes2["default"].bool
15981 };
15982
15983 var defaultProps = {
15984 componentClass: 'input',
15985 clsPrefix: 'u-form-control',
15986 type: 'text',
15987 size: 'md'
15988 };
15989
15990 var FormControl = function (_React$Component) {
15991 _inherits(FormControl, _React$Component);
15992
15993 function FormControl(props) {
15994 _classCallCheck(this, FormControl);
15995
15996 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
15997
15998 _this.handleSearchChange = function (e) {
15999 var onChange = _this.props.onChange;
16000
16001 var value = _this.input.value;
16002 _this.setState({
16003 value: value,
16004 showSearch: value == null || value === ""
16005 });
16006 if (onChange) {
16007 onChange(value, e);
16008 }
16009 };
16010
16011 _this.handleChange = function (e) {
16012 var onChange = _this.props.onChange;
16013
16014 var value = _this.input.value;
16015 _this.setState({
16016 showClose: true
16017 });
16018 if (onChange) {
16019 onChange(value, e);
16020 }
16021 };
16022
16023 _this.clearValue = function () {
16024 var onChange = _this.props.onChange;
16025
16026 _this.setState({
16027 showSearch: true,
16028 value: "",
16029 showClose: false
16030 });
16031 if (onChange) {
16032 onChange("");
16033 }
16034 _this.input.focus();
16035 };
16036
16037 _this.handleKeyDown = function (e) {
16038 var _this$props = _this.props,
16039 onSearch = _this$props.onSearch,
16040 type = _this$props.type;
16041
16042 if (e.keyCode === 13 && type === "search") {
16043 if (onSearch) {
16044 onSearch(_this.input.value);
16045 }
16046 }
16047 };
16048
16049 _this.handleSearch = function (e) {
16050 var onSearch = _this.props.onSearch;
16051
16052 if (onSearch) onSearch(_this.input.value);
16053 };
16054
16055 _this.handleBlur = function (e) {
16056 var value = _this.state.value;
16057 var onBlur = _this.props.onBlur;
16058
16059
16060 if (onBlur) {
16061 onBlur(value, e);
16062 }
16063 };
16064
16065 _this.handleFocus = function (e) {
16066 var value = _this.state.value;
16067 var onFocus = _this.props.onFocus;
16068
16069 if (_this.props.focusSelect) {
16070 _this.input.select();
16071 }
16072 if (onFocus) {
16073 onFocus(value, e);
16074 }
16075 };
16076
16077 _this.renderInput = function () {
16078 var _this$props2 = _this.props,
16079 Component = _this$props2.componentClass,
16080 type = _this$props2.type,
16081 className = _this$props2.className,
16082 size = _this$props2.size,
16083 clsPrefix = _this$props2.clsPrefix,
16084 value = _this$props2.value,
16085 onChange = _this$props2.onChange,
16086 onSearch = _this$props2.onSearch,
16087 onBlur = _this$props2.onBlur,
16088 showClose = _this$props2.showClose,
16089 focusSelect = _this$props2.focusSelect,
16090 others = _objectWithoutProperties(_this$props2, ['componentClass', 'type', 'className', 'size', 'clsPrefix', 'value', 'onChange', 'onSearch', 'onBlur', 'showClose', 'focusSelect']);
16091 // input[type="file"] 不应该有类名 .form-control.
16092
16093
16094 var classes = {};
16095 if (size) {
16096 classes['' + size] = true;
16097 }
16098
16099 var classNames = void 0;
16100 if (type !== 'file') {
16101 classNames = (0, _classnames2["default"])(clsPrefix, classes);
16102 }
16103
16104 return showClose ? _react2["default"].createElement(
16105 'div',
16106 { className: (0, _classnames2["default"])(clsPrefix + '-close', clsPrefix + '-affix-wrapper', className) },
16107 _react2["default"].createElement(Component, _extends({}, others, {
16108 type: type,
16109 ref: function ref(el) {
16110 return _this.input = el;
16111 },
16112 value: value,
16113 onChange: _this.handleChange,
16114 onBlur: _this.handleBlur,
16115 onFocus: _this.handleFocus,
16116 className: (0, _classnames2["default"])(className, classNames)
16117 })),
16118 _react2["default"].createElement(
16119 'div',
16120 { className: clsPrefix + '-suffix' },
16121 _this.state.showClose ? _react2["default"].createElement(_beeIcon2["default"], { onClick: _this.clearValue, type: 'uf-close-c' }) : ''
16122 )
16123 ) : _react2["default"].createElement(Component, _extends({}, others, {
16124 type: type,
16125 ref: function ref(el) {
16126 return _this.input = el;
16127 },
16128 value: value,
16129 onChange: _this.handleChange,
16130 onBlur: _this.handleBlur,
16131 onFocus: _this.handleFocus,
16132 className: (0, _classnames2["default"])(className, classNames)
16133 }));
16134 };
16135
16136 _this.renderSearch = function () {
16137 var _this$props3 = _this.props,
16138 Component = _this$props3.componentClass,
16139 type = _this$props3.type,
16140 className = _this$props3.className,
16141 size = _this$props3.size,
16142 clsPrefix = _this$props3.clsPrefix,
16143 value = _this$props3.value,
16144 onChange = _this$props3.onChange,
16145 onSearch = _this$props3.onSearch,
16146 onBlur = _this$props3.onBlur,
16147 others = _objectWithoutProperties(_this$props3, ['componentClass', 'type', 'className', 'size', 'clsPrefix', 'value', 'onChange', 'onSearch', 'onBlur']);
16148 // input[type="file"] 不应该有类名 .form-control.
16149
16150
16151 var classes = {};
16152 if (size) {
16153 classes['' + size] = true;
16154 }
16155 classes[clsPrefix + '-search'] = true;
16156
16157 if (type === "search") {
16158 return _react2["default"].createElement(
16159 'div',
16160 { className: (0, _classnames2["default"])(clsPrefix + '-search', clsPrefix + '-affix-wrapper', className) },
16161 _react2["default"].createElement(Component, _extends({}, others, {
16162 type: type,
16163 ref: function ref(el) {
16164 return _this.input = el;
16165 },
16166 onChange: _this.handleSearchChange,
16167 value: value,
16168 onKeyDown: _this.handleKeyDown,
16169 onBlur: _this.handleBlur,
16170 onFocus: _this.handleFocus,
16171 className: (0, _classnames2["default"])(className, clsPrefix, classes)
16172 })),
16173 _react2["default"].createElement(
16174 'div',
16175 { className: clsPrefix + '-suffix' },
16176 _react2["default"].createElement(_beeIcon2["default"], { type: 'uf-search', onClick: _this.handleSearch })
16177 )
16178 );
16179 }
16180 };
16181
16182 _this.state = {
16183 showSearch: !props.value,
16184 value: props.value == null ? "" : props.value,
16185 showClose: false
16186 };
16187 _this.input = {};
16188 return _this;
16189 }
16190
16191 FormControl.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProp) {
16192 if (nextProp.value !== this.state.value) {
16193 this.setState({ value: nextProp.value });
16194 }
16195 };
16196
16197 FormControl.prototype.render = function render() {
16198
16199 if (this.props.type === "search") {
16200 return this.renderSearch();
16201 }
16202
16203 return this.renderInput();
16204 };
16205
16206 return FormControl;
16207 }(_react2["default"].Component);
16208
16209 FormControl.propTypes = propTypes;
16210 FormControl.defaultProps = defaultProps;
16211
16212 exports["default"] = FormControl;
16213 module.exports = exports['default'];
16214
16215/***/ }),
16216/* 153 */
16217/***/ (function(module, exports, __webpack_require__) {
16218
16219 'use strict';
16220
16221 Object.defineProperty(exports, "__esModule", {
16222 value: true
16223 });
16224
16225 var _Button = __webpack_require__(154);
16226
16227 var _Button2 = _interopRequireDefault(_Button);
16228
16229 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16230
16231 exports["default"] = _Button2["default"];
16232 module.exports = exports['default'];
16233
16234/***/ }),
16235/* 154 */
16236/***/ (function(module, exports, __webpack_require__) {
16237
16238 'use strict';
16239
16240 Object.defineProperty(exports, "__esModule", {
16241 value: true
16242 });
16243
16244 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; };
16245
16246 var _react = __webpack_require__(1);
16247
16248 var _react2 = _interopRequireDefault(_react);
16249
16250 var _reactDom = __webpack_require__(2);
16251
16252 var _reactDom2 = _interopRequireDefault(_reactDom);
16253
16254 var _propTypes = __webpack_require__(6);
16255
16256 var _propTypes2 = _interopRequireDefault(_propTypes);
16257
16258 var _classnames = __webpack_require__(5);
16259
16260 var _classnames2 = _interopRequireDefault(_classnames);
16261
16262 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
16263
16264 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; }
16265
16266 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; }
16267
16268 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16269
16270 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; }
16271
16272 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); }
16273
16274 var propTypes = {
16275 /**
16276 * @title 尺寸
16277 */
16278 size: _propTypes2["default"].oneOf(['sm', 'md', 'xg', 'lg']),
16279 /**
16280 * @title 样式
16281 */
16282 style: _propTypes2["default"].object,
16283 /**
16284 * @title 形状
16285 */
16286 shape: _propTypes2["default"].oneOf(['block', 'round', 'border', 'squared', 'floating', 'pillRight', 'pillLeft', 'icon']),
16287
16288 bordered: _propTypes2["default"].bool,
16289 /**
16290 * @title 类型
16291 */
16292 colors: _propTypes2["default"].oneOf(['primary', 'secondary', 'accent', 'success', 'info', 'warning', 'danger', 'dark', 'light', 'default']),
16293 /**
16294 * @title 是否禁用
16295 * @veIgnore
16296 */
16297 disabled: _propTypes2["default"].bool,
16298 /**
16299 * @title 类名
16300 * @veIgnore
16301 */
16302 className: _propTypes2["default"].string,
16303
16304 /**
16305 * @title <button> 的 type
16306 * @veIgnore
16307 */
16308 htmlType: _propTypes2["default"].oneOf(['submit', 'button', 'reset']),
16309 isSubmit: _propTypes2["default"].bool //是否作为form的提交按钮
16310 };
16311
16312 var defaultProps = {
16313 disabled: false,
16314 htmlType: 'button',
16315 clsPrefix: 'u-button',
16316 bordered: false,
16317 isSubmit: false
16318 };
16319
16320 var sizeMap = {
16321 sm: 'sm',
16322 md: 'md',
16323 xg: 'xg',
16324 lg: 'lg'
16325 },
16326 colorsMap = {
16327 primary: 'primary',
16328 secondary: 'secondary',
16329 accent: 'accent',
16330 success: 'success',
16331 info: 'info',
16332 warning: 'warning',
16333 danger: 'danger',
16334 dark: 'dark',
16335 light: 'light'
16336 },
16337 shapeMap = {
16338 block: 'block',
16339 round: 'round',
16340 border: 'border',
16341 squared: 'squared',
16342 floating: 'floating',
16343 pillRight: 'pill-right',
16344 pillLeft: 'pill-left',
16345 icon: 'icon'
16346 };
16347
16348 var Button = function (_Component) {
16349 _inherits(Button, _Component);
16350
16351 function Button(props) {
16352 _classCallCheck(this, Button);
16353
16354 return _possibleConstructorReturn(this, _Component.call(this, props));
16355 }
16356
16357 Button.prototype.render = function render() {
16358 var _props = this.props,
16359 colors = _props.colors,
16360 shape = _props.shape,
16361 disabled = _props.disabled,
16362 className = _props.className,
16363 size = _props.size,
16364 bordered = _props.bordered,
16365 children = _props.children,
16366 htmlType = _props.htmlType,
16367 clsPrefix = _props.clsPrefix,
16368 isSubmit = _props.isSubmit,
16369 others = _objectWithoutProperties(_props, ['colors', 'shape', 'disabled', 'className', 'size', 'bordered', 'children', 'htmlType', 'clsPrefix', 'isSubmit']);
16370
16371 var clsObj = {};
16372 if (className) {
16373 clsObj[className] = true;
16374 }
16375 if (sizeMap[size]) {
16376 clsObj[clsPrefix + '-' + sizeMap[size]] = true;
16377 }
16378
16379 if (shapeMap[shape]) {
16380 clsObj[clsPrefix + '-' + shapeMap[shape]] = true;
16381 }
16382 if (colorsMap[colors]) {
16383 clsObj[clsPrefix + '-' + colorsMap[colors]] = true;
16384 }
16385 if (bordered) {
16386 clsObj[clsPrefix + '-border'] = bordered;
16387 }
16388 var classes = (0, _classnames2["default"])(clsPrefix, clsObj);
16389 return _react2["default"].createElement(
16390 'button',
16391 _extends({
16392 type: htmlType,
16393 className: classes,
16394 disabled: disabled
16395 }, others),
16396 this.props.children
16397 );
16398 };
16399
16400 return Button;
16401 }(_react.Component);
16402
16403 Button.propTypes = propTypes;
16404 Button.defaultProps = defaultProps;
16405
16406 exports["default"] = Button;
16407 module.exports = exports['default'];
16408
16409/***/ }),
16410/* 155 */
16411/***/ (function(module, exports, __webpack_require__) {
16412
16413 'use strict';
16414
16415 Object.defineProperty(exports, "__esModule", {
16416 value: true
16417 });
16418
16419 var _react = __webpack_require__(1);
16420
16421 var _react2 = _interopRequireDefault(_react);
16422
16423 var _src = __webpack_require__(156);
16424
16425 var _src2 = _interopRequireDefault(_src);
16426
16427 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
16428
16429 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; }
16430
16431 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16432
16433 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; }
16434
16435 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); } /**
16436 *
16437 * @title 基本示例
16438 * @description 基本示例
16439 *
16440 */
16441
16442
16443 var Demo1 = function (_Component) {
16444 _inherits(Demo1, _Component);
16445
16446 function Demo1(props) {
16447 _classCallCheck(this, Demo1);
16448
16449 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
16450
16451 _this.state = {
16452 anthors: [{
16453 href: "one",
16454 name: "RISE",
16455 content: " Welcome to the war we've only begun so \n " + "Pick up your weapon and face it \n " + "There's blood on the crown go and take it \n " + "You get one shot to make it out alive so \n " + "Higher and higher you chase it \n " + "It's deep in your bones go and take it \n " + "This is your moment now is your time so \n " + "Prove yourself and \n " + "RISE RISE"
16456 }, {
16457 href: "two",
16458 name: "Legends",
16459 content: " Legends never die when the world is calling you \n " + "Can you hear them screaming out your name \n " + "Legends never die they become a part of you \n " + "Every time you bleed for reaching greatness \n " + "Relentless you survive \n " + "They never lose hope when everything's cold and the fighting's near \n " + "It's deep in their bones they'll run into smoke when the fire is fierce \n " + "Oh pick yourself up 'cause"
16460 }, {
16461 href: "three",
16462 name: "Ignite",
16463 content: " There's a fire that burns inside \n " + "It's an instinct that never lies \n " + "The target's tattooed between our eyes \n " + "Stand and fight \n Under the lights on the high stage \n " + "A part of your life it can take away \n " + "Just like the blood running through your veins \n " + "Everyone's watching through your eyes"
16464 }, {
16465 href: "four",
16466 name: "Worlds Collide",
16467 content: " Do we fight to hold our heads up high \n " + "And beat the drum to what we love \n " + "Risk the fall, oh we have felt it all \n " + "Come crashing down from far above \n " + "Stars arising, countless worlds colliding \n " + "Only one will take it all \n " + "Can we bring to fall the giants \n " + "Can we make the final call"
16468 }, {
16469 href: "five",
16470 name: "Warriors",
16471 content: " As a child, you would wait \n " + "And watch from far away. \n " + "But you always knew that you'll be the one \n " + "that work while they all play. \n " + "And you, you lay, awake at night and scheme \n " + "of all the things that you would change \n " + "but it was just a dream! \n " + "Here we are, don't turn away now \n " + "we are the warriors that built this town."
16472 }]
16473 };
16474 return _this;
16475 }
16476
16477 Demo1.prototype.render = function render() {
16478 return _react2['default'].createElement(
16479 'div',
16480 { className: 'demo1' },
16481 _react2['default'].createElement(
16482 'div',
16483 { className: 'content' },
16484 this.state.anthors.map(function (item) {
16485 return _react2['default'].createElement(
16486 'p',
16487 { id: item.href },
16488 _react2['default'].createElement(
16489 'pre',
16490 null,
16491 item.content
16492 )
16493 );
16494 })
16495 ),
16496 _react2['default'].createElement(
16497 _src2['default'],
16498 { selector: '#my-awesome-nav a' },
16499 _react2['default'].createElement(
16500 'ul',
16501 { id: 'my-awesome-nav' },
16502 this.state.anthors.map(function (item) {
16503 return _react2['default'].createElement(
16504 'li',
16505 null,
16506 _react2['default'].createElement(
16507 'a',
16508 { href: '#' + item.href },
16509 item.name
16510 )
16511 );
16512 })
16513 )
16514 )
16515 );
16516 };
16517
16518 return Demo1;
16519 }(_react.Component);
16520
16521 exports['default'] = Demo1;
16522 module.exports = exports['default'];
16523
16524/***/ }),
16525/* 156 */
16526/***/ (function(module, exports, __webpack_require__) {
16527
16528 'use strict';
16529
16530 Object.defineProperty(exports, "__esModule", {
16531 value: true
16532 });
16533
16534 var _Anchor = __webpack_require__(157);
16535
16536 var _Anchor2 = _interopRequireDefault(_Anchor);
16537
16538 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
16539
16540 exports['default'] = _Anchor2['default'];
16541 module.exports = exports['default'];
16542
16543/***/ }),
16544/* 157 */
16545/***/ (function(module, exports, __webpack_require__) {
16546
16547 'use strict';
16548
16549 Object.defineProperty(exports, "__esModule", {
16550 value: true
16551 });
16552
16553 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; };
16554
16555 var _react = __webpack_require__(1);
16556
16557 var _react2 = _interopRequireDefault(_react);
16558
16559 var _reactDom = __webpack_require__(2);
16560
16561 var _reactDom2 = _interopRequireDefault(_reactDom);
16562
16563 var _propTypes = __webpack_require__(6);
16564
16565 var _propTypes2 = _interopRequireDefault(_propTypes);
16566
16567 var _gumshoejs = __webpack_require__(158);
16568
16569 var _gumshoejs2 = _interopRequireDefault(_gumshoejs);
16570
16571 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
16572
16573 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; }
16574
16575 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16576
16577 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; }
16578
16579 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); }
16580
16581 var propTypes = {
16582 selector: _propTypes2['default'].string.isRequired, //选择器
16583 offset: _propTypes2['default'].func, //偏移量
16584 navClass: _propTypes2['default'].string, //当前被激活锚点新增的类名
16585 contentClass: _propTypes2['default'].string, //当前被激活的区域
16586 nested: _propTypes2['default'].bool,
16587 nestedClass: _propTypes2['default'].string,
16588 reflow: _propTypes2['default'].bool,
16589 event: _propTypes2['default'].bool, //是否添加监听事件
16590 activeHandle: _propTypes2['default'].func, //被激活的回调
16591 deactiveHandle: _propTypes2['default'].func //激活后的回调
16592 };
16593 var defaultProps = {
16594 navClass: 'active', // applied to the nav list item
16595 contentClass: 'active', // applied to the content
16596
16597 // Nested navigation
16598 nested: false, // if true, add classes to parents of active link
16599 nestedClass: 'active', // applied to the parent items
16600
16601 // Offset & reflow
16602 offset: 0, // how far from the top of the page to activate a content area
16603 reflow: false, // if true, listen for reflows
16604
16605 // Event support
16606 events: true, // if true, emit custom events
16607 activeHandle: function activeHandle() {},
16608 deactiveHandle: function deactiveHandle() {}
16609 };
16610
16611 var Anchor = function (_Component) {
16612 _inherits(Anchor, _Component);
16613
16614 function Anchor() {
16615 _classCallCheck(this, Anchor);
16616
16617 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
16618 }
16619
16620 Anchor.prototype.componentDidMount = function componentDidMount() {
16621 var props = this.props;
16622 this.anchor = new _gumshoejs2['default'](props.selector, _extends({}, props));
16623 this.anchorDOM.addEventListener('gumshoeActivate', function (event) {
16624 // The list item
16625 var li = event.target; //列表
16626
16627 // The link
16628 var link = event.detail.link; //a标签
16629
16630 // The content
16631 var content = event.detail.content; //内容区域
16632
16633 props.activeHandle(li, link, content);
16634 });
16635 this.anchorDOM.addEventListener('gumshoeDeactivate', function (event) {
16636 var li = event.target; //列表
16637
16638 // The link
16639 var link = event.detail.link; //a标签
16640
16641 // The content
16642 var content = event.detail.content; //内容区域
16643
16644 props.deactiveHandle(li, link, content);
16645 });
16646 };
16647
16648 Anchor.prototype.componentDidUpdate = function componentDidUpdate() {
16649 this.anchor.setup();
16650 this.anchor.detect();
16651 };
16652
16653 Anchor.prototype.componentWillUnmount = function componentWillUnmount() {
16654 this.anchor.destroy();
16655 };
16656
16657 Anchor.prototype.render = function render() {
16658 var _this2 = this;
16659
16660 return _react2['default'].createElement(
16661 'div',
16662 { className: 'u-anchor', ref: function ref(_ref) {
16663 _this2.anchorDOM = _ref;
16664 } },
16665 this.props.children
16666 );
16667 };
16668
16669 return Anchor;
16670 }(_react.Component);
16671
16672 ;
16673
16674 Anchor.propTypes = propTypes;
16675 Anchor.defaultProps = defaultProps;
16676 exports['default'] = Anchor;
16677 module.exports = exports['default'];
16678
16679/***/ }),
16680/* 158 */
16681/***/ (function(module, exports, __webpack_require__) {
16682
16683 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* WEBPACK VAR INJECTION */(function(global) {/*! gumshoejs v5.1.0 | (c) 2019 Chris Ferdinandi | MIT License | http://github.com/cferdinandi/gumshoe */
16684 !(function(t,e){ true?!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function(){return e(t)}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)):"object"==typeof exports?module.exports=e(t):t.Gumshoe=e(t)})("undefined"!=typeof global?global:"undefined"!=typeof window?window:this,(function(t){"use strict";var e={navClass:"active",contentClass:"active",nested:!1,nestedClass:"active",offset:0,reflow:!1,events:!0},n=function(t,e,n){if(n.settings.events){var o=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e.dispatchEvent(o)}},o=function(t){var e=0;if(t.offsetParent)for(;t;)e+=t.offsetTop,t=t.offsetParent;return e>=0?e:0},s=function(t){t.sort((function(t,e){return o(t.content)<o(e.content)?-1:1}))},c=function(e,n,o){var s=e.getBoundingClientRect(),c=(function(t){return"function"==typeof t.offset?parseFloat(t.offset()):parseFloat(t.offset)})(n);return o?parseInt(s.bottom,10)<(t.innerHeight||document.documentElement.clientHeight):parseInt(s.top,10)<=c},i=function(){return t.innerHeight+t.pageYOffset>=Math.max(document.body.scrollHeight,document.documentElement.scrollHeight,document.body.offsetHeight,document.documentElement.offsetHeight,document.body.clientHeight,document.documentElement.clientHeight)},r=function(t,e){var n=t[t.length-1];if(function(t,e){return!(!i()||!c(t.content,e,!0))}(n,e))return n;for(var o=t.length-1;o>=0;o--)if(c(t[o].content,e))return t[o]},a=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.remove(e.nestedClass),a(n,e))}},l=function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.remove(e.navClass),t.content.classList.remove(e.contentClass),a(o,e),n("gumshoeDeactivate",o,{link:t.nav,content:t.content,settings:e}))}},u=function(t,e){if(e.nested){var n=t.parentNode.closest("li");n&&(n.classList.add(e.nestedClass),u(n,e))}};return function(o,c){var i,a,f,d,v,m={};m.setup=function(){i=document.querySelectorAll(o),a=[],Array.prototype.forEach.call(i,(function(t){var e=document.getElementById(decodeURIComponent(t.hash.substr(1)));e&&a.push({nav:t,content:e})})),s(a)},m.detect=function(){var t=r(a,v);t?f&&t.content===f.content||(l(f,v),(function(t,e){if(t){var o=t.nav.closest("li");o&&(o.classList.add(e.navClass),t.content.classList.add(e.contentClass),u(o,e),n("gumshoeActivate",o,{link:t.nav,content:t.content,settings:e}))}})(t,v),f=t):f&&(l(f,v),f=null)};var p=function(e){d&&t.cancelAnimationFrame(d),d=t.requestAnimationFrame(m.detect)},h=function(e){d&&t.cancelAnimationFrame(d),d=t.requestAnimationFrame((function(){s(),m.detect()}))};m.destroy=function(){f&&l(f),t.removeEventListener("scroll",p,!1),v.reflow&&t.removeEventListener("resize",h,!1),a=null,i=null,f=null,d=null,v=null};return v=(function(){var t={};return Array.prototype.forEach.call(arguments,(function(e){for(var n in e){if(!e.hasOwnProperty(n))return;t[n]=e[n]}})),t})(e,c||{}),m.setup(),m.detect(),t.addEventListener("scroll",p,!1),v.reflow&&t.addEventListener("resize",h,!1),m}}));
16685 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
16686
16687/***/ })
16688/******/ ]);
16689//# sourceMappingURL=demo.js.map
\No newline at end of file