UNPKG

251 kBJavaScriptView Raw
1/******/ (function(modules) { // webpackBootstrap
2/******/ // The module cache
3/******/ var installedModules = {};
4/******/
5/******/ // The require function
6/******/ function __webpack_require__(moduleId) {
7/******/
8/******/ // Check if module is in cache
9/******/ if(installedModules[moduleId])
10/******/ return installedModules[moduleId].exports;
11/******/
12/******/ // Create a new module (and put it into the cache)
13/******/ var module = installedModules[moduleId] = {
14/******/ exports: {},
15/******/ id: moduleId,
16/******/ loaded: false
17/******/ };
18/******/
19/******/ // Execute the module function
20/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
21/******/
22/******/ // Flag the module as loaded
23/******/ module.loaded = true;
24/******/
25/******/ // Return the exports of the module
26/******/ return module.exports;
27/******/ }
28/******/
29/******/
30/******/ // expose the modules object (__webpack_modules__)
31/******/ __webpack_require__.m = modules;
32/******/
33/******/ // expose the module cache
34/******/ __webpack_require__.c = installedModules;
35/******/
36/******/ // __webpack_public_path__
37/******/ __webpack_require__.p = "";
38/******/
39/******/ // Load entry module and return exports
40/******/ return __webpack_require__(0);
41/******/ })
42/************************************************************************/
43/******/ ([
44/* 0 */
45/***/ (function(module, exports, __webpack_require__) {
46
47 'use strict';
48
49 var _beeLayout = __webpack_require__(1);
50
51 var _beePanel = __webpack_require__(8);
52
53 var _beeButton = __webpack_require__(82);
54
55 var _beeButton2 = _interopRequireDefault(_beeButton);
56
57 var _react = __webpack_require__(4);
58
59 var _react2 = _interopRequireDefault(_react);
60
61 var _reactDom = __webpack_require__(12);
62
63 var _reactDom2 = _interopRequireDefault(_reactDom);
64
65 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
66
67 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; }
68
69 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
70
71 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; }
72
73 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); }
74
75 var CARET = _react2['default'].createElement('i', { className: 'uf uf-arrow-down' });
76
77 var CARETUP = _react2['default'].createElement('i', { className: 'uf uf-arrow-up' });
78
79 var Demo1 = __webpack_require__(84);var DemoArray = [{ "example": _react2['default'].createElement(Demo1, null), "title": " 基础级联菜单", "code": "/**\r\n *\r\n * @title 基础级联菜单\r\n * @description\r\n *\r\n */\r\n\r\nimport React, { Component } from 'react';\r\n\nimport { Cascader, Row, Col } from 'tinper-bee';\r\n\r\n const options = [\r\n \t{\r\n \t value: '浙江',\r\n \t children: [\r\n \t\t {\r\n \t\t value: '杭州',\r\n \t\t children: [\r\n \t\t\t {\r\n \t\t\t value: '西湖',\r\n \t\t\t children: [\r\n \t\t\t\t {\r\n \t\t\t\t value: '白娘子'\r\n \t\t\t\t },\r\n \t\t\t\t {\r\n \t\t\t\t value: '许仙'\r\n \t\t\t\t }]\r\n \t\t\t }]\r\n \t\t }\r\n \t ]\r\n \t},\r\n \t{\r\n \t value: '江苏',\r\n \t children: [\r\n \t\t {\r\n \t\t value: '南京',\r\n \t\t children: [\r\n \t\t\t {\r\n \t\t\t value: '中华门'\r\n \t\t\t }]\r\n \t\t }\r\n \t ]\r\n \t},\r\n \t{\r\n \t value: '山东'\r\n \t}\r\n ];\r\n class Demo1 extends Component {\r\n\r\n\r\n\tonClickHandler=(data)=>{\r\n\t\tconsole.log(\"data: \",data);\r\n\t}\r\n\r\n \trender(){\r\n \t\treturn(\r\n <Row>\r\n <Col md={4}>\r\n <div className=\"height-150\">\r\n \t<Cascader options = {options} onClick={this.onClickHandler}/>\r\n </div>\r\n </Col>\r\n </Row>\r\n \t\t)\r\n \t}\r\n }\r\n", "desc": "" }];
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.state = {
90 open: false
91 };
92 _this.handleClick = _this.handleClick.bind(_this);
93 return _this;
94 }
95
96 Demo.prototype.handleClick = function handleClick() {
97 this.setState({ open: !this.state.open });
98 };
99
100 Demo.prototype.render = function render() {
101 var _props = this.props,
102 title = _props.title,
103 example = _props.example,
104 code = _props.code,
105 desc = _props.desc,
106 scss_code = _props.scss_code;
107
108 var caret = this.state.open ? CARETUP : CARET;
109 var text = this.state.open ? "隐藏代码" : "查看代码";
110
111 var header = _react2['default'].createElement(
112 'div',
113 null,
114 example,
115 _react2['default'].createElement(
116 _beeButton2['default'],
117 { style: { "marginTop": "10px" }, shape: 'block', onClick: this.handleClick },
118 caret,
119 text
120 )
121 );
122 return _react2['default'].createElement(
123 _beeLayout.Col,
124 { md: 12 },
125 _react2['default'].createElement(
126 'h3',
127 null,
128 title
129 ),
130 _react2['default'].createElement(
131 'p',
132 null,
133 desc
134 ),
135 _react2['default'].createElement(
136 _beePanel.Panel,
137 { collapsible: true, headerContent: true, expanded: this.state.open, colors: 'bordered', header: header,
138 footerStyle: { padding: 0 } },
139 _react2['default'].createElement(
140 'pre',
141 null,
142 _react2['default'].createElement(
143 'code',
144 { className: 'hljs javascript' },
145 code
146 )
147 ),
148 !!scss_code ? _react2['default'].createElement(
149 'pre',
150 null,
151 _react2['default'].createElement(
152 'code',
153 { className: 'hljs css' },
154 scss_code
155 )
156 ) : null
157 )
158 );
159 };
160
161 return Demo;
162 }(_react.Component);
163
164 var DemoGroup = function (_Component2) {
165 _inherits(DemoGroup, _Component2);
166
167 function DemoGroup(props) {
168 _classCallCheck(this, DemoGroup);
169
170 return _possibleConstructorReturn(this, _Component2.call(this, props));
171 }
172
173 DemoGroup.prototype.render = function render() {
174 return _react2['default'].createElement(
175 _beeLayout.Row,
176 null,
177 DemoArray.map(function (child, index) {
178
179 return _react2['default'].createElement(Demo, { example: child.example, title: child.title, code: child.code, scss_code: child.scss_code,
180 desc: child.desc, key: index });
181 })
182 );
183 };
184
185 return DemoGroup;
186 }(_react.Component);
187
188 _reactDom2['default'].render(_react2['default'].createElement(DemoGroup, null), document.getElementById('tinperBeeDemo'));
189
190/***/ }),
191/* 1 */
192/***/ (function(module, exports, __webpack_require__) {
193
194 'use strict';
195
196 Object.defineProperty(exports, "__esModule", {
197 value: true
198 });
199 exports.Con = exports.Row = exports.Col = undefined;
200
201 var _Col2 = __webpack_require__(2);
202
203 var _Col3 = _interopRequireDefault(_Col2);
204
205 var _Row2 = __webpack_require__(6);
206
207 var _Row3 = _interopRequireDefault(_Row2);
208
209 var _Layout = __webpack_require__(7);
210
211 var _Layout2 = _interopRequireDefault(_Layout);
212
213 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
214
215 exports.Col = _Col3["default"];
216 exports.Row = _Row3["default"];
217 exports.Con = _Layout2["default"];
218
219/***/ }),
220/* 2 */
221/***/ (function(module, exports, __webpack_require__) {
222
223 'use strict';
224
225 Object.defineProperty(exports, "__esModule", {
226 value: true
227 });
228
229 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; };
230
231 var _classnames = __webpack_require__(3);
232
233 var _classnames2 = _interopRequireDefault(_classnames);
234
235 var _react = __webpack_require__(4);
236
237 var _react2 = _interopRequireDefault(_react);
238
239 var _propTypes = __webpack_require__(5);
240
241 var _propTypes2 = _interopRequireDefault(_propTypes);
242
243 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
244
245 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; }
246
247 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; }
248
249 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
250
251 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; }
252
253 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); }
254
255 var propTypes = {
256 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string]),
257
258 /**
259 * xs显示列数
260 */
261 xs: _propTypes2["default"].number,
262 /**
263 * sm显示列数
264 */
265 sm: _propTypes2["default"].number,
266 /**
267 * md显示列数
268 */
269 md: _propTypes2["default"].number,
270 /**
271 * lg显示列数
272 */
273 lg: _propTypes2["default"].number,
274 /**
275 * xs偏移列数
276 */
277 xsOffset: _propTypes2["default"].number,
278 /**
279 * sm偏移列数
280 */
281 smOffset: _propTypes2["default"].number,
282 /**
283 * md偏移列数
284 */
285 mdOffset: _propTypes2["default"].number,
286 /**
287 * lg偏移列数
288 */
289 lgOffset: _propTypes2["default"].number,
290 /**
291 * xs右偏移列数
292 */
293 xsPush: _propTypes2["default"].number,
294 /**
295 * sm右偏移列数
296 */
297 smPush: _propTypes2["default"].number,
298 /**
299 * md右偏移列数
300 */
301 mdPush: _propTypes2["default"].number,
302 /**
303 * lg右偏移列数
304 */
305 lgPush: _propTypes2["default"].number,
306 /**
307 * xs左偏移列数
308 */
309 xsPull: _propTypes2["default"].number,
310 /**
311 * sm左偏移列数
312 */
313 smPull: _propTypes2["default"].number,
314 /**
315 * md左偏移列数
316 */
317 mdPull: _propTypes2["default"].number,
318 /**
319 * lg左偏移列数
320 */
321 lgPull: _propTypes2["default"].number
322 };
323
324 var defaultProps = {
325 componentClass: 'div',
326 clsPrefix: 'u-col'
327 };
328
329 var DEVICE_SIZES = ['lg', 'md', 'sm', 'xs'];
330
331 var Col = function (_Component) {
332 _inherits(Col, _Component);
333
334 function Col() {
335 _classCallCheck(this, Col);
336
337 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
338 }
339
340 Col.prototype.render = function render() {
341 var _props = this.props,
342 Component = _props.componentClass,
343 className = _props.className,
344 clsPrefix = _props.clsPrefix,
345 others = _objectWithoutProperties(_props, ['componentClass', 'className', 'clsPrefix']);
346
347 var tbClass = [];
348 /**
349 * 对传入props做样式转化
350 * @type {[type]}
351 */
352 DEVICE_SIZES.forEach(function (size) {
353 function popProp(propSuffix, modifier) {
354 var propName = '' + size + propSuffix;
355 var propValue = others[propName];
356
357 if (propValue != undefined && propValue != null) {
358 tbClass.push(clsPrefix + '-' + size + modifier + '-' + propValue);
359 }
360
361 delete others[propName];
362 }
363
364 popProp('', '');
365 popProp('Offset', '-offset');
366 popProp('Push', '-push');
367 popProp('Pull', '-pull');
368 });
369
370 return _react2["default"].createElement(
371 Component,
372 _extends({
373 className: (0, _classnames2["default"])(tbClass, className)
374 }, others),
375 this.props.children
376 );
377 };
378
379 return Col;
380 }(_react.Component);
381
382 Col.defaultProps = defaultProps;
383 Col.propTypes = propTypes;
384
385 exports["default"] = Col;
386 module.exports = exports['default'];
387
388/***/ }),
389/* 3 */
390/***/ (function(module, exports, __webpack_require__) {
391
392 var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
393 Copyright (c) 2017 Jed Watson.
394 Licensed under the MIT License (MIT), see
395 http://jedwatson.github.io/classnames
396 */
397 /* global define */
398
399 (function () {
400 'use strict';
401
402 var hasOwn = {}.hasOwnProperty;
403
404 function classNames () {
405 var classes = [];
406
407 for (var i = 0; i < arguments.length; i++) {
408 var arg = arguments[i];
409 if (!arg) continue;
410
411 var argType = typeof arg;
412
413 if (argType === 'string' || argType === 'number') {
414 classes.push(arg);
415 } else if (Array.isArray(arg) && arg.length) {
416 var inner = classNames.apply(null, arg);
417 if (inner) {
418 classes.push(inner);
419 }
420 } else if (argType === 'object') {
421 for (var key in arg) {
422 if (hasOwn.call(arg, key) && arg[key]) {
423 classes.push(key);
424 }
425 }
426 }
427 }
428
429 return classes.join(' ');
430 }
431
432 if (typeof module !== 'undefined' && module.exports) {
433 classNames.default = classNames;
434 module.exports = classNames;
435 } else if (true) {
436 // register as 'classnames', consistent with npm package name
437 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
438 return classNames;
439 }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
440 } else {
441 window.classNames = classNames;
442 }
443 }());
444
445
446/***/ }),
447/* 4 */
448/***/ (function(module, exports) {
449
450 module.exports = React;
451
452/***/ }),
453/* 5 */
454/***/ (function(module, exports) {
455
456 module.exports = PropTypes;
457
458/***/ }),
459/* 6 */
460/***/ (function(module, exports, __webpack_require__) {
461
462 'use strict';
463
464 Object.defineProperty(exports, "__esModule", {
465 value: true
466 });
467
468 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; };
469
470 var _classnames = __webpack_require__(3);
471
472 var _classnames2 = _interopRequireDefault(_classnames);
473
474 var _react = __webpack_require__(4);
475
476 var _react2 = _interopRequireDefault(_react);
477
478 var _propTypes = __webpack_require__(5);
479
480 var _propTypes2 = _interopRequireDefault(_propTypes);
481
482 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
483
484 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; }
485
486 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; }
487
488 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
489
490 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; }
491
492 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); }
493
494 var propTypes = {
495 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string])
496 };
497
498 var defaultProps = {
499 componentClass: 'div',
500 clsPrefix: 'u-row'
501 };
502
503 var Row = function (_Component) {
504 _inherits(Row, _Component);
505
506 function Row() {
507 _classCallCheck(this, Row);
508
509 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
510 }
511
512 Row.prototype.render = function render() {
513 var _props = this.props,
514 Component = _props.componentClass,
515 clsPrefix = _props.clsPrefix,
516 className = _props.className,
517 others = _objectWithoutProperties(_props, ['componentClass', 'clsPrefix', 'className']);
518
519 var bsclass = '' + clsPrefix;
520
521 return _react2["default"].createElement(
522 Component,
523 _extends({}, others, {
524 className: (0, _classnames2["default"])(bsclass, className)
525 }),
526 this.props.children
527 );
528 };
529
530 return Row;
531 }(_react.Component);
532
533 Row.propTypes = propTypes;
534 Row.defaultProps = defaultProps;
535
536 exports["default"] = Row;
537 module.exports = exports['default'];
538
539/***/ }),
540/* 7 */
541/***/ (function(module, exports, __webpack_require__) {
542
543 'use strict';
544
545 Object.defineProperty(exports, "__esModule", {
546 value: true
547 });
548
549 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; };
550
551 var _classnames = __webpack_require__(3);
552
553 var _classnames2 = _interopRequireDefault(_classnames);
554
555 var _react = __webpack_require__(4);
556
557 var _react2 = _interopRequireDefault(_react);
558
559 var _propTypes = __webpack_require__(5);
560
561 var _propTypes2 = _interopRequireDefault(_propTypes);
562
563 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
564
565 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; }
566
567 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; }
568
569 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; }
570
571 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
572
573 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; }
574
575 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); }
576
577 var propTypes = {
578 /**
579 * Adds `container-fluid` class.
580 */
581 fluid: _propTypes2["default"].bool,
582 /**
583 * You can use a custom element for this component
584 */
585 componentClass: _propTypes2["default"].oneOfType([_propTypes2["default"].element, _propTypes2["default"].string])
586 };
587
588 var defaultProps = {
589 componentClass: 'div',
590 fluid: false,
591 clsPrefix: 'u-container'
592 };
593
594 var Con = function (_React$Component) {
595 _inherits(Con, _React$Component);
596
597 function Con() {
598 _classCallCheck(this, Con);
599
600 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
601 }
602
603 Con.prototype.render = function render() {
604 var _tbclass;
605
606 var _props = this.props,
607 fluid = _props.fluid,
608 Component = _props.componentClass,
609 clsPrefix = _props.clsPrefix,
610 className = _props.className,
611 others = _objectWithoutProperties(_props, ['fluid', 'componentClass', 'clsPrefix', 'className']);
612
613 var tbclass = (_tbclass = {}, _defineProperty(_tbclass, '' + clsPrefix, !fluid), _defineProperty(_tbclass, clsPrefix + '-fluid', fluid), _tbclass);
614
615 return _react2["default"].createElement(
616 Component,
617 _extends({}, others, {
618 className: (0, _classnames2["default"])(tbclass, className)
619 }),
620 this.props.children
621 );
622 };
623
624 return Con;
625 }(_react2["default"].Component);
626
627 Con.propTypes = propTypes;
628 Con.defaultProps = defaultProps;
629
630 exports["default"] = Con;
631 module.exports = exports['default'];
632
633/***/ }),
634/* 8 */
635/***/ (function(module, exports, __webpack_require__) {
636
637 'use strict';
638
639 Object.defineProperty(exports, "__esModule", {
640 value: true
641 });
642 exports.PanelGroup = exports.Panel = undefined;
643
644 var _Panel2 = __webpack_require__(9);
645
646 var _Panel3 = _interopRequireDefault(_Panel2);
647
648 var _PanelGroup2 = __webpack_require__(81);
649
650 var _PanelGroup3 = _interopRequireDefault(_PanelGroup2);
651
652 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
653
654 exports.Panel = _Panel3["default"];
655 exports.PanelGroup = _PanelGroup3["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
667 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; };
668
669 var _classnames = __webpack_require__(3);
670
671 var _classnames2 = _interopRequireDefault(_classnames);
672
673 var _react = __webpack_require__(4);
674
675 var _react2 = _interopRequireDefault(_react);
676
677 var _beeTransition = __webpack_require__(10);
678
679 var _beeMessage = __webpack_require__(65);
680
681 var _beeMessage2 = _interopRequireDefault(_beeMessage);
682
683 var _propTypes = __webpack_require__(5);
684
685 var _propTypes2 = _interopRequireDefault(_propTypes);
686
687 var _copyToClipboard = __webpack_require__(79);
688
689 var _copyToClipboard2 = _interopRequireDefault(_copyToClipboard);
690
691 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
692
693 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; }
694
695 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; }
696
697 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; }
698
699 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
700
701 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; }
702
703 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); }
704
705 var propTypes = {
706 //是否添加折叠
707 collapsible: _propTypes2["default"].bool,
708 onSelect: _propTypes2["default"].func,
709 //头部组件
710 header: _propTypes2["default"].node,
711 headerStyle: _propTypes2["default"].object,
712 id: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].number]),
713 headerContent: _propTypes2["default"].bool,
714 //footer组件
715 footer: _propTypes2["default"].node,
716 footerStyle: _propTypes2["default"].object,
717 //默认是否打开
718 defaultExpanded: _propTypes2["default"].bool,
719 //是否打开
720 expanded: _propTypes2["default"].bool,
721 //每个panel的标记
722 eventKey: _propTypes2["default"].any,
723 headerRole: _propTypes2["default"].string,
724 panelRole: _propTypes2["default"].string,
725 //颜色
726 colors: _propTypes2["default"].oneOf(['primary', 'accent', 'success', 'info', 'warning', 'danger', 'default', 'bordered']),
727
728 // From Collapse.的扩展动画
729 onEnter: _propTypes2["default"].func,
730 onEntering: _propTypes2["default"].func,
731 onEntered: _propTypes2["default"].func,
732 onExit: _propTypes2["default"].func,
733 onExiting: _propTypes2["default"].func,
734 onExited: _propTypes2["default"].func,
735 //是否可复制内容
736 copyable: _propTypes2["default"].bool
737 };
738
739 var defaultProps = {
740 defaultExpanded: false,
741 clsPrefix: "u-panel",
742 colors: "default"
743 };
744
745 var Panel = function (_React$Component) {
746 _inherits(Panel, _React$Component);
747
748 function Panel(props, context) {
749 _classCallCheck(this, Panel);
750
751 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
752
753 _this.handleClickTitle = _this.handleClickTitle.bind(_this);
754
755 _this.state = {
756 expanded: _this.props.defaultExpanded
757 };
758 return _this;
759 }
760
761 //头部点击事件
762
763
764 Panel.prototype.handleClickTitle = function handleClickTitle(e) {
765 // 不让事件进入事件池
766 e.persist();
767 e.selected = true;
768
769 if (this.props.onSelect) {
770 this.props.onSelect(this.props.eventKey, e);
771 } else {
772 e.preventDefault();
773 }
774
775 if (e.selected) {
776 this.setState({ expanded: !this.state.expanded });
777 }
778 };
779
780 //渲染panelheader
781
782
783 Panel.prototype.renderHeader = function renderHeader(collapsible, header, id, role, expanded, clsPrefix) {
784 var titleClassName = clsPrefix + '-title';
785
786 if (!collapsible) {
787 if (!_react2["default"].isValidElement(header)) {
788 return header;
789 }
790
791 return (0, _react.cloneElement)(header, {
792 className: (0, _classnames2["default"])(header.props.className, titleClassName)
793 });
794 }
795
796 if (!_react2["default"].isValidElement(header)) {
797 return _react2["default"].createElement(
798 'h4',
799 { role: 'presentation', className: titleClassName },
800 this.renderAnchor(header, id, role, expanded)
801 );
802 }
803 if (this.props.headerContent) {
804 return (0, _react.cloneElement)(header, {
805 className: (0, _classnames2["default"])(header.props.className, titleClassName)
806 });
807 }
808
809 return (0, _react.cloneElement)(header, {
810 className: (0, _classnames2["default"])(header.props.className, titleClassName),
811 children: this.renderAnchor(header.props.children, id, role, expanded)
812 });
813 };
814
815 //如果使用链接,渲染为a标签
816
817
818 Panel.prototype.renderAnchor = function renderAnchor(header, id, role, expanded) {
819 return _react2["default"].createElement(
820 'a',
821 {
822 role: role,
823 href: id && '#' + id,
824 'aria-controls': id,
825 'aria-expanded': expanded,
826 'aria-selected': expanded,
827 className: expanded ? null : 'collapsed'
828 },
829 header
830 );
831 };
832
833 //复制代码,弹出提示信息
834
835
836 Panel.prototype.copyDemo = function copyDemo(e) {
837 var panelTarget = e.target.parentNode;
838 var clipBoardContent = panelTarget.firstChild.innerText;
839 (0, _copyToClipboard2["default"])(clipBoardContent);
840 _beeMessage2["default"].create({ content: '复制成功!', color: 'success', duration: 2 });
841 };
842
843 //如果有折叠动画,渲染折叠动画
844
845
846 Panel.prototype.renderCollapsibleBody = function renderCollapsibleBody(id, expanded, role, children, clsPrefix, copyable, animationHooks) {
847 return _react2["default"].createElement(
848 _beeTransition.Collapse,
849 _extends({ 'in': expanded }, animationHooks),
850 _react2["default"].createElement(
851 'div',
852 {
853 id: id,
854 role: role,
855 className: clsPrefix + '-collapse',
856 'aria-hidden': !expanded
857 },
858 this.renderBody(children, clsPrefix, copyable)
859 )
860 );
861 };
862
863 //渲染panelbody
864
865
866 Panel.prototype.renderBody = function renderBody(rawChildren, clsPrefix, copyable) {
867 var self = this;
868 var children = [];
869 var bodyChildren = [];
870
871 var bodyClassName = clsPrefix + '-body';
872 //添加到body的children中
873 function maybeAddBody(self) {
874 if (!bodyChildren.length) {
875 return;
876 }
877 // 给子组件添加key,为了之后触发事件时使用
878 children.push(_react2["default"].createElement(
879 'div',
880 { key: children.length, className: bodyClassName },
881 bodyChildren,
882 copyable && _react2["default"].createElement('i', { className: clsPrefix + '-copy uf uf-files-o', onClick: self.copyDemo })
883 ));
884 bodyChildren = [];
885 }
886
887 //转换为数组,方便复用
888 _react2["default"].Children.toArray(rawChildren).forEach(function (child) {
889 if (_react2["default"].isValidElement(child) && child.props.fill) {
890 maybeAddBody(self);
891
892 //将标示fill设置为undefined
893 children.push((0, _react.cloneElement)(child, { fill: undefined }));
894
895 return;
896 }
897 bodyChildren.push(child);
898 });
899
900 maybeAddBody(self);
901
902 return children;
903 };
904
905 Panel.prototype.render = function render() {
906 var _props = this.props,
907 collapsible = _props.collapsible,
908 header = _props.header,
909 id = _props.id,
910 footer = _props.footer,
911 propsExpanded = _props.expanded,
912 footerStyle = _props.footerStyle,
913 headerStyle = _props.headerStyle,
914 headerRole = _props.headerRole,
915 panelRole = _props.panelRole,
916 className = _props.className,
917 colors = _props.colors,
918 children = _props.children,
919 onEnter = _props.onEnter,
920 onEntering = _props.onEntering,
921 onEntered = _props.onEntered,
922 clsPrefix = _props.clsPrefix,
923 onExit = _props.onExit,
924 headerContent = _props.headerContent,
925 onExiting = _props.onExiting,
926 onExited = _props.onExited,
927 defaultExpanded = _props.defaultExpanded,
928 eventKey = _props.eventKey,
929 onSelect = _props.onSelect,
930 copyable = _props.copyable,
931 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']);
932
933 var expanded = propsExpanded != null ? propsExpanded : this.state.expanded;
934
935 var classes = {};
936 classes['' + clsPrefix] = true;
937 classes[clsPrefix + '-' + colors] = true;
938
939 var headerClass = _defineProperty({}, clsPrefix + '-heading', true);
940
941 copyable === false ? false : true;
942 return _react2["default"].createElement(
943 'div',
944 _extends({}, props, {
945 className: (0, _classnames2["default"])(className, classes),
946 id: collapsible ? null : id
947 }),
948 header && _react2["default"].createElement(
949 'div',
950 { className: (0, _classnames2["default"])(headerClass), style: headerStyle, onClick: this.handleClickTitle },
951 this.renderHeader(collapsible, header, id, headerRole, expanded, clsPrefix)
952 ),
953 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),
954 footer && _react2["default"].createElement(
955 'div',
956 { className: clsPrefix + '-footer', style: footerStyle },
957 footer
958 )
959 );
960 };
961
962 return Panel;
963 }(_react2["default"].Component);
964
965 Panel.propTypes = propTypes;
966 Panel.defaultProps = defaultProps;
967
968 exports["default"] = Panel;
969 module.exports = exports['default'];
970
971/***/ }),
972/* 10 */
973/***/ (function(module, exports, __webpack_require__) {
974
975 'use strict';
976
977 Object.defineProperty(exports, "__esModule", {
978 value: true
979 });
980 exports.Fade = exports.Collapse = exports.Transition = undefined;
981
982 var _Transition2 = __webpack_require__(11);
983
984 var _Transition3 = _interopRequireDefault(_Transition2);
985
986 var _Collapse2 = __webpack_require__(17);
987
988 var _Collapse3 = _interopRequireDefault(_Collapse2);
989
990 var _Fade2 = __webpack_require__(64);
991
992 var _Fade3 = _interopRequireDefault(_Fade2);
993
994 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
995
996 exports.Transition = _Transition3["default"];
997 exports.Collapse = _Collapse3["default"];
998 exports.Fade = _Fade3["default"];
999
1000/***/ }),
1001/* 11 */
1002/***/ (function(module, exports, __webpack_require__) {
1003
1004 'use strict';
1005
1006 Object.defineProperty(exports, "__esModule", {
1007 value: true
1008 });
1009 exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = undefined;
1010
1011 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; };
1012
1013 var _react = __webpack_require__(4);
1014
1015 var _react2 = _interopRequireDefault(_react);
1016
1017 var _reactDom = __webpack_require__(12);
1018
1019 var _reactDom2 = _interopRequireDefault(_reactDom);
1020
1021 var _properties = __webpack_require__(13);
1022
1023 var _properties2 = _interopRequireDefault(_properties);
1024
1025 var _on = __webpack_require__(16);
1026
1027 var _on2 = _interopRequireDefault(_on);
1028
1029 var _classnames = __webpack_require__(3);
1030
1031 var _classnames2 = _interopRequireDefault(_classnames);
1032
1033 var _propTypes = __webpack_require__(5);
1034
1035 var _propTypes2 = _interopRequireDefault(_propTypes);
1036
1037 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1038
1039 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; }
1040
1041 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; }
1042
1043 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1044
1045 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; }
1046
1047 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); }
1048
1049 var transitionEndEvent = _properties2["default"].end;
1050
1051 //设置状态码
1052 var UNMOUNTED = exports.UNMOUNTED = 0;
1053 var EXITED = exports.EXITED = 1;
1054 var ENTERING = exports.ENTERING = 2;
1055 var ENTERED = exports.ENTERED = 3;
1056 var EXITING = exports.EXITING = 4;
1057
1058 var propTypes = {
1059 /**
1060 * 是否触发动画
1061 */
1062 "in": _propTypes2["default"].bool,
1063
1064 /**
1065 * 不显示的时候是否移除组件
1066 */
1067 unmountOnExit: _propTypes2["default"].bool,
1068
1069 /**
1070 * 如果设置为默认显示,挂载时显示动画
1071 */
1072 transitionAppear: _propTypes2["default"].bool,
1073
1074 /**
1075 * 设置超时时间,防止出现问题,可设置为>=动画时间
1076 */
1077 timeout: _propTypes2["default"].number,
1078
1079 /**
1080 * 退出组件时添加的class
1081 */
1082 exitedClassName: _propTypes2["default"].string,
1083 /**
1084 * 退出组件中添加的class
1085 */
1086 exitingClassName: _propTypes2["default"].string,
1087 /**
1088 * 进入动画后添加的class
1089 */
1090 enteredClassName: _propTypes2["default"].string,
1091 /**
1092 * 进入动画时添加的class
1093 */
1094 enteringClassName: _propTypes2["default"].string,
1095
1096 /**
1097 * 进入动画开始时的钩子函数
1098 */
1099 onEnter: _propTypes2["default"].func,
1100 /**
1101 * 进入动画中的钩子函数
1102 */
1103 onEntering: _propTypes2["default"].func,
1104 /**
1105 * 进入动画后的钩子函数
1106 */
1107 onEntered: _propTypes2["default"].func,
1108 /**
1109 * 退出动画开始时的钩子函数
1110 */
1111 onExit: _propTypes2["default"].func,
1112 /**
1113 * 退出动画中的钩子函数
1114 */
1115 onExiting: _propTypes2["default"].func,
1116 /**
1117 * 退出动画后的钩子函数
1118 */
1119 onExited: _propTypes2["default"].func
1120 };
1121
1122 function noop() {}
1123
1124 var defaultProps = {
1125 "in": false,
1126 unmountOnExit: false,
1127 transitionAppear: false,
1128 timeout: 5000,
1129 onEnter: noop,
1130 onEntering: noop,
1131 onEntered: noop,
1132 onExit: noop,
1133 onExiting: noop,
1134 onExited: noop
1135 };
1136
1137 /**
1138 * 动画组件
1139 */
1140
1141 var Transition = function (_Component) {
1142 _inherits(Transition, _Component);
1143
1144 function Transition(props, context) {
1145 _classCallCheck(this, Transition);
1146
1147 var _this = _possibleConstructorReturn(this, _Component.call(this, props, context));
1148
1149 var initialStatus = void 0;
1150 if (props["in"]) {
1151 // 在componentdidmount时开始执行动画
1152 initialStatus = props.transitionAppear ? EXITED : ENTERED;
1153 } else {
1154 initialStatus = props.unmountOnExit ? UNMOUNTED : EXITED;
1155 }
1156 _this.state = { status: initialStatus };
1157
1158 _this.nextCallback = null;
1159 return _this;
1160 }
1161
1162 Transition.prototype.componentDidMount = function componentDidMount() {
1163 if (this.props.transitionAppear && this.props["in"]) {
1164 this.performEnter(this.props);
1165 }
1166 };
1167
1168 Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
1169 if (nextProps["in"] && this.props.unmountOnExit) {
1170 if (this.state.status === UNMOUNTED) {
1171 // 在componentDidUpdate执行动画.
1172 this.setState({ status: EXITED });
1173 }
1174 } else {
1175 this._needsUpdate = true;
1176 }
1177 };
1178
1179 Transition.prototype.componentDidUpdate = function componentDidUpdate() {
1180 var status = this.state.status;
1181
1182 if (this.props.unmountOnExit && status === EXITED) {
1183 // 当使用unmountOnExit时,exited为exiting和unmont的过渡状态
1184 if (this.props["in"]) {
1185 this.performEnter(this.props);
1186 } else {
1187 this.setState({ status: UNMOUNTED });
1188 }
1189
1190 return;
1191 }
1192
1193 // 确保只响应prop变化
1194 if (this._needsUpdate) {
1195 this._needsUpdate = false;
1196
1197 if (this.props["in"]) {
1198 if (status === EXITING) {
1199 this.performEnter(this.props);
1200 } else if (status === EXITED) {
1201 this.performEnter(this.props);
1202 }
1203 // 其他,当我们已经输入或输出
1204 } else {
1205 if (status === ENTERING || status === ENTERED) {
1206 this.performExit(this.props);
1207 }
1208 // 我们已经输入或输出完成
1209 }
1210 }
1211 };
1212
1213 Transition.prototype.componentWillUnmount = function componentWillUnmount() {
1214 this.cancelNextCallback();
1215 };
1216
1217 Transition.prototype.performEnter = function performEnter(props) {
1218 var _this2 = this;
1219
1220 this.cancelNextCallback();
1221 var node = _reactDom2["default"].findDOMNode(this);
1222
1223 // 这里接收新props
1224 props.onEnter(node);
1225
1226 this.safeSetState({ status: ENTERING }, function () {
1227 _this2.props.onEntering(node);
1228
1229 _this2.onTransitionEnd(node, function () {
1230 _this2.safeSetState({ status: ENTERED }, function () {
1231 _this2.props.onEntered(node);
1232 });
1233 });
1234 });
1235 };
1236
1237 Transition.prototype.performExit = function performExit(props) {
1238 var _this3 = this;
1239
1240 this.cancelNextCallback();
1241 var node = _reactDom2["default"].findDOMNode(this);
1242
1243 props.onExit(node);
1244
1245 this.safeSetState({ status: EXITING }, function () {
1246 _this3.props.onExiting(node);
1247
1248 _this3.onTransitionEnd(node, function () {
1249 _this3.safeSetState({ status: EXITED }, function () {
1250 _this3.props.onExited(node);
1251 });
1252 });
1253 });
1254 };
1255
1256 Transition.prototype.cancelNextCallback = function cancelNextCallback() {
1257 if (this.nextCallback !== null) {
1258 this.nextCallback.cancel();
1259 this.nextCallback = null;
1260 }
1261 };
1262
1263 Transition.prototype.safeSetState = function safeSetState(nextState, callback) {
1264 // 确保在组件销毁后挂起的setState被消除
1265 this.setState(nextState, this.setNextCallback(callback));
1266 };
1267
1268 Transition.prototype.setNextCallback = function setNextCallback(callback) {
1269 var _this4 = this;
1270
1271 var active = true;
1272
1273 this.nextCallback = function (event) {
1274 if (active) {
1275 active = false;
1276 _this4.nextCallback = null;
1277
1278 callback(event);
1279 }
1280 };
1281
1282 this.nextCallback.cancel = function () {
1283 active = false;
1284 };
1285
1286 return this.nextCallback;
1287 };
1288
1289 Transition.prototype.onTransitionEnd = function onTransitionEnd(node, handler) {
1290 this.setNextCallback(handler);
1291
1292 if (node) {
1293 if (transitionEndEvent == undefined) {
1294 this.nextCallback();
1295 } else {
1296 (0, _on2["default"])(node, transitionEndEvent, this.nextCallback);
1297 }
1298 setTimeout(this.nextCallback, this.props.timeout);
1299 } else {
1300 setTimeout(this.nextCallback, 0);
1301 }
1302 };
1303
1304 Transition.prototype.render = function render() {
1305 var status = this.state.status;
1306 if (status === UNMOUNTED) {
1307 return null;
1308 }
1309
1310 var _props = this.props,
1311 children = _props.children,
1312 className = _props.className,
1313 childProps = _objectWithoutProperties(_props, ['children', 'className']);
1314
1315 Object.keys(Transition.propTypes).forEach(function (key) {
1316 return delete childProps[key];
1317 });
1318
1319 var transitionClassName = void 0;
1320 if (status === EXITED) {
1321 transitionClassName = this.props.exitedClassName;
1322 } else if (status === ENTERING) {
1323 transitionClassName = this.props.enteringClassName;
1324 } else if (status === ENTERED) {
1325 transitionClassName = this.props.enteredClassName;
1326 } else if (status === EXITING) {
1327 transitionClassName = this.props.exitingClassName;
1328 }
1329
1330 var child = _react2["default"].Children.only(children);
1331 return _react2["default"].cloneElement(child, _extends({}, childProps, {
1332 className: (0, _classnames2["default"])(child.props.className, className, transitionClassName)
1333 }));
1334 };
1335
1336 return Transition;
1337 }(_react.Component);
1338
1339 Transition.propTypes = propTypes;
1340
1341 Transition.defaultProps = defaultProps;
1342
1343 exports["default"] = Transition;
1344
1345/***/ }),
1346/* 12 */
1347/***/ (function(module, exports) {
1348
1349 module.exports = ReactDOM;
1350
1351/***/ }),
1352/* 13 */
1353/***/ (function(module, exports, __webpack_require__) {
1354
1355 "use strict";
1356
1357 var _interopRequireDefault = __webpack_require__(14);
1358
1359 exports.__esModule = true;
1360 exports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0;
1361
1362 var _inDOM = _interopRequireDefault(__webpack_require__(15));
1363
1364 var transform = 'transform';
1365 exports.transform = transform;
1366 var prefix, transitionEnd, animationEnd;
1367 exports.animationEnd = animationEnd;
1368 exports.transitionEnd = transitionEnd;
1369 var transitionProperty, transitionDuration, transitionTiming, transitionDelay;
1370 exports.transitionDelay = transitionDelay;
1371 exports.transitionTiming = transitionTiming;
1372 exports.transitionDuration = transitionDuration;
1373 exports.transitionProperty = transitionProperty;
1374 var animationName, animationDuration, animationTiming, animationDelay;
1375 exports.animationDelay = animationDelay;
1376 exports.animationTiming = animationTiming;
1377 exports.animationDuration = animationDuration;
1378 exports.animationName = animationName;
1379
1380 if (_inDOM.default) {
1381 var _getTransitionPropert = getTransitionProperties();
1382
1383 prefix = _getTransitionPropert.prefix;
1384 exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;
1385 exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;
1386 exports.transform = transform = prefix + "-" + transform;
1387 exports.transitionProperty = transitionProperty = prefix + "-transition-property";
1388 exports.transitionDuration = transitionDuration = prefix + "-transition-duration";
1389 exports.transitionDelay = transitionDelay = prefix + "-transition-delay";
1390 exports.transitionTiming = transitionTiming = prefix + "-transition-timing-function";
1391 exports.animationName = animationName = prefix + "-animation-name";
1392 exports.animationDuration = animationDuration = prefix + "-animation-duration";
1393 exports.animationTiming = animationTiming = prefix + "-animation-delay";
1394 exports.animationDelay = animationDelay = prefix + "-animation-timing-function";
1395 }
1396
1397 var _default = {
1398 transform: transform,
1399 end: transitionEnd,
1400 property: transitionProperty,
1401 timing: transitionTiming,
1402 delay: transitionDelay,
1403 duration: transitionDuration
1404 };
1405 exports.default = _default;
1406
1407 function getTransitionProperties() {
1408 var style = document.createElement('div').style;
1409 var vendorMap = {
1410 O: function O(e) {
1411 return "o" + e.toLowerCase();
1412 },
1413 Moz: function Moz(e) {
1414 return e.toLowerCase();
1415 },
1416 Webkit: function Webkit(e) {
1417 return "webkit" + e;
1418 },
1419 ms: function ms(e) {
1420 return "MS" + e;
1421 }
1422 };
1423 var vendors = Object.keys(vendorMap);
1424 var transitionEnd, animationEnd;
1425 var prefix = '';
1426
1427 for (var i = 0; i < vendors.length; i++) {
1428 var vendor = vendors[i];
1429
1430 if (vendor + "TransitionProperty" in style) {
1431 prefix = "-" + vendor.toLowerCase();
1432 transitionEnd = vendorMap[vendor]('TransitionEnd');
1433 animationEnd = vendorMap[vendor]('AnimationEnd');
1434 break;
1435 }
1436 }
1437
1438 if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';
1439 if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';
1440 style = null;
1441 return {
1442 animationEnd: animationEnd,
1443 transitionEnd: transitionEnd,
1444 prefix: prefix
1445 };
1446 }
1447
1448/***/ }),
1449/* 14 */
1450/***/ (function(module, exports) {
1451
1452 function _interopRequireDefault(obj) {
1453 return obj && obj.__esModule ? obj : {
1454 default: obj
1455 };
1456 }
1457
1458 module.exports = _interopRequireDefault;
1459
1460/***/ }),
1461/* 15 */
1462/***/ (function(module, exports) {
1463
1464 "use strict";
1465
1466 exports.__esModule = true;
1467 exports.default = void 0;
1468
1469 var _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
1470
1471 exports.default = _default;
1472 module.exports = exports["default"];
1473
1474/***/ }),
1475/* 16 */
1476/***/ (function(module, exports, __webpack_require__) {
1477
1478 "use strict";
1479
1480 var _interopRequireDefault = __webpack_require__(14);
1481
1482 exports.__esModule = true;
1483 exports.default = void 0;
1484
1485 var _inDOM = _interopRequireDefault(__webpack_require__(15));
1486
1487 var on = function on() {};
1488
1489 if (_inDOM.default) {
1490 on = function () {
1491 if (document.addEventListener) return function (node, eventName, handler, capture) {
1492 return node.addEventListener(eventName, handler, capture || false);
1493 };else if (document.attachEvent) return function (node, eventName, handler) {
1494 return node.attachEvent('on' + eventName, function (e) {
1495 e = e || window.event;
1496 e.target = e.target || e.srcElement;
1497 e.currentTarget = node;
1498 handler.call(node, e);
1499 });
1500 };
1501 }();
1502 }
1503
1504 var _default = on;
1505 exports.default = _default;
1506 module.exports = exports["default"];
1507
1508/***/ }),
1509/* 17 */
1510/***/ (function(module, exports, __webpack_require__) {
1511
1512 'use strict';
1513
1514 Object.defineProperty(exports, "__esModule", {
1515 value: true
1516 });
1517
1518 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; };
1519
1520 var _classnames = __webpack_require__(3);
1521
1522 var _classnames2 = _interopRequireDefault(_classnames);
1523
1524 var _style = __webpack_require__(18);
1525
1526 var _style2 = _interopRequireDefault(_style);
1527
1528 var _react = __webpack_require__(4);
1529
1530 var _react2 = _interopRequireDefault(_react);
1531
1532 var _propTypes = __webpack_require__(5);
1533
1534 var _propTypes2 = _interopRequireDefault(_propTypes);
1535
1536 var _Transition = __webpack_require__(11);
1537
1538 var _Transition2 = _interopRequireDefault(_Transition);
1539
1540 var _capitalize = __webpack_require__(26);
1541
1542 var _capitalize2 = _interopRequireDefault(_capitalize);
1543
1544 var _tinperBeeCore = __webpack_require__(27);
1545
1546 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
1547
1548 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; }
1549
1550 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; }
1551
1552 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1553
1554 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; }
1555
1556 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); }
1557
1558 var MARGINS = {
1559 height: ['marginTop', 'marginBottom'],
1560 width: ['marginLeft', 'marginRight']
1561 };
1562
1563 // reading a dimension prop will cause the browser to recalculate,
1564 // which will let our animations work
1565 function triggerBrowserReflow(node) {
1566 node.offsetHeight; // eslint-disable-line no-unused-expressions
1567 }
1568
1569 function getDimensionValue(dimension, elem) {
1570 var value = elem['offset' + (0, _capitalize2["default"])(dimension)];
1571 var margins = MARGINS[dimension];
1572
1573 return value + parseInt((0, _style2["default"])(elem, margins[0]), 10) + parseInt((0, _style2["default"])(elem, margins[1]), 10);
1574 }
1575
1576 var propTypes = {
1577 /**
1578 * Show the component; triggers the expand or collapse animation
1579 */
1580 "in": _propTypes2["default"].bool,
1581
1582 /**
1583 * Unmount the component (remove it from the DOM) when it is collapsed
1584 */
1585 unmountOnExit: _propTypes2["default"].bool,
1586
1587 /**
1588 * Run the expand animation when the component mounts, if it is initially
1589 * shown
1590 */
1591 transitionAppear: _propTypes2["default"].bool,
1592
1593 /**
1594 * Duration of the collapse animation in milliseconds, to ensure that
1595 * finishing callbacks are fired even if the original browser transition end
1596 * events are canceled
1597 */
1598 timeout: _propTypes2["default"].number,
1599
1600 /**
1601 * Callback fired before the component expands
1602 */
1603 onEnter: _propTypes2["default"].func,
1604 /**
1605 * Callback fired after the component starts to expand
1606 */
1607 onEntering: _propTypes2["default"].func,
1608 /**
1609 * Callback fired after the component has expanded
1610 */
1611 onEntered: _propTypes2["default"].func,
1612 /**
1613 * Callback fired before the component collapses
1614 */
1615 onExit: _propTypes2["default"].func,
1616 /**
1617 * Callback fired after the component starts to collapse
1618 */
1619 onExiting: _propTypes2["default"].func,
1620 /**
1621 * Callback fired after the component has collapsed
1622 */
1623 onExited: _propTypes2["default"].func,
1624
1625 /**
1626 * The dimension used when collapsing, or a function that returns the
1627 * dimension
1628 *
1629 * _Note: Bootstrap only partially supports 'width'!
1630 * You will need to supply your own CSS animation for the `.width` CSS class._
1631 */
1632 dimension: _propTypes2["default"].oneOfType([_propTypes2["default"].oneOf(['height', 'width']), _propTypes2["default"].func]),
1633
1634 /**
1635 * Function that returns the height or width of the animating DOM node
1636 *
1637 * Allows for providing some custom logic for how much the Collapse component
1638 * should animate in its specified dimension. Called with the current
1639 * dimension prop value and the DOM node.
1640 */
1641 getDimensionValue: _propTypes2["default"].func,
1642
1643 /**
1644 * ARIA role of collapsible element
1645 */
1646 role: _propTypes2["default"].string
1647 };
1648
1649 var defaultProps = {
1650 "in": false,
1651 timeout: 300,
1652 unmountOnExit: false,
1653 transitionAppear: false,
1654
1655 dimension: 'height',
1656 getDimensionValue: getDimensionValue
1657 };
1658
1659 var Collapse = function (_React$Component) {
1660 _inherits(Collapse, _React$Component);
1661
1662 function Collapse(props, context) {
1663 _classCallCheck(this, Collapse);
1664
1665 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
1666
1667 _this.handleEnter = _this.handleEnter.bind(_this);
1668 _this.handleEntering = _this.handleEntering.bind(_this);
1669 _this.handleEntered = _this.handleEntered.bind(_this);
1670 _this.handleExit = _this.handleExit.bind(_this);
1671 _this.handleExiting = _this.handleExiting.bind(_this);
1672 return _this;
1673 }
1674
1675 /* -- Expanding -- */
1676
1677
1678 Collapse.prototype.handleEnter = function handleEnter(elem) {
1679 var dimension = this._dimension();
1680 elem.style[dimension] = '0';
1681 };
1682
1683 Collapse.prototype.handleEntering = function handleEntering(elem) {
1684 var dimension = this._dimension();
1685 elem.style[dimension] = this._getScrollDimensionValue(elem, dimension);
1686 };
1687
1688 Collapse.prototype.handleEntered = function handleEntered(elem) {
1689 var dimension = this._dimension();
1690 elem.style[dimension] = null;
1691 };
1692
1693 /* -- Collapsing -- */
1694
1695
1696 Collapse.prototype.handleExit = function handleExit(elem) {
1697 var dimension = this._dimension();
1698 elem.style[dimension] = this.props.getDimensionValue(dimension, elem) + 'px';
1699 triggerBrowserReflow(elem);
1700 };
1701
1702 Collapse.prototype.handleExiting = function handleExiting(elem) {
1703 var dimension = this._dimension();
1704 elem.style[dimension] = '0';
1705 };
1706
1707 Collapse.prototype._dimension = function _dimension() {
1708 return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension;
1709 };
1710
1711 // for testing
1712
1713
1714 Collapse.prototype._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) {
1715 return elem['scroll' + (0, _capitalize2["default"])(dimension)] + 'px';
1716 };
1717
1718 Collapse.prototype.render = function render() {
1719 var _props = this.props,
1720 onEnter = _props.onEnter,
1721 onEntering = _props.onEntering,
1722 onEntered = _props.onEntered,
1723 onExit = _props.onExit,
1724 onExiting = _props.onExiting,
1725 className = _props.className,
1726 props = _objectWithoutProperties(_props, ['onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'className']);
1727
1728 delete props.dimension;
1729 delete props.getDimensionValue;
1730
1731 var handleEnter = (0, _tinperBeeCore.createChainedFunction)(this.handleEnter, onEnter);
1732 var handleEntering = (0, _tinperBeeCore.createChainedFunction)(this.handleEntering, onEntering);
1733 var handleEntered = (0, _tinperBeeCore.createChainedFunction)(this.handleEntered, onEntered);
1734 var handleExit = (0, _tinperBeeCore.createChainedFunction)(this.handleExit, onExit);
1735 var handleExiting = (0, _tinperBeeCore.createChainedFunction)(this.handleExiting, onExiting);
1736
1737 var classes = {
1738 width: this._dimension() === 'width'
1739 };
1740
1741 return _react2["default"].createElement(_Transition2["default"], _extends({}, props, {
1742 'aria-expanded': props.role ? props["in"] : null,
1743 className: (0, _classnames2["default"])(className, classes),
1744 exitedClassName: 'collapse',
1745 exitingClassName: 'collapsing',
1746 enteredClassName: 'collapse in',
1747 enteringClassName: 'collapsing',
1748 onEnter: handleEnter,
1749 onEntering: handleEntering,
1750 onEntered: handleEntered,
1751 onExit: handleExit,
1752 onExiting: handleExiting
1753 }));
1754 };
1755
1756 return Collapse;
1757 }(_react2["default"].Component);
1758
1759 Collapse.propTypes = propTypes;
1760 Collapse.defaultProps = defaultProps;
1761
1762 exports["default"] = Collapse;
1763 module.exports = exports['default'];
1764
1765/***/ }),
1766/* 18 */
1767/***/ (function(module, exports, __webpack_require__) {
1768
1769 "use strict";
1770
1771 var _interopRequireDefault = __webpack_require__(14);
1772
1773 exports.__esModule = true;
1774 exports.default = style;
1775
1776 var _camelizeStyle = _interopRequireDefault(__webpack_require__(19));
1777
1778 var _hyphenateStyle = _interopRequireDefault(__webpack_require__(21));
1779
1780 var _getComputedStyle2 = _interopRequireDefault(__webpack_require__(23));
1781
1782 var _removeStyle = _interopRequireDefault(__webpack_require__(24));
1783
1784 var _properties = __webpack_require__(13);
1785
1786 var _isTransform = _interopRequireDefault(__webpack_require__(25));
1787
1788 function style(node, property, value) {
1789 var css = '';
1790 var transforms = '';
1791 var props = property;
1792
1793 if (typeof property === 'string') {
1794 if (value === undefined) {
1795 return node.style[(0, _camelizeStyle.default)(property)] || (0, _getComputedStyle2.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property));
1796 } else {
1797 (props = {})[property] = value;
1798 }
1799 }
1800
1801 Object.keys(props).forEach(function (key) {
1802 var value = props[key];
1803
1804 if (!value && value !== 0) {
1805 (0, _removeStyle.default)(node, (0, _hyphenateStyle.default)(key));
1806 } else if ((0, _isTransform.default)(key)) {
1807 transforms += key + "(" + value + ") ";
1808 } else {
1809 css += (0, _hyphenateStyle.default)(key) + ": " + value + ";";
1810 }
1811 });
1812
1813 if (transforms) {
1814 css += _properties.transform + ": " + transforms + ";";
1815 }
1816
1817 node.style.cssText += ';' + css;
1818 }
1819
1820 module.exports = exports["default"];
1821
1822/***/ }),
1823/* 19 */
1824/***/ (function(module, exports, __webpack_require__) {
1825
1826 "use strict";
1827
1828 var _interopRequireDefault = __webpack_require__(14);
1829
1830 exports.__esModule = true;
1831 exports.default = camelizeStyleName;
1832
1833 var _camelize = _interopRequireDefault(__webpack_require__(20));
1834
1835 /**
1836 * Copyright 2014-2015, Facebook, Inc.
1837 * All rights reserved.
1838 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
1839 */
1840 var msPattern = /^-ms-/;
1841
1842 function camelizeStyleName(string) {
1843 return (0, _camelize.default)(string.replace(msPattern, 'ms-'));
1844 }
1845
1846 module.exports = exports["default"];
1847
1848/***/ }),
1849/* 20 */
1850/***/ (function(module, exports) {
1851
1852 "use strict";
1853
1854 exports.__esModule = true;
1855 exports.default = camelize;
1856 var rHyphen = /-(.)/g;
1857
1858 function camelize(string) {
1859 return string.replace(rHyphen, function (_, chr) {
1860 return chr.toUpperCase();
1861 });
1862 }
1863
1864 module.exports = exports["default"];
1865
1866/***/ }),
1867/* 21 */
1868/***/ (function(module, exports, __webpack_require__) {
1869
1870 "use strict";
1871
1872 var _interopRequireDefault = __webpack_require__(14);
1873
1874 exports.__esModule = true;
1875 exports.default = hyphenateStyleName;
1876
1877 var _hyphenate = _interopRequireDefault(__webpack_require__(22));
1878
1879 /**
1880 * Copyright 2013-2014, Facebook, Inc.
1881 * All rights reserved.
1882 * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
1883 */
1884 var msPattern = /^ms-/;
1885
1886 function hyphenateStyleName(string) {
1887 return (0, _hyphenate.default)(string).replace(msPattern, '-ms-');
1888 }
1889
1890 module.exports = exports["default"];
1891
1892/***/ }),
1893/* 22 */
1894/***/ (function(module, exports) {
1895
1896 "use strict";
1897
1898 exports.__esModule = true;
1899 exports.default = hyphenate;
1900 var rUpper = /([A-Z])/g;
1901
1902 function hyphenate(string) {
1903 return string.replace(rUpper, '-$1').toLowerCase();
1904 }
1905
1906 module.exports = exports["default"];
1907
1908/***/ }),
1909/* 23 */
1910/***/ (function(module, exports, __webpack_require__) {
1911
1912 "use strict";
1913
1914 var _interopRequireDefault = __webpack_require__(14);
1915
1916 exports.__esModule = true;
1917 exports.default = _getComputedStyle;
1918
1919 var _camelizeStyle = _interopRequireDefault(__webpack_require__(19));
1920
1921 var rposition = /^(top|right|bottom|left)$/;
1922 var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;
1923
1924 function _getComputedStyle(node) {
1925 if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');
1926 var doc = node.ownerDocument;
1927 return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {
1928 //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72
1929 getPropertyValue: function getPropertyValue(prop) {
1930 var style = node.style;
1931 prop = (0, _camelizeStyle.default)(prop);
1932 if (prop == 'float') prop = 'styleFloat';
1933 var current = node.currentStyle[prop] || null;
1934 if (current == null && style && style[prop]) current = style[prop];
1935
1936 if (rnumnonpx.test(current) && !rposition.test(prop)) {
1937 // Remember the original values
1938 var left = style.left;
1939 var runStyle = node.runtimeStyle;
1940 var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out
1941
1942 if (rsLeft) runStyle.left = node.currentStyle.left;
1943 style.left = prop === 'fontSize' ? '1em' : current;
1944 current = style.pixelLeft + 'px'; // Revert the changed values
1945
1946 style.left = left;
1947 if (rsLeft) runStyle.left = rsLeft;
1948 }
1949
1950 return current;
1951 }
1952 };
1953 }
1954
1955 module.exports = exports["default"];
1956
1957/***/ }),
1958/* 24 */
1959/***/ (function(module, exports) {
1960
1961 "use strict";
1962
1963 exports.__esModule = true;
1964 exports.default = removeStyle;
1965
1966 function removeStyle(node, key) {
1967 return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
1968 }
1969
1970 module.exports = exports["default"];
1971
1972/***/ }),
1973/* 25 */
1974/***/ (function(module, exports) {
1975
1976 "use strict";
1977
1978 exports.__esModule = true;
1979 exports.default = isTransform;
1980 var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
1981
1982 function isTransform(property) {
1983 return !!(property && supportedTransforms.test(property));
1984 }
1985
1986 module.exports = exports["default"];
1987
1988/***/ }),
1989/* 26 */
1990/***/ (function(module, exports) {
1991
1992 "use strict";
1993
1994 Object.defineProperty(exports, "__esModule", {
1995 value: true
1996 });
1997 exports["default"] = capitalize;
1998 function capitalize(string) {
1999 return "" + string.charAt(0).toUpperCase() + string.slice(1);
2000 }
2001 module.exports = exports["default"];
2002
2003/***/ }),
2004/* 27 */
2005/***/ (function(module, exports, __webpack_require__) {
2006
2007 'use strict';
2008
2009 exports.__esModule = true;
2010 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;
2011
2012 var _all2 = __webpack_require__(28);
2013
2014 var _all3 = _interopRequireDefault(_all2);
2015
2016 var _componentOrElement2 = __webpack_require__(30);
2017
2018 var _componentOrElement3 = _interopRequireDefault(_componentOrElement2);
2019
2020 var _deprecated2 = __webpack_require__(31);
2021
2022 var _deprecated3 = _interopRequireDefault(_deprecated2);
2023
2024 var _elementType2 = __webpack_require__(34);
2025
2026 var _elementType3 = _interopRequireDefault(_elementType2);
2027
2028 var _isRequiredForA11y2 = __webpack_require__(35);
2029
2030 var _isRequiredForA11y3 = _interopRequireDefault(_isRequiredForA11y2);
2031
2032 var _splitComponent2 = __webpack_require__(36);
2033
2034 var _splitComponent3 = _interopRequireDefault(_splitComponent2);
2035
2036 var _createChainedFunction2 = __webpack_require__(37);
2037
2038 var _createChainedFunction3 = _interopRequireDefault(_createChainedFunction2);
2039
2040 var _keyCode = __webpack_require__(38);
2041
2042 var _keyCode2 = _interopRequireDefault(_keyCode);
2043
2044 var _contains2 = __webpack_require__(39);
2045
2046 var _contains3 = _interopRequireDefault(_contains2);
2047
2048 var _addEventListener2 = __webpack_require__(40);
2049
2050 var _addEventListener3 = _interopRequireDefault(_addEventListener2);
2051
2052 var _cssAnimation2 = __webpack_require__(45);
2053
2054 var _cssAnimation3 = _interopRequireDefault(_cssAnimation2);
2055
2056 var _toArray2 = __webpack_require__(49);
2057
2058 var _toArray3 = _interopRequireDefault(_toArray2);
2059
2060 var _Align2 = __webpack_require__(50);
2061
2062 var _Align3 = _interopRequireDefault(_Align2);
2063
2064 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2065
2066 exports.all = _all3.default;
2067 exports.componentOrElement = _componentOrElement3.default;
2068 exports.deprecated = _deprecated3.default;
2069 exports.elementType = _elementType3.default;
2070 exports.isRequiredForA11y = _isRequiredForA11y3.default;
2071 exports.splitComponent = _splitComponent3.default;
2072 exports.createChainedFunction = _createChainedFunction3.default;
2073 exports.KeyCode = _keyCode2.default;
2074 exports.contains = _contains3.default;
2075 exports.addEventListener = _addEventListener3.default;
2076 exports.cssAnimation = _cssAnimation3.default;
2077 exports.toArray = _toArray3.default;
2078 //export getContainerRenderMixin from './getContainerRenderMixin';
2079
2080 exports.Align = _Align3.default;
2081
2082/***/ }),
2083/* 28 */
2084/***/ (function(module, exports, __webpack_require__) {
2085
2086 'use strict';
2087
2088 exports.__esModule = true;
2089 exports.default = all;
2090
2091 var _createChainableTypeChecker = __webpack_require__(29);
2092
2093 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2094
2095 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2096
2097 function all() {
2098 for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {
2099 validators[_key] = arguments[_key];
2100 }
2101
2102 function allPropTypes() {
2103 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2104 args[_key2] = arguments[_key2];
2105 }
2106
2107 var error = null;
2108
2109 validators.forEach(function (validator) {
2110 if (error != null) {
2111 return;
2112 }
2113
2114 var result = validator.apply(undefined, args);
2115 if (result != null) {
2116 error = result;
2117 }
2118 });
2119
2120 return error;
2121 }
2122
2123 return (0, _createChainableTypeChecker2.default)(allPropTypes);
2124 }
2125
2126/***/ }),
2127/* 29 */
2128/***/ (function(module, exports) {
2129
2130 'use strict';
2131
2132 exports.__esModule = true;
2133 exports.default = createChainableTypeChecker;
2134 /**
2135 * Copyright 2013-present, Facebook, Inc.
2136 * All rights reserved.
2137 *
2138 * This source code is licensed under the BSD-style license found in the
2139 * LICENSE file in the root directory of this source tree. An additional grant
2140 * of patent rights can be found in the PATENTS file in the same directory.
2141 */
2142
2143 // Mostly taken from ReactPropTypes.
2144
2145 function createChainableTypeChecker(validate) {
2146 function checkType(isRequired, props, propName, componentName, location, propFullName) {
2147 var componentNameSafe = componentName || '<<anonymous>>';
2148 var propFullNameSafe = propFullName || propName;
2149
2150 if (props[propName] == null) {
2151 if (isRequired) {
2152 return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));
2153 }
2154
2155 return null;
2156 }
2157
2158 for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {
2159 args[_key - 6] = arguments[_key];
2160 }
2161
2162 return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));
2163 }
2164
2165 var chainedCheckType = checkType.bind(null, false);
2166 chainedCheckType.isRequired = checkType.bind(null, true);
2167
2168 return chainedCheckType;
2169 }
2170
2171/***/ }),
2172/* 30 */
2173/***/ (function(module, exports, __webpack_require__) {
2174
2175 'use strict';
2176
2177 exports.__esModule = true;
2178
2179 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; };
2180
2181 var _react = __webpack_require__(4);
2182
2183 var _react2 = _interopRequireDefault(_react);
2184
2185 var _createChainableTypeChecker = __webpack_require__(29);
2186
2187 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2188
2189 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2190
2191 function validate(props, propName, componentName, location, propFullName) {
2192 var propValue = props[propName];
2193 var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
2194
2195 if (_react2.default.isValidElement(propValue)) {
2196 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.');
2197 }
2198
2199 if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {
2200 return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');
2201 }
2202
2203 return null;
2204 }
2205
2206 exports.default = (0, _createChainableTypeChecker2.default)(validate);
2207
2208/***/ }),
2209/* 31 */
2210/***/ (function(module, exports, __webpack_require__) {
2211
2212 'use strict';
2213
2214 exports.__esModule = true;
2215 exports.default = deprecated;
2216
2217 var _warning = __webpack_require__(32);
2218
2219 var _warning2 = _interopRequireDefault(_warning);
2220
2221 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2222
2223 var warned = {};
2224
2225 function deprecated(validator, reason) {
2226 return function validate(props, propName, componentName, location, propFullName) {
2227 var componentNameSafe = componentName || '<<anonymous>>';
2228 var propFullNameSafe = propFullName || propName;
2229
2230 if (props[propName] != null) {
2231 var messageKey = componentName + '.' + propName;
2232
2233 (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));
2234
2235 warned[messageKey] = true;
2236 }
2237
2238 for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
2239 args[_key - 5] = arguments[_key];
2240 }
2241
2242 return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
2243 };
2244 }
2245
2246 /* eslint-disable no-underscore-dangle */
2247 function _resetWarned() {
2248 warned = {};
2249 }
2250
2251 deprecated._resetWarned = _resetWarned;
2252 /* eslint-enable no-underscore-dangle */
2253
2254/***/ }),
2255/* 32 */
2256/***/ (function(module, exports, __webpack_require__) {
2257
2258 /* WEBPACK VAR INJECTION */(function(process) {/**
2259 * Copyright 2014-2015, Facebook, Inc.
2260 * All rights reserved.
2261 *
2262 * This source code is licensed under the BSD-style license found in the
2263 * LICENSE file in the root directory of this source tree. An additional grant
2264 * of patent rights can be found in the PATENTS file in the same directory.
2265 */
2266
2267 'use strict';
2268
2269 /**
2270 * Similar to invariant but only logs a warning if the condition is not met.
2271 * This can be used to log issues in development environments in critical
2272 * paths. Removing the logging code for production environments will keep the
2273 * same logic and follow the same code paths.
2274 */
2275
2276 var warning = function() {};
2277
2278 if (process.env.NODE_ENV !== 'production') {
2279 warning = function(condition, format, args) {
2280 var len = arguments.length;
2281 args = new Array(len > 2 ? len - 2 : 0);
2282 for (var key = 2; key < len; key++) {
2283 args[key - 2] = arguments[key];
2284 }
2285 if (format === undefined) {
2286 throw new Error(
2287 '`warning(condition, format, ...args)` requires a warning ' +
2288 'message argument'
2289 );
2290 }
2291
2292 if (format.length < 10 || (/^[s\W]*$/).test(format)) {
2293 throw new Error(
2294 'The warning format should be able to uniquely identify this ' +
2295 'warning. Please, use a more descriptive format than: ' + format
2296 );
2297 }
2298
2299 if (!condition) {
2300 var argIndex = 0;
2301 var message = 'Warning: ' +
2302 format.replace(/%s/g, function() {
2303 return args[argIndex++];
2304 });
2305 if (typeof console !== 'undefined') {
2306 console.error(message);
2307 }
2308 try {
2309 // This error was thrown as a convenience so that you can use this stack
2310 // to find the callsite that caused this warning to fire.
2311 throw new Error(message);
2312 } catch(x) {}
2313 }
2314 };
2315 }
2316
2317 module.exports = warning;
2318
2319 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(33)))
2320
2321/***/ }),
2322/* 33 */
2323/***/ (function(module, exports) {
2324
2325 // shim for using process in browser
2326 var process = module.exports = {};
2327
2328 // cached from whatever global is present so that test runners that stub it
2329 // don't break things. But we need to wrap it in a try catch in case it is
2330 // wrapped in strict mode code which doesn't define any globals. It's inside a
2331 // function because try/catches deoptimize in certain engines.
2332
2333 var cachedSetTimeout;
2334 var cachedClearTimeout;
2335
2336 function defaultSetTimout() {
2337 throw new Error('setTimeout has not been defined');
2338 }
2339 function defaultClearTimeout () {
2340 throw new Error('clearTimeout has not been defined');
2341 }
2342 (function () {
2343 try {
2344 if (typeof setTimeout === 'function') {
2345 cachedSetTimeout = setTimeout;
2346 } else {
2347 cachedSetTimeout = defaultSetTimout;
2348 }
2349 } catch (e) {
2350 cachedSetTimeout = defaultSetTimout;
2351 }
2352 try {
2353 if (typeof clearTimeout === 'function') {
2354 cachedClearTimeout = clearTimeout;
2355 } else {
2356 cachedClearTimeout = defaultClearTimeout;
2357 }
2358 } catch (e) {
2359 cachedClearTimeout = defaultClearTimeout;
2360 }
2361 } ())
2362 function runTimeout(fun) {
2363 if (cachedSetTimeout === setTimeout) {
2364 //normal enviroments in sane situations
2365 return setTimeout(fun, 0);
2366 }
2367 // if setTimeout wasn't available but was latter defined
2368 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
2369 cachedSetTimeout = setTimeout;
2370 return setTimeout(fun, 0);
2371 }
2372 try {
2373 // when when somebody has screwed with setTimeout but no I.E. maddness
2374 return cachedSetTimeout(fun, 0);
2375 } catch(e){
2376 try {
2377 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
2378 return cachedSetTimeout.call(null, fun, 0);
2379 } catch(e){
2380 // 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
2381 return cachedSetTimeout.call(this, fun, 0);
2382 }
2383 }
2384
2385
2386 }
2387 function runClearTimeout(marker) {
2388 if (cachedClearTimeout === clearTimeout) {
2389 //normal enviroments in sane situations
2390 return clearTimeout(marker);
2391 }
2392 // if clearTimeout wasn't available but was latter defined
2393 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
2394 cachedClearTimeout = clearTimeout;
2395 return clearTimeout(marker);
2396 }
2397 try {
2398 // when when somebody has screwed with setTimeout but no I.E. maddness
2399 return cachedClearTimeout(marker);
2400 } catch (e){
2401 try {
2402 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
2403 return cachedClearTimeout.call(null, marker);
2404 } catch (e){
2405 // 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.
2406 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
2407 return cachedClearTimeout.call(this, marker);
2408 }
2409 }
2410
2411
2412
2413 }
2414 var queue = [];
2415 var draining = false;
2416 var currentQueue;
2417 var queueIndex = -1;
2418
2419 function cleanUpNextTick() {
2420 if (!draining || !currentQueue) {
2421 return;
2422 }
2423 draining = false;
2424 if (currentQueue.length) {
2425 queue = currentQueue.concat(queue);
2426 } else {
2427 queueIndex = -1;
2428 }
2429 if (queue.length) {
2430 drainQueue();
2431 }
2432 }
2433
2434 function drainQueue() {
2435 if (draining) {
2436 return;
2437 }
2438 var timeout = runTimeout(cleanUpNextTick);
2439 draining = true;
2440
2441 var len = queue.length;
2442 while(len) {
2443 currentQueue = queue;
2444 queue = [];
2445 while (++queueIndex < len) {
2446 if (currentQueue) {
2447 currentQueue[queueIndex].run();
2448 }
2449 }
2450 queueIndex = -1;
2451 len = queue.length;
2452 }
2453 currentQueue = null;
2454 draining = false;
2455 runClearTimeout(timeout);
2456 }
2457
2458 process.nextTick = function (fun) {
2459 var args = new Array(arguments.length - 1);
2460 if (arguments.length > 1) {
2461 for (var i = 1; i < arguments.length; i++) {
2462 args[i - 1] = arguments[i];
2463 }
2464 }
2465 queue.push(new Item(fun, args));
2466 if (queue.length === 1 && !draining) {
2467 runTimeout(drainQueue);
2468 }
2469 };
2470
2471 // v8 likes predictible objects
2472 function Item(fun, array) {
2473 this.fun = fun;
2474 this.array = array;
2475 }
2476 Item.prototype.run = function () {
2477 this.fun.apply(null, this.array);
2478 };
2479 process.title = 'browser';
2480 process.browser = true;
2481 process.env = {};
2482 process.argv = [];
2483 process.version = ''; // empty string to avoid regexp issues
2484 process.versions = {};
2485
2486 function noop() {}
2487
2488 process.on = noop;
2489 process.addListener = noop;
2490 process.once = noop;
2491 process.off = noop;
2492 process.removeListener = noop;
2493 process.removeAllListeners = noop;
2494 process.emit = noop;
2495 process.prependListener = noop;
2496 process.prependOnceListener = noop;
2497
2498 process.listeners = function (name) { return [] }
2499
2500 process.binding = function (name) {
2501 throw new Error('process.binding is not supported');
2502 };
2503
2504 process.cwd = function () { return '/' };
2505 process.chdir = function (dir) {
2506 throw new Error('process.chdir is not supported');
2507 };
2508 process.umask = function() { return 0; };
2509
2510
2511/***/ }),
2512/* 34 */
2513/***/ (function(module, exports, __webpack_require__) {
2514
2515 'use strict';
2516
2517 exports.__esModule = true;
2518
2519 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; };
2520
2521 var _react = __webpack_require__(4);
2522
2523 var _react2 = _interopRequireDefault(_react);
2524
2525 var _createChainableTypeChecker = __webpack_require__(29);
2526
2527 var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
2528
2529 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2530
2531 function elementType(props, propName, componentName, location, propFullName) {
2532 var propValue = props[propName];
2533 var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
2534
2535 if (_react2.default.isValidElement(propValue)) {
2536 return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
2537 }
2538
2539 if (propType !== 'function' && propType !== 'string') {
2540 return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
2541 }
2542
2543 return null;
2544 }
2545
2546 exports.default = (0, _createChainableTypeChecker2.default)(elementType);
2547
2548/***/ }),
2549/* 35 */
2550/***/ (function(module, exports) {
2551
2552 'use strict';
2553
2554 exports.__esModule = true;
2555 exports.default = isRequiredForA11y;
2556 function isRequiredForA11y(validator) {
2557 return function validate(props, propName, componentName, location, propFullName) {
2558 var componentNameSafe = componentName || '<<anonymous>>';
2559 var propFullNameSafe = propFullName || propName;
2560
2561 if (props[propName] == null) {
2562 return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.');
2563 }
2564
2565 for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
2566 args[_key - 5] = arguments[_key];
2567 }
2568
2569 return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
2570 };
2571 }
2572
2573/***/ }),
2574/* 36 */
2575/***/ (function(module, exports) {
2576
2577 "use strict";
2578
2579 exports.__esModule = true;
2580 exports.default = splitComponentProps;
2581 function _objectEntries(obj) {
2582 var entries = [];
2583 var keys = Object.keys(obj);
2584
2585 for (var k = 0; k < keys.length; ++k) {
2586 entries.push([keys[k], obj[keys[k]]]);
2587 }return entries;
2588 }
2589
2590 /**
2591 * 分割要传入父元素和子元素的props
2592 * @param {[object]} props 传入的属性
2593 * @param {[reactElement]} Component 组件
2594 * @return {[array]} 返回数组,第一个元素为父元素props对象,第二个子元素props对象
2595 */
2596 function splitComponentProps(props, Component) {
2597 var componentPropTypes = Component.propTypes;
2598
2599 var parentProps = {};
2600 var childProps = {};
2601
2602 _objectEntries(props).forEach(function (_ref) {
2603 var propName = _ref[0],
2604 propValue = _ref[1];
2605
2606 if (componentPropTypes[propName]) {
2607 parentProps[propName] = propValue;
2608 } else {
2609 childProps[propName] = propValue;
2610 }
2611 });
2612
2613 return [parentProps, childProps];
2614 }
2615
2616/***/ }),
2617/* 37 */
2618/***/ (function(module, exports) {
2619
2620 'use strict';
2621
2622 exports.__esModule = true;
2623 function createChainedFunction() {
2624 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
2625 funcs[_key] = arguments[_key];
2626 }
2627
2628 return funcs.filter(function (f) {
2629 return f != null;
2630 }).reduce(function (acc, f) {
2631 if (typeof f !== 'function') {
2632 throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
2633 }
2634
2635 if (acc === null) {
2636 return f;
2637 }
2638
2639 return function chainedFunction() {
2640 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
2641 args[_key2] = arguments[_key2];
2642 }
2643
2644 acc.apply(this, args);
2645 f.apply(this, args);
2646 };
2647 }, null);
2648 }
2649 exports.default = createChainedFunction;
2650
2651/***/ }),
2652/* 38 */
2653/***/ (function(module, exports) {
2654
2655 'use strict';
2656
2657 /**
2658 * @ignore
2659 * some key-codes definition and utils from closure-library
2660 * @author yiminghe@gmail.com
2661 */
2662
2663 var KeyCode = {
2664 /**
2665 * MAC_ENTER
2666 */
2667 MAC_ENTER: 3,
2668 /**
2669 * BACKSPACE
2670 */
2671 BACKSPACE: 8,
2672 /**
2673 * TAB
2674 */
2675 TAB: 9,
2676 /**
2677 * NUMLOCK on FF/Safari Mac
2678 */
2679 NUM_CENTER: 12, // NUMLOCK on FF/Safari Mac
2680 /**
2681 * ENTER
2682 */
2683 ENTER: 13,
2684 /**
2685 * SHIFT
2686 */
2687 SHIFT: 16,
2688 /**
2689 * CTRL
2690 */
2691 CTRL: 17,
2692 /**
2693 * ALT
2694 */
2695 ALT: 18,
2696 /**
2697 * PAUSE
2698 */
2699 PAUSE: 19,
2700 /**
2701 * CAPS_LOCK
2702 */
2703 CAPS_LOCK: 20,
2704 /**
2705 * ESC
2706 */
2707 ESC: 27,
2708 /**
2709 * SPACE
2710 */
2711 SPACE: 32,
2712 /**
2713 * PAGE_UP
2714 */
2715 PAGE_UP: 33, // also NUM_NORTH_EAST
2716 /**
2717 * PAGE_DOWN
2718 */
2719 PAGE_DOWN: 34, // also NUM_SOUTH_EAST
2720 /**
2721 * END
2722 */
2723 END: 35, // also NUM_SOUTH_WEST
2724 /**
2725 * HOME
2726 */
2727 HOME: 36, // also NUM_NORTH_WEST
2728 /**
2729 * LEFT
2730 */
2731 LEFT: 37, // also NUM_WEST
2732 /**
2733 * UP
2734 */
2735 UP: 38, // also NUM_NORTH
2736 /**
2737 * RIGHT
2738 */
2739 RIGHT: 39, // also NUM_EAST
2740 /**
2741 * DOWN
2742 */
2743 DOWN: 40, // also NUM_SOUTH
2744 /**
2745 * PRINT_SCREEN
2746 */
2747 PRINT_SCREEN: 44,
2748 /**
2749 * INSERT
2750 */
2751 INSERT: 45, // also NUM_INSERT
2752 /**
2753 * DELETE
2754 */
2755 DELETE: 46, // also NUM_DELETE
2756 /**
2757 * ZERO
2758 */
2759 ZERO: 48,
2760 /**
2761 * ONE
2762 */
2763 ONE: 49,
2764 /**
2765 * TWO
2766 */
2767 TWO: 50,
2768 /**
2769 * THREE
2770 */
2771 THREE: 51,
2772 /**
2773 * FOUR
2774 */
2775 FOUR: 52,
2776 /**
2777 * FIVE
2778 */
2779 FIVE: 53,
2780 /**
2781 * SIX
2782 */
2783 SIX: 54,
2784 /**
2785 * SEVEN
2786 */
2787 SEVEN: 55,
2788 /**
2789 * EIGHT
2790 */
2791 EIGHT: 56,
2792 /**
2793 * NINE
2794 */
2795 NINE: 57,
2796 /**
2797 * QUESTION_MARK
2798 */
2799 QUESTION_MARK: 63, // needs localization
2800 /**
2801 * A
2802 */
2803 A: 65,
2804 /**
2805 * B
2806 */
2807 B: 66,
2808 /**
2809 * C
2810 */
2811 C: 67,
2812 /**
2813 * D
2814 */
2815 D: 68,
2816 /**
2817 * E
2818 */
2819 E: 69,
2820 /**
2821 * F
2822 */
2823 F: 70,
2824 /**
2825 * G
2826 */
2827 G: 71,
2828 /**
2829 * H
2830 */
2831 H: 72,
2832 /**
2833 * I
2834 */
2835 I: 73,
2836 /**
2837 * J
2838 */
2839 J: 74,
2840 /**
2841 * K
2842 */
2843 K: 75,
2844 /**
2845 * L
2846 */
2847 L: 76,
2848 /**
2849 * M
2850 */
2851 M: 77,
2852 /**
2853 * N
2854 */
2855 N: 78,
2856 /**
2857 * O
2858 */
2859 O: 79,
2860 /**
2861 * P
2862 */
2863 P: 80,
2864 /**
2865 * Q
2866 */
2867 Q: 81,
2868 /**
2869 * R
2870 */
2871 R: 82,
2872 /**
2873 * S
2874 */
2875 S: 83,
2876 /**
2877 * T
2878 */
2879 T: 84,
2880 /**
2881 * U
2882 */
2883 U: 85,
2884 /**
2885 * V
2886 */
2887 V: 86,
2888 /**
2889 * W
2890 */
2891 W: 87,
2892 /**
2893 * X
2894 */
2895 X: 88,
2896 /**
2897 * Y
2898 */
2899 Y: 89,
2900 /**
2901 * Z
2902 */
2903 Z: 90,
2904 /**
2905 * META
2906 */
2907 META: 91, // WIN_KEY_LEFT
2908 /**
2909 * WIN_KEY_RIGHT
2910 */
2911 WIN_KEY_RIGHT: 92,
2912 /**
2913 * CONTEXT_MENU
2914 */
2915 CONTEXT_MENU: 93,
2916 /**
2917 * NUM_ZERO
2918 */
2919 NUM_ZERO: 96,
2920 /**
2921 * NUM_ONE
2922 */
2923 NUM_ONE: 97,
2924 /**
2925 * NUM_TWO
2926 */
2927 NUM_TWO: 98,
2928 /**
2929 * NUM_THREE
2930 */
2931 NUM_THREE: 99,
2932 /**
2933 * NUM_FOUR
2934 */
2935 NUM_FOUR: 100,
2936 /**
2937 * NUM_FIVE
2938 */
2939 NUM_FIVE: 101,
2940 /**
2941 * NUM_SIX
2942 */
2943 NUM_SIX: 102,
2944 /**
2945 * NUM_SEVEN
2946 */
2947 NUM_SEVEN: 103,
2948 /**
2949 * NUM_EIGHT
2950 */
2951 NUM_EIGHT: 104,
2952 /**
2953 * NUM_NINE
2954 */
2955 NUM_NINE: 105,
2956 /**
2957 * NUM_MULTIPLY
2958 */
2959 NUM_MULTIPLY: 106,
2960 /**
2961 * NUM_PLUS
2962 */
2963 NUM_PLUS: 107,
2964 /**
2965 * NUM_MINUS
2966 */
2967 NUM_MINUS: 109,
2968 /**
2969 * NUM_PERIOD
2970 */
2971 NUM_PERIOD: 110,
2972 /**
2973 * NUM_DIVISION
2974 */
2975 NUM_DIVISION: 111,
2976 /**
2977 * F1
2978 */
2979 F1: 112,
2980 /**
2981 * F2
2982 */
2983 F2: 113,
2984 /**
2985 * F3
2986 */
2987 F3: 114,
2988 /**
2989 * F4
2990 */
2991 F4: 115,
2992 /**
2993 * F5
2994 */
2995 F5: 116,
2996 /**
2997 * F6
2998 */
2999 F6: 117,
3000 /**
3001 * F7
3002 */
3003 F7: 118,
3004 /**
3005 * F8
3006 */
3007 F8: 119,
3008 /**
3009 * F9
3010 */
3011 F9: 120,
3012 /**
3013 * F10
3014 */
3015 F10: 121,
3016 /**
3017 * F11
3018 */
3019 F11: 122,
3020 /**
3021 * F12
3022 */
3023 F12: 123,
3024 /**
3025 * NUMLOCK
3026 */
3027 NUMLOCK: 144,
3028 /**
3029 * SEMICOLON
3030 */
3031 SEMICOLON: 186, // needs localization
3032 /**
3033 * DASH
3034 */
3035 DASH: 189, // needs localization
3036 /**
3037 * EQUALS
3038 */
3039 EQUALS: 187, // needs localization
3040 /**
3041 * COMMA
3042 */
3043 COMMA: 188, // needs localization
3044 /**
3045 * PERIOD
3046 */
3047 PERIOD: 190, // needs localization
3048 /**
3049 * SLASH
3050 */
3051 SLASH: 191, // needs localization
3052 /**
3053 * APOSTROPHE
3054 */
3055 APOSTROPHE: 192, // needs localization
3056 /**
3057 * SINGLE_QUOTE
3058 */
3059 SINGLE_QUOTE: 222, // needs localization
3060 /**
3061 * OPEN_SQUARE_BRACKET
3062 */
3063 OPEN_SQUARE_BRACKET: 219, // needs localization
3064 /**
3065 * BACKSLASH
3066 */
3067 BACKSLASH: 220, // needs localization
3068 /**
3069 * CLOSE_SQUARE_BRACKET
3070 */
3071 CLOSE_SQUARE_BRACKET: 221, // needs localization
3072 /**
3073 * WIN_KEY
3074 */
3075 WIN_KEY: 224,
3076 /**
3077 * MAC_FF_META
3078 */
3079 MAC_FF_META: 224, // Firefox (Gecko) fires this for the meta key instead of 91
3080 /**
3081 * WIN_IME
3082 */
3083 WIN_IME: 229
3084 };
3085
3086 /*
3087 whether text and modified key is entered at the same time.
3088 */
3089 KeyCode.isTextModifyingKeyEvent = function isTextModifyingKeyEvent(e) {
3090 var keyCode = e.keyCode;
3091 if (e.altKey && !e.ctrlKey || e.metaKey ||
3092 // Function keys don't generate text
3093 keyCode >= KeyCode.F1 && keyCode <= KeyCode.F12) {
3094 return false;
3095 }
3096
3097 // The following keys are quite harmless, even in combination with
3098 // CTRL, ALT or SHIFT.
3099 switch (keyCode) {
3100 case KeyCode.ALT:
3101 case KeyCode.CAPS_LOCK:
3102 case KeyCode.CONTEXT_MENU:
3103 case KeyCode.CTRL:
3104 case KeyCode.DOWN:
3105 case KeyCode.END:
3106 case KeyCode.ESC:
3107 case KeyCode.HOME:
3108 case KeyCode.INSERT:
3109 case KeyCode.LEFT:
3110 case KeyCode.MAC_FF_META:
3111 case KeyCode.META:
3112 case KeyCode.NUMLOCK:
3113 case KeyCode.NUM_CENTER:
3114 case KeyCode.PAGE_DOWN:
3115 case KeyCode.PAGE_UP:
3116 case KeyCode.PAUSE:
3117 case KeyCode.PRINT_SCREEN:
3118 case KeyCode.RIGHT:
3119 case KeyCode.SHIFT:
3120 case KeyCode.UP:
3121 case KeyCode.WIN_KEY:
3122 case KeyCode.WIN_KEY_RIGHT:
3123 return false;
3124 default:
3125 return true;
3126 }
3127 };
3128
3129 /*
3130 whether character is entered.
3131 */
3132 KeyCode.isCharacterKey = function isCharacterKey(keyCode) {
3133 if (keyCode >= KeyCode.ZERO && keyCode <= KeyCode.NINE) {
3134 return true;
3135 }
3136
3137 if (keyCode >= KeyCode.NUM_ZERO && keyCode <= KeyCode.NUM_MULTIPLY) {
3138 return true;
3139 }
3140
3141 if (keyCode >= KeyCode.A && keyCode <= KeyCode.Z) {
3142 return true;
3143 }
3144
3145 // Safari sends zero key code for non-latin characters.
3146 if (window.navigation.userAgent.indexOf('WebKit') !== -1 && keyCode === 0) {
3147 return true;
3148 }
3149
3150 switch (keyCode) {
3151 case KeyCode.SPACE:
3152 case KeyCode.QUESTION_MARK:
3153 case KeyCode.NUM_PLUS:
3154 case KeyCode.NUM_MINUS:
3155 case KeyCode.NUM_PERIOD:
3156 case KeyCode.NUM_DIVISION:
3157 case KeyCode.SEMICOLON:
3158 case KeyCode.DASH:
3159 case KeyCode.EQUALS:
3160 case KeyCode.COMMA:
3161 case KeyCode.PERIOD:
3162 case KeyCode.SLASH:
3163 case KeyCode.APOSTROPHE:
3164 case KeyCode.SINGLE_QUOTE:
3165 case KeyCode.OPEN_SQUARE_BRACKET:
3166 case KeyCode.BACKSLASH:
3167 case KeyCode.CLOSE_SQUARE_BRACKET:
3168 return true;
3169 default:
3170 return false;
3171 }
3172 };
3173
3174 module.exports = KeyCode;
3175
3176/***/ }),
3177/* 39 */
3178/***/ (function(module, exports) {
3179
3180 "use strict";
3181
3182 exports.__esModule = true;
3183 exports.default = contains;
3184 function contains(root, n) {
3185 var node = n;
3186 while (node) {
3187 if (node === root) {
3188 return true;
3189 }
3190 node = node.parentNode;
3191 }
3192
3193 return false;
3194 }
3195
3196/***/ }),
3197/* 40 */
3198/***/ (function(module, exports, __webpack_require__) {
3199
3200 'use strict';
3201
3202 exports.__esModule = true;
3203 exports.default = addEventListenerWrap;
3204
3205 var _addDomEventListener = __webpack_require__(41);
3206
3207 var _addDomEventListener2 = _interopRequireDefault(_addDomEventListener);
3208
3209 var _reactDom = __webpack_require__(12);
3210
3211 var _reactDom2 = _interopRequireDefault(_reactDom);
3212
3213 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3214
3215 function addEventListenerWrap(target, eventType, cb) {
3216 /* eslint camelcase: 2 */
3217 var callback = _reactDom2.default.unstable_batchedUpdates ? function run(e) {
3218 _reactDom2.default.unstable_batchedUpdates(cb, e);
3219 } : cb;
3220 return (0, _addDomEventListener2.default)(target, eventType, callback);
3221 }
3222
3223/***/ }),
3224/* 41 */
3225/***/ (function(module, exports, __webpack_require__) {
3226
3227 'use strict';
3228
3229 Object.defineProperty(exports, '__esModule', {
3230 value: true
3231 });
3232 exports['default'] = addEventListener;
3233
3234 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3235
3236 var _EventObject = __webpack_require__(42);
3237
3238 var _EventObject2 = _interopRequireDefault(_EventObject);
3239
3240 function addEventListener(target, eventType, callback, option) {
3241 function wrapCallback(e) {
3242 var ne = new _EventObject2['default'](e);
3243 callback.call(target, ne);
3244 }
3245
3246 if (target.addEventListener) {
3247 var _ret = (function () {
3248 var useCapture = false;
3249 if (typeof option === 'object') {
3250 useCapture = option.capture || false;
3251 } else if (typeof option === 'boolean') {
3252 useCapture = option;
3253 }
3254
3255 target.addEventListener(eventType, wrapCallback, option || false);
3256
3257 return {
3258 v: {
3259 remove: function remove() {
3260 target.removeEventListener(eventType, wrapCallback, useCapture);
3261 }
3262 }
3263 };
3264 })();
3265
3266 if (typeof _ret === 'object') return _ret.v;
3267 } else if (target.attachEvent) {
3268 target.attachEvent('on' + eventType, wrapCallback);
3269 return {
3270 remove: function remove() {
3271 target.detachEvent('on' + eventType, wrapCallback);
3272 }
3273 };
3274 }
3275 }
3276
3277 module.exports = exports['default'];
3278
3279/***/ }),
3280/* 42 */
3281/***/ (function(module, exports, __webpack_require__) {
3282
3283 /**
3284 * @ignore
3285 * event object for dom
3286 * @author yiminghe@gmail.com
3287 */
3288
3289 'use strict';
3290
3291 Object.defineProperty(exports, '__esModule', {
3292 value: true
3293 });
3294
3295 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3296
3297 var _EventBaseObject = __webpack_require__(43);
3298
3299 var _EventBaseObject2 = _interopRequireDefault(_EventBaseObject);
3300
3301 var _objectAssign = __webpack_require__(44);
3302
3303 var _objectAssign2 = _interopRequireDefault(_objectAssign);
3304
3305 var TRUE = true;
3306 var FALSE = false;
3307 var commonProps = ['altKey', 'bubbles', 'cancelable', 'ctrlKey', 'currentTarget', 'eventPhase', 'metaKey', 'shiftKey', 'target', 'timeStamp', 'view', 'type'];
3308
3309 function isNullOrUndefined(w) {
3310 return w === null || w === undefined;
3311 }
3312
3313 var eventNormalizers = [{
3314 reg: /^key/,
3315 props: ['char', 'charCode', 'key', 'keyCode', 'which'],
3316 fix: function fix(event, nativeEvent) {
3317 if (isNullOrUndefined(event.which)) {
3318 event.which = !isNullOrUndefined(nativeEvent.charCode) ? nativeEvent.charCode : nativeEvent.keyCode;
3319 }
3320
3321 // add metaKey to non-Mac browsers (use ctrl for PC 's and Meta for Macs)
3322 if (event.metaKey === undefined) {
3323 event.metaKey = event.ctrlKey;
3324 }
3325 }
3326 }, {
3327 reg: /^touch/,
3328 props: ['touches', 'changedTouches', 'targetTouches']
3329 }, {
3330 reg: /^hashchange$/,
3331 props: ['newURL', 'oldURL']
3332 }, {
3333 reg: /^gesturechange$/i,
3334 props: ['rotation', 'scale']
3335 }, {
3336 reg: /^(mousewheel|DOMMouseScroll)$/,
3337 props: [],
3338 fix: function fix(event, nativeEvent) {
3339 var deltaX = undefined;
3340 var deltaY = undefined;
3341 var delta = undefined;
3342 var wheelDelta = nativeEvent.wheelDelta;
3343 var axis = nativeEvent.axis;
3344 var wheelDeltaY = nativeEvent.wheelDeltaY;
3345 var wheelDeltaX = nativeEvent.wheelDeltaX;
3346 var detail = nativeEvent.detail;
3347
3348 // ie/webkit
3349 if (wheelDelta) {
3350 delta = wheelDelta / 120;
3351 }
3352
3353 // gecko
3354 if (detail) {
3355 // press control e.detail == 1 else e.detail == 3
3356 delta = 0 - (detail % 3 === 0 ? detail / 3 : detail);
3357 }
3358
3359 // Gecko
3360 if (axis !== undefined) {
3361 if (axis === event.HORIZONTAL_AXIS) {
3362 deltaY = 0;
3363 deltaX = 0 - delta;
3364 } else if (axis === event.VERTICAL_AXIS) {
3365 deltaX = 0;
3366 deltaY = delta;
3367 }
3368 }
3369
3370 // Webkit
3371 if (wheelDeltaY !== undefined) {
3372 deltaY = wheelDeltaY / 120;
3373 }
3374 if (wheelDeltaX !== undefined) {
3375 deltaX = -1 * wheelDeltaX / 120;
3376 }
3377
3378 // 默认 deltaY (ie)
3379 if (!deltaX && !deltaY) {
3380 deltaY = delta;
3381 }
3382
3383 if (deltaX !== undefined) {
3384 /**
3385 * deltaX of mousewheel event
3386 * @property deltaX
3387 * @member Event.DomEvent.Object
3388 */
3389 event.deltaX = deltaX;
3390 }
3391
3392 if (deltaY !== undefined) {
3393 /**
3394 * deltaY of mousewheel event
3395 * @property deltaY
3396 * @member Event.DomEvent.Object
3397 */
3398 event.deltaY = deltaY;
3399 }
3400
3401 if (delta !== undefined) {
3402 /**
3403 * delta of mousewheel event
3404 * @property delta
3405 * @member Event.DomEvent.Object
3406 */
3407 event.delta = delta;
3408 }
3409 }
3410 }, {
3411 reg: /^mouse|contextmenu|click|mspointer|(^DOMMouseScroll$)/i,
3412 props: ['buttons', 'clientX', 'clientY', 'button', 'offsetX', 'relatedTarget', 'which', 'fromElement', 'toElement', 'offsetY', 'pageX', 'pageY', 'screenX', 'screenY'],
3413 fix: function fix(event, nativeEvent) {
3414 var eventDoc = undefined;
3415 var doc = undefined;
3416 var body = undefined;
3417 var target = event.target;
3418 var button = nativeEvent.button;
3419
3420 // Calculate pageX/Y if missing and clientX/Y available
3421 if (target && isNullOrUndefined(event.pageX) && !isNullOrUndefined(nativeEvent.clientX)) {
3422 eventDoc = target.ownerDocument || document;
3423 doc = eventDoc.documentElement;
3424 body = eventDoc.body;
3425 event.pageX = nativeEvent.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
3426 event.pageY = nativeEvent.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
3427 }
3428
3429 // which for click: 1 === left; 2 === middle; 3 === right
3430 // do not use button
3431 if (!event.which && button !== undefined) {
3432 if (button & 1) {
3433 event.which = 1;
3434 } else if (button & 2) {
3435 event.which = 3;
3436 } else if (button & 4) {
3437 event.which = 2;
3438 } else {
3439 event.which = 0;
3440 }
3441 }
3442
3443 // add relatedTarget, if necessary
3444 if (!event.relatedTarget && event.fromElement) {
3445 event.relatedTarget = event.fromElement === target ? event.toElement : event.fromElement;
3446 }
3447
3448 return event;
3449 }
3450 }];
3451
3452 function retTrue() {
3453 return TRUE;
3454 }
3455
3456 function retFalse() {
3457 return FALSE;
3458 }
3459
3460 function DomEventObject(nativeEvent) {
3461 var type = nativeEvent.type;
3462
3463 var isNative = typeof nativeEvent.stopPropagation === 'function' || typeof nativeEvent.cancelBubble === 'boolean';
3464
3465 _EventBaseObject2['default'].call(this);
3466
3467 this.nativeEvent = nativeEvent;
3468
3469 // in case dom event has been mark as default prevented by lower dom node
3470 var isDefaultPrevented = retFalse;
3471 if ('defaultPrevented' in nativeEvent) {
3472 isDefaultPrevented = nativeEvent.defaultPrevented ? retTrue : retFalse;
3473 } else if ('getPreventDefault' in nativeEvent) {
3474 // https://bugzilla.mozilla.org/show_bug.cgi?id=691151
3475 isDefaultPrevented = nativeEvent.getPreventDefault() ? retTrue : retFalse;
3476 } else if ('returnValue' in nativeEvent) {
3477 isDefaultPrevented = nativeEvent.returnValue === FALSE ? retTrue : retFalse;
3478 }
3479
3480 this.isDefaultPrevented = isDefaultPrevented;
3481
3482 var fixFns = [];
3483 var fixFn = undefined;
3484 var l = undefined;
3485 var prop = undefined;
3486 var props = commonProps.concat();
3487
3488 eventNormalizers.forEach(function (normalizer) {
3489 if (type.match(normalizer.reg)) {
3490 props = props.concat(normalizer.props);
3491 if (normalizer.fix) {
3492 fixFns.push(normalizer.fix);
3493 }
3494 }
3495 });
3496
3497 l = props.length;
3498
3499 // clone properties of the original event object
3500 while (l) {
3501 prop = props[--l];
3502 this[prop] = nativeEvent[prop];
3503 }
3504
3505 // fix target property, if necessary
3506 if (!this.target && isNative) {
3507 this.target = nativeEvent.srcElement || document; // srcElement might not be defined either
3508 }
3509
3510 // check if target is a text node (safari)
3511 if (this.target && this.target.nodeType === 3) {
3512 this.target = this.target.parentNode;
3513 }
3514
3515 l = fixFns.length;
3516
3517 while (l) {
3518 fixFn = fixFns[--l];
3519 fixFn(this, nativeEvent);
3520 }
3521
3522 this.timeStamp = nativeEvent.timeStamp || Date.now();
3523 }
3524
3525 var EventBaseObjectProto = _EventBaseObject2['default'].prototype;
3526
3527 (0, _objectAssign2['default'])(DomEventObject.prototype, EventBaseObjectProto, {
3528 constructor: DomEventObject,
3529
3530 preventDefault: function preventDefault() {
3531 var e = this.nativeEvent;
3532
3533 // if preventDefault exists run it on the original event
3534 if (e.preventDefault) {
3535 e.preventDefault();
3536 } else {
3537 // otherwise set the returnValue property of the original event to FALSE (IE)
3538 e.returnValue = FALSE;
3539 }
3540
3541 EventBaseObjectProto.preventDefault.call(this);
3542 },
3543
3544 stopPropagation: function stopPropagation() {
3545 var e = this.nativeEvent;
3546
3547 // if stopPropagation exists run it on the original event
3548 if (e.stopPropagation) {
3549 e.stopPropagation();
3550 } else {
3551 // otherwise set the cancelBubble property of the original event to TRUE (IE)
3552 e.cancelBubble = TRUE;
3553 }
3554
3555 EventBaseObjectProto.stopPropagation.call(this);
3556 }
3557 });
3558
3559 exports['default'] = DomEventObject;
3560 module.exports = exports['default'];
3561
3562/***/ }),
3563/* 43 */
3564/***/ (function(module, exports) {
3565
3566 /**
3567 * @ignore
3568 * base event object for custom and dom event.
3569 * @author yiminghe@gmail.com
3570 */
3571
3572 "use strict";
3573
3574 Object.defineProperty(exports, "__esModule", {
3575 value: true
3576 });
3577 function returnFalse() {
3578 return false;
3579 }
3580
3581 function returnTrue() {
3582 return true;
3583 }
3584
3585 function EventBaseObject() {
3586 this.timeStamp = Date.now();
3587 this.target = undefined;
3588 this.currentTarget = undefined;
3589 }
3590
3591 EventBaseObject.prototype = {
3592 isEventObject: 1,
3593
3594 constructor: EventBaseObject,
3595
3596 isDefaultPrevented: returnFalse,
3597
3598 isPropagationStopped: returnFalse,
3599
3600 isImmediatePropagationStopped: returnFalse,
3601
3602 preventDefault: function preventDefault() {
3603 this.isDefaultPrevented = returnTrue;
3604 },
3605
3606 stopPropagation: function stopPropagation() {
3607 this.isPropagationStopped = returnTrue;
3608 },
3609
3610 stopImmediatePropagation: function stopImmediatePropagation() {
3611 this.isImmediatePropagationStopped = returnTrue;
3612 // fixed 1.2
3613 // call stopPropagation implicitly
3614 this.stopPropagation();
3615 },
3616
3617 halt: function halt(immediate) {
3618 if (immediate) {
3619 this.stopImmediatePropagation();
3620 } else {
3621 this.stopPropagation();
3622 }
3623 this.preventDefault();
3624 }
3625 };
3626
3627 exports["default"] = EventBaseObject;
3628 module.exports = exports["default"];
3629
3630/***/ }),
3631/* 44 */
3632/***/ (function(module, exports) {
3633
3634 /*
3635 object-assign
3636 (c) Sindre Sorhus
3637 @license MIT
3638 */
3639
3640 'use strict';
3641 /* eslint-disable no-unused-vars */
3642 var getOwnPropertySymbols = Object.getOwnPropertySymbols;
3643 var hasOwnProperty = Object.prototype.hasOwnProperty;
3644 var propIsEnumerable = Object.prototype.propertyIsEnumerable;
3645
3646 function toObject(val) {
3647 if (val === null || val === undefined) {
3648 throw new TypeError('Object.assign cannot be called with null or undefined');
3649 }
3650
3651 return Object(val);
3652 }
3653
3654 function shouldUseNative() {
3655 try {
3656 if (!Object.assign) {
3657 return false;
3658 }
3659
3660 // Detect buggy property enumeration order in older V8 versions.
3661
3662 // https://bugs.chromium.org/p/v8/issues/detail?id=4118
3663 var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
3664 test1[5] = 'de';
3665 if (Object.getOwnPropertyNames(test1)[0] === '5') {
3666 return false;
3667 }
3668
3669 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
3670 var test2 = {};
3671 for (var i = 0; i < 10; i++) {
3672 test2['_' + String.fromCharCode(i)] = i;
3673 }
3674 var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
3675 return test2[n];
3676 });
3677 if (order2.join('') !== '0123456789') {
3678 return false;
3679 }
3680
3681 // https://bugs.chromium.org/p/v8/issues/detail?id=3056
3682 var test3 = {};
3683 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
3684 test3[letter] = letter;
3685 });
3686 if (Object.keys(Object.assign({}, test3)).join('') !==
3687 'abcdefghijklmnopqrst') {
3688 return false;
3689 }
3690
3691 return true;
3692 } catch (err) {
3693 // We don't expect any of the above to throw, but better to be safe.
3694 return false;
3695 }
3696 }
3697
3698 module.exports = shouldUseNative() ? Object.assign : function (target, source) {
3699 var from;
3700 var to = toObject(target);
3701 var symbols;
3702
3703 for (var s = 1; s < arguments.length; s++) {
3704 from = Object(arguments[s]);
3705
3706 for (var key in from) {
3707 if (hasOwnProperty.call(from, key)) {
3708 to[key] = from[key];
3709 }
3710 }
3711
3712 if (getOwnPropertySymbols) {
3713 symbols = getOwnPropertySymbols(from);
3714 for (var i = 0; i < symbols.length; i++) {
3715 if (propIsEnumerable.call(from, symbols[i])) {
3716 to[symbols[i]] = from[symbols[i]];
3717 }
3718 }
3719 }
3720 }
3721
3722 return to;
3723 };
3724
3725
3726/***/ }),
3727/* 45 */
3728/***/ (function(module, exports, __webpack_require__) {
3729
3730 'use strict';
3731
3732 exports.__esModule = true;
3733
3734 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; };
3735
3736 var _Event = __webpack_require__(46);
3737
3738 var _Event2 = _interopRequireDefault(_Event);
3739
3740 var _componentClasses = __webpack_require__(47);
3741
3742 var _componentClasses2 = _interopRequireDefault(_componentClasses);
3743
3744 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3745
3746 var isCssAnimationSupported = _Event2.default.endEvents.length !== 0;
3747
3748
3749 var capitalPrefixes = ['Webkit', 'Moz', 'O',
3750 // ms is special .... !
3751 'ms'];
3752 var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];
3753
3754 function getStyleProperty(node, name) {
3755 var style = window.getComputedStyle(node);
3756
3757 var ret = '';
3758 for (var i = 0; i < prefixes.length; i++) {
3759 ret = style.getPropertyValue(prefixes[i] + name);
3760 if (ret) {
3761 break;
3762 }
3763 }
3764 return ret;
3765 }
3766
3767 function fixBrowserByTimeout(node) {
3768 if (isCssAnimationSupported) {
3769 var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;
3770 var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;
3771 var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;
3772 var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;
3773 var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);
3774 // sometimes, browser bug
3775 node.rcEndAnimTimeout = setTimeout(function () {
3776 node.rcEndAnimTimeout = null;
3777 if (node.rcEndListener) {
3778 node.rcEndListener();
3779 }
3780 }, time * 1000 + 200);
3781 }
3782 }
3783
3784 function clearBrowserBugTimeout(node) {
3785 if (node.rcEndAnimTimeout) {
3786 clearTimeout(node.rcEndAnimTimeout);
3787 node.rcEndAnimTimeout = null;
3788 }
3789 }
3790
3791 var cssAnimation = function cssAnimation(node, transitionName, endCallback) {
3792 var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';
3793 var className = nameIsObj ? transitionName.name : transitionName;
3794 var activeClassName = nameIsObj ? transitionName.active : transitionName + '-active';
3795 var end = endCallback;
3796 var start = void 0;
3797 var active = void 0;
3798 var nodeClasses = (0, _componentClasses2.default)(node);
3799
3800 if (endCallback && Object.prototype.toString.call(endCallback) === '[object Object]') {
3801 end = endCallback.end;
3802 start = endCallback.start;
3803 active = endCallback.active;
3804 }
3805
3806 if (node.rcEndListener) {
3807 node.rcEndListener();
3808 }
3809
3810 node.rcEndListener = function (e) {
3811 if (e && e.target !== node) {
3812 return;
3813 }
3814
3815 if (node.rcAnimTimeout) {
3816 clearTimeout(node.rcAnimTimeout);
3817 node.rcAnimTimeout = null;
3818 }
3819
3820 clearBrowserBugTimeout(node);
3821
3822 nodeClasses.remove(className);
3823 nodeClasses.remove(activeClassName);
3824
3825 _Event2.default.removeEndEventListener(node, node.rcEndListener);
3826 node.rcEndListener = null;
3827
3828 // Usually this optional end is used for informing an owner of
3829 // a leave animation and telling it to remove the child.
3830 if (end) {
3831 end();
3832 }
3833 };
3834
3835 _Event2.default.addEndEventListener(node, node.rcEndListener);
3836
3837 if (start) {
3838 start();
3839 }
3840 nodeClasses.add(className);
3841
3842 node.rcAnimTimeout = setTimeout(function () {
3843 node.rcAnimTimeout = null;
3844 nodeClasses.add(activeClassName);
3845 if (active) {
3846 setTimeout(active, 0);
3847 }
3848 fixBrowserByTimeout(node);
3849 // 30ms for firefox
3850 }, 30);
3851
3852 return {
3853 stop: function stop() {
3854 if (node.rcEndListener) {
3855 node.rcEndListener();
3856 }
3857 }
3858 };
3859 };
3860
3861 cssAnimation.style = function (node, style, callback) {
3862 if (node.rcEndListener) {
3863 node.rcEndListener();
3864 }
3865
3866 node.rcEndListener = function (e) {
3867 if (e && e.target !== node) {
3868 return;
3869 }
3870
3871 if (node.rcAnimTimeout) {
3872 clearTimeout(node.rcAnimTimeout);
3873 node.rcAnimTimeout = null;
3874 }
3875
3876 clearBrowserBugTimeout(node);
3877
3878 _Event2.default.removeEndEventListener(node, node.rcEndListener);
3879 node.rcEndListener = null;
3880
3881 // Usually this optional callback is used for informing an owner of
3882 // a leave animation and telling it to remove the child.
3883 if (callback) {
3884 callback();
3885 }
3886 };
3887
3888 _Event2.default.addEndEventListener(node, node.rcEndListener);
3889
3890 node.rcAnimTimeout = setTimeout(function () {
3891 for (var s in style) {
3892 if (style.hasOwnProperty(s)) {
3893 node.style[s] = style[s];
3894 }
3895 }
3896 node.rcAnimTimeout = null;
3897 fixBrowserByTimeout(node);
3898 }, 0);
3899 };
3900
3901 cssAnimation.setTransition = function (node, p, value) {
3902 var property = p;
3903 var v = value;
3904 if (value === undefined) {
3905 v = property;
3906 property = '';
3907 }
3908 property = property || '';
3909 capitalPrefixes.forEach(function (prefix) {
3910 node.style[prefix + 'Transition' + property] = v;
3911 });
3912 };
3913
3914 cssAnimation.isCssAnimationSupported = isCssAnimationSupported;
3915
3916 exports.default = cssAnimation;
3917
3918/***/ }),
3919/* 46 */
3920/***/ (function(module, exports) {
3921
3922 'use strict';
3923
3924 exports.__esModule = true;
3925 var EVENT_NAME_MAP = {
3926 transitionend: {
3927 transition: 'transitionend',
3928 WebkitTransition: 'webkitTransitionEnd',
3929 MozTransition: 'mozTransitionEnd',
3930 OTransition: 'oTransitionEnd',
3931 msTransition: 'MSTransitionEnd'
3932 },
3933
3934 animationend: {
3935 animation: 'animationend',
3936 WebkitAnimation: 'webkitAnimationEnd',
3937 MozAnimation: 'mozAnimationEnd',
3938 OAnimation: 'oAnimationEnd',
3939 msAnimation: 'MSAnimationEnd'
3940 }
3941 };
3942
3943 var endEvents = [];
3944
3945 function detectEvents() {
3946 var testEl = document.createElement('div');
3947 var style = testEl.style;
3948
3949 if (!('AnimationEvent' in window)) {
3950 delete EVENT_NAME_MAP.animationend.animation;
3951 }
3952
3953 if (!('TransitionEvent' in window)) {
3954 delete EVENT_NAME_MAP.transitionend.transition;
3955 }
3956
3957 for (var baseEventName in EVENT_NAME_MAP) {
3958 if (EVENT_NAME_MAP.hasOwnProperty(baseEventName)) {
3959 var baseEvents = EVENT_NAME_MAP[baseEventName];
3960 for (var styleName in baseEvents) {
3961 if (styleName in style) {
3962 endEvents.push(baseEvents[styleName]);
3963 break;
3964 }
3965 }
3966 }
3967 }
3968 }
3969
3970 if (typeof window !== 'undefined' && typeof document !== 'undefined') {
3971 detectEvents();
3972 }
3973
3974 function addEventListener(node, eventName, eventListener) {
3975 node.addEventListener(eventName, eventListener, false);
3976 }
3977
3978 function removeEventListener(node, eventName, eventListener) {
3979 node.removeEventListener(eventName, eventListener, false);
3980 }
3981
3982 var TransitionEvents = {
3983 addEndEventListener: function addEndEventListener(node, eventListener) {
3984 if (endEvents.length === 0) {
3985 window.setTimeout(eventListener, 0);
3986 return;
3987 }
3988 endEvents.forEach(function (endEvent) {
3989 addEventListener(node, endEvent, eventListener);
3990 });
3991 },
3992
3993
3994 endEvents: endEvents,
3995
3996 removeEndEventListener: function removeEndEventListener(node, eventListener) {
3997 if (endEvents.length === 0) {
3998 return;
3999 }
4000 endEvents.forEach(function (endEvent) {
4001 removeEventListener(node, endEvent, eventListener);
4002 });
4003 }
4004 };
4005
4006 exports.default = TransitionEvents;
4007
4008/***/ }),
4009/* 47 */
4010/***/ (function(module, exports, __webpack_require__) {
4011
4012 /**
4013 * Module dependencies.
4014 */
4015
4016 try {
4017 var index = __webpack_require__(48);
4018 } catch (err) {
4019 var index = __webpack_require__(48);
4020 }
4021
4022 /**
4023 * Whitespace regexp.
4024 */
4025
4026 var re = /\s+/;
4027
4028 /**
4029 * toString reference.
4030 */
4031
4032 var toString = Object.prototype.toString;
4033
4034 /**
4035 * Wrap `el` in a `ClassList`.
4036 *
4037 * @param {Element} el
4038 * @return {ClassList}
4039 * @api public
4040 */
4041
4042 module.exports = function(el){
4043 return new ClassList(el);
4044 };
4045
4046 /**
4047 * Initialize a new ClassList for `el`.
4048 *
4049 * @param {Element} el
4050 * @api private
4051 */
4052
4053 function ClassList(el) {
4054 if (!el || !el.nodeType) {
4055 throw new Error('A DOM element reference is required');
4056 }
4057 this.el = el;
4058 this.list = el.classList;
4059 }
4060
4061 /**
4062 * Add class `name` if not already present.
4063 *
4064 * @param {String} name
4065 * @return {ClassList}
4066 * @api public
4067 */
4068
4069 ClassList.prototype.add = function(name){
4070 // classList
4071 if (this.list) {
4072 this.list.add(name);
4073 return this;
4074 }
4075
4076 // fallback
4077 var arr = this.array();
4078 var i = index(arr, name);
4079 if (!~i) arr.push(name);
4080 this.el.className = arr.join(' ');
4081 return this;
4082 };
4083
4084 /**
4085 * Remove class `name` when present, or
4086 * pass a regular expression to remove
4087 * any which match.
4088 *
4089 * @param {String|RegExp} name
4090 * @return {ClassList}
4091 * @api public
4092 */
4093
4094 ClassList.prototype.remove = function(name){
4095 if ('[object RegExp]' == toString.call(name)) {
4096 return this.removeMatching(name);
4097 }
4098
4099 // classList
4100 if (this.list) {
4101 this.list.remove(name);
4102 return this;
4103 }
4104
4105 // fallback
4106 var arr = this.array();
4107 var i = index(arr, name);
4108 if (~i) arr.splice(i, 1);
4109 this.el.className = arr.join(' ');
4110 return this;
4111 };
4112
4113 /**
4114 * Remove all classes matching `re`.
4115 *
4116 * @param {RegExp} re
4117 * @return {ClassList}
4118 * @api private
4119 */
4120
4121 ClassList.prototype.removeMatching = function(re){
4122 var arr = this.array();
4123 for (var i = 0; i < arr.length; i++) {
4124 if (re.test(arr[i])) {
4125 this.remove(arr[i]);
4126 }
4127 }
4128 return this;
4129 };
4130
4131 /**
4132 * Toggle class `name`, can force state via `force`.
4133 *
4134 * For browsers that support classList, but do not support `force` yet,
4135 * the mistake will be detected and corrected.
4136 *
4137 * @param {String} name
4138 * @param {Boolean} force
4139 * @return {ClassList}
4140 * @api public
4141 */
4142
4143 ClassList.prototype.toggle = function(name, force){
4144 // classList
4145 if (this.list) {
4146 if ("undefined" !== typeof force) {
4147 if (force !== this.list.toggle(name, force)) {
4148 this.list.toggle(name); // toggle again to correct
4149 }
4150 } else {
4151 this.list.toggle(name);
4152 }
4153 return this;
4154 }
4155
4156 // fallback
4157 if ("undefined" !== typeof force) {
4158 if (!force) {
4159 this.remove(name);
4160 } else {
4161 this.add(name);
4162 }
4163 } else {
4164 if (this.has(name)) {
4165 this.remove(name);
4166 } else {
4167 this.add(name);
4168 }
4169 }
4170
4171 return this;
4172 };
4173
4174 /**
4175 * Return an array of classes.
4176 *
4177 * @return {Array}
4178 * @api public
4179 */
4180
4181 ClassList.prototype.array = function(){
4182 var className = this.el.getAttribute('class') || '';
4183 var str = className.replace(/^\s+|\s+$/g, '');
4184 var arr = str.split(re);
4185 if ('' === arr[0]) arr.shift();
4186 return arr;
4187 };
4188
4189 /**
4190 * Check if class `name` is present.
4191 *
4192 * @param {String} name
4193 * @return {ClassList}
4194 * @api public
4195 */
4196
4197 ClassList.prototype.has =
4198 ClassList.prototype.contains = function(name){
4199 return this.list
4200 ? this.list.contains(name)
4201 : !! ~index(this.array(), name);
4202 };
4203
4204
4205/***/ }),
4206/* 48 */
4207/***/ (function(module, exports) {
4208
4209 module.exports = function(arr, obj){
4210 if (arr.indexOf) return arr.indexOf(obj);
4211 for (var i = 0; i < arr.length; ++i) {
4212 if (arr[i] === obj) return i;
4213 }
4214 return -1;
4215 };
4216
4217/***/ }),
4218/* 49 */
4219/***/ (function(module, exports, __webpack_require__) {
4220
4221 'use strict';
4222
4223 exports.__esModule = true;
4224 exports.default = toArray;
4225
4226 var _react = __webpack_require__(4);
4227
4228 var _react2 = _interopRequireDefault(_react);
4229
4230 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4231
4232 function toArray(children) {
4233 var ret = [];
4234 _react2.default.Children.forEach(children, function (c) {
4235 ret.push(c);
4236 });
4237 return ret;
4238 }
4239
4240/***/ }),
4241/* 50 */
4242/***/ (function(module, exports, __webpack_require__) {
4243
4244 'use strict';
4245
4246 exports.__esModule = true;
4247
4248 var _react = __webpack_require__(4);
4249
4250 var _react2 = _interopRequireDefault(_react);
4251
4252 var _propTypes = __webpack_require__(5);
4253
4254 var _propTypes2 = _interopRequireDefault(_propTypes);
4255
4256 var _reactDom = __webpack_require__(12);
4257
4258 var _reactDom2 = _interopRequireDefault(_reactDom);
4259
4260 var _domAlign = __webpack_require__(51);
4261
4262 var _domAlign2 = _interopRequireDefault(_domAlign);
4263
4264 var _addEventListener = __webpack_require__(40);
4265
4266 var _addEventListener2 = _interopRequireDefault(_addEventListener);
4267
4268 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4269
4270 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4271
4272 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; }
4273
4274 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; }
4275
4276 //import isWindow from './isWindow';
4277
4278 function isWindow(obj) {
4279 /* eslint no-eq-null: 0 */
4280 /* eslint eqeqeq: 0 */
4281 return obj != null && obj == obj.window;
4282 }
4283
4284 function buffer(fn, ms) {
4285 var timer = void 0;
4286
4287 function clear() {
4288 if (timer) {
4289 clearTimeout(timer);
4290 timer = null;
4291 }
4292 }
4293
4294 function bufferFn() {
4295 clear();
4296 timer = setTimeout(fn, ms);
4297 }
4298
4299 bufferFn.clear = clear;
4300
4301 return bufferFn;
4302 }
4303
4304 var propTypes = {
4305 childrenProps: _propTypes2.default.object,
4306 align: _propTypes2.default.object.isRequired,
4307 target: _propTypes2.default.func,
4308 onAlign: _propTypes2.default.func,
4309 monitorBufferTime: _propTypes2.default.number,
4310 monitorWindowResize: _propTypes2.default.bool,
4311 disabled: _propTypes2.default.bool,
4312 children: _propTypes2.default.any
4313 };
4314
4315 var defaultProps = {
4316 target: function target() {
4317 return window;
4318 },
4319 onAlign: function onAlign() {},
4320
4321 monitorBufferTime: 50,
4322 monitorWindowResize: false,
4323 disabled: false
4324 };
4325
4326 var Align = function (_React$Component) {
4327 _inherits(Align, _React$Component);
4328
4329 function Align(props) {
4330 _classCallCheck(this, Align);
4331
4332 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
4333
4334 _initialiseProps.call(_this);
4335
4336 return _this;
4337 }
4338
4339 Align.prototype.componentDidMount = function componentDidMount() {
4340 var props = this.props;
4341 // if parent ref not attached .... use document.getElementById
4342 this.forceAlign();
4343 if (!props.disabled && props.monitorWindowResize) {
4344 this.startMonitorWindowResize();
4345 }
4346 };
4347
4348 Align.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
4349 var reAlign = false;
4350 var props = this.props;
4351
4352 if (!props.disabled) {
4353 if (prevProps.disabled || prevProps.align !== props.align) {
4354 reAlign = true;
4355 } else {
4356 var lastTarget = prevProps.target();
4357 var currentTarget = props.target();
4358 if (isWindow(lastTarget) && isWindow(currentTarget)) {
4359 reAlign = false;
4360 } else if (lastTarget !== currentTarget) {
4361 reAlign = true;
4362 }
4363 }
4364 }
4365
4366 if (reAlign) {
4367 this.forceAlign();
4368 }
4369
4370 if (props.monitorWindowResize && !props.disabled) {
4371 this.startMonitorWindowResize();
4372 } else {
4373 this.stopMonitorWindowResize();
4374 }
4375 };
4376
4377 Align.prototype.componentWillUnmount = function componentWillUnmount() {
4378 this.stopMonitorWindowResize();
4379 };
4380
4381 Align.prototype.render = function render() {
4382 var _props = this.props,
4383 childrenProps = _props.childrenProps,
4384 children = _props.children;
4385
4386 var child = _react2.default.Children.only(children);
4387 if (childrenProps) {
4388 var newProps = {};
4389 for (var prop in childrenProps) {
4390 if (childrenProps.hasOwnProperty(prop)) {
4391 newProps[prop] = this.props[childrenProps[prop]];
4392 }
4393 }
4394 return _react2.default.cloneElement(child, newProps);
4395 }
4396 return child;
4397 };
4398
4399 return Align;
4400 }(_react2.default.Component);
4401
4402 var _initialiseProps = function _initialiseProps() {
4403 var _this2 = this;
4404
4405 this.startMonitorWindowResize = function () {
4406 if (!_this2.resizeHandler) {
4407 _this2.bufferMonitor = buffer(_this2.forceAlign, _this2.props.monitorBufferTime);
4408 _this2.resizeHandler = (0, _addEventListener2.default)(window, 'resize', _this2.bufferMonitor);
4409 }
4410 };
4411
4412 this.stopMonitorWindowResize = function () {
4413 if (_this2.resizeHandler) {
4414 _this2.bufferMonitor.clear();
4415 _this2.resizeHandler.remove();
4416 _this2.resizeHandler = null;
4417 }
4418 };
4419
4420 this.forceAlign = function () {
4421 var props = _this2.props;
4422 if (!props.disabled) {
4423 var source = _reactDom2.default.findDOMNode(_this2);
4424 props.onAlign(source, (0, _domAlign2.default)(source, props.target(), props.align));
4425 }
4426 };
4427 };
4428
4429 ;
4430
4431 Align.defaultProps = defaultProps;
4432 Align.propTypes = propTypes;
4433
4434 exports.default = Align;
4435
4436/***/ }),
4437/* 51 */
4438/***/ (function(module, exports, __webpack_require__) {
4439
4440 'use strict';
4441
4442 Object.defineProperty(exports, "__esModule", {
4443 value: true
4444 });
4445 exports.alignPoint = exports.alignElement = undefined;
4446
4447 var _alignElement = __webpack_require__(52);
4448
4449 var _alignElement2 = _interopRequireDefault(_alignElement);
4450
4451 var _alignPoint = __webpack_require__(63);
4452
4453 var _alignPoint2 = _interopRequireDefault(_alignPoint);
4454
4455 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
4456
4457 exports.alignElement = _alignElement2['default'];
4458 exports.alignPoint = _alignPoint2['default'];
4459 exports['default'] = _alignElement2['default'];
4460
4461/***/ }),
4462/* 52 */
4463/***/ (function(module, exports, __webpack_require__) {
4464
4465 'use strict';
4466
4467 Object.defineProperty(exports, "__esModule", {
4468 value: true
4469 });
4470
4471 var _align = __webpack_require__(53);
4472
4473 var _align2 = _interopRequireDefault(_align);
4474
4475 var _getOffsetParent = __webpack_require__(57);
4476
4477 var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);
4478
4479 var _getVisibleRectForElement = __webpack_require__(56);
4480
4481 var _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement);
4482
4483 var _getRegion = __webpack_require__(60);
4484
4485 var _getRegion2 = _interopRequireDefault(_getRegion);
4486
4487 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
4488
4489 function isOutOfVisibleRect(target) {
4490 var visibleRect = (0, _getVisibleRectForElement2['default'])(target);
4491 var targetRegion = (0, _getRegion2['default'])(target);
4492
4493 return !visibleRect || targetRegion.left + targetRegion.width <= visibleRect.left || targetRegion.top + targetRegion.height <= visibleRect.top || targetRegion.left >= visibleRect.right || targetRegion.top >= visibleRect.bottom;
4494 }
4495
4496 function alignElement(el, refNode, align) {
4497 var target = align.target || refNode;
4498 var refNodeRegion = (0, _getRegion2['default'])(target);
4499
4500 var isTargetNotOutOfVisible = !isOutOfVisibleRect(target);
4501
4502 return (0, _align2['default'])(el, refNodeRegion, align, isTargetNotOutOfVisible);
4503 }
4504
4505 alignElement.__getOffsetParent = _getOffsetParent2['default'];
4506
4507 alignElement.__getVisibleRectForElement = _getVisibleRectForElement2['default'];
4508
4509 exports['default'] = alignElement;
4510 module.exports = exports['default'];
4511
4512/***/ }),
4513/* 53 */
4514/***/ (function(module, exports, __webpack_require__) {
4515
4516 'use strict';
4517
4518 Object.defineProperty(exports, "__esModule", {
4519 value: true
4520 });
4521
4522 var _utils = __webpack_require__(54);
4523
4524 var _utils2 = _interopRequireDefault(_utils);
4525
4526 var _getVisibleRectForElement = __webpack_require__(56);
4527
4528 var _getVisibleRectForElement2 = _interopRequireDefault(_getVisibleRectForElement);
4529
4530 var _adjustForViewport = __webpack_require__(59);
4531
4532 var _adjustForViewport2 = _interopRequireDefault(_adjustForViewport);
4533
4534 var _getRegion = __webpack_require__(60);
4535
4536 var _getRegion2 = _interopRequireDefault(_getRegion);
4537
4538 var _getElFuturePos = __webpack_require__(61);
4539
4540 var _getElFuturePos2 = _interopRequireDefault(_getElFuturePos);
4541
4542 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
4543
4544 // http://yiminghe.iteye.com/blog/1124720
4545
4546 function isFailX(elFuturePos, elRegion, visibleRect) {
4547 return elFuturePos.left < visibleRect.left || elFuturePos.left + elRegion.width > visibleRect.right;
4548 } /**
4549 * align dom node flexibly
4550 * @author yiminghe@gmail.com
4551 */
4552
4553 function isFailY(elFuturePos, elRegion, visibleRect) {
4554 return elFuturePos.top < visibleRect.top || elFuturePos.top + elRegion.height > visibleRect.bottom;
4555 }
4556
4557 function isCompleteFailX(elFuturePos, elRegion, visibleRect) {
4558 return elFuturePos.left > visibleRect.right || elFuturePos.left + elRegion.width < visibleRect.left;
4559 }
4560
4561 function isCompleteFailY(elFuturePos, elRegion, visibleRect) {
4562 return elFuturePos.top > visibleRect.bottom || elFuturePos.top + elRegion.height < visibleRect.top;
4563 }
4564
4565 function flip(points, reg, map) {
4566 var ret = [];
4567 _utils2['default'].each(points, function (p) {
4568 ret.push(p.replace(reg, function (m) {
4569 return map[m];
4570 }));
4571 });
4572 return ret;
4573 }
4574
4575 function flipOffset(offset, index) {
4576 offset[index] = -offset[index];
4577 return offset;
4578 }
4579
4580 function convertOffset(str, offsetLen) {
4581 var n = void 0;
4582 if (/%$/.test(str)) {
4583 n = parseInt(str.substring(0, str.length - 1), 10) / 100 * offsetLen;
4584 } else {
4585 n = parseInt(str, 10);
4586 }
4587 return n || 0;
4588 }
4589
4590 function normalizeOffset(offset, el) {
4591 offset[0] = convertOffset(offset[0], el.width);
4592 offset[1] = convertOffset(offset[1], el.height);
4593 }
4594
4595 /**
4596 * @param el
4597 * @param tgtRegion 参照节点所占的区域: { left, top, width, height }
4598 * @param align
4599 */
4600 function doAlign(el, tgtRegion, align, isTgtRegionVisible) {
4601 var points = align.points;
4602 var offset = align.offset || [0, 0];
4603 var targetOffset = align.targetOffset || [0, 0];
4604 var overflow = align.overflow;
4605 var source = align.source || el;
4606 offset = [].concat(offset);
4607 targetOffset = [].concat(targetOffset);
4608 overflow = overflow || {};
4609 var newOverflowCfg = {};
4610 var fail = 0;
4611 // 当前节点可以被放置的显示区域
4612 var visibleRect = (0, _getVisibleRectForElement2['default'])(source);
4613 // 当前节点所占的区域, left/top/width/height
4614 var elRegion = (0, _getRegion2['default'])(source);
4615 // 将 offset 转换成数值,支持百分比
4616 normalizeOffset(offset, elRegion);
4617 normalizeOffset(targetOffset, tgtRegion);
4618 // 当前节点将要被放置的位置
4619 var elFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, points, offset, targetOffset);
4620 // 当前节点将要所处的区域
4621 var newElRegion = _utils2['default'].merge(elRegion, elFuturePos);
4622
4623 // 如果可视区域不能完全放置当前节点时允许调整
4624 if (visibleRect && (overflow.adjustX || overflow.adjustY) && isTgtRegionVisible) {
4625 if (overflow.adjustX) {
4626 // 如果横向不能放下
4627 if (isFailX(elFuturePos, elRegion, visibleRect)) {
4628 // 对齐位置反下
4629 var newPoints = flip(points, /[lr]/ig, {
4630 l: 'r',
4631 r: 'l'
4632 });
4633 // 偏移量也反下
4634 var newOffset = flipOffset(offset, 0);
4635 var newTargetOffset = flipOffset(targetOffset, 0);
4636 var newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, newPoints, newOffset, newTargetOffset);
4637
4638 if (!isCompleteFailX(newElFuturePos, elRegion, visibleRect)) {
4639 fail = 1;
4640 points = newPoints;
4641 offset = newOffset;
4642 targetOffset = newTargetOffset;
4643 }
4644 }
4645 }
4646
4647 if (overflow.adjustY) {
4648 // 如果纵向不能放下
4649 if (isFailY(elFuturePos, elRegion, visibleRect)) {
4650 // 对齐位置反下
4651 var _newPoints = flip(points, /[tb]/ig, {
4652 t: 'b',
4653 b: 't'
4654 });
4655 // 偏移量也反下
4656 var _newOffset = flipOffset(offset, 1);
4657 var _newTargetOffset = flipOffset(targetOffset, 1);
4658 var _newElFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, _newPoints, _newOffset, _newTargetOffset);
4659
4660 if (!isCompleteFailY(_newElFuturePos, elRegion, visibleRect)) {
4661 fail = 1;
4662 points = _newPoints;
4663 offset = _newOffset;
4664 targetOffset = _newTargetOffset;
4665 }
4666 }
4667 }
4668
4669 // 如果失败,重新计算当前节点将要被放置的位置
4670 if (fail) {
4671 elFuturePos = (0, _getElFuturePos2['default'])(elRegion, tgtRegion, points, offset, targetOffset);
4672 _utils2['default'].mix(newElRegion, elFuturePos);
4673 }
4674 var isStillFailX = isFailX(elFuturePos, elRegion, visibleRect);
4675 var isStillFailY = isFailY(elFuturePos, elRegion, visibleRect);
4676 // 检查反下后的位置是否可以放下了,如果仍然放不下:
4677 // 1. 复原修改过的定位参数
4678 if (isStillFailX || isStillFailY) {
4679 points = align.points;
4680 offset = align.offset || [0, 0];
4681 targetOffset = align.targetOffset || [0, 0];
4682 }
4683 // 2. 只有指定了可以调整当前方向才调整
4684 newOverflowCfg.adjustX = overflow.adjustX && isStillFailX;
4685 newOverflowCfg.adjustY = overflow.adjustY && isStillFailY;
4686
4687 // 确实要调整,甚至可能会调整高度宽度
4688 if (newOverflowCfg.adjustX || newOverflowCfg.adjustY) {
4689 newElRegion = (0, _adjustForViewport2['default'])(elFuturePos, elRegion, visibleRect, newOverflowCfg);
4690 }
4691 }
4692
4693 // need judge to in case set fixed with in css on height auto element
4694 if (newElRegion.width !== elRegion.width) {
4695 _utils2['default'].css(source, 'width', _utils2['default'].width(source) + newElRegion.width - elRegion.width);
4696 }
4697
4698 if (newElRegion.height !== elRegion.height) {
4699 _utils2['default'].css(source, 'height', _utils2['default'].height(source) + newElRegion.height - elRegion.height);
4700 }
4701
4702 // https://github.com/kissyteam/kissy/issues/190
4703 // 相对于屏幕位置没变,而 left/top 变了
4704 // 例如 <div 'relative'><el absolute></div>
4705 _utils2['default'].offset(source, {
4706 left: newElRegion.left,
4707 top: newElRegion.top
4708 }, {
4709 useCssRight: align.useCssRight,
4710 useCssBottom: align.useCssBottom,
4711 useCssTransform: align.useCssTransform,
4712 ignoreShake: align.ignoreShake
4713 });
4714
4715 return {
4716 points: points,
4717 offset: offset,
4718 targetOffset: targetOffset,
4719 overflow: newOverflowCfg
4720 };
4721 }
4722
4723 exports['default'] = doAlign;
4724 /**
4725 * 2012-04-26 yiminghe@gmail.com
4726 * - 优化智能对齐算法
4727 * - 慎用 resizeXX
4728 *
4729 * 2011-07-13 yiminghe@gmail.com note:
4730 * - 增加智能对齐,以及大小调整选项
4731 **/
4732
4733 module.exports = exports['default'];
4734
4735/***/ }),
4736/* 54 */
4737/***/ (function(module, exports, __webpack_require__) {
4738
4739 'use strict';
4740
4741 Object.defineProperty(exports, "__esModule", {
4742 value: true
4743 });
4744
4745 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; };
4746
4747 var _propertyUtils = __webpack_require__(55);
4748
4749 var RE_NUM = /[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source;
4750
4751 var getComputedStyleX = void 0;
4752
4753 // https://stackoverflow.com/a/3485654/3040605
4754 function forceRelayout(elem) {
4755 var originalStyle = elem.style.display;
4756 elem.style.display = 'none';
4757 elem.offsetHeight; // eslint-disable-line
4758 elem.style.display = originalStyle;
4759 }
4760
4761 function css(el, name, v) {
4762 var value = v;
4763 if ((typeof name === 'undefined' ? 'undefined' : _typeof(name)) === 'object') {
4764 for (var i in name) {
4765 if (name.hasOwnProperty(i)) {
4766 css(el, i, name[i]);
4767 }
4768 }
4769 return undefined;
4770 }
4771 if (typeof value !== 'undefined') {
4772 if (typeof value === 'number') {
4773 value = value + 'px';
4774 }
4775 el.style[name] = value;
4776 return undefined;
4777 }
4778 return getComputedStyleX(el, name);
4779 }
4780
4781 function getClientPosition(elem) {
4782 var box = void 0;
4783 var x = void 0;
4784 var y = void 0;
4785 var doc = elem.ownerDocument;
4786 var body = doc.body;
4787 var docElem = doc && doc.documentElement;
4788 // 根据 GBS 最新数据,A-Grade Browsers 都已支持 getBoundingClientRect 方法,不用再考虑传统的实现方式
4789 box = elem.getBoundingClientRect();
4790
4791 // 注:jQuery 还考虑减去 docElem.clientLeft/clientTop
4792 // 但测试发现,这样反而会导致当 html 和 body 有边距/边框样式时,获取的值不正确
4793 // 此外,ie6 会忽略 html 的 margin 值,幸运地是没有谁会去设置 html 的 margin
4794
4795 x = box.left;
4796 y = box.top;
4797
4798 // In IE, most of the time, 2 extra pixels are added to the top and left
4799 // due to the implicit 2-pixel inset border. In IE6/7 quirks mode and
4800 // IE6 standards mode, this border can be overridden by setting the
4801 // document element's border to zero -- thus, we cannot rely on the
4802 // offset always being 2 pixels.
4803
4804 // In quirks mode, the offset can be determined by querying the body's
4805 // clientLeft/clientTop, but in standards mode, it is found by querying
4806 // the document element's clientLeft/clientTop. Since we already called
4807 // getClientBoundingRect we have already forced a reflow, so it is not
4808 // too expensive just to query them all.
4809
4810 // ie 下应该减去窗口的边框吧,毕竟默认 absolute 都是相对窗口定位的
4811 // 窗口边框标准是设 documentElement ,quirks 时设置 body
4812 // 最好禁止在 body 和 html 上边框 ,但 ie < 9 html 默认有 2px ,减去
4813 // 但是非 ie 不可能设置窗口边框,body html 也不是窗口 ,ie 可以通过 html,body 设置
4814 // 标准 ie 下 docElem.clientTop 就是 border-top
4815 // ie7 html 即窗口边框改变不了。永远为 2
4816 // 但标准 firefox/chrome/ie9 下 docElem.clientTop 是窗口边框,即使设了 border-top 也为 0
4817
4818 x -= docElem.clientLeft || body.clientLeft || 0;
4819 y -= docElem.clientTop || body.clientTop || 0;
4820
4821 return {
4822 left: x,
4823 top: y
4824 };
4825 }
4826
4827 function getScroll(w, top) {
4828 var ret = w['page' + (top ? 'Y' : 'X') + 'Offset'];
4829 var method = 'scroll' + (top ? 'Top' : 'Left');
4830 if (typeof ret !== 'number') {
4831 var d = w.document;
4832 // ie6,7,8 standard mode
4833 ret = d.documentElement[method];
4834 if (typeof ret !== 'number') {
4835 // quirks mode
4836 ret = d.body[method];
4837 }
4838 }
4839 return ret;
4840 }
4841
4842 function getScrollLeft(w) {
4843 return getScroll(w);
4844 }
4845
4846 function getScrollTop(w) {
4847 return getScroll(w, true);
4848 }
4849
4850 function getOffset(el) {
4851 var pos = getClientPosition(el);
4852 var doc = el.ownerDocument;
4853 var w = doc.defaultView || doc.parentWindow;
4854 pos.left += getScrollLeft(w);
4855 pos.top += getScrollTop(w);
4856 return pos;
4857 }
4858
4859 /**
4860 * A crude way of determining if an object is a window
4861 * @member util
4862 */
4863 function isWindow(obj) {
4864 // must use == for ie8
4865 /* eslint eqeqeq:0 */
4866 return obj !== null && obj !== undefined && obj == obj.window;
4867 }
4868
4869 function getDocument(node) {
4870 if (isWindow(node)) {
4871 return node.document;
4872 }
4873 if (node.nodeType === 9) {
4874 return node;
4875 }
4876 return node.ownerDocument;
4877 }
4878
4879 function _getComputedStyle(elem, name, cs) {
4880 var computedStyle = cs;
4881 var val = '';
4882 var d = getDocument(elem);
4883 computedStyle = computedStyle || d.defaultView.getComputedStyle(elem, null);
4884
4885 // https://github.com/kissyteam/kissy/issues/61
4886 if (computedStyle) {
4887 val = computedStyle.getPropertyValue(name) || computedStyle[name];
4888 }
4889
4890 return val;
4891 }
4892
4893 var _RE_NUM_NO_PX = new RegExp('^(' + RE_NUM + ')(?!px)[a-z%]+$', 'i');
4894 var RE_POS = /^(top|right|bottom|left)$/;
4895 var CURRENT_STYLE = 'currentStyle';
4896 var RUNTIME_STYLE = 'runtimeStyle';
4897 var LEFT = 'left';
4898 var PX = 'px';
4899
4900 function _getComputedStyleIE(elem, name) {
4901 // currentStyle maybe null
4902 // http://msdn.microsoft.com/en-us/library/ms535231.aspx
4903 var ret = elem[CURRENT_STYLE] && elem[CURRENT_STYLE][name];
4904
4905 // 当 width/height 设置为百分比时,通过 pixelLeft 方式转换的 width/height 值
4906 // 一开始就处理了! CUSTOM_STYLE.height,CUSTOM_STYLE.width ,cssHook 解决@2011-08-19
4907 // 在 ie 下不对,需要直接用 offset 方式
4908 // borderWidth 等值也有问题,但考虑到 borderWidth 设为百分比的概率很小,这里就不考虑了
4909
4910 // From the awesome hack by Dean Edwards
4911 // http://erik.eae.net/archives/2007/07/27/18.54.15/#comment-102291
4912 // If we're not dealing with a regular pixel number
4913 // but a number that has a weird ending, we need to convert it to pixels
4914 // exclude left right for relativity
4915 if (_RE_NUM_NO_PX.test(ret) && !RE_POS.test(name)) {
4916 // Remember the original values
4917 var style = elem.style;
4918 var left = style[LEFT];
4919 var rsLeft = elem[RUNTIME_STYLE][LEFT];
4920
4921 // prevent flashing of content
4922 elem[RUNTIME_STYLE][LEFT] = elem[CURRENT_STYLE][LEFT];
4923
4924 // Put in the new values to get a computed value out
4925 style[LEFT] = name === 'fontSize' ? '1em' : ret || 0;
4926 ret = style.pixelLeft + PX;
4927
4928 // Revert the changed values
4929 style[LEFT] = left;
4930
4931 elem[RUNTIME_STYLE][LEFT] = rsLeft;
4932 }
4933 return ret === '' ? 'auto' : ret;
4934 }
4935
4936 if (typeof window !== 'undefined') {
4937 getComputedStyleX = window.getComputedStyle ? _getComputedStyle : _getComputedStyleIE;
4938 }
4939
4940 function getOffsetDirection(dir, option) {
4941 if (dir === 'left') {
4942 return option.useCssRight ? 'right' : dir;
4943 }
4944 return option.useCssBottom ? 'bottom' : dir;
4945 }
4946
4947 function oppositeOffsetDirection(dir) {
4948 if (dir === 'left') {
4949 return 'right';
4950 } else if (dir === 'right') {
4951 return 'left';
4952 } else if (dir === 'top') {
4953 return 'bottom';
4954 } else if (dir === 'bottom') {
4955 return 'top';
4956 }
4957 }
4958
4959 // 设置 elem 相对 elem.ownerDocument 的坐标
4960 function setLeftTop(elem, offset, option) {
4961 // set position first, in-case top/left are set even on static elem
4962 if (css(elem, 'position') === 'static') {
4963 elem.style.position = 'relative';
4964 }
4965 var presetH = -999;
4966 var presetV = -999;
4967 var horizontalProperty = getOffsetDirection('left', option);
4968 var verticalProperty = getOffsetDirection('top', option);
4969 var oppositeHorizontalProperty = oppositeOffsetDirection(horizontalProperty);
4970 var oppositeVerticalProperty = oppositeOffsetDirection(verticalProperty);
4971
4972 if (horizontalProperty !== 'left') {
4973 presetH = 999;
4974 }
4975
4976 if (verticalProperty !== 'top') {
4977 presetV = 999;
4978 }
4979 var originalTransition = '';
4980 var originalOffset = getOffset(elem);
4981 if ('left' in offset || 'top' in offset) {
4982 originalTransition = (0, _propertyUtils.getTransitionProperty)(elem) || '';
4983 (0, _propertyUtils.setTransitionProperty)(elem, 'none');
4984 }
4985 if ('left' in offset) {
4986 elem.style[oppositeHorizontalProperty] = '';
4987 elem.style[horizontalProperty] = presetH + 'px';
4988 }
4989 if ('top' in offset) {
4990 elem.style[oppositeVerticalProperty] = '';
4991 elem.style[verticalProperty] = presetV + 'px';
4992 }
4993 // force relayout
4994 forceRelayout(elem);
4995 var old = getOffset(elem);
4996 var originalStyle = {};
4997 for (var key in offset) {
4998 if (offset.hasOwnProperty(key)) {
4999 var dir = getOffsetDirection(key, option);
5000 var preset = key === 'left' ? presetH : presetV;
5001 var off = originalOffset[key] - old[key];
5002 if (dir === key) {
5003 originalStyle[dir] = preset + off;
5004 } else {
5005 originalStyle[dir] = preset - off;
5006 }
5007 }
5008 }
5009 css(elem, originalStyle);
5010 // force relayout
5011 forceRelayout(elem);
5012 if ('left' in offset || 'top' in offset) {
5013 (0, _propertyUtils.setTransitionProperty)(elem, originalTransition);
5014 }
5015 var ret = {};
5016 for (var _key in offset) {
5017 if (offset.hasOwnProperty(_key)) {
5018 var _dir = getOffsetDirection(_key, option);
5019 var _off = offset[_key] - originalOffset[_key];
5020 if (_key === _dir) {
5021 ret[_dir] = originalStyle[_dir] + _off;
5022 } else {
5023 ret[_dir] = originalStyle[_dir] - _off;
5024 }
5025 }
5026 }
5027 css(elem, ret);
5028 }
5029
5030 function setTransform(elem, offset) {
5031 var originalOffset = getOffset(elem);
5032 var originalXY = (0, _propertyUtils.getTransformXY)(elem);
5033 var resultXY = { x: originalXY.x, y: originalXY.y };
5034 if ('left' in offset) {
5035 resultXY.x = originalXY.x + offset.left - originalOffset.left;
5036 }
5037 if ('top' in offset) {
5038 resultXY.y = originalXY.y + offset.top - originalOffset.top;
5039 }
5040 (0, _propertyUtils.setTransformXY)(elem, resultXY);
5041 }
5042
5043 function setOffset(elem, offset, option) {
5044 if (option.ignoreShake) {
5045 var oriOffset = getOffset(elem);
5046
5047 var oLeft = oriOffset.left.toFixed(0);
5048 var oTop = oriOffset.top.toFixed(0);
5049 var tLeft = offset.left.toFixed(0);
5050 var tTop = offset.top.toFixed(0);
5051
5052 if (oLeft === tLeft && oTop === tTop) {
5053 return;
5054 }
5055 }
5056
5057 if (option.useCssRight || option.useCssBottom) {
5058 setLeftTop(elem, offset, option);
5059 } else if (option.useCssTransform && (0, _propertyUtils.getTransformName)() in document.body.style) {
5060 setTransform(elem, offset, option);
5061 } else {
5062 setLeftTop(elem, offset, option);
5063 }
5064 }
5065
5066 function each(arr, fn) {
5067 for (var i = 0; i < arr.length; i++) {
5068 fn(arr[i]);
5069 }
5070 }
5071
5072 function isBorderBoxFn(elem) {
5073 return getComputedStyleX(elem, 'boxSizing') === 'border-box';
5074 }
5075
5076 var BOX_MODELS = ['margin', 'border', 'padding'];
5077 var CONTENT_INDEX = -1;
5078 var PADDING_INDEX = 2;
5079 var BORDER_INDEX = 1;
5080 var MARGIN_INDEX = 0;
5081
5082 function swap(elem, options, callback) {
5083 var old = {};
5084 var style = elem.style;
5085 var name = void 0;
5086
5087 // Remember the old values, and insert the new ones
5088 for (name in options) {
5089 if (options.hasOwnProperty(name)) {
5090 old[name] = style[name];
5091 style[name] = options[name];
5092 }
5093 }
5094
5095 callback.call(elem);
5096
5097 // Revert the old values
5098 for (name in options) {
5099 if (options.hasOwnProperty(name)) {
5100 style[name] = old[name];
5101 }
5102 }
5103 }
5104
5105 function getPBMWidth(elem, props, which) {
5106 var value = 0;
5107 var prop = void 0;
5108 var j = void 0;
5109 var i = void 0;
5110 for (j = 0; j < props.length; j++) {
5111 prop = props[j];
5112 if (prop) {
5113 for (i = 0; i < which.length; i++) {
5114 var cssProp = void 0;
5115 if (prop === 'border') {
5116 cssProp = '' + prop + which[i] + 'Width';
5117 } else {
5118 cssProp = prop + which[i];
5119 }
5120 value += parseFloat(getComputedStyleX(elem, cssProp)) || 0;
5121 }
5122 }
5123 }
5124 return value;
5125 }
5126
5127 var domUtils = {};
5128
5129 each(['Width', 'Height'], function (name) {
5130 domUtils['doc' + name] = function (refWin) {
5131 var d = refWin.document;
5132 return Math.max(
5133 // firefox chrome documentElement.scrollHeight< body.scrollHeight
5134 // ie standard mode : documentElement.scrollHeight> body.scrollHeight
5135 d.documentElement['scroll' + name],
5136 // quirks : documentElement.scrollHeight 最大等于可视窗口多一点?
5137 d.body['scroll' + name], domUtils['viewport' + name](d));
5138 };
5139
5140 domUtils['viewport' + name] = function (win) {
5141 // pc browser includes scrollbar in window.innerWidth
5142 var prop = 'client' + name;
5143 var doc = win.document;
5144 var body = doc.body;
5145 var documentElement = doc.documentElement;
5146 var documentElementProp = documentElement[prop];
5147 // 标准模式取 documentElement
5148 // backcompat 取 body
5149 return doc.compatMode === 'CSS1Compat' && documentElementProp || body && body[prop] || documentElementProp;
5150 };
5151 });
5152
5153 /*
5154 得到元素的大小信息
5155 @param elem
5156 @param name
5157 @param {String} [extra] 'padding' : (css width) + padding
5158 'border' : (css width) + padding + border
5159 'margin' : (css width) + padding + border + margin
5160 */
5161 function getWH(elem, name, ex) {
5162 var extra = ex;
5163 if (isWindow(elem)) {
5164 return name === 'width' ? domUtils.viewportWidth(elem) : domUtils.viewportHeight(elem);
5165 } else if (elem.nodeType === 9) {
5166 return name === 'width' ? domUtils.docWidth(elem) : domUtils.docHeight(elem);
5167 }
5168 var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
5169 var borderBoxValue = name === 'width' ? elem.getBoundingClientRect().width : elem.getBoundingClientRect().height;
5170 var computedStyle = getComputedStyleX(elem);
5171 var isBorderBox = isBorderBoxFn(elem, computedStyle);
5172 var cssBoxValue = 0;
5173 if (borderBoxValue === null || borderBoxValue === undefined || borderBoxValue <= 0) {
5174 borderBoxValue = undefined;
5175 // Fall back to computed then un computed css if necessary
5176 cssBoxValue = getComputedStyleX(elem, name);
5177 if (cssBoxValue === null || cssBoxValue === undefined || Number(cssBoxValue) < 0) {
5178 cssBoxValue = elem.style[name] || 0;
5179 }
5180 // Normalize '', auto, and prepare for extra
5181 cssBoxValue = parseFloat(cssBoxValue) || 0;
5182 }
5183 if (extra === undefined) {
5184 extra = isBorderBox ? BORDER_INDEX : CONTENT_INDEX;
5185 }
5186 var borderBoxValueOrIsBorderBox = borderBoxValue !== undefined || isBorderBox;
5187 var val = borderBoxValue || cssBoxValue;
5188 if (extra === CONTENT_INDEX) {
5189 if (borderBoxValueOrIsBorderBox) {
5190 return val - getPBMWidth(elem, ['border', 'padding'], which, computedStyle);
5191 }
5192 return cssBoxValue;
5193 } else if (borderBoxValueOrIsBorderBox) {
5194 if (extra === BORDER_INDEX) {
5195 return val;
5196 }
5197 return val + (extra === PADDING_INDEX ? -getPBMWidth(elem, ['border'], which, computedStyle) : getPBMWidth(elem, ['margin'], which, computedStyle));
5198 }
5199 return cssBoxValue + getPBMWidth(elem, BOX_MODELS.slice(extra), which, computedStyle);
5200 }
5201
5202 var cssShow = {
5203 position: 'absolute',
5204 visibility: 'hidden',
5205 display: 'block'
5206 };
5207
5208 // fix #119 : https://github.com/kissyteam/kissy/issues/119
5209 function getWHIgnoreDisplay() {
5210 for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {
5211 args[_key2] = arguments[_key2];
5212 }
5213
5214 var val = void 0;
5215 var elem = args[0];
5216 // in case elem is window
5217 // elem.offsetWidth === undefined
5218 if (elem.offsetWidth !== 0) {
5219 val = getWH.apply(undefined, args);
5220 } else {
5221 swap(elem, cssShow, function () {
5222 val = getWH.apply(undefined, args);
5223 });
5224 }
5225 return val;
5226 }
5227
5228 each(['width', 'height'], function (name) {
5229 var first = name.charAt(0).toUpperCase() + name.slice(1);
5230 domUtils['outer' + first] = function (el, includeMargin) {
5231 return el && getWHIgnoreDisplay(el, name, includeMargin ? MARGIN_INDEX : BORDER_INDEX);
5232 };
5233 var which = name === 'width' ? ['Left', 'Right'] : ['Top', 'Bottom'];
5234
5235 domUtils[name] = function (elem, v) {
5236 var val = v;
5237 if (val !== undefined) {
5238 if (elem) {
5239 var computedStyle = getComputedStyleX(elem);
5240 var isBorderBox = isBorderBoxFn(elem);
5241 if (isBorderBox) {
5242 val += getPBMWidth(elem, ['padding', 'border'], which, computedStyle);
5243 }
5244 return css(elem, name, val);
5245 }
5246 return undefined;
5247 }
5248 return elem && getWHIgnoreDisplay(elem, name, CONTENT_INDEX);
5249 };
5250 });
5251
5252 function mix(to, from) {
5253 for (var i in from) {
5254 if (from.hasOwnProperty(i)) {
5255 to[i] = from[i];
5256 }
5257 }
5258 return to;
5259 }
5260
5261 var utils = {
5262 getWindow: function getWindow(node) {
5263 if (node && node.document && node.setTimeout) {
5264 return node;
5265 }
5266 var doc = node.ownerDocument || node;
5267 return doc.defaultView || doc.parentWindow;
5268 },
5269
5270 getDocument: getDocument,
5271 offset: function offset(el, value, option) {
5272 if (typeof value !== 'undefined') {
5273 setOffset(el, value, option || {});
5274 } else {
5275 return getOffset(el);
5276 }
5277 },
5278
5279 isWindow: isWindow,
5280 each: each,
5281 css: css,
5282 clone: function clone(obj) {
5283 var i = void 0;
5284 var ret = {};
5285 for (i in obj) {
5286 if (obj.hasOwnProperty(i)) {
5287 ret[i] = obj[i];
5288 }
5289 }
5290 var overflow = obj.overflow;
5291 if (overflow) {
5292 for (i in obj) {
5293 if (obj.hasOwnProperty(i)) {
5294 ret.overflow[i] = obj.overflow[i];
5295 }
5296 }
5297 }
5298 return ret;
5299 },
5300
5301 mix: mix,
5302 getWindowScrollLeft: function getWindowScrollLeft(w) {
5303 return getScrollLeft(w);
5304 },
5305 getWindowScrollTop: function getWindowScrollTop(w) {
5306 return getScrollTop(w);
5307 },
5308 merge: function merge() {
5309 var ret = {};
5310
5311 for (var _len2 = arguments.length, args = Array(_len2), _key3 = 0; _key3 < _len2; _key3++) {
5312 args[_key3] = arguments[_key3];
5313 }
5314
5315 for (var i = 0; i < args.length; i++) {
5316 utils.mix(ret, args[i]);
5317 }
5318 return ret;
5319 },
5320
5321 viewportWidth: 0,
5322 viewportHeight: 0
5323 };
5324
5325 mix(utils, domUtils);
5326
5327 exports['default'] = utils;
5328 module.exports = exports['default'];
5329
5330/***/ }),
5331/* 55 */
5332/***/ (function(module, exports) {
5333
5334 'use strict';
5335
5336 Object.defineProperty(exports, "__esModule", {
5337 value: true
5338 });
5339 exports.getTransformName = getTransformName;
5340 exports.setTransitionProperty = setTransitionProperty;
5341 exports.getTransitionProperty = getTransitionProperty;
5342 exports.getTransformXY = getTransformXY;
5343 exports.setTransformXY = setTransformXY;
5344 var vendorPrefix = void 0;
5345
5346 var jsCssMap = {
5347 Webkit: '-webkit-',
5348 Moz: '-moz-',
5349 // IE did it wrong again ...
5350 ms: '-ms-',
5351 O: '-o-'
5352 };
5353
5354 function getVendorPrefix() {
5355 if (vendorPrefix !== undefined) {
5356 return vendorPrefix;
5357 }
5358 vendorPrefix = '';
5359 var style = document.createElement('p').style;
5360 var testProp = 'Transform';
5361 for (var key in jsCssMap) {
5362 if (key + testProp in style) {
5363 vendorPrefix = key;
5364 }
5365 }
5366 return vendorPrefix;
5367 }
5368
5369 function getTransitionName() {
5370 return getVendorPrefix() ? getVendorPrefix() + 'TransitionProperty' : 'transitionProperty';
5371 }
5372
5373 function getTransformName() {
5374 return getVendorPrefix() ? getVendorPrefix() + 'Transform' : 'transform';
5375 }
5376
5377 function setTransitionProperty(node, value) {
5378 var name = getTransitionName();
5379 if (name) {
5380 node.style[name] = value;
5381 if (name !== 'transitionProperty') {
5382 node.style.transitionProperty = value;
5383 }
5384 }
5385 }
5386
5387 function setTransform(node, value) {
5388 var name = getTransformName();
5389 if (name) {
5390 node.style[name] = value;
5391 if (name !== 'transform') {
5392 node.style.transform = value;
5393 }
5394 }
5395 }
5396
5397 function getTransitionProperty(node) {
5398 return node.style.transitionProperty || node.style[getTransitionName()];
5399 }
5400
5401 function getTransformXY(node) {
5402 var style = window.getComputedStyle(node, null);
5403 var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
5404 if (transform && transform !== 'none') {
5405 var matrix = transform.replace(/[^0-9\-.,]/g, '').split(',');
5406 return { x: parseFloat(matrix[12] || matrix[4], 0), y: parseFloat(matrix[13] || matrix[5], 0) };
5407 }
5408 return {
5409 x: 0,
5410 y: 0
5411 };
5412 }
5413
5414 var matrix2d = /matrix\((.*)\)/;
5415 var matrix3d = /matrix3d\((.*)\)/;
5416
5417 function setTransformXY(node, xy) {
5418 var style = window.getComputedStyle(node, null);
5419 var transform = style.getPropertyValue('transform') || style.getPropertyValue(getTransformName());
5420 if (transform && transform !== 'none') {
5421 var arr = void 0;
5422 var match2d = transform.match(matrix2d);
5423 if (match2d) {
5424 match2d = match2d[1];
5425 arr = match2d.split(',').map(function (item) {
5426 return parseFloat(item, 10);
5427 });
5428 arr[4] = xy.x;
5429 arr[5] = xy.y;
5430 setTransform(node, 'matrix(' + arr.join(',') + ')');
5431 } else {
5432 var match3d = transform.match(matrix3d)[1];
5433 arr = match3d.split(',').map(function (item) {
5434 return parseFloat(item, 10);
5435 });
5436 arr[12] = xy.x;
5437 arr[13] = xy.y;
5438 setTransform(node, 'matrix3d(' + arr.join(',') + ')');
5439 }
5440 } else {
5441 setTransform(node, 'translateX(' + xy.x + 'px) translateY(' + xy.y + 'px) translateZ(0)');
5442 }
5443 }
5444
5445/***/ }),
5446/* 56 */
5447/***/ (function(module, exports, __webpack_require__) {
5448
5449 'use strict';
5450
5451 Object.defineProperty(exports, "__esModule", {
5452 value: true
5453 });
5454
5455 var _utils = __webpack_require__(54);
5456
5457 var _utils2 = _interopRequireDefault(_utils);
5458
5459 var _getOffsetParent = __webpack_require__(57);
5460
5461 var _getOffsetParent2 = _interopRequireDefault(_getOffsetParent);
5462
5463 var _isAncestorFixed = __webpack_require__(58);
5464
5465 var _isAncestorFixed2 = _interopRequireDefault(_isAncestorFixed);
5466
5467 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5468
5469 /**
5470 * 获得元素的显示部分的区域
5471 */
5472 function getVisibleRectForElement(element) {
5473 var visibleRect = {
5474 left: 0,
5475 right: Infinity,
5476 top: 0,
5477 bottom: Infinity
5478 };
5479 var el = (0, _getOffsetParent2['default'])(element);
5480 var doc = _utils2['default'].getDocument(element);
5481 var win = doc.defaultView || doc.parentWindow;
5482 var body = doc.body;
5483 var documentElement = doc.documentElement;
5484
5485 // Determine the size of the visible rect by climbing the dom accounting for
5486 // all scrollable containers.
5487 while (el) {
5488 // clientWidth is zero for inline block elements in ie.
5489 if ((navigator.userAgent.indexOf('MSIE') === -1 || el.clientWidth !== 0) &&
5490 // body may have overflow set on it, yet we still get the entire
5491 // viewport. In some browsers, el.offsetParent may be
5492 // document.documentElement, so check for that too.
5493 el !== body && el !== documentElement && _utils2['default'].css(el, 'overflow') !== 'visible') {
5494 var pos = _utils2['default'].offset(el);
5495 // add border
5496 pos.left += el.clientLeft;
5497 pos.top += el.clientTop;
5498 visibleRect.top = Math.max(visibleRect.top, pos.top);
5499 visibleRect.right = Math.min(visibleRect.right,
5500 // consider area without scrollBar
5501 pos.left + el.clientWidth);
5502 visibleRect.bottom = Math.min(visibleRect.bottom, pos.top + el.clientHeight);
5503 visibleRect.left = Math.max(visibleRect.left, pos.left);
5504 } else if (el === body || el === documentElement) {
5505 break;
5506 }
5507 el = (0, _getOffsetParent2['default'])(el);
5508 }
5509
5510 // Set element position to fixed
5511 // make sure absolute element itself don't affect it's visible area
5512 // https://github.com/ant-design/ant-design/issues/7601
5513 var originalPosition = null;
5514 if (!_utils2['default'].isWindow(element) && element.nodeType !== 9) {
5515 originalPosition = element.style.position;
5516 var position = _utils2['default'].css(element, 'position');
5517 if (position === 'absolute') {
5518 element.style.position = 'fixed';
5519 }
5520 }
5521
5522 var scrollX = _utils2['default'].getWindowScrollLeft(win);
5523 var scrollY = _utils2['default'].getWindowScrollTop(win);
5524 var viewportWidth = _utils2['default'].viewportWidth(win);
5525 var viewportHeight = _utils2['default'].viewportHeight(win);
5526 var documentWidth = documentElement.scrollWidth;
5527 var documentHeight = documentElement.scrollHeight;
5528
5529 // Reset element position after calculate the visible area
5530 if (element.style) {
5531 element.style.position = originalPosition;
5532 }
5533
5534 if ((0, _isAncestorFixed2['default'])(element)) {
5535 // Clip by viewport's size.
5536 visibleRect.left = Math.max(visibleRect.left, scrollX);
5537 visibleRect.top = Math.max(visibleRect.top, scrollY);
5538 visibleRect.right = Math.min(visibleRect.right, scrollX + viewportWidth);
5539 visibleRect.bottom = Math.min(visibleRect.bottom, scrollY + viewportHeight);
5540 } else {
5541 // Clip by document's size.
5542 var maxVisibleWidth = Math.max(documentWidth, scrollX + viewportWidth);
5543 visibleRect.right = Math.min(visibleRect.right, maxVisibleWidth);
5544
5545 var maxVisibleHeight = Math.max(documentHeight, scrollY + viewportHeight);
5546 visibleRect.bottom = Math.min(visibleRect.bottom, maxVisibleHeight);
5547 }
5548
5549 return visibleRect.top >= 0 && visibleRect.left >= 0 && visibleRect.bottom > visibleRect.top && visibleRect.right > visibleRect.left ? visibleRect : null;
5550 }
5551
5552 exports['default'] = getVisibleRectForElement;
5553 module.exports = exports['default'];
5554
5555/***/ }),
5556/* 57 */
5557/***/ (function(module, exports, __webpack_require__) {
5558
5559 'use strict';
5560
5561 Object.defineProperty(exports, "__esModule", {
5562 value: true
5563 });
5564
5565 var _utils = __webpack_require__(54);
5566
5567 var _utils2 = _interopRequireDefault(_utils);
5568
5569 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5570
5571 /**
5572 * 得到会导致元素显示不全的祖先元素
5573 */
5574
5575 function getOffsetParent(element) {
5576 if (_utils2['default'].isWindow(element) || element.nodeType === 9) {
5577 return null;
5578 }
5579 // ie 这个也不是完全可行
5580 /*
5581 <div style="width: 50px;height: 100px;overflow: hidden">
5582 <div style="width: 50px;height: 100px;position: relative;" id="d6">
5583 元素 6 高 100px 宽 50px<br/>
5584 </div>
5585 </div>
5586 */
5587 // element.offsetParent does the right thing in ie7 and below. Return parent with layout!
5588 // In other browsers it only includes elements with position absolute, relative or
5589 // fixed, not elements with overflow set to auto or scroll.
5590 // if (UA.ie && ieMode < 8) {
5591 // return element.offsetParent;
5592 // }
5593 // 统一的 offsetParent 方法
5594 var doc = _utils2['default'].getDocument(element);
5595 var body = doc.body;
5596 var parent = void 0;
5597 var positionStyle = _utils2['default'].css(element, 'position');
5598 var skipStatic = positionStyle === 'fixed' || positionStyle === 'absolute';
5599
5600 if (!skipStatic) {
5601 return element.nodeName.toLowerCase() === 'html' ? null : element.parentNode;
5602 }
5603
5604 for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {
5605 positionStyle = _utils2['default'].css(parent, 'position');
5606 if (positionStyle !== 'static') {
5607 return parent;
5608 }
5609 }
5610 return null;
5611 }
5612
5613 exports['default'] = getOffsetParent;
5614 module.exports = exports['default'];
5615
5616/***/ }),
5617/* 58 */
5618/***/ (function(module, exports, __webpack_require__) {
5619
5620 'use strict';
5621
5622 Object.defineProperty(exports, "__esModule", {
5623 value: true
5624 });
5625 exports['default'] = isAncestorFixed;
5626
5627 var _utils = __webpack_require__(54);
5628
5629 var _utils2 = _interopRequireDefault(_utils);
5630
5631 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5632
5633 function isAncestorFixed(element) {
5634 if (_utils2['default'].isWindow(element) || element.nodeType === 9) {
5635 return false;
5636 }
5637
5638 var doc = _utils2['default'].getDocument(element);
5639 var body = doc.body;
5640 var parent = null;
5641 for (parent = element.parentNode; parent && parent !== body; parent = parent.parentNode) {
5642 var positionStyle = _utils2['default'].css(parent, 'position');
5643 if (positionStyle === 'fixed') {
5644 return true;
5645 }
5646 }
5647 return false;
5648 }
5649 module.exports = exports['default'];
5650
5651/***/ }),
5652/* 59 */
5653/***/ (function(module, exports, __webpack_require__) {
5654
5655 'use strict';
5656
5657 Object.defineProperty(exports, "__esModule", {
5658 value: true
5659 });
5660
5661 var _utils = __webpack_require__(54);
5662
5663 var _utils2 = _interopRequireDefault(_utils);
5664
5665 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5666
5667 function adjustForViewport(elFuturePos, elRegion, visibleRect, overflow) {
5668 var pos = _utils2['default'].clone(elFuturePos);
5669 var size = {
5670 width: elRegion.width,
5671 height: elRegion.height
5672 };
5673
5674 if (overflow.adjustX && pos.left < visibleRect.left) {
5675 pos.left = visibleRect.left;
5676 }
5677
5678 // Left edge inside and right edge outside viewport, try to resize it.
5679 if (overflow.resizeWidth && pos.left >= visibleRect.left && pos.left + size.width > visibleRect.right) {
5680 size.width -= pos.left + size.width - visibleRect.right;
5681 }
5682
5683 // Right edge outside viewport, try to move it.
5684 if (overflow.adjustX && pos.left + size.width > visibleRect.right) {
5685 // 保证左边界和可视区域左边界对齐
5686 pos.left = Math.max(visibleRect.right - size.width, visibleRect.left);
5687 }
5688
5689 // Top edge outside viewport, try to move it.
5690 if (overflow.adjustY && pos.top < visibleRect.top) {
5691 pos.top = visibleRect.top;
5692 }
5693
5694 // Top edge inside and bottom edge outside viewport, try to resize it.
5695 if (overflow.resizeHeight && pos.top >= visibleRect.top && pos.top + size.height > visibleRect.bottom) {
5696 size.height -= pos.top + size.height - visibleRect.bottom;
5697 }
5698
5699 // Bottom edge outside viewport, try to move it.
5700 if (overflow.adjustY && pos.top + size.height > visibleRect.bottom) {
5701 // 保证上边界和可视区域上边界对齐
5702 pos.top = Math.max(visibleRect.bottom - size.height, visibleRect.top);
5703 }
5704
5705 return _utils2['default'].mix(pos, size);
5706 }
5707
5708 exports['default'] = adjustForViewport;
5709 module.exports = exports['default'];
5710
5711/***/ }),
5712/* 60 */
5713/***/ (function(module, exports, __webpack_require__) {
5714
5715 'use strict';
5716
5717 Object.defineProperty(exports, "__esModule", {
5718 value: true
5719 });
5720
5721 var _utils = __webpack_require__(54);
5722
5723 var _utils2 = _interopRequireDefault(_utils);
5724
5725 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5726
5727 function getRegion(node) {
5728 var offset = void 0;
5729 var w = void 0;
5730 var h = void 0;
5731 if (!_utils2['default'].isWindow(node) && node.nodeType !== 9) {
5732 offset = _utils2['default'].offset(node);
5733 w = _utils2['default'].outerWidth(node);
5734 h = _utils2['default'].outerHeight(node);
5735 } else {
5736 var win = _utils2['default'].getWindow(node);
5737 offset = {
5738 left: _utils2['default'].getWindowScrollLeft(win),
5739 top: _utils2['default'].getWindowScrollTop(win)
5740 };
5741 w = _utils2['default'].viewportWidth(win);
5742 h = _utils2['default'].viewportHeight(win);
5743 }
5744 offset.width = w;
5745 offset.height = h;
5746 return offset;
5747 }
5748
5749 exports['default'] = getRegion;
5750 module.exports = exports['default'];
5751
5752/***/ }),
5753/* 61 */
5754/***/ (function(module, exports, __webpack_require__) {
5755
5756 'use strict';
5757
5758 Object.defineProperty(exports, "__esModule", {
5759 value: true
5760 });
5761
5762 var _getAlignOffset = __webpack_require__(62);
5763
5764 var _getAlignOffset2 = _interopRequireDefault(_getAlignOffset);
5765
5766 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5767
5768 function getElFuturePos(elRegion, refNodeRegion, points, offset, targetOffset) {
5769 var p1 = (0, _getAlignOffset2['default'])(refNodeRegion, points[1]);
5770 var p2 = (0, _getAlignOffset2['default'])(elRegion, points[0]);
5771 var diff = [p2.left - p1.left, p2.top - p1.top];
5772
5773 return {
5774 left: elRegion.left - diff[0] + offset[0] - targetOffset[0],
5775 top: elRegion.top - diff[1] + offset[1] - targetOffset[1]
5776 };
5777 }
5778
5779 exports['default'] = getElFuturePos;
5780 module.exports = exports['default'];
5781
5782/***/ }),
5783/* 62 */
5784/***/ (function(module, exports) {
5785
5786 'use strict';
5787
5788 Object.defineProperty(exports, "__esModule", {
5789 value: true
5790 });
5791 /**
5792 * 获取 node 上的 align 对齐点 相对于页面的坐标
5793 */
5794
5795 function getAlignOffset(region, align) {
5796 var V = align.charAt(0);
5797 var H = align.charAt(1);
5798 var w = region.width;
5799 var h = region.height;
5800
5801 var x = region.left;
5802 var y = region.top;
5803
5804 if (V === 'c') {
5805 y += h / 2;
5806 } else if (V === 'b') {
5807 y += h;
5808 }
5809
5810 if (H === 'c') {
5811 x += w / 2;
5812 } else if (H === 'r') {
5813 x += w;
5814 }
5815
5816 return {
5817 left: x,
5818 top: y
5819 };
5820 }
5821
5822 exports['default'] = getAlignOffset;
5823 module.exports = exports['default'];
5824
5825/***/ }),
5826/* 63 */
5827/***/ (function(module, exports, __webpack_require__) {
5828
5829 'use strict';
5830
5831 Object.defineProperty(exports, "__esModule", {
5832 value: true
5833 });
5834
5835 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; };
5836
5837 var _utils = __webpack_require__(54);
5838
5839 var _utils2 = _interopRequireDefault(_utils);
5840
5841 var _align = __webpack_require__(53);
5842
5843 var _align2 = _interopRequireDefault(_align);
5844
5845 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
5846
5847 /**
5848 * `tgtPoint`: { pageX, pageY } or { clientX, clientY }.
5849 * If client position provided, will internal convert to page position.
5850 */
5851
5852 function alignPoint(el, tgtPoint, align) {
5853 var pageX = void 0;
5854 var pageY = void 0;
5855
5856 var doc = _utils2['default'].getDocument(el);
5857 var win = doc.defaultView || doc.parentWindow;
5858
5859 var scrollX = _utils2['default'].getWindowScrollLeft(win);
5860 var scrollY = _utils2['default'].getWindowScrollTop(win);
5861 var viewportWidth = _utils2['default'].viewportWidth(win);
5862 var viewportHeight = _utils2['default'].viewportHeight(win);
5863
5864 if ('pageX' in tgtPoint) {
5865 pageX = tgtPoint.pageX;
5866 } else {
5867 pageX = scrollX + tgtPoint.clientX;
5868 }
5869
5870 if ('pageY' in tgtPoint) {
5871 pageY = tgtPoint.pageY;
5872 } else {
5873 pageY = scrollY + tgtPoint.clientY;
5874 }
5875
5876 var tgtRegion = {
5877 left: pageX,
5878 top: pageY,
5879 width: 0,
5880 height: 0
5881 };
5882
5883 var pointInView = pageX >= 0 && pageX <= scrollX + viewportWidth && pageY >= 0 && pageY <= scrollY + viewportHeight;
5884
5885 // Provide default target point
5886 var points = [align.points[0], 'cc'];
5887
5888 return (0, _align2['default'])(el, tgtRegion, _extends({}, align, { points: points }), pointInView);
5889 }
5890
5891 exports['default'] = alignPoint;
5892 module.exports = exports['default'];
5893
5894/***/ }),
5895/* 64 */
5896/***/ (function(module, exports, __webpack_require__) {
5897
5898 'use strict';
5899
5900 Object.defineProperty(exports, "__esModule", {
5901 value: true
5902 });
5903
5904 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; };
5905
5906 var _classnames = __webpack_require__(3);
5907
5908 var _classnames2 = _interopRequireDefault(_classnames);
5909
5910 var _react = __webpack_require__(4);
5911
5912 var _react2 = _interopRequireDefault(_react);
5913
5914 var _propTypes = __webpack_require__(5);
5915
5916 var _propTypes2 = _interopRequireDefault(_propTypes);
5917
5918 var _Transition = __webpack_require__(11);
5919
5920 var _Transition2 = _interopRequireDefault(_Transition);
5921
5922 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
5923
5924 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; }
5925
5926 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5927
5928 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; }
5929
5930 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); }
5931
5932 var propTypes = {
5933 /**
5934 * Show the component; triggers the fade in or fade out animation
5935 */
5936 "in": _propTypes2["default"].bool,
5937
5938 /**
5939 * Unmount the component (remove it from the DOM) when it is faded out
5940 */
5941 unmountOnExit: _propTypes2["default"].bool,
5942
5943 /**
5944 * Run the fade in animation when the component mounts, if it is initially
5945 * shown
5946 */
5947 transitionAppear: _propTypes2["default"].bool,
5948
5949 /**
5950 * Duration of the fade animation in milliseconds, to ensure that finishing
5951 * callbacks are fired even if the original browser transition end events are
5952 * canceled
5953 */
5954 timeout: _propTypes2["default"].number,
5955
5956 /**
5957 * Callback fired before the component fades in
5958 */
5959 onEnter: _propTypes2["default"].func,
5960 /**
5961 * Callback fired after the component starts to fade in
5962 */
5963 onEntering: _propTypes2["default"].func,
5964 /**
5965 * Callback fired after the has component faded in
5966 */
5967 onEntered: _propTypes2["default"].func,
5968 /**
5969 * Callback fired before the component fades out
5970 */
5971 onExit: _propTypes2["default"].func,
5972 /**
5973 * Callback fired after the component starts to fade out
5974 */
5975 onExiting: _propTypes2["default"].func,
5976 /**
5977 * Callback fired after the component has faded out
5978 */
5979 onExited: _propTypes2["default"].func
5980 };
5981
5982 var defaultProps = {
5983 "in": false,
5984 timeout: 300,
5985 unmountOnExit: false,
5986 transitionAppear: false
5987 };
5988
5989 var Fade = function (_React$Component) {
5990 _inherits(Fade, _React$Component);
5991
5992 function Fade() {
5993 _classCallCheck(this, Fade);
5994
5995 return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));
5996 }
5997
5998 Fade.prototype.render = function render() {
5999 return _react2["default"].createElement(_Transition2["default"], _extends({}, this.props, {
6000 className: (0, _classnames2["default"])(this.props.className, 'fade'),
6001 enteredClassName: 'in',
6002 enteringClassName: 'in'
6003 }));
6004 };
6005
6006 return Fade;
6007 }(_react2["default"].Component);
6008
6009 Fade.propTypes = propTypes;
6010 Fade.defaultProps = defaultProps;
6011
6012 exports["default"] = Fade;
6013 module.exports = exports['default'];
6014
6015/***/ }),
6016/* 65 */
6017/***/ (function(module, exports, __webpack_require__) {
6018
6019 'use strict';
6020
6021 Object.defineProperty(exports, "__esModule", {
6022 value: true
6023 });
6024
6025 var _Message = __webpack_require__(66);
6026
6027 var _Message2 = _interopRequireDefault(_Message);
6028
6029 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6030
6031 exports["default"] = _Message2["default"];
6032 module.exports = exports['default'];
6033
6034/***/ }),
6035/* 66 */
6036/***/ (function(module, exports, __webpack_require__) {
6037
6038 'use strict';
6039
6040 Object.defineProperty(exports, "__esModule", {
6041 value: true
6042 });
6043
6044 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; };
6045
6046 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; };
6047
6048 var _react = __webpack_require__(4);
6049
6050 var _react2 = _interopRequireDefault(_react);
6051
6052 var _beeNotification = __webpack_require__(67);
6053
6054 var _beeNotification2 = _interopRequireDefault(_beeNotification);
6055
6056 var _classnames = __webpack_require__(3);
6057
6058 var _classnames2 = _interopRequireDefault(_classnames);
6059
6060 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6061
6062 var defaultDuration = 1.5;
6063 var defaultTop = 0;
6064 var defaultBottom = 48;
6065 var bottom = 90;
6066 var padding = 30;
6067 var width = 200;
6068 var messageInstance = void 0;
6069 var key = 1;
6070 var clsPrefix = 'u-message';
6071 var noop = function noop() {};
6072
6073 var positionObj = {
6074 "top": {
6075 messageStyle: {
6076 width: "100%"
6077 },
6078 notificationStyle: {
6079 top: defaultTop,
6080 width: "100%"
6081 },
6082 transitionName: 'top'
6083 },
6084 "bottom": {
6085 messageStyle: {
6086 width: "100%"
6087 },
6088 notificationStyle: {
6089 bottom: defaultBottom,
6090 width: "100%"
6091 },
6092 transitionName: 'bottom'
6093 },
6094 "topRight": {
6095 messageStyle: {
6096 width: width
6097 },
6098 notificationStyle: {
6099 top: padding,
6100 right: padding,
6101 width: width
6102 },
6103 transitionName: 'right'
6104 },
6105 "bottomRight": {
6106 messageStyle: {
6107 width: width
6108 },
6109 notificationStyle: {
6110 bottom: bottom,
6111 right: padding,
6112 width: width
6113 },
6114 transitionName: 'right'
6115 },
6116 "topLeft": {
6117 messageStyle: {
6118 width: width
6119 },
6120 notificationStyle: {
6121 top: padding,
6122 left: padding,
6123 width: width
6124 },
6125 transitionName: 'left'
6126 },
6127 "bottomLeft": {
6128 messageStyle: {
6129 width: width
6130 },
6131 notificationStyle: {
6132 bottom: bottom,
6133 left: padding,
6134 width: width
6135 },
6136 transitionName: 'left'
6137 }
6138 };
6139
6140 function getMessageInstance() {
6141 var position = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'top';
6142 var callback = arguments[1];
6143 var keyboard = arguments[2];
6144 var onEscapeKeyUp = arguments[3];
6145
6146 if (messageInstance) {
6147 callback(messageInstance);
6148 return;
6149 }
6150 var style = positionObj[position].notificationStyle;
6151 var instanceObj = {
6152 clsPrefix: clsPrefix,
6153 transitionName: clsPrefix + '-' + positionObj[position].transitionName,
6154 style: style, // 覆盖原来的样式
6155 position: ''
6156 };
6157 if (typeof keyboard === 'boolean') {
6158 instanceObj.keyboard = keyboard;
6159 }
6160 if (typeof onEscapeKeyUp === 'function') {
6161 instanceObj.onEscapeKeyUp = onEscapeKeyUp;
6162 }
6163 _beeNotification2["default"].newInstance(instanceObj, function (instance) {
6164 messageInstance = instance;
6165 callback(instance);
6166 });
6167 }
6168
6169 function notice(content, duration, type, onClose, position, style, keyboard, onEscapeKeyUp, showIcon) {
6170 var iconType = {
6171 info: 'uf uf-i-c-2',
6172 success: 'uf uf-correct',
6173 danger: 'uf uf-close-c',
6174 warning: 'uf uf-exc-t',
6175 light: 'uf uf-notification',
6176 dark: 'uf uf-bubble',
6177 news: 'uf uf-bell',
6178 infolight: 'uf uf-i-c-2',
6179 successlight: 'uf uf-correct',
6180 dangerlight: 'uf uf-close-c',
6181 warninglight: 'uf uf-exc-t'
6182 }[type];
6183
6184 var positionStyle = positionObj[position].messageStyle;
6185
6186 getMessageInstance(position, function (instance) {
6187 instance.notice({
6188 key: key,
6189 duration: duration,
6190 color: type,
6191 style: _extends({}, positionStyle, style),
6192 content: _react2["default"].createElement(
6193 'div',
6194 null,
6195 showIcon ? _react2["default"].createElement(
6196 'div',
6197 { className: clsPrefix + '-notice-description-icon' },
6198 _react2["default"].createElement('i', { className: (0, _classnames2["default"])(iconType) })
6199 ) : null,
6200 _react2["default"].createElement(
6201 'div',
6202 { className: clsPrefix + '-notice-description-content' },
6203 content
6204 )
6205 ),
6206 onClose: onClose
6207 });
6208 }, keyboard, onEscapeKeyUp);
6209 return function () {
6210 var target = key++;
6211 return function () {
6212 if (messageInstance) {
6213 messageInstance.removeNotice(target);
6214 }
6215 };
6216 }();
6217 }
6218
6219 exports["default"] = {
6220 create: function create(obj) {
6221 var content = obj.content || '';
6222 var duration = _typeof(obj.duration) == undefined ? defaultDuration : obj.duration;
6223 var color = obj.color || 'dark';
6224 var onClose = obj.onClose || noop;
6225 var position = obj.position || "top";
6226 var style = obj.style || {};
6227 var showIcon = obj.showIcon || false;
6228 return notice(content, duration, color, onClose, position, style, obj.keyboard, obj.onEscapeKeyUp, showIcon);
6229 },
6230 config: function config(options) {
6231 if (options.top !== undefined) {
6232 defaultTop = options.top;
6233 }
6234 if (options.duration !== undefined) {
6235 defaultDuration = options.duration;
6236 }
6237 if (options.clsPrefix !== undefined) {
6238 clsPrefix = options.clsPrefix;
6239 }
6240 if (options.defaultBottom !== undefined) {
6241 defaultBottom = options.defaultBottom;
6242 }
6243 if (options.bottom !== undefined) {
6244 bottom = options.bottom;
6245 }
6246 if (options.width !== undefined) {
6247 bottom = options.width;
6248 }
6249 },
6250 destroy: function destroy() {
6251 if (messageInstance) {
6252 messageInstance.destroy();
6253 messageInstance = null;
6254 }
6255 }
6256 };
6257 module.exports = exports['default'];
6258
6259/***/ }),
6260/* 67 */
6261/***/ (function(module, exports, __webpack_require__) {
6262
6263 'use strict';
6264
6265 Object.defineProperty(exports, "__esModule", {
6266 value: true
6267 });
6268
6269 var _Notification = __webpack_require__(68);
6270
6271 var _Notification2 = _interopRequireDefault(_Notification);
6272
6273 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6274
6275 exports["default"] = _Notification2["default"];
6276 module.exports = exports['default'];
6277
6278/***/ }),
6279/* 68 */
6280/***/ (function(module, exports, __webpack_require__) {
6281
6282 'use strict';
6283
6284 Object.defineProperty(exports, "__esModule", {
6285 value: true
6286 });
6287
6288 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; };
6289
6290 var _react = __webpack_require__(4);
6291
6292 var _react2 = _interopRequireDefault(_react);
6293
6294 var _propTypes = __webpack_require__(5);
6295
6296 var _propTypes2 = _interopRequireDefault(_propTypes);
6297
6298 var _reactDom = __webpack_require__(12);
6299
6300 var _reactDom2 = _interopRequireDefault(_reactDom);
6301
6302 var _beeAnimate = __webpack_require__(69);
6303
6304 var _beeAnimate2 = _interopRequireDefault(_beeAnimate);
6305
6306 var _createChainedFunction = __webpack_require__(37);
6307
6308 var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
6309
6310 var _ownerDocument = __webpack_require__(74);
6311
6312 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
6313
6314 var _addEventListener = __webpack_require__(76);
6315
6316 var _addEventListener2 = _interopRequireDefault(_addEventListener);
6317
6318 var _classnames = __webpack_require__(3);
6319
6320 var _classnames2 = _interopRequireDefault(_classnames);
6321
6322 var _Notice = __webpack_require__(78);
6323
6324 var _Notice2 = _interopRequireDefault(_Notice);
6325
6326 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6327
6328 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; }
6329
6330 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; }
6331
6332 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6333
6334 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; }
6335
6336 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); }
6337
6338 var seed = 0;
6339 var now = Date.now();
6340
6341 function getUuid() {
6342 return 'uNotification_' + now + '_' + seed++;
6343 }
6344
6345 var propTypes = {
6346 show: _propTypes2["default"].bool,
6347 clsPrefix: _propTypes2["default"].string,
6348 style: _propTypes2["default"].object,
6349 position: _propTypes2["default"].oneOf(['topRight', 'bottomRight', '']),
6350 transitionName: _propTypes2["default"].string,
6351 keyboard: _propTypes2["default"].bool, // 按esc键是否关闭notice
6352 onEscapeKeyUp: _propTypes2["default"].func, // 设置esc键特殊钩子函数
6353 animation: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].object])
6354 };
6355
6356 var defaultProps = {
6357 clsPrefix: 'u-notification',
6358 animation: 'fade',
6359 keyboard: true,
6360 position: 'topRight'
6361 };
6362
6363 var Notification = function (_Component) {
6364 _inherits(Notification, _Component);
6365
6366 function Notification(props) {
6367 _classCallCheck(this, Notification);
6368
6369 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
6370
6371 _this.handleDocumentKeyUp = function (e) {
6372 if (_this.props.keyboard && e.keyCode === 27 && _this.state.notices.length) {
6373 _this.setState(function (previousState) {
6374 previousState.notices.shift();
6375 return {
6376 notices: previousState.notices
6377 };
6378 });
6379 if (_this.props.onEscapeKeyUp) {
6380 _this.props.onEscapeKeyUp(e);
6381 }
6382 }
6383 };
6384
6385 _this.state = {
6386 notices: []
6387 };
6388 _this.add = _this.add.bind(_this);
6389 _this.remove = _this.remove.bind(_this);
6390
6391 return _this;
6392 }
6393
6394 Notification.prototype.componentDidMount = function componentDidMount() {
6395 // 给document绑定keyup事件
6396 var doc = (0, _ownerDocument2["default"])(this);
6397 this._onDocumentKeyupListener = (0, _addEventListener2["default"])(doc, 'keyup', this.handleDocumentKeyUp);
6398 };
6399
6400 Notification.prototype.componentWillUnmount = function componentWillUnmount() {
6401 this._onDocumentKeyupListener.remove();
6402 };
6403
6404 Notification.prototype.getTransitionName = function getTransitionName() {
6405 var props = this.props;
6406 var transitionName = props.transitionName;
6407 if (!transitionName && props.animation) {
6408 transitionName = props.clsPrefix + '-' + props.animation;
6409 }
6410 return transitionName;
6411 };
6412
6413 Notification.prototype.add = function add(notice) {
6414 var key = notice.key = notice.key || getUuid();
6415 this.setState(function (previousState) {
6416 var notices = previousState.notices;
6417 if (!notices.filter(function (v) {
6418 return v.key === key;
6419 }).length) {
6420 return {
6421 notices: notices.concat(notice)
6422 };
6423 }
6424 });
6425 };
6426
6427 Notification.prototype.remove = function remove(key) {
6428 this.setState(function (previousState) {
6429 return {
6430 notices: previousState.notices.filter(function (notice) {
6431 return notice.key !== key;
6432 })
6433 };
6434 });
6435 };
6436
6437 /**
6438 * 处理绑定在document上的keyup事件
6439 */
6440
6441
6442 Notification.prototype.render = function render() {
6443 var _this2 = this,
6444 _classes;
6445
6446 var _props = this.props,
6447 clsPrefix = _props.clsPrefix,
6448 className = _props.className,
6449 position = _props.position,
6450 style = _props.style;
6451
6452 var noticeNodes = this.state.notices.map(function (notice) {
6453 var onClose = (0, _createChainedFunction2["default"])(_this2.remove.bind(_this2, notice.key), notice.onClose);
6454 return _react2["default"].createElement(
6455 _Notice2["default"],
6456 _extends({
6457 clsPrefix: clsPrefix
6458 }, notice, {
6459 onClose: onClose
6460 }),
6461 notice.content
6462 );
6463 });
6464 var classes = (_classes = {}, _defineProperty(_classes, clsPrefix, 1), _defineProperty(_classes, className, !!className), _classes);
6465 if (position) {
6466 classes[clsPrefix + '-' + position] = !!position;
6467 }
6468
6469 return _react2["default"].createElement(
6470 'div',
6471 { className: (0, _classnames2["default"])(className, classes), style: style },
6472 _react2["default"].createElement(
6473 _beeAnimate2["default"],
6474 { transitionName: this.getTransitionName() },
6475 noticeNodes
6476 )
6477 );
6478 };
6479
6480 return Notification;
6481 }(_react.Component);
6482
6483 ;
6484
6485 Notification.propTypes = propTypes;
6486 Notification.defaultProps = defaultProps;
6487
6488 Notification.newInstance = function newNotificationInstance(properties, callback) {
6489 if (typeof callback !== 'function') {
6490 console.error('You must introduce callback as the second parameter of Notification.newInstance().');
6491 return;
6492 }
6493 var props = properties || {};
6494 var div = document.createElement('div');
6495 document.body.appendChild(div);
6496
6497 var called = false;
6498 function ref(notification) {
6499 if (called) {
6500 return;
6501 }
6502 called = true;
6503 callback({
6504 notice: function notice(noticeProps) {
6505 notification.add(noticeProps);
6506 },
6507 removeNotice: function removeNotice(key) {
6508 notification.remove(key);
6509 },
6510
6511 component: notification,
6512 destroy: function destroy() {
6513 _reactDom2["default"].unmountComponentAtNode(div);
6514 document.body.removeChild(div);
6515 }
6516 });
6517 }
6518 _reactDom2["default"].render(_react2["default"].createElement(Notification, _extends({}, props, { ref: ref })), div);
6519 };
6520
6521 exports["default"] = Notification;
6522 module.exports = exports['default'];
6523
6524/***/ }),
6525/* 69 */
6526/***/ (function(module, exports, __webpack_require__) {
6527
6528 'use strict';
6529
6530 Object.defineProperty(exports, "__esModule", {
6531 value: true
6532 });
6533
6534 var _Animate = __webpack_require__(70);
6535
6536 var _Animate2 = _interopRequireDefault(_Animate);
6537
6538 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6539
6540 exports["default"] = _Animate2["default"];
6541 module.exports = exports['default'];
6542
6543/***/ }),
6544/* 70 */
6545/***/ (function(module, exports, __webpack_require__) {
6546
6547 'use strict';
6548
6549 Object.defineProperty(exports, "__esModule", {
6550 value: true
6551 });
6552
6553 var _react = __webpack_require__(4);
6554
6555 var _react2 = _interopRequireDefault(_react);
6556
6557 var _propTypes = __webpack_require__(5);
6558
6559 var _propTypes2 = _interopRequireDefault(_propTypes);
6560
6561 var _ChildrenUtils = __webpack_require__(71);
6562
6563 var _AnimateChild = __webpack_require__(72);
6564
6565 var _AnimateChild2 = _interopRequireDefault(_AnimateChild);
6566
6567 var _util = __webpack_require__(73);
6568
6569 var _util2 = _interopRequireDefault(_util);
6570
6571 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6572
6573 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; }
6574
6575 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; }
6576
6577 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6578
6579 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; }
6580
6581 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); }
6582
6583 var defaultKey = 'u_animate_' + Date.now();
6584
6585
6586 function getChildrenFromProps(props) {
6587 var children = props.children;
6588 if (_react2["default"].isValidElement(children)) {
6589 if (!children.key) {
6590 return _react2["default"].cloneElement(children, {
6591 key: defaultKey
6592 });
6593 }
6594 }
6595 return children;
6596 }
6597
6598 function noop() {}
6599
6600 var propTypes = {
6601 component: _propTypes2["default"].any,
6602 animation: _propTypes2["default"].object,
6603 transitionName: _propTypes2["default"].oneOfType([_propTypes2["default"].string, _propTypes2["default"].object]),
6604 transitionEnter: _propTypes2["default"].bool,
6605 transitionAppear: _propTypes2["default"].bool,
6606 exclusive: _propTypes2["default"].bool,
6607 transitionLeave: _propTypes2["default"].bool,
6608 onEnd: _propTypes2["default"].func,
6609 onEnter: _propTypes2["default"].func,
6610 onLeave: _propTypes2["default"].func,
6611 onAppear: _propTypes2["default"].func,
6612 showProp: _propTypes2["default"].string
6613 };
6614
6615 var defaultProps = {
6616 animation: {},
6617 component: 'span',
6618 transitionEnter: true,
6619 transitionLeave: true,
6620 transitionAppear: false,
6621 onEnd: noop,
6622 onEnter: noop,
6623 onLeave: noop,
6624 onAppear: noop
6625 };
6626
6627 var Animate = function (_Component) {
6628 _inherits(Animate, _Component);
6629
6630 function Animate(props) {
6631 _classCallCheck(this, Animate);
6632
6633 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
6634
6635 _this.currentlyAnimatingKeys = {};
6636 _this.keysToEnter = [];
6637 _this.keysToLeave = [];
6638 _this.state = {
6639 children: (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(_this.props))
6640 };
6641
6642 _this.performEnter = _this.performEnter.bind(_this);
6643 _this.performAppear = _this.performAppear.bind(_this);
6644 _this.handleDoneAdding = _this.handleDoneAdding.bind(_this);
6645 _this.performLeave = _this.performLeave.bind(_this);
6646
6647 _this.performLeave = _this.performLeave.bind(_this);
6648 _this.handleDoneLeaving = _this.handleDoneLeaving.bind(_this);
6649 _this.isValidChildByKey = _this.isValidChildByKey.bind(_this);
6650 _this.stop = _this.stop.bind(_this);
6651 return _this;
6652 }
6653
6654 Animate.prototype.componentDidMount = function componentDidMount() {
6655 var _this2 = this;
6656
6657 this.mounted = true;
6658 var showProp = this.props.showProp;
6659 var children = this.state.children;
6660 if (showProp) {
6661 children = children.filter(function (child) {
6662 return !!child.props[showProp];
6663 });
6664 }
6665 children.forEach(function (child) {
6666 if (child) {
6667 _this2.performAppear(child.key);
6668 }
6669 });
6670 };
6671
6672 Animate.prototype.componentWillUnmount = function componentWillUnmount() {
6673 this.mounted = false;
6674 };
6675
6676 Animate.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
6677 var _this3 = this;
6678
6679 this.nextProps = nextProps;
6680 var nextChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(nextProps));
6681 var props = this.props;
6682 // exclusive needs immediate response
6683 if (props.exclusive) {
6684 Object.keys(this.currentlyAnimatingKeys).forEach(function (key) {
6685 _this3.stop(key);
6686 });
6687 }
6688 var showProp = props.showProp;
6689 var currentlyAnimatingKeys = this.currentlyAnimatingKeys;
6690 // last props children if exclusive
6691 var currentChildren = props.exclusive ? (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props)) : this.state.children;
6692 // in case destroy in showProp mode
6693 var newChildren = [];
6694 if (showProp) {
6695 currentChildren.forEach(function (currentChild) {
6696 var nextChild = currentChild && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, currentChild.key);
6697 var newChild = void 0;
6698 if ((!nextChild || !nextChild.props[showProp]) && currentChild.props[showProp]) {
6699 newChild = _react2["default"].cloneElement(nextChild || currentChild, _defineProperty({}, showProp, true));
6700 } else {
6701 newChild = nextChild;
6702 }
6703 if (newChild) {
6704 newChildren.push(newChild);
6705 }
6706 });
6707 nextChildren.forEach(function (nextChild) {
6708 if (!nextChild || !(0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, nextChild.key)) {
6709 newChildren.push(nextChild);
6710 }
6711 });
6712 } else {
6713 newChildren = (0, _ChildrenUtils.mergeChildren)(currentChildren, nextChildren);
6714 }
6715
6716 // need render to avoid update
6717 this.setState({
6718 children: newChildren
6719 });
6720
6721 nextChildren.forEach(function (child) {
6722 var key = child && child.key;
6723 if (child && currentlyAnimatingKeys[key]) {
6724 return;
6725 }
6726 var hasPrev = child && (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);
6727 if (showProp) {
6728 var showInNext = child.props[showProp];
6729 if (hasPrev) {
6730 var showInNow = (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);
6731 if (!showInNow && showInNext) {
6732 _this3.keysToEnter.push(key);
6733 }
6734 } else if (showInNext) {
6735 _this3.keysToEnter.push(key);
6736 }
6737 } else if (!hasPrev) {
6738 _this3.keysToEnter.push(key);
6739 }
6740 });
6741
6742 currentChildren.forEach(function (child) {
6743 var key = child && child.key;
6744 if (child && currentlyAnimatingKeys[key]) {
6745 return;
6746 }
6747 var hasNext = child && (0, _ChildrenUtils.findChildInChildrenByKey)(nextChildren, key);
6748 if (showProp) {
6749 var showInNow = child.props[showProp];
6750 if (hasNext) {
6751 var showInNext = (0, _ChildrenUtils.findShownChildInChildrenByKey)(nextChildren, key, showProp);
6752 if (!showInNext && showInNow) {
6753 _this3.keysToLeave.push(key);
6754 }
6755 } else if (showInNow) {
6756 _this3.keysToLeave.push(key);
6757 }
6758 } else if (!hasNext) {
6759 _this3.keysToLeave.push(key);
6760 }
6761 });
6762 };
6763
6764 Animate.prototype.componentDidUpdate = function componentDidUpdate() {
6765 var keysToEnter = this.keysToEnter;
6766 this.keysToEnter = [];
6767 keysToEnter.forEach(this.performEnter);
6768 var keysToLeave = this.keysToLeave;
6769 this.keysToLeave = [];
6770 keysToLeave.forEach(this.performLeave);
6771 };
6772
6773 Animate.prototype.performEnter = function performEnter(key) {
6774 // may already remove by exclusive
6775 if (this.refs[key]) {
6776 this.currentlyAnimatingKeys[key] = true;
6777 this.refs[key].componentWillEnter(this.handleDoneAdding.bind(this, key, 'enter'));
6778 }
6779 };
6780
6781 Animate.prototype.performAppear = function performAppear(key) {
6782 if (this.refs[key]) {
6783 this.currentlyAnimatingKeys[key] = true;
6784 this.refs[key].componentWillAppear(this.handleDoneAdding.bind(this, key, 'appear'));
6785 }
6786 };
6787
6788 Animate.prototype.handleDoneAdding = function handleDoneAdding(key, type) {
6789 var props = this.props;
6790 delete this.currentlyAnimatingKeys[key];
6791 // if update on exclusive mode, skip check
6792 if (props.exclusive && props !== this.nextProps) {
6793 return;
6794 }
6795 var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));
6796 if (!this.isValidChildByKey(currentChildren, key)) {
6797 // exclusive will not need this
6798 this.performLeave(key);
6799 } else {
6800 if (type === 'appear') {
6801 if (_util2["default"].allowAppearCallback(props)) {
6802 props.onAppear(key);
6803 props.onEnd(key, true);
6804 }
6805 } else {
6806 if (_util2["default"].allowEnterCallback(props)) {
6807 props.onEnter(key);
6808 props.onEnd(key, true);
6809 }
6810 }
6811 }
6812 };
6813
6814 Animate.prototype.performLeave = function performLeave(key) {
6815 // may already remove by exclusive
6816 if (this.refs[key]) {
6817 this.currentlyAnimatingKeys[key] = true;
6818 this.refs[key].componentWillLeave(this.handleDoneLeaving.bind(this, key));
6819 }
6820 };
6821
6822 Animate.prototype.handleDoneLeaving = function handleDoneLeaving(key) {
6823 var props = this.props;
6824 delete this.currentlyAnimatingKeys[key];
6825 // if update on exclusive mode, skip check
6826 if (props.exclusive && props !== this.nextProps) {
6827 return;
6828 }
6829 var currentChildren = (0, _ChildrenUtils.toArrayChildren)(getChildrenFromProps(props));
6830 // in case state change is too fast
6831 if (this.isValidChildByKey(currentChildren, key)) {
6832 this.performEnter(key);
6833 } else {
6834 var end = function end() {
6835 if (_util2["default"].allowLeaveCallback(props)) {
6836 props.onLeave(key);
6837 props.onEnd(key, false);
6838 }
6839 };
6840 /* eslint react/no-is-mounted:0 */
6841 if (this.mounted && !(0, _ChildrenUtils.isSameChildren)(this.state.children, currentChildren, props.showProp)) {
6842 this.setState({
6843 children: currentChildren
6844 }, end);
6845 } else {
6846 end();
6847 }
6848 }
6849 };
6850
6851 Animate.prototype.isValidChildByKey = function isValidChildByKey(currentChildren, key) {
6852 var showProp = this.props.showProp;
6853 if (showProp) {
6854 return (0, _ChildrenUtils.findShownChildInChildrenByKey)(currentChildren, key, showProp);
6855 }
6856 return (0, _ChildrenUtils.findChildInChildrenByKey)(currentChildren, key);
6857 };
6858
6859 Animate.prototype.stop = function stop(key) {
6860 delete this.currentlyAnimatingKeys[key];
6861 var component = this.refs[key];
6862 if (component) {
6863 component.stop();
6864 }
6865 };
6866
6867 Animate.prototype.render = function render() {
6868 var props = this.props;
6869 this.nextProps = props;
6870 var stateChildren = this.state.children;
6871 var children = null;
6872 if (stateChildren) {
6873 children = stateChildren.map(function (child) {
6874 if (child === null || child === undefined) {
6875 return child;
6876 }
6877 if (!child.key) {
6878 throw new Error('must set key for <rc-animate> children');
6879 }
6880 return _react2["default"].createElement(
6881 _AnimateChild2["default"],
6882 {
6883 key: child.key,
6884 ref: child.key,
6885 animation: props.animation,
6886 transitionName: props.transitionName,
6887 transitionEnter: props.transitionEnter,
6888 transitionAppear: props.transitionAppear,
6889 transitionLeave: props.transitionLeave
6890 },
6891 child
6892 );
6893 });
6894 }
6895 var Component = props.component;
6896 if (Component) {
6897 var passedProps = props;
6898 if (typeof Component === 'string') {
6899 passedProps = {
6900 className: props.className,
6901 style: props.style
6902 };
6903 }
6904 return _react2["default"].createElement(
6905 Component,
6906 passedProps,
6907 children
6908 );
6909 }
6910 return children[0] || null;
6911 };
6912
6913 return Animate;
6914 }(_react.Component);
6915
6916 ;
6917 Animate.defaultProps = defaultProps;
6918 Animate.propTypes = Animate.propTypes;
6919
6920 exports["default"] = Animate;
6921 module.exports = exports['default'];
6922
6923/***/ }),
6924/* 71 */
6925/***/ (function(module, exports, __webpack_require__) {
6926
6927 'use strict';
6928
6929 Object.defineProperty(exports, "__esModule", {
6930 value: true
6931 });
6932 exports.toArrayChildren = toArrayChildren;
6933 exports.findChildInChildrenByKey = findChildInChildrenByKey;
6934 exports.findShownChildInChildrenByKey = findShownChildInChildrenByKey;
6935 exports.findHiddenChildInChildrenByKey = findHiddenChildInChildrenByKey;
6936 exports.isSameChildren = isSameChildren;
6937 exports.mergeChildren = mergeChildren;
6938
6939 var _react = __webpack_require__(4);
6940
6941 var _react2 = _interopRequireDefault(_react);
6942
6943 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
6944
6945 function toArrayChildren(children) {
6946 var ret = [];
6947 _react2["default"].Children.forEach(children, function (child) {
6948 ret.push(child);
6949 });
6950 return ret;
6951 }
6952
6953 function findChildInChildrenByKey(children, key) {
6954 var ret = null;
6955 if (children) {
6956 children.forEach(function (child) {
6957 if (ret) {
6958 return;
6959 }
6960 if (child && child.key === key) {
6961 ret = child;
6962 }
6963 });
6964 }
6965 return ret;
6966 }
6967
6968 function findShownChildInChildrenByKey(children, key, showProp) {
6969 var ret = null;
6970 if (children) {
6971 children.forEach(function (child) {
6972 if (child && child.key === key && child.props[showProp]) {
6973 if (ret) {
6974 throw new Error('two child with same key for <rc-animate> children');
6975 }
6976 ret = child;
6977 }
6978 });
6979 }
6980 return ret;
6981 }
6982
6983 function findHiddenChildInChildrenByKey(children, key, showProp) {
6984 var found = 0;
6985 if (children) {
6986 children.forEach(function (child) {
6987 if (found) {
6988 return;
6989 }
6990 found = child && child.key === key && !child.props[showProp];
6991 });
6992 }
6993 return found;
6994 }
6995
6996 function isSameChildren(c1, c2, showProp) {
6997 var same = c1.length === c2.length;
6998 if (same) {
6999 c1.forEach(function (child, index) {
7000 var child2 = c2[index];
7001 if (child && child2) {
7002 if (child && !child2 || !child && child2) {
7003 same = false;
7004 } else if (child.key !== child2.key) {
7005 same = false;
7006 } else if (showProp && child.props[showProp] !== child2.props[showProp]) {
7007 same = false;
7008 }
7009 }
7010 });
7011 }
7012 return same;
7013 }
7014
7015 function mergeChildren(prev, next) {
7016 var ret = [];
7017
7018 // For each key of `next`, the list of keys to insert before that key in
7019 // the combined list
7020 var nextChildrenPending = {};
7021 var pendingChildren = [];
7022 prev.forEach(function (child) {
7023 if (child && findChildInChildrenByKey(next, child.key)) {
7024 if (pendingChildren.length) {
7025 nextChildrenPending[child.key] = pendingChildren;
7026 pendingChildren = [];
7027 }
7028 } else {
7029 pendingChildren.push(child);
7030 }
7031 });
7032
7033 next.forEach(function (child) {
7034 if (child && nextChildrenPending.hasOwnProperty(child.key)) {
7035 ret = ret.concat(nextChildrenPending[child.key]);
7036 }
7037 ret.push(child);
7038 });
7039
7040 ret = ret.concat(pendingChildren);
7041
7042 return ret;
7043 }
7044
7045/***/ }),
7046/* 72 */
7047/***/ (function(module, exports, __webpack_require__) {
7048
7049 'use strict';
7050
7051 Object.defineProperty(exports, "__esModule", {
7052 value: true
7053 });
7054
7055 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; };
7056
7057 var _react = __webpack_require__(4);
7058
7059 var _react2 = _interopRequireDefault(_react);
7060
7061 var _propTypes = __webpack_require__(5);
7062
7063 var _propTypes2 = _interopRequireDefault(_propTypes);
7064
7065 var _reactDom = __webpack_require__(12);
7066
7067 var _reactDom2 = _interopRequireDefault(_reactDom);
7068
7069 var _tinperBeeCore = __webpack_require__(27);
7070
7071 var _util = __webpack_require__(73);
7072
7073 var _util2 = _interopRequireDefault(_util);
7074
7075 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7076
7077 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; }
7078
7079 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7080
7081 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; }
7082
7083 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); }
7084
7085 var transitionMap = {
7086 enter: 'transitionEnter',
7087 appear: 'transitionAppear',
7088 leave: 'transitionLeave'
7089 };
7090
7091 var propTypes = {
7092 children: _propTypes2["default"].any
7093 };
7094
7095 var AnimateChild = function (_Component) {
7096 _inherits(AnimateChild, _Component);
7097
7098 function AnimateChild(props) {
7099 _classCallCheck(this, AnimateChild);
7100
7101 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
7102
7103 _this.transition = _this.transition.bind(_this);
7104 _this.stop = _this.stop.bind(_this);
7105 return _this;
7106 }
7107
7108 AnimateChild.prototype.componentWillUnmount = function componentWillUnmount() {
7109 this.stop();
7110 };
7111
7112 AnimateChild.prototype.componentWillEnter = function componentWillEnter(done) {
7113 if (_util2["default"].isEnterSupported(this.props)) {
7114 this.transition('enter', done);
7115 } else {
7116 done();
7117 }
7118 };
7119
7120 AnimateChild.prototype.componentWillAppear = function componentWillAppear(done) {
7121 if (_util2["default"].isAppearSupported(this.props)) {
7122 this.transition('appear', done);
7123 } else {
7124 done();
7125 }
7126 };
7127
7128 AnimateChild.prototype.componentWillLeave = function componentWillLeave(done) {
7129 if (_util2["default"].isLeaveSupported(this.props)) {
7130 this.transition('leave', done);
7131 } else {
7132 // always sync, do not interupt with react component life cycle
7133 // update hidden -> animate hidden ->
7134 // didUpdate -> animate leave -> unmount (if animate is none)
7135 done();
7136 }
7137 };
7138
7139 AnimateChild.prototype.transition = function transition(animationType, finishCallback) {
7140 var _this2 = this;
7141
7142 var node = _reactDom2["default"].findDOMNode(this);
7143 var props = this.props;
7144 var transitionName = props.transitionName;
7145 var nameIsObj = (typeof transitionName === 'undefined' ? 'undefined' : _typeof(transitionName)) === 'object';
7146 this.stop();
7147 var end = function end() {
7148 _this2.stopper = null;
7149 finishCallback();
7150 };
7151 if ((_tinperBeeCore.cssAnimation.isCssAnimationSupported || !props.animation[animationType]) && transitionName && props[transitionMap[animationType]]) {
7152 var name = nameIsObj ? transitionName[animationType] : transitionName + '-' + animationType;
7153 var activeName = name + '-active';
7154 if (nameIsObj && transitionName[animationType + 'Active']) {
7155 activeName = transitionName[animationType + 'Active'];
7156 }
7157 this.stopper = (0, _tinperBeeCore.cssAnimation)(node, {
7158 name: name,
7159 active: activeName
7160 }, end);
7161 } else {
7162 this.stopper = props.animation[animationType](node, end);
7163 }
7164 };
7165
7166 AnimateChild.prototype.stop = function stop() {
7167 var stopper = this.stopper;
7168 if (stopper) {
7169 this.stopper = null;
7170 stopper.stop();
7171 }
7172 };
7173
7174 AnimateChild.prototype.render = function render() {
7175 return this.props.children;
7176 };
7177
7178 return AnimateChild;
7179 }(_react.Component);
7180
7181 ;
7182
7183 AnimateChild.propTypes = propTypes;
7184
7185 exports["default"] = AnimateChild;
7186 module.exports = exports['default'];
7187
7188/***/ }),
7189/* 73 */
7190/***/ (function(module, exports) {
7191
7192 "use strict";
7193
7194 Object.defineProperty(exports, "__esModule", {
7195 value: true
7196 });
7197 var util = {
7198 isAppearSupported: function isAppearSupported(props) {
7199 return props.transitionName && props.transitionAppear || props.animation.appear;
7200 },
7201 isEnterSupported: function isEnterSupported(props) {
7202 return props.transitionName && props.transitionEnter || props.animation.enter;
7203 },
7204 isLeaveSupported: function isLeaveSupported(props) {
7205 return props.transitionName && props.transitionLeave || props.animation.leave;
7206 },
7207 allowAppearCallback: function allowAppearCallback(props) {
7208 return props.transitionAppear || props.animation.appear;
7209 },
7210 allowEnterCallback: function allowEnterCallback(props) {
7211 return props.transitionEnter || props.animation.enter;
7212 },
7213 allowLeaveCallback: function allowLeaveCallback(props) {
7214 return props.transitionLeave || props.animation.leave;
7215 }
7216 };
7217 exports["default"] = util;
7218 module.exports = exports["default"];
7219
7220/***/ }),
7221/* 74 */
7222/***/ (function(module, exports, __webpack_require__) {
7223
7224 'use strict';
7225
7226 Object.defineProperty(exports, "__esModule", {
7227 value: true
7228 });
7229
7230 exports["default"] = function (componentOrElement) {
7231 return (0, _ownerDocument2["default"])(_reactDom2["default"].findDOMNode(componentOrElement));
7232 };
7233
7234 var _reactDom = __webpack_require__(12);
7235
7236 var _reactDom2 = _interopRequireDefault(_reactDom);
7237
7238 var _ownerDocument = __webpack_require__(75);
7239
7240 var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
7241
7242 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7243
7244 module.exports = exports['default'];
7245
7246/***/ }),
7247/* 75 */
7248/***/ (function(module, exports) {
7249
7250 "use strict";
7251
7252 exports.__esModule = true;
7253 exports.default = ownerDocument;
7254
7255 function ownerDocument(node) {
7256 return node && node.ownerDocument || document;
7257 }
7258
7259 module.exports = exports["default"];
7260
7261/***/ }),
7262/* 76 */
7263/***/ (function(module, exports, __webpack_require__) {
7264
7265 'use strict';
7266
7267 Object.defineProperty(exports, "__esModule", {
7268 value: true
7269 });
7270
7271 exports["default"] = function (node, event, handler, capture) {
7272 (0, _on2["default"])(node, event, handler, capture);
7273
7274 return {
7275 remove: function remove() {
7276 (0, _off2["default"])(node, event, handler, capture);
7277 }
7278 };
7279 };
7280
7281 var _on = __webpack_require__(16);
7282
7283 var _on2 = _interopRequireDefault(_on);
7284
7285 var _off = __webpack_require__(77);
7286
7287 var _off2 = _interopRequireDefault(_off);
7288
7289 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7290
7291 module.exports = exports['default'];
7292
7293/***/ }),
7294/* 77 */
7295/***/ (function(module, exports, __webpack_require__) {
7296
7297 "use strict";
7298
7299 var _interopRequireDefault = __webpack_require__(14);
7300
7301 exports.__esModule = true;
7302 exports.default = void 0;
7303
7304 var _inDOM = _interopRequireDefault(__webpack_require__(15));
7305
7306 var off = function off() {};
7307
7308 if (_inDOM.default) {
7309 off = function () {
7310 if (document.addEventListener) return function (node, eventName, handler, capture) {
7311 return node.removeEventListener(eventName, handler, capture || false);
7312 };else if (document.attachEvent) return function (node, eventName, handler) {
7313 return node.detachEvent('on' + eventName, handler);
7314 };
7315 }();
7316 }
7317
7318 var _default = off;
7319 exports.default = _default;
7320 module.exports = exports["default"];
7321
7322/***/ }),
7323/* 78 */
7324/***/ (function(module, exports, __webpack_require__) {
7325
7326 'use strict';
7327
7328 Object.defineProperty(exports, "__esModule", {
7329 value: true
7330 });
7331
7332 var _react = __webpack_require__(4);
7333
7334 var _react2 = _interopRequireDefault(_react);
7335
7336 var _classnames = __webpack_require__(3);
7337
7338 var _classnames2 = _interopRequireDefault(_classnames);
7339
7340 var _propTypes = __webpack_require__(5);
7341
7342 var _propTypes2 = _interopRequireDefault(_propTypes);
7343
7344 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7345
7346 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; }
7347
7348 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; }
7349
7350 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7351
7352 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; }
7353
7354 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); }
7355
7356 var propTypes = {
7357 duration: _propTypes2["default"].number,
7358 onClose: _propTypes2["default"].func,
7359 children: _propTypes2["default"].any,
7360 color: _propTypes2["default"].oneOf(['info', 'success', 'danger', 'warning', 'light', 'dark', 'news', 'infolight', 'successlight', 'dangerlight', 'warninglight']),
7361 title: _propTypes2["default"].any
7362 };
7363
7364 function noop() {}
7365
7366 var defaultProps = {
7367 onEnd: noop,
7368 onClose: noop,
7369 duration: 4.5,
7370 closable: true
7371 };
7372
7373 var Notice = function (_React$Component) {
7374 _inherits(Notice, _React$Component);
7375
7376 function Notice(props) {
7377 _classCallCheck(this, Notice);
7378
7379 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props));
7380
7381 _this.clearCloseTimer = _this.clearCloseTimer.bind(_this);
7382 _this.close = _this.close.bind(_this);
7383 return _this;
7384 }
7385
7386 Notice.prototype.componentDidMount = function componentDidMount() {
7387 var _this2 = this;
7388
7389 if (this.props.duration) {
7390 this.closeTimer = setTimeout(function () {
7391 _this2.close();
7392 }, this.props.duration * 1000);
7393 }
7394 };
7395
7396 Notice.prototype.componentWillUnmount = function componentWillUnmount() {
7397 this.clearCloseTimer();
7398 };
7399
7400 Notice.prototype.clearCloseTimer = function clearCloseTimer() {
7401 if (this.closeTimer) {
7402 clearTimeout(this.closeTimer);
7403 this.closeTimer = null;
7404 }
7405 };
7406
7407 Notice.prototype.close = function close() {
7408 this.clearCloseTimer();
7409 this.props.onClose();
7410 };
7411
7412 Notice.prototype.render = function render() {
7413 var _classes;
7414
7415 var _props = this.props,
7416 closable = _props.closable,
7417 clsPrefix = _props.clsPrefix,
7418 className = _props.className,
7419 style = _props.style,
7420 children = _props.children,
7421 color = _props.color,
7422 title = _props.title;
7423
7424 var componentClass = clsPrefix + '-notice';
7425 var classes = (_classes = {}, _defineProperty(_classes, '' + componentClass, 1), _defineProperty(_classes, componentClass + '-closable', closable), _defineProperty(_classes, className, !!className), _classes);
7426 if (color) {
7427 classes[componentClass + '-' + color] = true;
7428 }
7429 return _react2["default"].createElement(
7430 'div',
7431 { className: (0, _classnames2["default"])(classes), style: style, onClick: this.close },
7432 _react2["default"].createElement(
7433 'div',
7434 { className: componentClass + '-content' },
7435 title && _react2["default"].createElement(
7436 'div',
7437 { className: componentClass + '-title' },
7438 title
7439 ),
7440 _react2["default"].createElement(
7441 'div',
7442 { className: componentClass + '-description' },
7443 children
7444 )
7445 ),
7446 closable ? _react2["default"].createElement(
7447 'a',
7448 { tabIndex: '0', onClick: this.close, className: componentClass + '-close' },
7449 _react2["default"].createElement('span', { className: componentClass + '-close-x' })
7450 ) : null
7451 );
7452 };
7453
7454 return Notice;
7455 }(_react2["default"].Component);
7456
7457 ;
7458
7459 Notice.propTypes = propTypes;
7460 Notice.defaultProps = defaultProps;
7461
7462 exports["default"] = Notice;
7463 module.exports = exports['default'];
7464
7465/***/ }),
7466/* 79 */
7467/***/ (function(module, exports, __webpack_require__) {
7468
7469 'use strict';
7470
7471 var deselectCurrent = __webpack_require__(80);
7472
7473 var defaultMessage = 'Copy to clipboard: #{key}, Enter';
7474
7475 function format(message) {
7476 var copyKey = (/mac os x/i.test(navigator.userAgent) ? '⌘' : 'Ctrl') + '+C';
7477 return message.replace(/#{\s*key\s*}/g, copyKey);
7478 }
7479
7480 function copy(text, options) {
7481 var debug, message, reselectPrevious, range, selection, mark, success = false;
7482 if (!options) { options = {}; }
7483 debug = options.debug || false;
7484 try {
7485 reselectPrevious = deselectCurrent();
7486
7487 range = document.createRange();
7488 selection = document.getSelection();
7489
7490 mark = document.createElement('span');
7491 mark.textContent = text;
7492 // reset user styles for span element
7493 mark.style.all = 'unset';
7494 // prevents scrolling to the end of the page
7495 mark.style.position = 'fixed';
7496 mark.style.top = 0;
7497 mark.style.clip = 'rect(0, 0, 0, 0)';
7498 // used to preserve spaces and line breaks
7499 mark.style.whiteSpace = 'pre';
7500 // do not inherit user-select (it may be `none`)
7501 mark.style.webkitUserSelect = 'text';
7502 mark.style.MozUserSelect = 'text';
7503 mark.style.msUserSelect = 'text';
7504 mark.style.userSelect = 'text';
7505
7506 document.body.appendChild(mark);
7507
7508 range.selectNode(mark);
7509 selection.addRange(range);
7510
7511 var successful = document.execCommand('copy');
7512 if (!successful) {
7513 throw new Error('copy command was unsuccessful');
7514 }
7515 success = true;
7516 } catch (err) {
7517 debug && console.error('unable to copy using execCommand: ', err);
7518 debug && console.warn('trying IE specific stuff');
7519 try {
7520 window.clipboardData.setData('text', text);
7521 success = true;
7522 } catch (err) {
7523 debug && console.error('unable to copy using clipboardData: ', err);
7524 debug && console.error('falling back to prompt');
7525 message = format('message' in options ? options.message : defaultMessage);
7526 window.prompt(message, text);
7527 }
7528 } finally {
7529 if (selection) {
7530 if (typeof selection.removeRange == 'function') {
7531 selection.removeRange(range);
7532 } else {
7533 selection.removeAllRanges();
7534 }
7535 }
7536
7537 if (mark) {
7538 document.body.removeChild(mark);
7539 }
7540 reselectPrevious();
7541 }
7542
7543 return success;
7544 }
7545
7546 module.exports = copy;
7547
7548
7549/***/ }),
7550/* 80 */
7551/***/ (function(module, exports) {
7552
7553
7554 module.exports = function () {
7555 var selection = document.getSelection();
7556 if (!selection.rangeCount) {
7557 return function () {};
7558 }
7559 var active = document.activeElement;
7560
7561 var ranges = [];
7562 for (var i = 0; i < selection.rangeCount; i++) {
7563 ranges.push(selection.getRangeAt(i));
7564 }
7565
7566 switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML
7567 case 'INPUT':
7568 case 'TEXTAREA':
7569 active.blur();
7570 break;
7571
7572 default:
7573 active = null;
7574 break;
7575 }
7576
7577 selection.removeAllRanges();
7578 return function () {
7579 selection.type === 'Caret' &&
7580 selection.removeAllRanges();
7581
7582 if (!selection.rangeCount) {
7583 ranges.forEach(function(range) {
7584 selection.addRange(range);
7585 });
7586 }
7587
7588 active &&
7589 active.focus();
7590 };
7591 };
7592
7593
7594/***/ }),
7595/* 81 */
7596/***/ (function(module, exports, __webpack_require__) {
7597
7598 'use strict';
7599
7600 Object.defineProperty(exports, "__esModule", {
7601 value: true
7602 });
7603
7604 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; };
7605
7606 var _classnames = __webpack_require__(3);
7607
7608 var _classnames2 = _interopRequireDefault(_classnames);
7609
7610 var _react = __webpack_require__(4);
7611
7612 var _react2 = _interopRequireDefault(_react);
7613
7614 var _propTypes = __webpack_require__(5);
7615
7616 var _propTypes2 = _interopRequireDefault(_propTypes);
7617
7618 var _tinperBeeCore = __webpack_require__(27);
7619
7620 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7621
7622 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; }
7623
7624 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; }
7625
7626 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7627
7628 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; }
7629
7630 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); }
7631
7632 var propTypes = {
7633 //是否是手风琴效果
7634 accordion: _propTypes2["default"].bool,
7635 //激活的项
7636 activeKey: _propTypes2["default"].any,
7637 //默认的激活的项
7638 defaultActiveKey: _propTypes2["default"].any,
7639 //选中函数
7640 onSelect: _propTypes2["default"].func,
7641 role: _propTypes2["default"].string
7642 };
7643
7644 var defaultProps = {
7645 accordion: false,
7646 clsPrefix: 'u-panel-group'
7647 };
7648
7649 // TODO: Use uncontrollable.
7650
7651 var PanelGroup = function (_React$Component) {
7652 _inherits(PanelGroup, _React$Component);
7653
7654 function PanelGroup(props, context) {
7655 _classCallCheck(this, PanelGroup);
7656
7657 var _this = _possibleConstructorReturn(this, _React$Component.call(this, props, context));
7658
7659 _this.handleSelect = _this.handleSelect.bind(_this);
7660
7661 _this.state = {
7662 activeKey: props.defaultActiveKey
7663 };
7664 return _this;
7665 }
7666
7667 PanelGroup.prototype.handleSelect = function handleSelect(key, e) {
7668 e.preventDefault();
7669
7670 if (this.props.onSelect) {
7671 this.props.onSelect(key, e);
7672 }
7673
7674 if (this.state.activeKey === key) {
7675 key = null;
7676 }
7677
7678 this.setState({ activeKey: key });
7679 };
7680
7681 PanelGroup.prototype.render = function render() {
7682 var _this2 = this;
7683
7684 var _props = this.props,
7685 accordion = _props.accordion,
7686 propsActiveKey = _props.activeKey,
7687 className = _props.className,
7688 children = _props.children,
7689 defaultActiveKey = _props.defaultActiveKey,
7690 onSelect = _props.onSelect,
7691 style = _props.style,
7692 clsPrefix = _props.clsPrefix,
7693 others = _objectWithoutProperties(_props, ['accordion', 'activeKey', 'className', 'children', 'defaultActiveKey', 'onSelect', 'style', 'clsPrefix']);
7694
7695 var activeKey = void 0;
7696 if (accordion) {
7697 activeKey = propsActiveKey != null ? propsActiveKey : this.state.activeKey;
7698 others.role = others.role || 'tablist';
7699 }
7700
7701 var classes = {};
7702 classes['' + clsPrefix] = true;
7703
7704 return _react2["default"].createElement(
7705 'div',
7706 _extends({}, others, {
7707 className: (0, _classnames2["default"])(className, classes)
7708 }),
7709 _react2["default"].Children.map(children, function (child) {
7710 if (!_react2["default"].isValidElement(child)) {
7711 return child;
7712 }
7713 var childProps = {
7714 style: child.props.style
7715 };
7716
7717 if (accordion) {
7718 _extends(childProps, {
7719 headerRole: 'tab',
7720 panelRole: 'tabpanel',
7721 collapsible: true,
7722 expanded: child.props.eventKey === activeKey,
7723 onSelect: (0, _tinperBeeCore.createChainedFunction)(_this2.handleSelect, child.props.onSelect)
7724 });
7725 }
7726
7727 return (0, _react.cloneElement)(child, childProps);
7728 })
7729 );
7730 };
7731
7732 return PanelGroup;
7733 }(_react2["default"].Component);
7734
7735 PanelGroup.propTypes = propTypes;
7736 PanelGroup.defaultProps = defaultProps;
7737
7738 exports["default"] = PanelGroup;
7739 module.exports = exports['default'];
7740
7741/***/ }),
7742/* 82 */
7743/***/ (function(module, exports, __webpack_require__) {
7744
7745 'use strict';
7746
7747 Object.defineProperty(exports, "__esModule", {
7748 value: true
7749 });
7750
7751 var _Button = __webpack_require__(83);
7752
7753 var _Button2 = _interopRequireDefault(_Button);
7754
7755 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7756
7757 exports["default"] = _Button2["default"];
7758 module.exports = exports['default'];
7759
7760/***/ }),
7761/* 83 */
7762/***/ (function(module, exports, __webpack_require__) {
7763
7764 'use strict';
7765
7766 Object.defineProperty(exports, "__esModule", {
7767 value: true
7768 });
7769
7770 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; };
7771
7772 var _react = __webpack_require__(4);
7773
7774 var _react2 = _interopRequireDefault(_react);
7775
7776 var _reactDom = __webpack_require__(12);
7777
7778 var _reactDom2 = _interopRequireDefault(_reactDom);
7779
7780 var _propTypes = __webpack_require__(5);
7781
7782 var _propTypes2 = _interopRequireDefault(_propTypes);
7783
7784 var _classnames = __webpack_require__(3);
7785
7786 var _classnames2 = _interopRequireDefault(_classnames);
7787
7788 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
7789
7790 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; }
7791
7792 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; }
7793
7794 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7795
7796 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; }
7797
7798 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); }
7799
7800 var propTypes = {
7801 /**
7802 * @title 尺寸
7803 */
7804 size: _propTypes2["default"].oneOf(['sm', 'xg', 'lg']),
7805 /**
7806 * @title 样式
7807 */
7808 style: _propTypes2["default"].object,
7809 /**
7810 * @title 形状
7811 */
7812 shape: _propTypes2["default"].oneOf(['block', 'round', 'border', 'squared', 'floating', 'pillRight', 'pillLeft', 'icon']),
7813
7814 bordered: _propTypes2["default"].bool,
7815 /**
7816 * @title 类型
7817 */
7818 colors: _propTypes2["default"].oneOf(['primary', 'accent', 'success', 'info', 'warning', 'danger', 'default']),
7819 /**
7820 * @title 是否禁用
7821 * @veIgnore
7822 */
7823 disabled: _propTypes2["default"].bool,
7824 /**
7825 * @title 类名
7826 * @veIgnore
7827 */
7828 className: _propTypes2["default"].string,
7829
7830 /**
7831 * @title <button> 的 type
7832 * @veIgnore
7833 */
7834 htmlType: _propTypes2["default"].oneOf(['submit', 'button', 'reset']),
7835 isSubmit: _propTypes2["default"].bool //是否作为form的提交按钮
7836 };
7837
7838 var defaultProps = {
7839 disabled: false,
7840 htmlType: 'button',
7841 clsPrefix: 'u-button',
7842 bordered: false,
7843 isSubmit: false
7844 };
7845
7846 var sizeMap = {
7847 sm: 'sm',
7848 xg: 'xg',
7849 lg: 'lg'
7850 },
7851 colorsMap = {
7852 primary: 'primary',
7853 accent: 'accent',
7854 success: 'success',
7855 info: 'info',
7856 warning: 'warning',
7857 danger: 'danger'
7858 },
7859 shapeMap = {
7860 block: 'block',
7861 round: 'round',
7862 border: 'border',
7863 squared: 'squared',
7864 floating: 'floating',
7865 pillRight: 'pill-right',
7866 pillLeft: 'pill-left',
7867 icon: 'icon'
7868 };
7869
7870 var Button = function (_Component) {
7871 _inherits(Button, _Component);
7872
7873 function Button(props) {
7874 _classCallCheck(this, Button);
7875
7876 return _possibleConstructorReturn(this, _Component.call(this, props));
7877 }
7878
7879 Button.prototype.render = function render() {
7880 var _props = this.props,
7881 colors = _props.colors,
7882 shape = _props.shape,
7883 disabled = _props.disabled,
7884 className = _props.className,
7885 size = _props.size,
7886 bordered = _props.bordered,
7887 children = _props.children,
7888 htmlType = _props.htmlType,
7889 clsPrefix = _props.clsPrefix,
7890 isSubmit = _props.isSubmit,
7891 others = _objectWithoutProperties(_props, ['colors', 'shape', 'disabled', 'className', 'size', 'bordered', 'children', 'htmlType', 'clsPrefix', 'isSubmit']);
7892
7893 var clsObj = {};
7894 if (className) {
7895 clsObj[className] = true;
7896 }
7897 if (sizeMap[size]) {
7898 clsObj[clsPrefix + '-' + sizeMap[size]] = true;
7899 }
7900
7901 if (shapeMap[shape]) {
7902 clsObj[clsPrefix + '-' + shapeMap[shape]] = true;
7903 }
7904 if (colorsMap[colors]) {
7905 clsObj[clsPrefix + '-' + colorsMap[colors]] = true;
7906 }
7907 //clsObj[`${clsPrefix}-border`] = bordered;
7908 var classes = (0, _classnames2["default"])(clsPrefix, clsObj);
7909 return _react2["default"].createElement(
7910 'button',
7911 _extends({
7912 type: htmlType,
7913 className: classes,
7914 disabled: disabled
7915 }, others),
7916 this.props.children
7917 );
7918 };
7919
7920 return Button;
7921 }(_react.Component);
7922
7923 Button.propTypes = propTypes;
7924 Button.defaultProps = defaultProps;
7925
7926 exports["default"] = Button;
7927 module.exports = exports['default'];
7928
7929/***/ }),
7930/* 84 */
7931/***/ (function(module, exports, __webpack_require__) {
7932
7933 'use strict';
7934
7935 Object.defineProperty(exports, "__esModule", {
7936 value: true
7937 });
7938
7939 var _react = __webpack_require__(4);
7940
7941 var _react2 = _interopRequireDefault(_react);
7942
7943 var _beeLayout = __webpack_require__(1);
7944
7945 var _src = __webpack_require__(85);
7946
7947 var _src2 = _interopRequireDefault(_src);
7948
7949 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
7950
7951 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; }
7952
7953 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
7954
7955 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; }
7956
7957 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); } /**
7958 *
7959 * @title 基础级联菜单
7960 * @description
7961 *
7962 */
7963
7964 var options = [{
7965 value: '浙江',
7966 children: [{
7967 value: '杭州',
7968 children: [{
7969 value: '西湖',
7970 children: [{
7971 value: '白娘子'
7972 }, {
7973 value: '许仙'
7974 }]
7975 }]
7976 }]
7977 }, {
7978 value: '江苏',
7979 children: [{
7980 value: '南京',
7981 children: [{
7982 value: '中华门'
7983 }]
7984 }]
7985 }, {
7986 value: '山东'
7987 }];
7988
7989 var Demo1 = function (_Component) {
7990 _inherits(Demo1, _Component);
7991
7992 function Demo1() {
7993 var _temp, _this, _ret;
7994
7995 _classCallCheck(this, Demo1);
7996
7997 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
7998 args[_key] = arguments[_key];
7999 }
8000
8001 return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onClickHandler = function (data) {
8002 console.log("data: ", data);
8003 }, _temp), _possibleConstructorReturn(_this, _ret);
8004 }
8005
8006 Demo1.prototype.render = function render() {
8007 return _react2['default'].createElement(
8008 _beeLayout.Row,
8009 null,
8010 _react2['default'].createElement(
8011 _beeLayout.Col,
8012 { md: 4 },
8013 _react2['default'].createElement(
8014 'div',
8015 { className: 'height-150' },
8016 _react2['default'].createElement(_src2['default'], { options: options, onClick: this.onClickHandler })
8017 )
8018 )
8019 );
8020 };
8021
8022 return Demo1;
8023 }(_react.Component);
8024
8025 exports['default'] = Demo1;
8026 module.exports = exports['default'];
8027
8028/***/ }),
8029/* 85 */
8030/***/ (function(module, exports, __webpack_require__) {
8031
8032 'use strict';
8033
8034 Object.defineProperty(exports, "__esModule", {
8035 value: true
8036 });
8037
8038 var _Cascader = __webpack_require__(86);
8039
8040 var _Cascader2 = _interopRequireDefault(_Cascader);
8041
8042 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
8043
8044 exports['default'] = _Cascader2['default'];
8045 module.exports = exports['default'];
8046
8047/***/ }),
8048/* 86 */
8049/***/ (function(module, exports, __webpack_require__) {
8050
8051 'use strict';
8052
8053 Object.defineProperty(exports, "__esModule", {
8054 value: true
8055 });
8056
8057 var _react = __webpack_require__(4);
8058
8059 var _react2 = _interopRequireDefault(_react);
8060
8061 var _propTypes = __webpack_require__(5);
8062
8063 var _propTypes2 = _interopRequireDefault(_propTypes);
8064
8065 var _classnames = __webpack_require__(3);
8066
8067 var _classnames2 = _interopRequireDefault(_classnames);
8068
8069 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
8070
8071 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; }
8072
8073 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8074
8075 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; }
8076
8077 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); }
8078
8079 var propTypes = {
8080 placeholder: _propTypes2['default'].string,
8081 options: _propTypes2['default'].any,
8082 onClick: _propTypes2['default'].func
8083 };
8084 var defaultProps = {
8085 placeholder: '请输入信息',
8086 options: null
8087 };
8088 var tem = []; //用于临时存储点击的节点
8089 var textStr = []; //存储选择的节点
8090 var parentVal = void 0; //存储parent的value
8091 var listArr = [];
8092 var restoreClick = void 0; //记录点击的名字
8093
8094 var Cascader = function (_Component) {
8095 _inherits(Cascader, _Component);
8096
8097 function Cascader(props) {
8098 _classCallCheck(this, Cascader);
8099
8100 var _this = _possibleConstructorReturn(this, _Component.call(this, props));
8101
8102 var options = _this.props.options;
8103 for (var i = options.length - 1; i >= 0; i--) {
8104 options[i]['parent'] = true;
8105 }
8106 _this.state = {
8107 option: options,
8108 origin: null, //用于存储点击的第一级节点
8109 ulArr: null,
8110 textStr: []
8111 };
8112 _this.formatData = _this.formatData.bind(_this);
8113 _this.clickHandler = _this.clickHandler.bind(_this);
8114 _this.focusHandler = _this.focusHandler.bind(_this);
8115 _this.clear = _this.clear.bind(_this);
8116 _this.uniqueID = _this.uniqueID.bind(_this);
8117 return _this;
8118 }
8119
8120 Cascader.prototype.uniqueID = function uniqueID() {
8121 function s4() {
8122 return Math.floor((1 + Math.random()) * 0x10000).toString(16).substring(1);
8123 }
8124 return s4() + s4() + '-' + s4() + '-' + s4() + '-' + s4() + '-' + s4() + s4() + s4();
8125 };
8126
8127 Cascader.prototype.formatData = function formatData() {
8128 var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.state.option;
8129
8130 var option = data;
8131 var liArr = [],
8132 ulArr = [];
8133 for (var i = option.length - 1; i >= 0; i--) {
8134 if ('children' in option[i]) {
8135 liArr.push(_react2['default'].createElement(
8136 'li',
8137 { 'data-parent': option[i]['parent'], onClick: this.clickHandler, key: this.uniqueID(), 'data-id': i },
8138 option[i]['value'],
8139 _react2['default'].createElement(
8140 'i',
8141 { className: 'icon uf' },
8142 '\uE611'
8143 )
8144 ));
8145 } else {
8146 liArr.push(_react2['default'].createElement(
8147 'li',
8148 { 'data-parent': option[i]['parent'], onClick: this.clickHandler, key: this.uniqueID(), 'data-id': i },
8149 option[i]['value']
8150 ));
8151 }
8152 }
8153 var ulStr = _react2['default'].createElement(
8154 'ul',
8155 { key: this.uniqueID() },
8156 liArr
8157 );
8158 listArr.push(ulStr);
8159 this.setState({
8160 ulArr: listArr
8161 });
8162 };
8163
8164 Cascader.prototype.focusHandler = function focusHandler(e) {
8165 e.stopPropagation();
8166 e.preventDefault();
8167 textStr = [];
8168
8169 if (this.state.ulArr) {
8170 var firstUl = this.state.ulArr[0];
8171 listArr = [];
8172 listArr.push(firstUl);
8173 this.setState({
8174 ulArr: listArr
8175 });
8176 }
8177 tem = [];
8178 listArr = [];
8179 this.setState({
8180 textStr: textStr
8181 });
8182 if (!this.state.ulArr) {
8183 this.formatData();
8184 }
8185 };
8186
8187 Cascader.prototype.clickHandler = function clickHandler(e) {
8188 e.stopPropagation();
8189 e.preventDefault();
8190 var i = e.currentTarget.dataset.id;
8191 if (!parentVal) parentVal = this.state.option[i].value;
8192 var data = tem[i] || this.state.option[i].parent && this.state.option[i];
8193 if (e.currentTarget.dataset.parent) {
8194 parentVal = e.currentTarget.innerText;
8195 var urlArr = this.state.ulArr[0];
8196 data = this.state.option[i];
8197 textStr = [];
8198 tem = [];
8199 listArr = [];
8200 listArr.push(urlArr);
8201 this.setState({
8202 ulArr: listArr
8203 });
8204 }
8205 if (restoreClick != e.currentTarget.innerText) {
8206 restoreClick = e.currentTarget.innerText;
8207 textStr.push(data.value);
8208 this.setState({
8209 textStr: textStr
8210 });
8211 if (data.children) {
8212 tem = data.children;
8213 this.formatData(data.children);
8214 } else {
8215 this.clear();
8216 }
8217 }
8218 if (this.props.onClick) {
8219 this.props.onClick(textStr);
8220 }
8221 };
8222
8223 Cascader.prototype.clear = function clear() {
8224 tem = [];
8225 listArr = [];
8226 this.setState({
8227 ulArr: null
8228 });
8229 };
8230
8231 Cascader.prototype.render = function render() {
8232 var va = this.state.textStr.join('/');
8233 return _react2['default'].createElement(
8234 'div',
8235 { className: (0, _classnames2['default'])("cascader-container", this.props.className) },
8236 _react2['default'].createElement(
8237 'div',
8238 { className: 'cascader-header' },
8239 _react2['default'].createElement('input', { onFocus: this.focusHandler, type: 'text', placeholder: this.props.placeholder, value: va })
8240 ),
8241 _react2['default'].createElement(
8242 'div',
8243 { className: 'cascader-content' },
8244 this.state.ulArr
8245 )
8246 );
8247 };
8248
8249 return Cascader;
8250 }(_react.Component);
8251
8252 ;
8253 Cascader.propTypes = propTypes;
8254 Cascader.defaultProps = defaultProps;
8255 exports['default'] = Cascader;
8256 module.exports = exports['default'];
8257
8258/***/ })
8259/******/ ]);
8260//# sourceMappingURL=demo.js.map
\No newline at end of file