UNPKG

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