UNPKG

3.09 MBJavaScriptView Raw
1/*!
2 * @alifd/next@1.25.36 (https://fusion.design)
3 * Copyright 2018-present Alibaba Group,
4 * Licensed under MIT (https://github.com/alibaba-fusion/next/blob/master/LICENSE)
5 */
6(function webpackUniversalModuleDefinition(root, factory) {
7 if(typeof exports === 'object' && typeof module === 'object')
8 module.exports = factory(require("react"), require("react-dom"), require("moment"));
9 else if(typeof define === 'function' && define.amd)
10 define(["react", "react-dom", "moment"], factory);
11 else if(typeof exports === 'object')
12 exports["Next"] = factory(require("react"), require("react-dom"), require("moment"));
13 else
14 root["Next"] = factory(root["React"], root["ReactDOM"], root["moment"]);
15})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_12__, __WEBPACK_EXTERNAL_MODULE_19__) {
16return /******/ (function(modules) { // webpackBootstrap
17/******/ // The module cache
18/******/ var installedModules = {};
19/******/
20/******/ // The require function
21/******/ function __webpack_require__(moduleId) {
22/******/
23/******/ // Check if module is in cache
24/******/ if(installedModules[moduleId]) {
25/******/ return installedModules[moduleId].exports;
26/******/ }
27/******/ // Create a new module (and put it into the cache)
28/******/ var module = installedModules[moduleId] = {
29/******/ i: moduleId,
30/******/ l: false,
31/******/ exports: {}
32/******/ };
33/******/
34/******/ // Execute the module function
35/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
36/******/
37/******/ // Flag the module as loaded
38/******/ module.l = true;
39/******/
40/******/ // Return the exports of the module
41/******/ return module.exports;
42/******/ }
43/******/
44/******/
45/******/ // expose the modules object (__webpack_modules__)
46/******/ __webpack_require__.m = modules;
47/******/
48/******/ // expose the module cache
49/******/ __webpack_require__.c = installedModules;
50/******/
51/******/ // define getter function for harmony exports
52/******/ __webpack_require__.d = function(exports, name, getter) {
53/******/ if(!__webpack_require__.o(exports, name)) {
54/******/ Object.defineProperty(exports, name, {
55/******/ configurable: false,
56/******/ enumerable: true,
57/******/ get: getter
58/******/ });
59/******/ }
60/******/ };
61/******/
62/******/ // getDefaultExport function for compatibility with non-harmony modules
63/******/ __webpack_require__.n = function(module) {
64/******/ var getter = module && module.__esModule ?
65/******/ function getDefault() { return module['default']; } :
66/******/ function getModuleExports() { return module; };
67/******/ __webpack_require__.d(getter, 'a', getter);
68/******/ return getter;
69/******/ };
70/******/
71/******/ // Object.prototype.hasOwnProperty.call
72/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
73/******/
74/******/ // __webpack_public_path__
75/******/ __webpack_require__.p = "/dist/";
76/******/
77/******/ // Load entry module and return exports
78/******/ return __webpack_require__(__webpack_require__.s = 492);
79/******/ })
80/************************************************************************/
81/******/ ([
82/* 0 */
83/***/ (function(module, exports) {
84
85module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
86
87/***/ }),
88/* 1 */
89/***/ (function(module, exports, __webpack_require__) {
90
91"use strict";
92
93
94exports.__esModule = true;
95
96var _assign = __webpack_require__(205);
97
98var _assign2 = _interopRequireDefault(_assign);
99
100function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
101
102exports.default = _assign2.default || function (target) {
103 for (var i = 1; i < arguments.length; i++) {
104 var source = arguments[i];
105
106 for (var key in source) {
107 if (Object.prototype.hasOwnProperty.call(source, key)) {
108 target[key] = source[key];
109 }
110 }
111 }
112
113 return target;
114};
115
116/***/ }),
117/* 2 */
118/***/ (function(module, exports, __webpack_require__) {
119
120"use strict";
121
122
123exports.__esModule = true;
124
125exports.default = function (instance, Constructor) {
126 if (!(instance instanceof Constructor)) {
127 throw new TypeError("Cannot call a class as a function");
128 }
129};
130
131/***/ }),
132/* 3 */
133/***/ (function(module, exports, __webpack_require__) {
134
135"use strict";
136
137
138exports.__esModule = true;
139
140var _typeof2 = __webpack_require__(14);
141
142var _typeof3 = _interopRequireDefault(_typeof2);
143
144function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
145
146exports.default = function (self, call) {
147 if (!self) {
148 throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
149 }
150
151 return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
152};
153
154/***/ }),
155/* 4 */
156/***/ (function(module, exports, __webpack_require__) {
157
158"use strict";
159
160
161exports.__esModule = true;
162
163var _setPrototypeOf = __webpack_require__(235);
164
165var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
166
167var _create = __webpack_require__(239);
168
169var _create2 = _interopRequireDefault(_create);
170
171var _typeof2 = __webpack_require__(14);
172
173var _typeof3 = _interopRequireDefault(_typeof2);
174
175function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
176
177exports.default = function (subClass, superClass) {
178 if (typeof superClass !== "function" && superClass !== null) {
179 throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
180 }
181
182 subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
183 constructor: {
184 value: subClass,
185 enumerable: false,
186 writable: true,
187 configurable: true
188 }
189 });
190 if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
191};
192
193/***/ }),
194/* 5 */
195/***/ (function(module, exports, __webpack_require__) {
196
197/**
198 * Copyright (c) 2013-present, Facebook, Inc.
199 *
200 * This source code is licensed under the MIT license found in the
201 * LICENSE file in the root directory of this source tree.
202 */
203
204if (false) {
205 var ReactIs = require('react-is');
206
207 // By explicitly using `prop-types` you are opting into new development behavior.
208 // http://fb.me/prop-types-in-prod
209 var throwOnDirectAccess = true;
210 module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);
211} else {
212 // By explicitly using `prop-types` you are opting into new production behavior.
213 // http://fb.me/prop-types-in-prod
214 module.exports = __webpack_require__(242)();
215}
216
217
218/***/ }),
219/* 6 */
220/***/ (function(module, exports, __webpack_require__) {
221
222"use strict";
223
224
225exports.__esModule = true;
226exports.pickAttrs = exports.datejs = exports.htmlId = exports.KEYCODE = exports.guid = exports.focus = exports.support = exports.str = exports.obj = exports.log = exports.func = exports.events = exports.env = exports.dom = undefined;
227
228var _dom2 = __webpack_require__(123);
229
230var _dom = _interopRequireWildcard(_dom2);
231
232var _env2 = __webpack_require__(126);
233
234var _env = _interopRequireWildcard(_env2);
235
236var _events2 = __webpack_require__(244);
237
238var _events = _interopRequireWildcard(_events2);
239
240var _func2 = __webpack_require__(245);
241
242var _func = _interopRequireWildcard(_func2);
243
244var _log2 = __webpack_require__(125);
245
246var _log = _interopRequireWildcard(_log2);
247
248var _object2 = __webpack_require__(36);
249
250var _object = _interopRequireWildcard(_object2);
251
252var _string2 = __webpack_require__(124);
253
254var _string = _interopRequireWildcard(_string2);
255
256var _support2 = __webpack_require__(253);
257
258var _support = _interopRequireWildcard(_support2);
259
260var _focus2 = __webpack_require__(254);
261
262var _focus = _interopRequireWildcard(_focus2);
263
264var _htmlId2 = __webpack_require__(255);
265
266var _htmlId = _interopRequireWildcard(_htmlId2);
267
268var _guid2 = __webpack_require__(129);
269
270var _guid3 = _interopRequireDefault(_guid2);
271
272var _keycode = __webpack_require__(128);
273
274var _keycode2 = _interopRequireDefault(_keycode);
275
276var _date2 = __webpack_require__(83);
277
278var _date3 = _interopRequireDefault(_date2);
279
280var _pickAttrs2 = __webpack_require__(256);
281
282var _pickAttrs3 = _interopRequireDefault(_pickAttrs2);
283
284function _interopRequireDefault(obj) {
285 return obj && obj.__esModule ? obj : { default: obj };
286}
287
288function _interopRequireWildcard(obj) {
289 if (obj && obj.__esModule) {
290 return obj;
291 } else {
292 var newObj = {};if (obj != null) {
293 for (var key in obj) {
294 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
295 }
296 }newObj.default = obj;return newObj;
297 }
298}
299
300var dom = exports.dom = _dom;
301var env = exports.env = _env;
302var events = exports.events = _events;
303var func = exports.func = _func;
304var log = exports.log = _log;
305var obj = exports.obj = _object;
306var str = exports.str = _string;
307var support = exports.support = _support;
308var focus = exports.focus = _focus;
309var guid = exports.guid = _guid3.default;
310var KEYCODE = exports.KEYCODE = _keycode2.default;
311var htmlId = exports.htmlId = _htmlId;
312var datejs = exports.datejs = _date3.default;
313var pickAttrs = exports.pickAttrs = _pickAttrs3.default;
314
315/***/ }),
316/* 7 */
317/***/ (function(module, exports, __webpack_require__) {
318
319var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
320 Copyright (c) 2018 Jed Watson.
321 Licensed under the MIT License (MIT), see
322 http://jedwatson.github.io/classnames
323*/
324/* global define */
325
326(function () {
327 'use strict';
328
329 var hasOwn = {}.hasOwnProperty;
330
331 function classNames() {
332 var classes = [];
333
334 for (var i = 0; i < arguments.length; i++) {
335 var arg = arguments[i];
336 if (!arg) continue;
337
338 var argType = typeof arg;
339
340 if (argType === 'string' || argType === 'number') {
341 classes.push(arg);
342 } else if (Array.isArray(arg)) {
343 if (arg.length) {
344 var inner = classNames.apply(null, arg);
345 if (inner) {
346 classes.push(inner);
347 }
348 }
349 } else if (argType === 'object') {
350 if (arg.toString === Object.prototype.toString) {
351 for (var key in arg) {
352 if (hasOwn.call(arg, key) && arg[key]) {
353 classes.push(key);
354 }
355 }
356 } else {
357 classes.push(arg.toString());
358 }
359 }
360 }
361
362 return classes.join(' ');
363 }
364
365 if (typeof module !== 'undefined' && module.exports) {
366 classNames.default = classNames;
367 module.exports = classNames;
368 } else if (true) {
369 // register as 'classnames', consistent with npm package name
370 !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () {
371 return classNames;
372 }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
373 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
374 } else {
375 window.classNames = classNames;
376 }
377}());
378
379
380/***/ }),
381/* 8 */
382/***/ (function(module, exports, __webpack_require__) {
383
384"use strict";
385
386
387exports.__esModule = true;
388
389exports.default = function (obj, keys) {
390 var target = {};
391
392 for (var i in obj) {
393 if (keys.indexOf(i) >= 0) continue;
394 if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;
395 target[i] = obj[i];
396 }
397
398 return target;
399};
400
401/***/ }),
402/* 9 */
403/***/ (function(module, exports, __webpack_require__) {
404
405"use strict";
406
407
408exports.__esModule = true;
409
410var _extends2 = __webpack_require__(1);
411
412var _extends3 = _interopRequireDefault(_extends2);
413
414var _classCallCheck2 = __webpack_require__(2);
415
416var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
417
418var _possibleConstructorReturn2 = __webpack_require__(3);
419
420var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
421
422var _inherits2 = __webpack_require__(4);
423
424var _inherits3 = _interopRequireDefault(_inherits2);
425
426var _class, _temp;
427
428var _react = __webpack_require__(0);
429
430var _propTypes = __webpack_require__(5);
431
432var _propTypes2 = _interopRequireDefault(_propTypes);
433
434var _reactLifecyclesCompat = __webpack_require__(10);
435
436var _getContextProps = __webpack_require__(130);
437
438var _getContextProps2 = _interopRequireDefault(_getContextProps);
439
440var _config = __webpack_require__(257);
441
442var _consumer = __webpack_require__(261);
443
444var _consumer2 = _interopRequireDefault(_consumer);
445
446var _errorBoundary = __webpack_require__(131);
447
448var _errorBoundary2 = _interopRequireDefault(_errorBoundary);
449
450var _cache = __webpack_require__(262);
451
452var _cache2 = _interopRequireDefault(_cache);
453
454var _date = __webpack_require__(83);
455
456var _date2 = _interopRequireDefault(_date);
457
458function _interopRequireDefault(obj) {
459 return obj && obj.__esModule ? obj : { default: obj };
460}
461
462var childContextCache = new _cache2.default();
463
464var setMomentLocale = function setMomentLocale(locale) {
465 var moment = void 0;
466 try {
467 moment = __webpack_require__(19);
468 if (moment && moment.default && moment.default.isMoment) moment = moment.default;
469 } catch (e) {
470 // ignore
471 }
472
473 if (moment && locale) {
474 moment.locale(locale.momentLocale);
475 }
476};
477
478var setDateLocale = function setDateLocale(locale) {
479 if (locale) {
480 _date2.default.locale(locale.dateLocale || locale.momentLocale);
481 }
482};
483
484/**
485 * ConfigProvider
486 * @propsExtends false
487 */
488var ConfigProvider = (_temp = _class = function (_Component) {
489 (0, _inherits3.default)(ConfigProvider, _Component);
490
491 /**
492 * 传入组件的 props 和 displayName,得到和 childContext 计算过的包含有 preifx/locale/pure 的对象,一般用于通过静态方法生成脱离组件树的组件
493 * @param {Object} props 组件的 props
494 * @param {String} displayName 组件的 displayName
495 * @returns {Object} 新的 context props
496 */
497 function ConfigProvider() {
498 (0, _classCallCheck3.default)(this, ConfigProvider);
499
500 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
501 args[_key] = arguments[_key];
502 }
503
504 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args)));
505
506 childContextCache.add(_this, (0, _extends3.default)({}, childContextCache.get(_this, {}), _this.getChildContext()));
507
508 setMomentLocale(_this.props.locale);
509 setDateLocale(_this.props.locale);
510
511 _this.state = {
512 locale: _this.props.locale
513 };
514 return _this;
515 }
516
517 /**
518 * 传入组件,生成受 ConfigProvider 控制的 HOC 组件
519 * @param {Component} Component 组件类
520 * @param {Object} options 可选项
521 * @returns {Component} HOC
522 */
523
524 ConfigProvider.prototype.getChildContext = function getChildContext() {
525 var _props = this.props,
526 prefix = _props.prefix,
527 locale = _props.locale,
528 defaultPropsConfig = _props.defaultPropsConfig,
529 pure = _props.pure,
530 warning = _props.warning,
531 rtl = _props.rtl,
532 device = _props.device,
533 popupContainer = _props.popupContainer,
534 errorBoundary = _props.errorBoundary;
535 var _context = this.context,
536 nextPrefix = _context.nextPrefix,
537 nextDefaultPropsConfig = _context.nextDefaultPropsConfig,
538 nextLocale = _context.nextLocale,
539 nextPure = _context.nextPure,
540 nextRtl = _context.nextRtl,
541 nextWarning = _context.nextWarning,
542 nextDevice = _context.nextDevice,
543 nextPopupContainer = _context.nextPopupContainer,
544 nextErrorBoundary = _context.nextErrorBoundary;
545
546 return {
547 nextPrefix: prefix || nextPrefix,
548 nextDefaultPropsConfig: defaultPropsConfig || nextDefaultPropsConfig,
549 nextLocale: locale || nextLocale,
550 nextPure: typeof pure === 'boolean' ? pure : nextPure,
551 nextRtl: typeof rtl === 'boolean' ? rtl : nextRtl,
552 nextWarning: typeof warning === 'boolean' ? warning : nextWarning,
553 nextDevice: device || nextDevice,
554 nextPopupContainer: popupContainer || nextPopupContainer,
555 nextErrorBoundary: errorBoundary || nextErrorBoundary
556 };
557 };
558
559 ConfigProvider.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
560 if (nextProps.locale !== prevState.locale) {
561 setMomentLocale(nextProps.locale);
562 setDateLocale(nextProps.locale);
563
564 return {
565 locale: nextProps.locale
566 };
567 }
568
569 return null;
570 };
571
572 ConfigProvider.prototype.componentDidUpdate = function componentDidUpdate() {
573 childContextCache.add(this, (0, _extends3.default)({}, childContextCache.get(this, {}), this.getChildContext()));
574 };
575
576 ConfigProvider.prototype.componentWillUnmount = function componentWillUnmount() {
577 childContextCache.remove(this);
578 };
579
580 ConfigProvider.prototype.render = function render() {
581 return _react.Children.only(this.props.children);
582 };
583
584 return ConfigProvider;
585}(_react.Component), _class.propTypes = {
586 /**
587 * 样式类名的品牌前缀
588 */
589 prefix: _propTypes2.default.string,
590 /**
591 * 国际化文案对象,属性为组件的 displayName
592 */
593 locale: _propTypes2.default.object,
594 /**
595 * 组件 API 的默认配置
596 */
597 defaultPropsConfig: _propTypes2.default.object,
598 /**
599 * 是否开启错误捕捉 errorBoundary
600 * 如需自定义参数,请传入对象 对象接受参数列表如下:
601 *
602 * fallbackUI `Function(error?: {}, errorInfo?: {}) => Element` 捕获错误后的展示
603 * afterCatch `Function(error?: {}, errorInfo?: {})` 捕获错误后的行为, 比如埋点上传
604 */
605 errorBoundary: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
606 /**
607 * 是否开启 Pure Render 模式,会提高性能,但是也会带来副作用
608 */
609 pure: _propTypes2.default.bool,
610 /**
611 * 是否在开发模式下显示组件属性被废弃的 warning 提示
612 */
613 warning: _propTypes2.default.bool,
614 /**
615 * 是否开启 rtl 模式
616 */
617 rtl: _propTypes2.default.bool,
618 /**
619 * 设备类型,针对不同的设备类型组件做出对应的响应式变化
620 */
621 device: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
622 /**
623 * 组件树
624 */
625 children: _propTypes2.default.any,
626 /**
627 * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数
628 */
629 popupContainer: _propTypes2.default.any
630}, _class.defaultProps = {
631 warning: true,
632 errorBoundary: false
633}, _class.contextTypes = {
634 nextPrefix: _propTypes2.default.string,
635 nextLocale: _propTypes2.default.object,
636 nextDefaultPropsConfig: _propTypes2.default.object,
637 nextPure: _propTypes2.default.bool,
638 nextRtl: _propTypes2.default.bool,
639 nextWarning: _propTypes2.default.bool,
640 nextDevice: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
641 nextPopupContainer: _propTypes2.default.any,
642 nextErrorBoundary: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object])
643}, _class.childContextTypes = {
644 nextPrefix: _propTypes2.default.string,
645 nextLocale: _propTypes2.default.object,
646 nextDefaultPropsConfig: _propTypes2.default.object,
647 nextPure: _propTypes2.default.bool,
648 nextRtl: _propTypes2.default.bool,
649 nextWarning: _propTypes2.default.bool,
650 nextDevice: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
651 nextPopupContainer: _propTypes2.default.any,
652 nextErrorBoundary: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object])
653}, _class.config = function (Component, options) {
654 return (0, _config.config)(Component, options);
655}, _class.getContextProps = function (props, displayName) {
656 return (0, _getContextProps2.default)(props, childContextCache.root() || {}, displayName);
657}, _class.clearCache = function () {
658 childContextCache.clear();
659}, _class.initLocales = _config.initLocales, _class.setLanguage = _config.setLanguage, _class.setLocale = _config.setLocale, _class.setDirection = _config.setDirection, _class.getLanguage = _config.getLanguage, _class.getLocale = _config.getLocale, _class.getDirection = _config.getDirection, _class.Consumer = _consumer2.default, _class.ErrorBoundary = _errorBoundary2.default, _class.getContext = function () {
660 var _ref = childContextCache.root() || {},
661 nextPrefix = _ref.nextPrefix,
662 nextLocale = _ref.nextLocale,
663 nextDefaultPropsConfig = _ref.nextDefaultPropsConfig,
664 nextPure = _ref.nextPure,
665 nextRtl = _ref.nextRtl,
666 nextWarning = _ref.nextWarning,
667 nextDevice = _ref.nextDevice,
668 nextPopupContainer = _ref.nextPopupContainer,
669 nextErrorBoundary = _ref.nextErrorBoundary;
670
671 return {
672 prefix: nextPrefix,
673 locale: nextLocale,
674 defaultPropsConfig: nextDefaultPropsConfig,
675 pure: nextPure,
676 rtl: nextRtl,
677 warning: nextWarning,
678 device: nextDevice,
679 popupContainer: nextPopupContainer,
680 errorBoundary: nextErrorBoundary
681 };
682}, _temp);
683ConfigProvider.displayName = 'ConfigProvider';
684exports.default = (0, _reactLifecyclesCompat.polyfill)(ConfigProvider);
685module.exports = exports['default'];
686
687/***/ }),
688/* 10 */
689/***/ (function(module, __webpack_exports__, __webpack_require__) {
690
691"use strict";
692Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
693/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyfill", function() { return polyfill; });
694/**
695 * Copyright (c) 2013-present, Facebook, Inc.
696 *
697 * This source code is licensed under the MIT license found in the
698 * LICENSE file in the root directory of this source tree.
699 */
700
701function componentWillMount() {
702 // Call this.constructor.gDSFP to support sub-classes.
703 var state = this.constructor.getDerivedStateFromProps(this.props, this.state);
704 if (state !== null && state !== undefined) {
705 this.setState(state);
706 }
707}
708
709function componentWillReceiveProps(nextProps) {
710 // Call this.constructor.gDSFP to support sub-classes.
711 // Use the setState() updater to ensure state isn't stale in certain edge cases.
712 function updater(prevState) {
713 var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);
714 return state !== null && state !== undefined ? state : null;
715 }
716 // Binding "this" is important for shallow renderer support.
717 this.setState(updater.bind(this));
718}
719
720function componentWillUpdate(nextProps, nextState) {
721 try {
722 var prevProps = this.props;
723 var prevState = this.state;
724 this.props = nextProps;
725 this.state = nextState;
726 this.__reactInternalSnapshotFlag = true;
727 this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(
728 prevProps,
729 prevState
730 );
731 } finally {
732 this.props = prevProps;
733 this.state = prevState;
734 }
735}
736
737// React may warn about cWM/cWRP/cWU methods being deprecated.
738// Add a flag to suppress these warnings for this special case.
739componentWillMount.__suppressDeprecationWarning = true;
740componentWillReceiveProps.__suppressDeprecationWarning = true;
741componentWillUpdate.__suppressDeprecationWarning = true;
742
743function polyfill(Component) {
744 var prototype = Component.prototype;
745
746 if (!prototype || !prototype.isReactComponent) {
747 throw new Error('Can only polyfill class components');
748 }
749
750 if (
751 typeof Component.getDerivedStateFromProps !== 'function' &&
752 typeof prototype.getSnapshotBeforeUpdate !== 'function'
753 ) {
754 return Component;
755 }
756
757 // If new component APIs are defined, "unsafe" lifecycles won't be called.
758 // Error if any of these lifecycles are present,
759 // Because they would work differently between older and newer (16.3+) versions of React.
760 var foundWillMountName = null;
761 var foundWillReceivePropsName = null;
762 var foundWillUpdateName = null;
763 if (typeof prototype.componentWillMount === 'function') {
764 foundWillMountName = 'componentWillMount';
765 } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {
766 foundWillMountName = 'UNSAFE_componentWillMount';
767 }
768 if (typeof prototype.componentWillReceiveProps === 'function') {
769 foundWillReceivePropsName = 'componentWillReceiveProps';
770 } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {
771 foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';
772 }
773 if (typeof prototype.componentWillUpdate === 'function') {
774 foundWillUpdateName = 'componentWillUpdate';
775 } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {
776 foundWillUpdateName = 'UNSAFE_componentWillUpdate';
777 }
778 if (
779 foundWillMountName !== null ||
780 foundWillReceivePropsName !== null ||
781 foundWillUpdateName !== null
782 ) {
783 var componentName = Component.displayName || Component.name;
784 var newApiName =
785 typeof Component.getDerivedStateFromProps === 'function'
786 ? 'getDerivedStateFromProps()'
787 : 'getSnapshotBeforeUpdate()';
788
789 throw Error(
790 'Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' +
791 componentName +
792 ' uses ' +
793 newApiName +
794 ' but also contains the following legacy lifecycles:' +
795 (foundWillMountName !== null ? '\n ' + foundWillMountName : '') +
796 (foundWillReceivePropsName !== null
797 ? '\n ' + foundWillReceivePropsName
798 : '') +
799 (foundWillUpdateName !== null ? '\n ' + foundWillUpdateName : '') +
800 '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' +
801 'https://fb.me/react-async-component-lifecycle-hooks'
802 );
803 }
804
805 // React <= 16.2 does not support static getDerivedStateFromProps.
806 // As a workaround, use cWM and cWRP to invoke the new static lifecycle.
807 // Newer versions of React will ignore these lifecycles if gDSFP exists.
808 if (typeof Component.getDerivedStateFromProps === 'function') {
809 prototype.componentWillMount = componentWillMount;
810 prototype.componentWillReceiveProps = componentWillReceiveProps;
811 }
812
813 // React <= 16.2 does not support getSnapshotBeforeUpdate.
814 // As a workaround, use cWU to invoke the new lifecycle.
815 // Newer versions of React will ignore that lifecycle if gSBU exists.
816 if (typeof prototype.getSnapshotBeforeUpdate === 'function') {
817 if (typeof prototype.componentDidUpdate !== 'function') {
818 throw new Error(
819 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'
820 );
821 }
822
823 prototype.componentWillUpdate = componentWillUpdate;
824
825 var componentDidUpdate = prototype.componentDidUpdate;
826
827 prototype.componentDidUpdate = function componentDidUpdatePolyfill(
828 prevProps,
829 prevState,
830 maybeSnapshot
831 ) {
832 // 16.3+ will not execute our will-update method;
833 // It will pass a snapshot value to did-update though.
834 // Older versions will require our polyfilled will-update value.
835 // We need to handle both cases, but can't just check for the presence of "maybeSnapshot",
836 // Because for <= 15.x versions this might be a "prevContext" object.
837 // We also can't just check "__reactInternalSnapshot",
838 // Because get-snapshot might return a falsy value.
839 // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.
840 var snapshot = this.__reactInternalSnapshotFlag
841 ? this.__reactInternalSnapshot
842 : maybeSnapshot;
843
844 componentDidUpdate.call(this, prevProps, prevState, snapshot);
845 };
846 }
847
848 return Component;
849}
850
851
852
853
854/***/ }),
855/* 11 */
856/***/ (function(module, exports, __webpack_require__) {
857
858"use strict";
859
860
861exports.__esModule = true;
862
863var _extends2 = __webpack_require__(1);
864
865var _extends3 = _interopRequireDefault(_extends2);
866
867var _classCallCheck2 = __webpack_require__(2);
868
869var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
870
871var _possibleConstructorReturn2 = __webpack_require__(3);
872
873var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
874
875var _inherits2 = __webpack_require__(4);
876
877var _inherits3 = _interopRequireDefault(_inherits2);
878
879var _class, _temp;
880
881var _react = __webpack_require__(0);
882
883var _react2 = _interopRequireDefault(_react);
884
885var _propTypes = __webpack_require__(5);
886
887var _propTypes2 = _interopRequireDefault(_propTypes);
888
889var _classnames = __webpack_require__(7);
890
891var _classnames2 = _interopRequireDefault(_classnames);
892
893var _configProvider = __webpack_require__(9);
894
895var _configProvider2 = _interopRequireDefault(_configProvider);
896
897var _iconFont = __webpack_require__(283);
898
899var _iconFont2 = _interopRequireDefault(_iconFont);
900
901var _util = __webpack_require__(6);
902
903function _interopRequireDefault(obj) {
904 return obj && obj.__esModule ? obj : { default: obj };
905}
906
907/**
908 * Icon
909 */
910var Icon = (_temp = _class = function (_Component) {
911 (0, _inherits3.default)(Icon, _Component);
912
913 function Icon() {
914 (0, _classCallCheck3.default)(this, Icon);
915 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
916 }
917
918 Icon.prototype.render = function render() {
919 var _cx;
920
921 /* eslint-disable no-unused-vars*/
922 var _props = this.props,
923 prefix = _props.prefix,
924 type = _props.type,
925 size = _props.size,
926 className = _props.className,
927 rtl = _props.rtl,
928 style = _props.style,
929 children = _props.children;
930
931 var others = _util.obj.pickOthers((0, _extends3.default)({}, Icon.propTypes), this.props);
932
933 var classes = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'icon'] = true, _cx[prefix + 'icon-' + type] = !!type, _cx['' + prefix + size] = !!size && typeof size === 'string', _cx[className] = !!className, _cx));
934
935 if (rtl && ['arrow-left', 'arrow-right', 'arrow-double-left', 'arrow-double-right', 'switch', 'sorting', 'descending', 'ascending'].indexOf(type) !== -1) {
936 others.dir = 'rtl';
937 }
938
939 var sizeStyle = typeof size === 'number' ? {
940 width: size,
941 height: size,
942 lineHeight: size + 'px',
943 fontSize: size
944 } : {};
945
946 return _react2.default.createElement('i', (0, _extends3.default)({}, others, {
947 style: (0, _extends3.default)({}, sizeStyle, style),
948 className: classes
949 }), children);
950 };
951
952 return Icon;
953}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
954 /**
955 * 指定显示哪种图标
956 */
957 type: _propTypes2.default.string,
958 children: _propTypes2.default.node,
959 /**
960 * 指定图标大小
961 * <br/>**可选值**<br/> xxs, xs, small, medium, large, xl, xxl, xxxl, inherit
962 */
963 size: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xxs', 'xs', 'small', 'medium', 'large', 'xl', 'xxl', 'xxxl', 'inherit']), _propTypes2.default.number]),
964 className: _propTypes2.default.string,
965 style: _propTypes2.default.object
966}), _class.defaultProps = {
967 prefix: 'next-',
968 size: 'medium'
969}, _class._typeMark = 'icon', _temp);
970Icon.displayName = 'Icon';
971
972Icon.createFromIconfontCN = _iconFont2.default;
973exports.default = _configProvider2.default.config(Icon);
974module.exports = exports['default'];
975
976/***/ }),
977/* 12 */
978/***/ (function(module, exports) {
979
980module.exports = __WEBPACK_EXTERNAL_MODULE_12__;
981
982/***/ }),
983/* 13 */
984/***/ (function(module, exports, __webpack_require__) {
985
986"use strict";
987
988
989exports.__esModule = true;
990exports.default = {
991 momentLocale: 'zh-cn',
992 Timeline: {
993 expand: '展开',
994 fold: '收起'
995 },
996 Balloon: {
997 close: '关闭'
998 },
999 Card: {
1000 expand: '展开',
1001 fold: '收起'
1002 },
1003 Calendar: {
1004 today: '今天',
1005 now: '此刻',
1006 ok: '确定',
1007 clear: '清除',
1008 month: '月',
1009 year: '年',
1010 prevYear: '上一年',
1011 nextYear: '下一年',
1012 prevMonth: '上个月',
1013 nextMonth: '下个月',
1014 prevDecade: '上十年',
1015 nextDecade: '后十年',
1016 yearSelectAriaLabel: '选择年份',
1017 monthSelectAriaLabel: '选择月份'
1018 },
1019 DatePicker: {
1020 placeholder: '请选择日期',
1021 datetimePlaceholder: '请选择日期和时间',
1022 monthPlaceholder: '请选择月',
1023 yearPlaceholder: '请选择年',
1024 weekPlaceholder: '请选择周',
1025 now: '此刻',
1026 selectTime: '选择时间',
1027 selectDate: '选择日期',
1028 ok: '确定',
1029 clear: '清除',
1030 startPlaceholder: '起始日期',
1031 endPlaceholder: '结束日期',
1032 hour: '时',
1033 minute: '分',
1034 second: '秒'
1035 },
1036 Dialog: {
1037 close: '关闭',
1038 ok: '确定',
1039 cancel: '取消'
1040 },
1041 Drawer: {
1042 close: '关闭'
1043 },
1044 Message: {
1045 closeAriaLabel: '关闭'
1046 },
1047 Pagination: {
1048 prev: '上一页',
1049 next: '下一页',
1050 goTo: '到第',
1051 page: '页',
1052 go: '确定',
1053 total: '第{current}页,共{total}页',
1054 labelPrev: '上一页,当前第{current}页',
1055 labelNext: '下一页,当前第{current}页',
1056 inputAriaLabel: '请输入跳转到第几页',
1057 selectAriaLabel: '请选择每页显示几条',
1058 pageSize: '每页显示:'
1059 },
1060 Input: {
1061 clear: '清除'
1062 },
1063 List: {
1064 empty: '没有数据'
1065 },
1066 Select: {
1067 selectPlaceholder: '请选择',
1068 autoCompletePlaceholder: '请输入',
1069 notFoundContent: '无选项',
1070 maxTagPlaceholder: '已选择 {selected}/{total} 项',
1071 selectAll: '全选'
1072 },
1073 TreeSelect: {
1074 maxTagPlaceholder: '已选择 {selected}/{total} 项',
1075 shortMaxTagPlaceholder: '已选择 {selected} 项'
1076 },
1077 Table: {
1078 empty: '没有数据',
1079 ok: '确认',
1080 reset: '重置',
1081 asc: '升序',
1082 desc: '降序',
1083 expanded: '已展开',
1084 folded: '已折叠',
1085 filter: '筛选',
1086 selectAll: '全选'
1087 },
1088 TimePicker: {
1089 placeholder: '请选择时间',
1090 clear: '清除',
1091 hour: '时',
1092 minute: '分',
1093 second: '秒'
1094 },
1095 Transfer: {
1096 items: '项',
1097 item: '项',
1098 moveAll: '移动全部',
1099 searchPlaceholder: '请输入',
1100 moveToLeft: '撤销选中元素',
1101 moveToRight: '提交选中元素'
1102 },
1103 Upload: {
1104 card: {
1105 cancel: '取消',
1106 addPhoto: '上传图片',
1107 download: '下载',
1108 delete: '删除'
1109 },
1110 drag: {
1111 text: '点击或者拖动文件到虚线框内上传',
1112 hint: '支持 docx, xls, PDF, rar, zip, PNG, JPG 等类型的文件'
1113 },
1114 upload: {
1115 delete: '删除'
1116 }
1117 },
1118 Search: {
1119 buttonText: '搜索'
1120 },
1121 Tag: {
1122 delete: '删除'
1123 },
1124 Rating: {
1125 description: '评分选项'
1126 },
1127 Switch: {
1128 on: '已打开',
1129 off: '已关闭'
1130 },
1131 Tab: {
1132 closeAriaLabel: '关闭'
1133 },
1134 Form: {
1135 Validate: {
1136 default: '%s 校验失败',
1137 required: '%s 是必填字段',
1138 format: {
1139 number: '%s 不是合法的数字',
1140 email: '%s 不是合法的 email 地址',
1141 url: '%s 不是合法的 URL 地址',
1142 tel: '%s 不是合法的电话号码'
1143 },
1144 number: {
1145 length: '%s 长度必须是 %s',
1146 min: '%s 不得小于 %s',
1147 max: '%s 不得大于 %s',
1148 minLength: '%s 字段字符长度不得少于 %s',
1149 maxLength: '%s 字段字符长度不得超过 %s'
1150 },
1151 string: {
1152 length: '%s 长度必须是 %s',
1153 min: '%s 不得小于 %s',
1154 max: '%s 不得大于 %s',
1155 minLength: '%s 长度不得少于 %s',
1156 maxLength: '%s 长度不得超过 %s'
1157 },
1158 array: {
1159 length: '%s 个数必须是 %s',
1160 minLength: '%s 个数不得少于 %s',
1161 maxLength: '%s 个数不得超过 %s'
1162 },
1163 pattern: '%s 数值 %s 不匹配正则 %s'
1164 }
1165 }
1166};
1167module.exports = exports['default'];
1168
1169/***/ }),
1170/* 14 */
1171/***/ (function(module, exports, __webpack_require__) {
1172
1173"use strict";
1174
1175
1176exports.__esModule = true;
1177
1178var _iterator = __webpack_require__(213);
1179
1180var _iterator2 = _interopRequireDefault(_iterator);
1181
1182var _symbol = __webpack_require__(225);
1183
1184var _symbol2 = _interopRequireDefault(_symbol);
1185
1186var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; };
1187
1188function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1189
1190exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
1191 return typeof obj === "undefined" ? "undefined" : _typeof(obj);
1192} : function (obj) {
1193 return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
1194};
1195
1196/***/ }),
1197/* 15 */
1198/***/ (function(module, exports, __webpack_require__) {
1199
1200"use strict";
1201
1202
1203exports.__esModule = true;
1204
1205var _extends2 = __webpack_require__(1);
1206
1207var _extends3 = _interopRequireDefault(_extends2);
1208
1209var _objectWithoutProperties2 = __webpack_require__(8);
1210
1211var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1212
1213var _classCallCheck2 = __webpack_require__(2);
1214
1215var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
1216
1217var _possibleConstructorReturn2 = __webpack_require__(3);
1218
1219var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
1220
1221var _inherits2 = __webpack_require__(4);
1222
1223var _inherits3 = _interopRequireDefault(_inherits2);
1224
1225var _react = __webpack_require__(0);
1226
1227var _react2 = _interopRequireDefault(_react);
1228
1229var _configProvider = __webpack_require__(9);
1230
1231var _configProvider2 = _interopRequireDefault(_configProvider);
1232
1233var _overlay = __webpack_require__(136);
1234
1235var _overlay2 = _interopRequireDefault(_overlay);
1236
1237var _overlayV = __webpack_require__(278);
1238
1239var _overlayV2 = _interopRequireDefault(_overlayV);
1240
1241var _gateway = __webpack_require__(137);
1242
1243var _gateway2 = _interopRequireDefault(_gateway);
1244
1245var _position = __webpack_require__(138);
1246
1247var _position2 = _interopRequireDefault(_position);
1248
1249var _popup = __webpack_require__(281);
1250
1251var _popup2 = _interopRequireDefault(_popup);
1252
1253var _popupV = __webpack_require__(282);
1254
1255var _popupV2 = _interopRequireDefault(_popupV);
1256
1257var _util = __webpack_require__(6);
1258
1259function _interopRequireDefault(obj) {
1260 return obj && obj.__esModule ? obj : { default: obj };
1261}
1262
1263var Overlay = function (_React$Component) {
1264 (0, _inherits3.default)(Overlay, _React$Component);
1265
1266 function Overlay(props) {
1267 (0, _classCallCheck3.default)(this, Overlay);
1268
1269 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
1270
1271 _this.overlayRef = null;
1272 _this.saveRef = _this.saveRef.bind(_this);
1273 return _this;
1274 }
1275
1276 Overlay.prototype.saveRef = function saveRef(ref) {
1277 this.overlayRef = ref;
1278 };
1279 /**
1280 * 兼容 1.x API, will be removed in 2.1.0
1281 */
1282
1283 Overlay.prototype.getContent = function getContent() {
1284 if (this.overlayRef) {
1285 return this.overlayRef.getContent();
1286 }
1287 return null;
1288 };
1289 /**
1290 * 兼容 1.x API, will be removed in 2.1.0
1291 */
1292
1293 Overlay.prototype.getContentNode = function getContentNode() {
1294 if (this.overlayRef) {
1295 return this.overlayRef.getContentNode();
1296 }
1297 return null;
1298 };
1299
1300 Overlay.prototype.render = function render() {
1301 var _props = this.props,
1302 v2 = _props.v2,
1303 others = (0, _objectWithoutProperties3.default)(_props, ['v2']);
1304
1305 if (v2) {
1306 if ('needAdjust' in others) {
1307 _util.log.deprecated('needAdjust', 'needAdjust', 'Overlay v2');
1308 others.autoAdjust = others.needAdjust;
1309 delete others.needAdjust;
1310 }
1311 return _react2.default.createElement(_overlayV2.default, others);
1312 } else {
1313 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, others, { ref: this.saveRef }));
1314 }
1315 };
1316
1317 return Overlay;
1318}(_react2.default.Component);
1319// eslint-disable-next-line
1320
1321
1322Overlay.displayName = 'Overlay';
1323
1324var Popup = function (_React$Component2) {
1325 (0, _inherits3.default)(Popup, _React$Component2);
1326
1327 function Popup(props) {
1328 (0, _classCallCheck3.default)(this, Popup);
1329
1330 var _this2 = (0, _possibleConstructorReturn3.default)(this, _React$Component2.call(this, props));
1331
1332 _this2.overlay = null;
1333 _this2.saveRef = _this2.saveRef.bind(_this2);
1334 return _this2;
1335 }
1336
1337 Popup.prototype.saveRef = function saveRef(ref) {
1338 if (ref) {
1339 this.overlay = ref.overlay;
1340 }
1341 };
1342
1343 Popup.prototype.render = function render() {
1344 var _props2 = this.props,
1345 v2 = _props2.v2,
1346 others = (0, _objectWithoutProperties3.default)(_props2, ['v2']);
1347
1348 if (v2) {
1349 if ('needAdjust' in others) {
1350 _util.log.deprecated('needAdjust', 'needAdjust', 'Popup v2');
1351 others.autoAdjust = others.needAdjust;
1352 delete others.needAdjust;
1353 }
1354
1355 return _react2.default.createElement(_popupV2.default, others);
1356 } else {
1357 return _react2.default.createElement(_popup2.default, (0, _extends3.default)({}, others, { ref: this.saveRef }));
1358 }
1359 };
1360
1361 return Popup;
1362}(_react2.default.Component);
1363
1364Popup.displayName = 'Popup';
1365
1366Overlay.Gateway = _gateway2.default;
1367Overlay.Position = _position2.default;
1368Overlay.Popup = _configProvider2.default.config(Popup, {
1369 exportNames: ['overlay']
1370});
1371
1372exports.default = _configProvider2.default.config(Overlay, {
1373 exportNames: ['getContent', 'getContentNode']
1374});
1375module.exports = exports['default'];
1376
1377/***/ }),
1378/* 16 */
1379/***/ (function(module, exports, __webpack_require__) {
1380
1381"use strict";
1382
1383
1384exports.__esModule = true;
1385
1386var _extends2 = __webpack_require__(1);
1387
1388var _extends3 = _interopRequireDefault(_extends2);
1389
1390var _objectWithoutProperties2 = __webpack_require__(8);
1391
1392var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1393
1394var _configProvider = __webpack_require__(9);
1395
1396var _configProvider2 = _interopRequireDefault(_configProvider);
1397
1398var _menu = __webpack_require__(141);
1399
1400var _menu2 = _interopRequireDefault(_menu);
1401
1402var _subMenu = __webpack_require__(142);
1403
1404var _subMenu2 = _interopRequireDefault(_subMenu);
1405
1406var _selectableItem = __webpack_require__(88);
1407
1408var _selectableItem2 = _interopRequireDefault(_selectableItem);
1409
1410var _checkboxItem = __webpack_require__(287);
1411
1412var _checkboxItem2 = _interopRequireDefault(_checkboxItem);
1413
1414var _radioItem = __webpack_require__(295);
1415
1416var _radioItem2 = _interopRequireDefault(_radioItem);
1417
1418var _popupItem = __webpack_require__(143);
1419
1420var _popupItem2 = _interopRequireDefault(_popupItem);
1421
1422var _group = __webpack_require__(296);
1423
1424var _group2 = _interopRequireDefault(_group);
1425
1426var _divider = __webpack_require__(297);
1427
1428var _divider2 = _interopRequireDefault(_divider);
1429
1430var _create = __webpack_require__(298);
1431
1432var _create2 = _interopRequireDefault(_create);
1433
1434function _interopRequireDefault(obj) {
1435 return obj && obj.__esModule ? obj : { default: obj };
1436}
1437
1438_menu2.default.SubMenu = _subMenu2.default;
1439_menu2.default.Item = _selectableItem2.default;
1440_menu2.default.CheckboxItem = _checkboxItem2.default;
1441_menu2.default.RadioItem = _radioItem2.default;
1442_menu2.default.PopupItem = _popupItem2.default;
1443_menu2.default.Group = _group2.default;
1444_menu2.default.Divider = _divider2.default;
1445_menu2.default.create = _create2.default;
1446
1447/* istanbul ignore next */
1448var transform = function transform(props, deprecated) {
1449 if ('indentSize' in props) {
1450 deprecated('indentSize', 'inlineIndent', 'Menu');
1451
1452 var _props = props,
1453 indentSize = _props.indentSize,
1454 others = (0, _objectWithoutProperties3.default)(_props, ['indentSize']);
1455
1456 props = (0, _extends3.default)({ inlineIndent: indentSize }, others);
1457 }
1458
1459 if ('onDeselect' in props) {
1460 deprecated('onDeselect', 'onSelect', 'Menu');
1461 if (props.onDeselect) {
1462 var _props2 = props,
1463 onDeselect = _props2.onDeselect,
1464 onSelect = _props2.onSelect,
1465 _others = (0, _objectWithoutProperties3.default)(_props2, ['onDeselect', 'onSelect']);
1466
1467 var newOnSelect = function newOnSelect(selectedKeys, item, extra) {
1468 if (!extra.select) {
1469 onDeselect(extra.key);
1470 }
1471 if (onSelect) {
1472 onSelect(selectedKeys, item, extra);
1473 }
1474 };
1475
1476 props = (0, _extends3.default)({ onSelect: newOnSelect }, _others);
1477 }
1478 }
1479
1480 return props;
1481};
1482
1483exports.default = _configProvider2.default.config(_menu2.default, {
1484 transform: transform
1485});
1486module.exports = exports['default'];
1487
1488/***/ }),
1489/* 17 */
1490/***/ (function(module, exports, __webpack_require__) {
1491
1492"use strict";
1493
1494
1495exports.__esModule = true;
1496
1497var _extends2 = __webpack_require__(1);
1498
1499var _extends3 = _interopRequireDefault(_extends2);
1500
1501var _objectWithoutProperties2 = __webpack_require__(8);
1502
1503var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1504
1505var _configProvider = __webpack_require__(9);
1506
1507var _configProvider2 = _interopRequireDefault(_configProvider);
1508
1509var _button = __webpack_require__(300);
1510
1511var _button2 = _interopRequireDefault(_button);
1512
1513var _group = __webpack_require__(301);
1514
1515var _group2 = _interopRequireDefault(_group);
1516
1517function _interopRequireDefault(obj) {
1518 return obj && obj.__esModule ? obj : { default: obj };
1519}
1520
1521_button2.default.Group = _group2.default;
1522
1523exports.default = _configProvider2.default.config(_button2.default, {
1524 transform: /* istanbul ignore next */function transform(props, deprecated) {
1525 if ('shape' in props) {
1526 deprecated('shape', 'text | warning | ghost', 'Button');
1527
1528 var _props = props,
1529 shape = _props.shape,
1530 type = _props.type,
1531 others = (0, _objectWithoutProperties3.default)(_props, ['shape', 'type']);
1532
1533 var newType = type;
1534 if (type === 'light' || type === 'dark' || type === 'secondary' && shape === 'warning') {
1535 newType = 'normal';
1536 }
1537
1538 var ghost = void 0;
1539 if (shape === 'ghost') {
1540 ghost = {
1541 primary: 'dark',
1542 secondary: 'dark',
1543 normal: 'light',
1544 dark: 'dark',
1545 light: 'light'
1546 }[type || _button2.default.defaultProps.type];
1547 }
1548
1549 var text = shape === 'text';
1550 var warning = shape === 'warning';
1551
1552 props = (0, _extends3.default)({ type: newType, ghost: ghost, text: text, warning: warning }, others);
1553 }
1554
1555 return props;
1556 }
1557});
1558module.exports = exports['default'];
1559
1560/***/ }),
1561/* 18 */
1562/***/ (function(module, exports, __webpack_require__) {
1563
1564"use strict";
1565
1566
1567exports.__esModule = true;
1568
1569var _extends2 = __webpack_require__(1);
1570
1571var _extends3 = _interopRequireDefault(_extends2);
1572
1573var _objectWithoutProperties2 = __webpack_require__(8);
1574
1575var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
1576
1577var _configProvider = __webpack_require__(9);
1578
1579var _configProvider2 = _interopRequireDefault(_configProvider);
1580
1581var _input = __webpack_require__(150);
1582
1583var _input2 = _interopRequireDefault(_input);
1584
1585var _password = __webpack_require__(308);
1586
1587var _password2 = _interopRequireDefault(_password);
1588
1589var _textarea = __webpack_require__(309);
1590
1591var _textarea2 = _interopRequireDefault(_textarea);
1592
1593var _group = __webpack_require__(152);
1594
1595var _group2 = _interopRequireDefault(_group);
1596
1597function _interopRequireDefault(obj) {
1598 return obj && obj.__esModule ? obj : { default: obj };
1599}
1600
1601_input2.default.Password = _configProvider2.default.config(_password2.default, {
1602 exportNames: ['getInputNode', 'focus'],
1603 transform: /* istanbul ignore next */function transform(props, deprecated) {
1604 if ('hasLimitHint' in props) {
1605 deprecated('hasLimitHint', 'showLimitHint', 'Input');
1606 var _props = props,
1607 hasLimitHint = _props.hasLimitHint,
1608 others = (0, _objectWithoutProperties3.default)(_props, ['hasLimitHint']);
1609
1610 props = (0, _extends3.default)({ showLimitHint: hasLimitHint }, others);
1611 }
1612
1613 return props;
1614 }
1615});
1616
1617_input2.default.TextArea = _configProvider2.default.config(_textarea2.default, {
1618 exportNames: ['getInputNode', 'focus'],
1619 transform: /* istanbul ignore next */function transform(props, deprecated) {
1620 if ('hasLimitHint' in props) {
1621 deprecated('hasLimitHint', 'showLimitHint', 'Input');
1622 var _props2 = props,
1623 hasLimitHint = _props2.hasLimitHint,
1624 others = (0, _objectWithoutProperties3.default)(_props2, ['hasLimitHint']);
1625
1626 props = (0, _extends3.default)({ showLimitHint: hasLimitHint }, others);
1627 }
1628
1629 return props;
1630 }
1631});
1632_input2.default.Group = _group2.default;
1633
1634// 用来自动生成文档的工具底层依赖的 react-docgen,无法解析生成 HOC 的方法中存在第二个参数的情况
1635// 所以不能在 input.jsx/textarea.jsx 中生成 HOC
1636exports.default = _configProvider2.default.config(_input2.default, {
1637 exportNames: ['getInputNode', 'focus'],
1638 transform: /* istanbul ignore next */function transform(props, deprecated) {
1639 if ('hasLimitHint' in props) {
1640 deprecated('hasLimitHint', 'showLimitHint', 'Input');
1641 var _props3 = props,
1642 hasLimitHint = _props3.hasLimitHint,
1643 others = (0, _objectWithoutProperties3.default)(_props3, ['hasLimitHint']);
1644
1645 props = (0, _extends3.default)({ showLimitHint: hasLimitHint }, others);
1646 }
1647
1648 return props;
1649 }
1650});
1651module.exports = exports['default'];
1652
1653/***/ }),
1654/* 19 */
1655/***/ (function(module, exports) {
1656
1657module.exports = __WEBPACK_EXTERNAL_MODULE_19__;
1658
1659/***/ }),
1660/* 20 */
1661/***/ (function(module, exports, __webpack_require__) {
1662
1663"use strict";
1664
1665
1666exports.__esModule = true;
1667
1668var _animate = __webpack_require__(132);
1669
1670var _animate2 = _interopRequireDefault(_animate);
1671
1672var _expand = __webpack_require__(271);
1673
1674var _expand2 = _interopRequireDefault(_expand);
1675
1676var _overlayAnimate = __webpack_require__(272);
1677
1678var _overlayAnimate2 = _interopRequireDefault(_overlayAnimate);
1679
1680function _interopRequireDefault(obj) {
1681 return obj && obj.__esModule ? obj : { default: obj };
1682}
1683
1684_animate2.default.Expand = _expand2.default;
1685_animate2.default.OverlayAnimate = _overlayAnimate2.default;
1686
1687exports.default = _animate2.default;
1688module.exports = exports['default'];
1689
1690/***/ }),
1691/* 21 */
1692/***/ (function(module, exports, __webpack_require__) {
1693
1694"use strict";
1695
1696
1697exports.__esModule = true;
1698exports.setStickyStyle = exports.fetchDataByPath = exports.statics = undefined;
1699
1700var _extends2 = __webpack_require__(1);
1701
1702var _extends3 = _interopRequireDefault(_extends2);
1703
1704var _typeof2 = __webpack_require__(14);
1705
1706var _typeof3 = _interopRequireDefault(_typeof2);
1707
1708var _classnames3 = __webpack_require__(7);
1709
1710var _classnames4 = _interopRequireDefault(_classnames3);
1711
1712function _interopRequireDefault(obj) {
1713 return obj && obj.__esModule ? obj : { default: obj };
1714}
1715
1716var blackList = ['defaultProps', 'propTypes', 'contextTypes', 'childContextTypes', 'displayName', 'getDerivedStateFromProps'];
1717
1718var statics = exports.statics = function statics(Target, Component) {
1719 Object.keys(Component).forEach(function (property) {
1720 if (blackList.indexOf(property) === -1) {
1721 Target[property] = Component[property];
1722 }
1723 });
1724};
1725
1726var fetchDataByPath = exports.fetchDataByPath = function fetchDataByPath(object, path) {
1727 if (!object || !path) {
1728 return false;
1729 }
1730 path = path.toString();
1731 var field = path.split('.');
1732 var val = void 0,
1733 key = void 0;
1734 if (field.length) {
1735 key = field[0];
1736 // lists[1].name
1737 if (key.indexOf('[') >= 0) {
1738 key = key.match(/(.*)\[(.*)\]/);
1739 if (key && (0, _typeof3.default)(key[1]) === 'object' && (0, _typeof3.default)(object[key[1]]) === 'object') {
1740 val = object[key[1]][key[2]];
1741 }
1742 } else {
1743 val = object[field[0]];
1744 }
1745 if (val) {
1746 for (var colIndex = 1; colIndex < field.length; colIndex++) {
1747 val = val[field[colIndex]];
1748 if (typeof val === 'undefined') {
1749 break;
1750 }
1751 }
1752 }
1753 }
1754 return val;
1755};
1756
1757/**
1758 * @param {Array} lockChildren
1759 * @param {String} dir 'left', 'right'
1760 */
1761var setStickyStyle = exports.setStickyStyle = function setStickyStyle(lockChildren, flatenChildren, dir) {
1762 var offsetArr = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
1763 var prefix = arguments[4];
1764
1765 var len = flatenChildren.length;
1766
1767 flatenChildren.forEach(function (col, index) {
1768 var _classnames;
1769
1770 var isLeftLast = dir === 'left' && index === len - 1;
1771 var isRightFirst = dir === 'right' && index === 0;
1772 var style = {
1773 position: 'sticky'
1774 };
1775 var offset = offsetArr[index];
1776
1777 if (offset > -1) {
1778 style[dir] = offset;
1779 }
1780
1781 col.className = (0, _classnames4.default)(col.className, (_classnames = {}, _classnames[prefix + 'table-fix-' + dir] = true, _classnames[prefix + 'table-fix-left-last'] = isLeftLast, _classnames[prefix + 'table-fix-right-first'] = isRightFirst, _classnames));
1782 col.style = (0, _extends3.default)({}, col.style, style);
1783 col.cellStyle = style;
1784 });
1785
1786 var setOffset = function setOffset(col, index, dir, isBorder) {
1787 var _classnames2;
1788
1789 var style = {
1790 position: 'sticky'
1791 };
1792 var offset = offsetArr[index];
1793
1794 if (offset > -1) {
1795 style[dir] = offset;
1796 }
1797
1798 col.className = (0, _classnames4.default)(col.className, (_classnames2 = {}, _classnames2[prefix + 'table-fix-' + dir] = true, _classnames2[prefix + 'table-fix-left-last'] = dir === 'left' && isBorder, _classnames2[prefix + 'table-fix-right-first'] = dir === 'right' && isBorder, _classnames2));
1799 col.style = (0, _extends3.default)({}, col.style, style);
1800 col.cellStyle = style;
1801 };
1802
1803 // 查看当前元素的叶子结点数量
1804 var getLeafNodes = function getLeafNodes(node) {
1805 var nodesLen = 0;
1806 var arrLen = Array.isArray(node && node.children) && node.children.length || 0;
1807 if (arrLen > 0) {
1808 nodesLen = node.children.reduce(function (ret, item, idx) {
1809 return ret + getLeafNodes(item.children);
1810 }, 0);
1811 } else {
1812 nodesLen = 1;
1813 }
1814 return nodesLen;
1815 };
1816
1817 var getPreNodes = function getPreNodes(arr, idx) {
1818 return arr.reduce(function (ret, item, i) {
1819 if (i < idx) {
1820 return ret + getLeafNodes(item);
1821 }
1822 return ret;
1823 }, 0);
1824 };
1825
1826 // for multiple header
1827 // nodesLen 前序叶子结点数
1828 var loop = function loop(arr, i) {
1829 dir === 'right' && arr.reverse();
1830 arr.forEach(function (child, j) {
1831 var p = dir === 'right' ? i - getPreNodes(arr, j) : i + getPreNodes(arr, j);
1832 if (child.children) {
1833 // 合并单元格的节点
1834 loop(child.children, p);
1835 // 查询当前元素下的 前序叶子结点数 比如为n
1836 // const isBorder = (dir === 'right' && j === 0) || (dir === 'left' && j === (arr.length - 1));
1837 setOffset(child, p, dir, j === arr.length - 1);
1838 }
1839 });
1840 dir === 'right' && arr.reverse();
1841 };
1842
1843 loop(lockChildren, dir === 'left' ? 0 : len - 1);
1844};
1845
1846/***/ }),
1847/* 22 */
1848/***/ (function(module, exports, __webpack_require__) {
1849
1850"use strict";
1851
1852
1853exports.__esModule = true;
1854exports.getLocaleData = exports.CALENDAR_MODES = exports.CALENDAR_MODE_DATE = exports.CALENDAR_MODE_MONTH = exports.CALENDAR_MODE_YEAR = exports.YEAR_TABLE_COL_COUNT = exports.YEAR_TABLE_ROW_COUNT = exports.MONTH_TABLE_COL_COUNT = exports.MONTH_TABLE_ROW_COUNT = exports.CALENDAR_TABLE_ROW_COUNT = exports.CALENDAR_TABLE_COL_COUNT = exports.DAYS_OF_WEEK = undefined;
1855
1856var _extends2 = __webpack_require__(1);
1857
1858var _extends3 = _interopRequireDefault(_extends2);
1859
1860exports.isDisabledDate = isDisabledDate;
1861exports.checkMomentObj = checkMomentObj;
1862exports.formatDateValue = formatDateValue;
1863exports.getVisibleMonth = getVisibleMonth;
1864exports.isSameYearMonth = isSameYearMonth;
1865exports.preFormatDateValue = preFormatDateValue;
1866exports.getYears = getYears;
1867exports.getMonths = getMonths;
1868
1869var _moment = __webpack_require__(19);
1870
1871var _moment2 = _interopRequireDefault(_moment);
1872
1873function _interopRequireDefault(obj) {
1874 return obj && obj.__esModule ? obj : { default: obj };
1875}
1876
1877var DAYS_OF_WEEK = exports.DAYS_OF_WEEK = 7;
1878
1879var CALENDAR_TABLE_COL_COUNT = exports.CALENDAR_TABLE_COL_COUNT = 7;
1880
1881var CALENDAR_TABLE_ROW_COUNT = exports.CALENDAR_TABLE_ROW_COUNT = 6;
1882
1883var MONTH_TABLE_ROW_COUNT = exports.MONTH_TABLE_ROW_COUNT = 4;
1884
1885var MONTH_TABLE_COL_COUNT = exports.MONTH_TABLE_COL_COUNT = 3;
1886
1887var YEAR_TABLE_ROW_COUNT = exports.YEAR_TABLE_ROW_COUNT = 4;
1888
1889var YEAR_TABLE_COL_COUNT = exports.YEAR_TABLE_COL_COUNT = 3;
1890
1891var CALENDAR_MODE_YEAR = exports.CALENDAR_MODE_YEAR = 'year';
1892
1893var CALENDAR_MODE_MONTH = exports.CALENDAR_MODE_MONTH = 'month';
1894
1895var CALENDAR_MODE_DATE = exports.CALENDAR_MODE_DATE = 'date';
1896
1897var CALENDAR_MODES = exports.CALENDAR_MODES = [CALENDAR_MODE_DATE, CALENDAR_MODE_MONTH, CALENDAR_MODE_YEAR];
1898
1899function isDisabledDate(date, fn, view) {
1900 if (typeof fn === 'function' && fn(date, view)) {
1901 return true;
1902 }
1903 return false;
1904}
1905
1906function checkMomentObj(props, propName, componentName) {
1907 if (props[propName] && !_moment2.default.isMoment(props[propName])) {
1908 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object');
1909 }
1910}
1911
1912function formatDateValue(value) {
1913 var reservedValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
1914
1915 if (value && _moment2.default.isMoment(value)) {
1916 return value;
1917 }
1918 return reservedValue;
1919}
1920
1921function getVisibleMonth(defaultVisibleMonth, value) {
1922 var getVM = defaultVisibleMonth;
1923 if (typeof getVM !== 'function' || !_moment2.default.isMoment(getVM())) {
1924 getVM = function getVM() {
1925 if (value) {
1926 return value;
1927 }
1928 return (0, _moment2.default)();
1929 };
1930 }
1931 return getVM();
1932}
1933
1934function isSameYearMonth(dateA, dateB) {
1935 return dateA.month() === dateB.month() && dateA.year() === dateB.year();
1936}
1937
1938function preFormatDateValue(value, format) {
1939 var val = typeof value === 'string' ? (0, _moment2.default)(value, format, false) : value;
1940 if (val && _moment2.default.isMoment(val) && val.isValid()) {
1941 return val;
1942 }
1943
1944 return null;
1945}
1946
1947function getLocaleData(_ref, localeData) {
1948 var _months = _ref.months,
1949 shortMonths = _ref.shortMonths,
1950 _firstDayOfWeek = _ref.firstDayOfWeek,
1951 _weekdays = _ref.weekdays,
1952 shortWeekdays = _ref.shortWeekdays,
1953 veryShortWeekdays = _ref.veryShortWeekdays;
1954
1955 return (0, _extends3.default)({}, localeData, {
1956 monthsShort: function monthsShort() {
1957 return shortMonths || localeData.monthsShort();
1958 },
1959 months: function months() {
1960 return _months || localeData.months();
1961 },
1962 firstDayOfWeek: function firstDayOfWeek() {
1963 return _firstDayOfWeek || localeData.firstDayOfWeek();
1964 },
1965 weekdays: function weekdays() {
1966 return _weekdays || localeData.weekdays;
1967 },
1968 weekdaysShort: function weekdaysShort() {
1969 return shortWeekdays || localeData.weekdaysShort();
1970 },
1971 weekdaysMin: function weekdaysMin() {
1972 return veryShortWeekdays || localeData.weekdaysMin();
1973 }
1974 });
1975}
1976
1977/* istanbul ignore next */
1978exports.getLocaleData = getLocaleData;
1979function getYears(yearRange, yearRangeOffset, year) {
1980 var options = [];
1981 var startYear = yearRange[0],
1982 endYear = yearRange[1];
1983
1984 if (!startYear || !endYear) {
1985 startYear = year - yearRangeOffset;
1986 endYear = year + yearRangeOffset;
1987 }
1988
1989 for (var i = startYear; i <= endYear; i++) {
1990 options.push({
1991 label: i,
1992 value: i
1993 });
1994 }
1995 return options;
1996}
1997
1998/* istanbul ignore next */
1999function getMonths(momentLocale) {
2000 var localeMonths = momentLocale.monthsShort();
2001 var options = [];
2002 for (var i = 0; i < 12; i++) {
2003 options.push({
2004 value: i,
2005 label: localeMonths[i]
2006 });
2007 }
2008 return options;
2009}
2010
2011/***/ }),
2012/* 23 */
2013/***/ (function(module, exports) {
2014
2015// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
2016var global = module.exports = typeof window != 'undefined' && window.Math == Math
2017 ? window : typeof self != 'undefined' && self.Math == Math ? self
2018 // eslint-disable-next-line no-new-func
2019 : Function('return this')();
2020if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
2021
2022
2023/***/ }),
2024/* 24 */
2025/***/ (function(module, exports) {
2026
2027var core = module.exports = { version: '2.6.12' };
2028if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
2029
2030
2031/***/ }),
2032/* 25 */
2033/***/ (function(module, exports, __webpack_require__) {
2034
2035// Thank's IE8 for his funny defineProperty
2036module.exports = !__webpack_require__(47)(function () {
2037 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
2038});
2039
2040
2041/***/ }),
2042/* 26 */
2043/***/ (function(module, exports, __webpack_require__) {
2044
2045var anObject = __webpack_require__(46);
2046var IE8_DOM_DEFINE = __webpack_require__(113);
2047var toPrimitive = __webpack_require__(70);
2048var dP = Object.defineProperty;
2049
2050exports.f = __webpack_require__(25) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
2051 anObject(O);
2052 P = toPrimitive(P, true);
2053 anObject(Attributes);
2054 if (IE8_DOM_DEFINE) try {
2055 return dP(O, P, Attributes);
2056 } catch (e) { /* empty */ }
2057 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
2058 if ('value' in Attributes) O[P] = Attributes.value;
2059 return O;
2060};
2061
2062
2063/***/ }),
2064/* 27 */
2065/***/ (function(module, exports) {
2066
2067var hasOwnProperty = {}.hasOwnProperty;
2068module.exports = function (it, key) {
2069 return hasOwnProperty.call(it, key);
2070};
2071
2072
2073/***/ }),
2074/* 28 */
2075/***/ (function(module, exports) {
2076
2077function _interopRequireDefault(obj) {
2078 return obj && obj.__esModule ? obj : {
2079 "default": obj
2080 };
2081}
2082
2083module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports;
2084
2085/***/ }),
2086/* 29 */
2087/***/ (function(module, exports, __webpack_require__) {
2088
2089"use strict";
2090
2091
2092exports.__esModule = true;
2093
2094var _objectWithoutProperties2 = __webpack_require__(8);
2095
2096var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
2097
2098var _configProvider = __webpack_require__(9);
2099
2100var _configProvider2 = _interopRequireDefault(_configProvider);
2101
2102var _select = __webpack_require__(304);
2103
2104var _select2 = _interopRequireDefault(_select);
2105
2106var _autoComplete = __webpack_require__(312);
2107
2108var _autoComplete2 = _interopRequireDefault(_autoComplete);
2109
2110var _option = __webpack_require__(313);
2111
2112var _option2 = _interopRequireDefault(_option);
2113
2114var _optionGroup = __webpack_require__(314);
2115
2116var _optionGroup2 = _interopRequireDefault(_optionGroup);
2117
2118function _interopRequireDefault(obj) {
2119 return obj && obj.__esModule ? obj : { default: obj };
2120}
2121
2122_select2.default.AutoComplete = _configProvider2.default.config(_autoComplete2.default, {
2123 componentName: 'Select'
2124});
2125
2126_select2.default.Option = _option2.default;
2127_select2.default.OptionGroup = _optionGroup2.default;
2128
2129// compatible with 0.x version
2130/* istanbul ignore next */
2131function _transform(props, deprecated) {
2132 var shape = props.shape,
2133 container = props.container,
2134 multiple = props.multiple,
2135 filterBy = props.filterBy,
2136 overlay = props.overlay,
2137 safeNode = props.safeNode,
2138 noFoundContent = props.noFoundContent,
2139 others = (0, _objectWithoutProperties3.default)(props, ['shape', 'container', 'multiple', 'filterBy', 'overlay', 'safeNode', 'noFoundContent']);
2140
2141 var newprops = others;
2142 if (shape === 'arrow-only') {
2143 deprecated('shape=arrow-only', 'hasBorder=false', 'Select');
2144 newprops.hasBorder = false;
2145 }
2146 if (container) {
2147 deprecated('container', 'popupContainer', 'Select');
2148 newprops.popupContainer = container;
2149 }
2150 if (multiple) {
2151 deprecated('multiple', 'mode=multiple', 'Select');
2152 newprops.mode = 'multiple';
2153 }
2154 if (filterBy) {
2155 deprecated('filterBy', 'filter', 'Select');
2156 newprops.filter = filterBy;
2157 }
2158 if (overlay) {
2159 deprecated('overlay', 'popupContent', 'Select');
2160 newprops.popupContent = overlay;
2161 newprops.autoWidth = false;
2162 }
2163
2164 if (noFoundContent) {
2165 deprecated('noFoundContent', 'notFoundContent', 'Select');
2166 newprops.notFoundContent = noFoundContent;
2167 }
2168
2169 if (safeNode) {
2170 deprecated('safeNode', 'popupProps={safeNode}', 'Select');
2171 newprops.popupProps = {
2172 safeNode: safeNode
2173 };
2174 }
2175
2176 return newprops;
2177}
2178
2179// compatible with 0.x version: Select.Combobox
2180_select2.default.Combobox = _configProvider2.default.config(_select2.default, {
2181 transform: /* istanbul ignore next */function transform(props, deprecated) {
2182 deprecated('Select.Combobox', '<Select showSearch={true}/>', 'Select');
2183
2184 var newprops = _transform(props, deprecated);
2185 if (props.onInputUpdate) {
2186 newprops.onSearch = props.onInputUpdate;
2187 newprops.showSearch = true;
2188 }
2189 return newprops;
2190 }
2191});
2192
2193exports.default = _configProvider2.default.config(_select2.default, {
2194 transform: _transform,
2195 exportNames: ['focusInput', 'handleSearchClear']
2196});
2197module.exports = exports['default'];
2198
2199/***/ }),
2200/* 30 */
2201/***/ (function(module, exports, __webpack_require__) {
2202
2203"use strict";
2204
2205
2206exports.__esModule = true;
2207exports.DEFAULT_TIME_FORMAT = exports.PANEL = undefined;
2208exports.isFunction = isFunction;
2209exports.resetValueTime = resetValueTime;
2210exports.formatDateValue = formatDateValue;
2211exports.checkDateValue = checkDateValue;
2212exports.getDateTimeFormat = getDateTimeFormat;
2213exports.extend = extend;
2214exports.onDateKeydown = onDateKeydown;
2215exports.onTimeKeydown = onTimeKeydown;
2216
2217var _moment = __webpack_require__(19);
2218
2219var _moment2 = _interopRequireDefault(_moment);
2220
2221var _util = __webpack_require__(6);
2222
2223function _interopRequireDefault(obj) {
2224 return obj && obj.__esModule ? obj : { default: obj };
2225}
2226
2227var PANEL = exports.PANEL = {
2228 TIME: 'time-panel',
2229 DATE: 'date-panel'
2230};
2231
2232var DEFAULT_TIME_FORMAT = exports.DEFAULT_TIME_FORMAT = 'HH:mm:ss';
2233
2234function isFunction(obj) {
2235 return !!(obj && obj.constructor && obj.call && obj.apply);
2236}
2237
2238/**
2239 * 将 source 的 time 替换为 target 的 time
2240 * @param {Object} source 输入值
2241 * @param {Object} target 目标值
2242 */
2243function resetValueTime(source, target) {
2244 if (!_moment2.default.isMoment(source) || !_moment2.default.isMoment(target)) {
2245 return source;
2246 }
2247 return source.clone().hour(target.hour()).minute(target.minute()).second(target.second());
2248}
2249
2250function formatDateValue(value, format) {
2251 var val = typeof value === 'string' ? (0, _moment2.default)(value, format, false) : value;
2252 if (val && _moment2.default.isMoment(val) && val.isValid()) {
2253 return val;
2254 }
2255
2256 return null;
2257}
2258
2259function checkDateValue(props, propName, componentName) {
2260 // 支持传入 moment 对象或字符串,字符串不检测是否为日期字符串
2261 if (props[propName] && !_moment2.default.isMoment(props[propName]) && typeof props[propName] !== 'string') {
2262 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object or format date string!');
2263 }
2264}
2265
2266function getDateTimeFormat(format, showTime, type) {
2267 if (!format && type) {
2268 format = {
2269 date: 'YYYY-MM-DD',
2270 month: 'YYYY-MM',
2271 year: 'YYYY',
2272 time: ''
2273 }[type];
2274 }
2275 var timeFormat = showTime ? showTime.format || DEFAULT_TIME_FORMAT : '';
2276 var dateTimeFormat = timeFormat ? format + ' ' + timeFormat : format;
2277 return {
2278 format: format,
2279 timeFormat: timeFormat,
2280 dateTimeFormat: dateTimeFormat
2281 };
2282}
2283
2284function extend(source, target) {
2285 for (var key in source) {
2286 if (source.hasOwnProperty(key)) {
2287 target[key] = source[key];
2288 }
2289 }
2290 return target;
2291}
2292
2293/**
2294 * 监听键盘事件,操作日期字符串
2295 * @param {KeyboardEvent} e 事件对象
2296 * @param {Object} param1
2297 * @param {String} type 类型 year month day
2298 */
2299function onDateKeydown(e, _ref, type) {
2300 var format = _ref.format,
2301 dateInputStr = _ref.dateInputStr,
2302 value = _ref.value;
2303
2304 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) {
2305 return;
2306 }
2307
2308 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) {
2309 return;
2310 }
2311
2312 var date = (0, _moment2.default)(dateInputStr, format, true);
2313
2314 if (date.isValid()) {
2315 var stepUnit = e.altKey ? 'year' : 'month';
2316 switch (e.keyCode) {
2317 case _util.KEYCODE.UP:
2318 date.subtract(1, type);
2319 break;
2320 case _util.KEYCODE.DOWN:
2321 date.add(1, type);
2322 break;
2323 case _util.KEYCODE.PAGE_UP:
2324 date.subtract(1, stepUnit);
2325 break;
2326 case _util.KEYCODE.PAGE_DOWN:
2327 date.add(1, stepUnit);
2328 break;
2329 }
2330 } else if (value) {
2331 date = value.clone();
2332 } else {
2333 date = (0, _moment2.default)();
2334 }
2335
2336 e.preventDefault();
2337 return date.format(format);
2338}
2339
2340/**
2341 * 监听键盘事件,操作时间
2342 * @param {KeyboardEvent} e
2343 * @param {Object} param1
2344 * @param {String} type second hour minute
2345 */
2346function onTimeKeydown(e, _ref2, type) {
2347 var format = _ref2.format,
2348 timeInputStr = _ref2.timeInputStr,
2349 steps = _ref2.steps,
2350 value = _ref2.value;
2351
2352 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) return;
2353 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) return;
2354
2355 var time = (0, _moment2.default)(timeInputStr, format, true);
2356
2357 if (time.isValid()) {
2358 var stepUnit = e.altKey ? 'hour' : 'minute';
2359 switch (e.keyCode) {
2360 case _util.KEYCODE.UP:
2361 time.subtract(steps[type], type);
2362 break;
2363 case _util.KEYCODE.DOWN:
2364 time.add(steps[type], type);
2365 break;
2366 case _util.KEYCODE.PAGE_UP:
2367 time.subtract(steps[stepUnit], stepUnit);
2368 break;
2369 case _util.KEYCODE.PAGE_DOWN:
2370 time.add(steps[stepUnit], stepUnit);
2371 break;
2372 }
2373 } else if (value) {
2374 time = value.clone();
2375 } else {
2376 time = (0, _moment2.default)().hours(0).minutes(0).seconds(0);
2377 }
2378
2379 e.preventDefault();
2380 return time.format(format);
2381}
2382
2383/***/ }),
2384/* 31 */
2385/***/ (function(module, exports, __webpack_require__) {
2386
2387var global = __webpack_require__(23);
2388var core = __webpack_require__(24);
2389var ctx = __webpack_require__(112);
2390var hide = __webpack_require__(32);
2391var has = __webpack_require__(27);
2392var PROTOTYPE = 'prototype';
2393
2394var $export = function (type, name, source) {
2395 var IS_FORCED = type & $export.F;
2396 var IS_GLOBAL = type & $export.G;
2397 var IS_STATIC = type & $export.S;
2398 var IS_PROTO = type & $export.P;
2399 var IS_BIND = type & $export.B;
2400 var IS_WRAP = type & $export.W;
2401 var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
2402 var expProto = exports[PROTOTYPE];
2403 var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];
2404 var key, own, out;
2405 if (IS_GLOBAL) source = name;
2406 for (key in source) {
2407 // contains in native
2408 own = !IS_FORCED && target && target[key] !== undefined;
2409 if (own && has(exports, key)) continue;
2410 // export native or passed
2411 out = own ? target[key] : source[key];
2412 // prevent global pollution for namespaces
2413 exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
2414 // bind timers to global for call from export context
2415 : IS_BIND && own ? ctx(out, global)
2416 // wrap global constructors for prevent change them in library
2417 : IS_WRAP && target[key] == out ? (function (C) {
2418 var F = function (a, b, c) {
2419 if (this instanceof C) {
2420 switch (arguments.length) {
2421 case 0: return new C();
2422 case 1: return new C(a);
2423 case 2: return new C(a, b);
2424 } return new C(a, b, c);
2425 } return C.apply(this, arguments);
2426 };
2427 F[PROTOTYPE] = C[PROTOTYPE];
2428 return F;
2429 // make static versions for prototype methods
2430 })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
2431 // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
2432 if (IS_PROTO) {
2433 (exports.virtual || (exports.virtual = {}))[key] = out;
2434 // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
2435 if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);
2436 }
2437 }
2438};
2439// type bitmap
2440$export.F = 1; // forced
2441$export.G = 2; // global
2442$export.S = 4; // static
2443$export.P = 8; // proto
2444$export.B = 16; // bind
2445$export.W = 32; // wrap
2446$export.U = 64; // safe
2447$export.R = 128; // real proto method for `library`
2448module.exports = $export;
2449
2450
2451/***/ }),
2452/* 32 */
2453/***/ (function(module, exports, __webpack_require__) {
2454
2455var dP = __webpack_require__(26);
2456var createDesc = __webpack_require__(53);
2457module.exports = __webpack_require__(25) ? function (object, key, value) {
2458 return dP.f(object, key, createDesc(1, value));
2459} : function (object, key, value) {
2460 object[key] = value;
2461 return object;
2462};
2463
2464
2465/***/ }),
2466/* 33 */
2467/***/ (function(module, exports) {
2468
2469module.exports = function (it) {
2470 return typeof it === 'object' ? it !== null : typeof it === 'function';
2471};
2472
2473
2474/***/ }),
2475/* 34 */
2476/***/ (function(module, exports, __webpack_require__) {
2477
2478// to indexed object, toObject with fallback for non-array-like ES3 strings
2479var IObject = __webpack_require__(116);
2480var defined = __webpack_require__(71);
2481module.exports = function (it) {
2482 return IObject(defined(it));
2483};
2484
2485
2486/***/ }),
2487/* 35 */
2488/***/ (function(module, exports, __webpack_require__) {
2489
2490var store = __webpack_require__(74)('wks');
2491var uid = __webpack_require__(56);
2492var Symbol = __webpack_require__(23).Symbol;
2493var USE_SYMBOL = typeof Symbol == 'function';
2494
2495var $exports = module.exports = function (name) {
2496 return store[name] || (store[name] =
2497 USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
2498};
2499
2500$exports.store = store;
2501
2502
2503/***/ }),
2504/* 36 */
2505/***/ (function(module, exports, __webpack_require__) {
2506
2507"use strict";
2508
2509
2510exports.__esModule = true;
2511
2512var _extends4 = __webpack_require__(1);
2513
2514var _extends5 = _interopRequireDefault(_extends4);
2515
2516var _typeof2 = __webpack_require__(14);
2517
2518var _typeof3 = _interopRequireDefault(_typeof2);
2519
2520exports.typeOf = typeOf;
2521exports.isArrayLike = isArrayLike;
2522exports.isPromise = isPromise;
2523exports.isPlainObject = isPlainObject;
2524exports.shallowEqual = shallowEqual;
2525exports.each = each;
2526exports.pickOthers = pickOthers;
2527exports.pickProps = pickProps;
2528exports.pickAttrsWith = pickAttrsWith;
2529exports.isNil = isNil;
2530exports.deepMerge = deepMerge;
2531exports.isFunctionComponent = isFunctionComponent;
2532exports.isClassComponent = isClassComponent;
2533exports.isReactFragment = isReactFragment;
2534exports.values = values;
2535
2536var _react = __webpack_require__(0);
2537
2538var _react2 = _interopRequireDefault(_react);
2539
2540function _interopRequireDefault(obj) {
2541 return obj && obj.__esModule ? obj : { default: obj };
2542}
2543
2544/**
2545 * 获取对象的类型
2546 * @param {*} obj
2547 * @return {String}
2548 *
2549 * @example
2550 * typeOf([]) === 'Array'
2551 * typeOf() === 'Undefined'
2552 * typeOf(1) === 'Number'
2553 */
2554function typeOf(obj) {
2555 return Object.prototype.toString.call(obj).replace(/\[object\s|]/g, '');
2556}
2557
2558/**
2559 * 判断是否是数组或类数组对象
2560 * @param {*} obj
2561 * @return {Boolean}
2562 *
2563 * @example
2564 * isArrayLike([]) === true
2565 * isArrayLike(arguments) === true
2566 * isArrayLike(this.props.children) === true
2567 */
2568function isArrayLike(obj) {
2569 var length = !!obj && 'length' in obj && obj.length;
2570 var type = typeOf(obj);
2571
2572 return type === 'Array' || length === 0 || typeof length === 'number' && length > 0 && length - 1 in obj;
2573}
2574
2575/**
2576 * 判断对象是否是一个promise,即是否可以用.then
2577 * @param {*} obj
2578 * @return {Boolean}
2579 */
2580function isPromise(obj) {
2581 return !!obj && ((typeof obj === 'undefined' ? 'undefined' : (0, _typeof3.default)(obj)) === 'object' || typeof obj === 'function') && typeof obj.then === 'function';
2582}
2583
2584/**
2585 * 是否是一个纯净的对象
2586 * @param {*} obj
2587 * @return {Boolean}
2588 * @reference https://github.com/jonschlinkert/is-plain-object
2589 */
2590function isPlainObject(obj) {
2591 if (typeOf(obj) !== 'Object') {
2592 return false;
2593 }
2594
2595 var ctor = obj.constructor;
2596
2597 if (typeof ctor !== 'function') {
2598 return false;
2599 }
2600
2601 var prot = ctor.prototype;
2602
2603 if (typeOf(prot) !== 'Object') {
2604 return false;
2605 }
2606
2607 if (!prot.hasOwnProperty('isPrototypeOf')) {
2608 return false;
2609 }
2610
2611 return true;
2612}
2613
2614/**
2615 * 对象浅比较
2616 * @param {Object} objA
2617 * @param {Object} objB
2618 * @param {Function} [compare] 手动调用方法比较
2619 * @return {Boolean} 对象浅比较是否相等
2620 *
2621 * @example
2622 * object.shallowEqual({a: 100}, {a: 100}); // true
2623 */
2624function shallowEqual(objA, objB, compare) {
2625 if (objA === objB) {
2626 return true;
2627 }
2628
2629 // 其中一个不是object,则不相等
2630 if (!objA || !objB || (typeof objA === 'undefined' ? 'undefined' : (0, _typeof3.default)(objA)) + (typeof objB === 'undefined' ? 'undefined' : (0, _typeof3.default)(objB)) !== 'objectobject') {
2631 return false;
2632 }
2633
2634 var keyA = Object.keys(objA);
2635 var keyB = Object.keys(objB);
2636 var len = keyA.length;
2637
2638 // key 数量不一致则不相等
2639 if (len !== keyB.length) {
2640 return false;
2641 }
2642
2643 var hasCallback = typeof compare === 'function';
2644
2645 for (var i = 0; i < len; i++) {
2646 var key = keyA[i];
2647
2648 if (!Object.prototype.hasOwnProperty.call(objB, key)) {
2649 return false;
2650 }
2651
2652 var valA = objA[key];
2653 var valB = objB[key];
2654
2655 var ret = hasCallback ? compare(valA, valB, key) : void 0;
2656
2657 if (ret === false || ret === void 0 && valA !== valB) {
2658 return false;
2659 }
2660 }
2661
2662 return true;
2663}
2664
2665/**
2666 * 遍历对象或数组,或者类数组,例如React中的children对象、arguments等
2667 * @param {Object|Array} obj
2668 * @param {Function} callback fn(n, i) or fn(val, key)
2669 * @param {Number} [direction = 1] 是否倒序遍历,只对数组有效
2670 * @return {Object|Array}
2671 *
2672 * @example
2673 * // 遍历数组
2674 * object.each([100, 200, 300], (n, i) => console.log(n, i));
2675 * // 遍历json对象
2676 * object.each({a: 100, b: 200}, (value, key) => console.log(key, value));
2677 * // 遍历React子节点
2678 * object.each(this.props.children, (child, index) => console.log(child));
2679 * // 遍历arguments
2680 * object.each(arguments, (arg, i) => console.log(arg));
2681 */
2682function each(obj, callback, direction) {
2683 var reversed = direction === -1;
2684 var length = obj.length;
2685 var value = void 0,
2686 i = reversed ? length - 1 : 0;
2687
2688 if (isArrayLike(obj)) {
2689 for (; i < length && i >= 0; reversed ? i-- : i++) {
2690 value = callback.call(obj[i], obj[i], i);
2691
2692 if (value === false) {
2693 break;
2694 }
2695 }
2696 } else {
2697 for (i in obj) {
2698 /* istanbul ignore else */
2699 if (obj.hasOwnProperty(i)) {
2700 value = callback.call(obj[i], obj[i], i);
2701
2702 if (value === false) {
2703 break;
2704 }
2705 }
2706 }
2707 }
2708
2709 return obj;
2710}
2711
2712// @private 判断key是否在数组或对象中
2713var _isInObj = function _isInObj(key, obj, isArray) {
2714 return isArray ? obj.indexOf(key) > -1 : key in obj;
2715};
2716
2717/**
2718 * 过滤出其它属性
2719 * @param {Object|Array} holdProps 过滤的参照对象,最终的结果只保留不在参照对象中的key
2720 * @param {Object} props 被过滤的对象
2721 * @return {Object} others
2722 *
2723 * @example
2724 * object.pickOthers(FooComponent.propTypes, this.props);
2725 * object.pickOthers(['className', 'onChange'], this.props);
2726 */
2727function pickOthers(holdProps, props) {
2728 var others = {};
2729 var isArray = typeOf(holdProps) === 'Array';
2730
2731 for (var key in props) {
2732 if (!_isInObj(key, holdProps, isArray)) {
2733 others[key] = props[key];
2734 }
2735 }
2736
2737 return others;
2738}
2739
2740/**
2741 * 过滤出需要的属性
2742 * @param {Object|Array} holdProps 过滤的参照对象,最终的结果只保留在参照对象中的key
2743 * @param {Object} props 被过滤的对象
2744 * @return {Object} others
2745 *
2746 * @example
2747 * object.pickProps(FooComponent.propTypes, this.props);
2748 * object.pickProps(['className', 'onChange'], this.props);
2749 */
2750function pickProps(holdProps, props) {
2751 var others = {};
2752 var isArray = typeOf(holdProps) === 'Array';
2753
2754 for (var key in props) {
2755 if (_isInObj(key, holdProps, isArray)) {
2756 others[key] = props[key];
2757 }
2758 }
2759
2760 return others;
2761}
2762
2763/**
2764 * 过滤出带prefix的属性
2765 * @param {Object} holdProps 过滤的参照对象,最终的结果只保留不在参照对象中的key
2766 * @param {string} prefix 包含的字符串
2767 * @return {Object} others
2768 *
2769 * @example
2770 * object.pickAttrsWith(FooComponent.propTypes, 'data-');
2771 */
2772function pickAttrsWith(holdProps, prefix) {
2773 var others = {};
2774
2775 for (var key in holdProps) {
2776 if (key.match(prefix)) {
2777 others[key] = holdProps[key];
2778 }
2779 }
2780
2781 return others;
2782}
2783
2784/**
2785 * Checks if value is `null` or `undefined`.
2786 * @param {*} value
2787 * @return {Boolean}
2788 */
2789function isNil(value) {
2790 // It will returns `true` only if `null` or `undefined` compare with `null`
2791 // with loose equaliy
2792 return value == null; // eslint-disable-line eqeqeq
2793}
2794
2795/**
2796 * Deep merge two objects.
2797 * @param target
2798 * @param ...sources
2799 * @reference https://stackoverflow.com/questions/27936772/how-to-deep-merge-instead-of-shallow-merge?page=1&tab=votes#tab-top
2800 */
2801function deepMerge(target) {
2802 for (var _len = arguments.length, sources = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2803 sources[_key - 1] = arguments[_key];
2804 }
2805
2806 if (!sources.length) return target;
2807 var source = sources.shift();
2808
2809 if (!isPlainObject(target)) {
2810 target = {};
2811 }
2812
2813 if (isPlainObject(target) && isPlainObject(source)) {
2814 for (var key in source) {
2815 // 如果是object 进行深拷贝
2816 if (isPlainObject(source[key]) && !_react2.default.isValidElement(source[key])) {
2817 var _extends2;
2818
2819 if (!target[key]) (0, _extends5.default)(target, (_extends2 = {}, _extends2[key] = {}, _extends2));
2820 // fix {a: 'te'}, {a:{b:3}}
2821 if (!isPlainObject(target[key])) {
2822 target[key] = source[key];
2823 }
2824 deepMerge(target[key], source[key]);
2825 // string/number/function/react node 等直接复制
2826 } else {
2827 var _extends3;
2828
2829 (0, _extends5.default)(target, (_extends3 = {}, _extends3[key] = source[key], _extends3));
2830 }
2831 }
2832 }
2833
2834 return deepMerge.apply(undefined, [target].concat(sources));
2835}
2836
2837/**
2838 * 组件是否为 Fucntion Component
2839 * @param {*} component 传入的组件
2840 */
2841function isFunctionComponent(component) {
2842 return typeOf(component) === 'Function' && component.prototype && component.prototype.isReactComponent === undefined;
2843}
2844
2845/**
2846 * 组件是否为 Class Component
2847 * @param {*} component 传入的组件
2848 */
2849function isClassComponent(component) {
2850 return typeOf(component) === 'Function' && component.prototype && component.prototype.isReactComponent !== undefined;
2851}
2852
2853/**
2854 * 判断是否为 ReactFragment
2855 * @param {*} component 传入的组件
2856 */
2857function isReactFragment(component) {
2858 if (isNil(component)) {
2859 return false;
2860 }
2861
2862 if (component.type) {
2863 return component.type === _react2.default.Fragment;
2864 }
2865 return component === _react2.default.Fragment;
2866}
2867
2868/**
2869 * Creates an array of the own enumerable string keyed property values of object.
2870 *
2871 * @param {Object} obj
2872 * @returns {Array}
2873 *
2874 * @example
2875 * // returns [1, 2]
2876 * values({a: 1, b: 2})
2877 */
2878function values(obj) {
2879 if (Object.values) {
2880 return Object.values(obj);
2881 }
2882
2883 var vals = [];
2884
2885 for (var key in obj) {
2886 if (obj.hasOwnProperty(key)) {
2887 vals.push(obj[key]);
2888 }
2889 }
2890
2891 return vals;
2892}
2893
2894/***/ }),
2895/* 37 */
2896/***/ (function(module, exports, __webpack_require__) {
2897
2898"use strict";
2899
2900
2901exports.__esModule = true;
2902exports.default = undefined;
2903
2904var _extends3 = __webpack_require__(1);
2905
2906var _extends4 = _interopRequireDefault(_extends3);
2907
2908var _classCallCheck2 = __webpack_require__(2);
2909
2910var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
2911
2912var _possibleConstructorReturn2 = __webpack_require__(3);
2913
2914var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
2915
2916var _inherits2 = __webpack_require__(4);
2917
2918var _inherits3 = _interopRequireDefault(_inherits2);
2919
2920var _class, _temp;
2921
2922var _react = __webpack_require__(0);
2923
2924var _react2 = _interopRequireDefault(_react);
2925
2926var _reactDom = __webpack_require__(12);
2927
2928var _propTypes = __webpack_require__(5);
2929
2930var _propTypes2 = _interopRequireDefault(_propTypes);
2931
2932var _classnames = __webpack_require__(7);
2933
2934var _classnames2 = _interopRequireDefault(_classnames);
2935
2936var _util = __webpack_require__(6);
2937
2938function _interopRequireDefault(obj) {
2939 return obj && obj.__esModule ? obj : { default: obj };
2940}
2941
2942var bindCtx = _util.func.bindCtx;
2943var pickOthers = _util.obj.pickOthers;
2944var Item = (_temp = _class = function (_Component) {
2945 (0, _inherits3.default)(Item, _Component);
2946
2947 function Item(props) {
2948 (0, _classCallCheck3.default)(this, Item);
2949
2950 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
2951
2952 bindCtx(_this, ['handleClick', 'handleKeyDown']);
2953 return _this;
2954 }
2955
2956 Item.prototype.componentDidMount = function componentDidMount() {
2957 this.itemNode = (0, _reactDom.findDOMNode)(this);
2958
2959 var _props = this.props,
2960 parentMode = _props.parentMode,
2961 root = _props.root,
2962 menu = _props.menu;
2963
2964 if (menu) {
2965 this.menuNode = (0, _reactDom.findDOMNode)(menu);
2966 } else if (parentMode === 'popup') {
2967 this.menuNode = this.itemNode.parentNode;
2968 } else {
2969 this.menuNode = (0, _reactDom.findDOMNode)(root);
2970 var _root$props = root.props,
2971 prefix = _root$props.prefix,
2972 header = _root$props.header,
2973 footer = _root$props.footer;
2974
2975 if (header || footer) {
2976 this.menuNode = this.menuNode.querySelector('.' + prefix + 'menu-content');
2977 }
2978 }
2979
2980 this.setFocus();
2981 };
2982
2983 Item.prototype.componentDidUpdate = function componentDidUpdate() {
2984 if (this.props.root.props.focusable) {
2985 this.setFocus();
2986 }
2987 };
2988
2989 Item.prototype.focusable = function focusable() {
2990 var _props2 = this.props,
2991 root = _props2.root,
2992 type = _props2.type,
2993 disabled = _props2.disabled;
2994 var focusable = root.props.focusable;
2995
2996 return focusable && (type === 'submenu' || !disabled);
2997 };
2998
2999 Item.prototype.getFocused = function getFocused() {
3000 var _props3 = this.props,
3001 _key = _props3._key,
3002 root = _props3.root;
3003 var focusedKey = root.state.focusedKey;
3004
3005 return focusedKey === _key;
3006 };
3007
3008 Item.prototype.setFocus = function setFocus() {
3009 var focused = this.getFocused();
3010 if (focused) {
3011 if (this.focusable()) {
3012 this.itemNode.focus({ preventScroll: true });
3013 }
3014 if (this.menuNode && this.menuNode.scrollHeight > this.menuNode.clientHeight) {
3015 var scrollBottom = this.menuNode.clientHeight + this.menuNode.scrollTop;
3016 var itemBottom = this.itemNode.offsetTop + this.itemNode.offsetHeight;
3017 if (itemBottom > scrollBottom) {
3018 this.menuNode.scrollTop = itemBottom - this.menuNode.clientHeight;
3019 } else if (this.itemNode.offsetTop < this.menuNode.scrollTop) {
3020 this.menuNode.scrollTop = this.itemNode.offsetTop;
3021 }
3022 }
3023 }
3024 };
3025
3026 Item.prototype.handleClick = function handleClick(e) {
3027 e.stopPropagation();
3028
3029 var _props4 = this.props,
3030 _key = _props4._key,
3031 root = _props4.root,
3032 disabled = _props4.disabled;
3033
3034 if (!disabled) {
3035 root.handleItemClick(_key, this, e);
3036
3037 this.props.onClick && this.props.onClick(e);
3038 } else {
3039 e.preventDefault();
3040 }
3041 };
3042
3043 Item.prototype.handleKeyDown = function handleKeyDown(e) {
3044 var _props5 = this.props,
3045 _key = _props5._key,
3046 root = _props5.root,
3047 type = _props5.type;
3048
3049 if (this.focusable()) {
3050 root.handleItemKeyDown(_key, type, this, e);
3051
3052 switch (e.keyCode) {
3053 case _util.KEYCODE.ENTER:
3054 {
3055 if (!(type === 'submenu')) {
3056 this.handleClick(e);
3057 }
3058 break;
3059 }
3060 }
3061 }
3062
3063 this.props.onKeyDown && this.props.onKeyDown(e);
3064 };
3065
3066 Item.prototype.getTitle = function getTitle(children) {
3067 if (typeof children === 'string') {
3068 return children;
3069 }
3070 return;
3071 };
3072
3073 Item.prototype.render = function render() {
3074 var _cx;
3075
3076 var _props6 = this.props,
3077 inlineLevel = _props6.inlineLevel,
3078 root = _props6.root,
3079 replaceClassName = _props6.replaceClassName,
3080 groupIndent = _props6.groupIndent,
3081 component = _props6.component,
3082 disabled = _props6.disabled,
3083 className = _props6.className,
3084 children = _props6.children,
3085 needIndent = _props6.needIndent,
3086 parentMode = _props6.parentMode,
3087 _key = _props6._key;
3088
3089 var others = pickOthers(Object.keys(Item.propTypes), this.props);
3090
3091 var _root$props2 = root.props,
3092 prefix = _root$props2.prefix,
3093 focusable = _root$props2.focusable,
3094 inlineIndent = _root$props2.inlineIndent,
3095 itemClassName = _root$props2.itemClassName,
3096 rtl = _root$props2.rtl;
3097
3098 var focused = this.getFocused();
3099
3100 var newClassName = replaceClassName ? className : (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-item'] = true, _cx[prefix + 'disabled'] = disabled, _cx[prefix + 'focused'] = !focusable && focused, _cx[itemClassName] = !!itemClassName, _cx[className] = !!className, _cx));
3101 if (disabled) {
3102 others['aria-disabled'] = true;
3103 others['aria-hidden'] = true;
3104 }
3105
3106 others.tabIndex = root.state.tabbableKey === _key ? '0' : '-1';
3107
3108 if (parentMode === 'inline' && inlineLevel > 1 && inlineIndent > 0 && needIndent) {
3109 var _extends2;
3110
3111 var paddingProp = rtl ? 'paddingRight' : 'paddingLeft';
3112 others.style = (0, _extends4.default)({}, others.style || {}, (_extends2 = {}, _extends2[paddingProp] = inlineLevel * inlineIndent - (groupIndent || 0) * 0.4 * inlineIndent + 'px', _extends2));
3113 }
3114 var TagName = component;
3115
3116 var role = 'menuitem';
3117 if ('selectMode' in root.props) {
3118 role = 'option';
3119 }
3120
3121 return _react2.default.createElement(TagName, (0, _extends4.default)({
3122 role: role,
3123 title: this.getTitle(children)
3124 }, others, {
3125 className: newClassName,
3126 onClick: this.handleClick,
3127 onKeyDown: this.handleKeyDown
3128 }), _react2.default.createElement('div', { className: prefix + 'menu-item-inner' }, children));
3129 };
3130
3131 return Item;
3132}(_react.Component), _class.propTypes = {
3133 _key: _propTypes2.default.string,
3134 level: _propTypes2.default.number,
3135 inlineLevel: _propTypes2.default.number,
3136 groupIndent: _propTypes2.default.number,
3137 root: _propTypes2.default.object,
3138 menu: _propTypes2.default.any,
3139 parent: _propTypes2.default.object,
3140 parentMode: _propTypes2.default.oneOf(['inline', 'popup']),
3141 type: _propTypes2.default.oneOf(['submenu', 'item']),
3142 component: _propTypes2.default.string,
3143 disabled: _propTypes2.default.bool,
3144 className: _propTypes2.default.string,
3145 onClick: _propTypes2.default.func,
3146 onKeyDown: _propTypes2.default.func,
3147 needIndent: _propTypes2.default.bool,
3148 replaceClassName: _propTypes2.default.bool
3149}, _class.defaultProps = {
3150 component: 'li',
3151 groupIndent: 0,
3152 replaceClassName: false,
3153 needIndent: true
3154}, _temp);
3155Item.displayName = 'Item';
3156exports.default = Item;
3157module.exports = exports['default'];
3158
3159/***/ }),
3160/* 38 */
3161/***/ (function(module, exports, __webpack_require__) {
3162
3163"use strict";
3164
3165
3166exports.__esModule = true;
3167
3168var _objectWithoutProperties2 = __webpack_require__(8);
3169
3170var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
3171
3172var _configProvider = __webpack_require__(9);
3173
3174var _configProvider2 = _interopRequireDefault(_configProvider);
3175
3176var _utils = __webpack_require__(22);
3177
3178var _calendar = __webpack_require__(302);
3179
3180var _calendar2 = _interopRequireDefault(_calendar);
3181
3182var _rangeCalendar = __webpack_require__(160);
3183
3184var _rangeCalendar2 = _interopRequireDefault(_rangeCalendar);
3185
3186function _interopRequireDefault(obj) {
3187 return obj && obj.__esModule ? obj : { default: obj };
3188}
3189
3190/* istanbul ignore next */
3191var transform = function transform(props, deprecated) {
3192 var type = props.type,
3193 onChange = props.onChange,
3194 base = props.base,
3195 disabledMonth = props.disabledMonth,
3196 disabledYear = props.disabledYear,
3197 others = (0, _objectWithoutProperties3.default)(props, ['type', 'onChange', 'base', 'disabledMonth', 'disabledYear']);
3198
3199 var newProps = others;
3200
3201 if ('type' in props) {
3202 deprecated('type', 'shape', 'Calendar');
3203
3204 newProps.shape = type;
3205
3206 if ('shape' in props) {
3207 newProps.shape = props.shape;
3208 }
3209 }
3210
3211 if ('base' in props) {
3212 deprecated('base', 'defaultVisibleMonth', 'Calendar');
3213
3214 var newDefaultVisibleMonth = function newDefaultVisibleMonth() {
3215 (0, _utils.preFormatDateValue)(base, 'YYYY-MM-DD');
3216 };
3217
3218 if ('defaultVisibleMonth' in props) {
3219 newDefaultVisibleMonth = props.defaultVisibleMonth;
3220 }
3221
3222 newProps.defaultVisibleMonth = newDefaultVisibleMonth;
3223 }
3224
3225 if ('onChange' in props && typeof onChange === 'function') {
3226 deprecated('onChange', 'onSelect', 'Calendar');
3227
3228 var newOnSelect = function newOnSelect(date) {
3229 onChange({ mode: others.mode, value: date });
3230
3231 if ('onSelect' in props) {
3232 props.onSelect(date);
3233 }
3234 };
3235
3236 newProps.onSelect = newOnSelect;
3237 }
3238
3239 if ('disabledMonth' in props && typeof disabledMonth === 'function') {
3240 deprecated('disabledMonth', 'disabledDate', 'Calendar');
3241 }
3242
3243 if ('disabledYear' in props && typeof disabledYear === 'function') {
3244 deprecated('disabledYear', 'disabledDate', 'Calendar');
3245 }
3246
3247 if ('yearCellRender' in props && typeof yearCellRender === 'function') {
3248 deprecated('yearCellRender', 'monthCellRender/dateCellRender', 'Calendar');
3249 }
3250
3251 if ('language' in props) {
3252 deprecated('language', 'moment.locale', 'Calendar');
3253 }
3254
3255 return newProps;
3256};
3257
3258_calendar2.default.RangeCalendar = _rangeCalendar2.default;
3259exports.default = _configProvider2.default.config(_calendar2.default, {
3260 transform: transform
3261});
3262module.exports = exports['default'];
3263
3264/***/ }),
3265/* 39 */
3266/***/ (function(module, exports) {
3267
3268function _typeof(obj) {
3269 "@babel/helpers - typeof";
3270
3271 return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
3272 return typeof obj;
3273 } : function (obj) {
3274 return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
3275 }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
3276}
3277
3278module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
3279
3280/***/ }),
3281/* 40 */
3282/***/ (function(module, exports, __webpack_require__) {
3283
3284"use strict";
3285
3286
3287var _interopRequireDefault = __webpack_require__(28);
3288
3289Object.defineProperty(exports, "__esModule", {
3290 value: true
3291});
3292exports.asyncMap = asyncMap;
3293exports.asyncMapPromise = asyncMapPromise;
3294exports.complementError = complementError;
3295exports.format = format;
3296exports.processErrorResults = processErrorResults;
3297
3298var _regenerator = _interopRequireDefault(__webpack_require__(96));
3299
3300var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(97));
3301
3302var formatRegExp = /%[sdj%]/g;
3303
3304function format() {
3305 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
3306 args[_key] = arguments[_key];
3307 }
3308
3309 var i = 1;
3310 var f = args[0];
3311 var len = args.length;
3312
3313 if (typeof f === 'function') {
3314 return f(args.slice(1));
3315 }
3316
3317 if (typeof f === 'string') {
3318 var str = String(f).replace(formatRegExp, function (x) {
3319 if (x === '%%') {
3320 return '%';
3321 }
3322
3323 if (i >= len) {
3324 return x;
3325 }
3326
3327 switch (x) {
3328 case '%s':
3329 return String(args[i++]);
3330
3331 case '%d':
3332 return Number(args[i++]);
3333
3334 case '%j':
3335 try {
3336 return JSON.stringify(args[i++]);
3337 } catch (_) {
3338 return '[Circular]';
3339 }
3340
3341 default:
3342 return x;
3343 }
3344 });
3345 return str;
3346 }
3347
3348 return f;
3349}
3350/**
3351 * 串联校验一组数据,只返回第一个出错结果
3352 * @param {*} arr
3353 * @param {*} validator
3354 * @param {*} callback 出递归,告诉错误校验完成
3355 */
3356
3357
3358function _asyncValidateSerials(arr, validator, callback) {
3359 var index = 0;
3360 var arrLength = arr.length;
3361
3362 function next(errors) {
3363 if (errors && errors.length) {
3364 return callback(errors);
3365 }
3366
3367 var original = index;
3368 index = index + 1;
3369
3370 if (original < arrLength) {
3371 validator(arr[original], next);
3372 } else {
3373 return callback([]);
3374 }
3375 }
3376
3377 next([]);
3378}
3379/**
3380 * 串联校验一组数据,只返回第一个出错结果
3381 * @param {*} arr
3382 * @param {*} validator
3383 * @returns
3384 */
3385
3386
3387function _promiseValidateSeries(_x, _x2) {
3388 return _promiseValidateSeries2.apply(this, arguments);
3389}
3390/**
3391 * 平铺规则
3392 * @param {object} objArr {name: [{value, rule}, {value, rule2}], name2: [{value2, rule3}]}
3393 * @return {Array} [{value, rule}, {value, rule2}, {value2, rule3}]
3394 */
3395
3396
3397function _promiseValidateSeries2() {
3398 _promiseValidateSeries2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(arr, validator) {
3399 return _regenerator.default.wrap(function _callee2$(_context2) {
3400 while (1) {
3401 switch (_context2.prev = _context2.next) {
3402 case 0:
3403 return _context2.abrupt("return", arr.reduce( /*#__PURE__*/function () {
3404 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(prevPromise, next) {
3405 var errors;
3406 return _regenerator.default.wrap(function _callee$(_context) {
3407 while (1) {
3408 switch (_context.prev = _context.next) {
3409 case 0:
3410 _context.prev = 0;
3411 _context.next = 3;
3412 return prevPromise;
3413
3414 case 3:
3415 errors = _context.sent;
3416 _context.next = 9;
3417 break;
3418
3419 case 6:
3420 _context.prev = 6;
3421 _context.t0 = _context["catch"](0);
3422 errors = _context.t0;
3423
3424 case 9:
3425 if (!(errors && errors.length)) {
3426 _context.next = 11;
3427 break;
3428 }
3429
3430 return _context.abrupt("return", errors);
3431
3432 case 11:
3433 return _context.abrupt("return", validator(next));
3434
3435 case 12:
3436 case "end":
3437 return _context.stop();
3438 }
3439 }
3440 }, _callee, null, [[0, 6]]);
3441 }));
3442
3443 return function (_x6, _x7) {
3444 return _ref.apply(this, arguments);
3445 };
3446 }(), []));
3447
3448 case 1:
3449 case "end":
3450 return _context2.stop();
3451 }
3452 }
3453 }, _callee2);
3454 }));
3455 return _promiseValidateSeries2.apply(this, arguments);
3456}
3457
3458function flattenObjArr(objArr) {
3459 var ret = [];
3460 Object.keys(objArr).forEach(function (k) {
3461 Object.keys(objArr[k]).forEach(function (r) {
3462 ret.push(objArr[k][r]);
3463 });
3464 });
3465 return ret;
3466}
3467/**
3468 * 异步调用
3469 * @param {map} objArr 校验规则对象列表
3470 * @param {object} option 配置项
3471 * @param {Function} validator 每个校验规则
3472 * @param {Function} callback 全部完成后的执行
3473 */
3474
3475
3476function asyncMap(objArr, option, validator, callback) {
3477 // 发现第一个错误即返回
3478 if (option.first) {
3479 var flattenArr = flattenObjArr(objArr);
3480 return _asyncValidateSerials(flattenArr, validator, callback);
3481 }
3482
3483 var objArrKeys = Object.keys(objArr);
3484 var objArrLength = objArrKeys.length;
3485 var total = 0;
3486 var results = [];
3487
3488 var next = function next(errors) {
3489 results.push(errors);
3490 total++;
3491
3492 if (total === objArrLength) {
3493 return callback(results);
3494 }
3495 };
3496
3497 objArrKeys.forEach(function (key) {
3498 var arr = objArr[key];
3499
3500 _asyncValidateSerials(arr, validator, next);
3501 });
3502}
3503
3504function asyncMapPromise(_x3, _x4, _x5) {
3505 return _asyncMapPromise.apply(this, arguments);
3506}
3507
3508function _asyncMapPromise() {
3509 _asyncMapPromise = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(objArr, option, validator) {
3510 var flatObjArr, objArrValues;
3511 return _regenerator.default.wrap(function _callee3$(_context3) {
3512 while (1) {
3513 switch (_context3.prev = _context3.next) {
3514 case 0:
3515 if (!option.first) {
3516 _context3.next = 5;
3517 break;
3518 }
3519
3520 flatObjArr = flattenObjArr(objArr);
3521 _context3.next = 4;
3522 return _promiseValidateSeries(flatObjArr, validator);
3523
3524 case 4:
3525 return _context3.abrupt("return", _context3.sent);
3526
3527 case 5:
3528 objArrValues = Object.values(objArr);
3529 _context3.next = 8;
3530 return Promise.all(objArrValues.map(function (val) {
3531 return _promiseValidateSeries(val, validator);
3532 }));
3533
3534 case 8:
3535 return _context3.abrupt("return", _context3.sent);
3536
3537 case 9:
3538 case "end":
3539 return _context3.stop();
3540 }
3541 }
3542 }, _callee3);
3543 }));
3544 return _asyncMapPromise.apply(this, arguments);
3545}
3546
3547function complementError(rule) {
3548 return function (oe) {
3549 if (oe && oe.message) {
3550 oe.field = rule.field;
3551 return oe;
3552 }
3553
3554 return {
3555 message: oe,
3556 field: rule.field
3557 };
3558 };
3559}
3560/**
3561 *
3562 * @param {Array} results errors from running validation
3563 * @returns {Object} { errors: Array, fields: Object }
3564 */
3565
3566
3567function processErrorResults() {
3568 var results = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
3569 var errors = [];
3570 var fields = {};
3571
3572 function add(e) {
3573 if (Array.isArray(e)) {
3574 errors = errors.concat(e);
3575 } else {
3576 errors.push(e);
3577 }
3578 }
3579
3580 for (var i = 0; i < results.length; i++) {
3581 add(results[i]);
3582 }
3583
3584 if (!errors.length) {
3585 errors = null;
3586 fields = null;
3587 } else {
3588 for (var _i = 0; _i < errors.length; _i++) {
3589 var field = errors[_i].field;
3590
3591 if (field) {
3592 fields[field] = fields[field] || [];
3593 fields[field].push(errors[_i]);
3594 }
3595 }
3596 }
3597
3598 return {
3599 errors: errors,
3600 fields: fields
3601 };
3602}
3603
3604/***/ }),
3605/* 41 */
3606/***/ (function(module, exports, __webpack_require__) {
3607
3608"use strict";
3609
3610
3611exports.__esModule = true;
3612exports.inRange = inRange;
3613exports.getPercent = getPercent;
3614exports.getPrecision = getPrecision;
3615exports.isEqual = isEqual;
3616exports.getDragging = getDragging;
3617function inRange(value, range, min) {
3618 if (!Array.isArray(range)) {
3619 range = [min, range];
3620 }
3621
3622 return value >= range[0] && value <= range[1];
3623}
3624
3625function getPercent(min, max, value) {
3626 return (value - min) * 100 / (max - min);
3627}
3628
3629function getPrecision(step) {
3630 var precision = 0;
3631 var stepString = step.toString();
3632 if (stepString.indexOf('.') !== -1) {
3633 precision = stepString.length - stepString.indexOf('.') - 1;
3634 }
3635 return precision;
3636}
3637
3638function isEqual(left, right) {
3639 if (Array.isArray(left)) {
3640 return left[0] === right[0] && left[1] === right[1];
3641 } else {
3642 return left === right;
3643 }
3644}
3645
3646function getDragging(current, preValue) {
3647 var dragging = 'upper';
3648
3649 if (current > preValue[1]) {
3650 dragging = 'upper';
3651 } else if (current < preValue[0]) {
3652 dragging = 'lower';
3653 } else {
3654 var mid = (preValue[0] + preValue[1]) / 2;
3655
3656 dragging = current < mid ? 'lower' : 'upper';
3657 }
3658
3659 return dragging;
3660}
3661
3662/***/ }),
3663/* 42 */
3664/***/ (function(module, exports, __webpack_require__) {
3665
3666"use strict";
3667
3668
3669exports.__esModule = true;
3670exports.uid = uid;
3671exports.fileToObject = fileToObject;
3672exports.getFileItem = getFileItem;
3673exports.removeFileItem = removeFileItem;
3674exports.previewFile = previewFile;
3675var now = +new Date();
3676
3677/**
3678 * 生成唯一的id
3679 * @return {String} uid
3680 */
3681function uid() {
3682 return (now++).toString(36);
3683}
3684
3685function fileToObject(file) {
3686 if (!file.uid) {
3687 file.uid = uid();
3688 }
3689
3690 return {
3691 lastModified: file.lastModified,
3692 lastModifiedDate: file.lastModifiedDate,
3693 name: file.filename || file.name,
3694 size: file.size,
3695 type: file.type,
3696 uid: file.uid,
3697 error: file.error,
3698 percent: 0,
3699 originFileObj: file
3700 };
3701}
3702
3703function getFileItem(file, fileList) {
3704 var matchKey = file.uid !== undefined ? 'uid' : 'name';
3705 return fileList.filter(function (item) {
3706 return item[matchKey] === file[matchKey];
3707 })[0];
3708}
3709
3710function removeFileItem(file, fileList) {
3711 var matchKey = file.uid !== undefined ? 'uid' : 'name';
3712 var removed = fileList.filter(function (item) {
3713 return item[matchKey] !== file[matchKey];
3714 });
3715 if (removed.length === fileList.length) {
3716 return null;
3717 }
3718 return removed;
3719}
3720
3721// https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL
3722function previewFile(file, callback) {
3723 var reader = new FileReader();
3724 reader.onloadend = function () {
3725 return callback(reader.result);
3726 };
3727 reader.readAsDataURL(file);
3728}
3729
3730var errorCode = exports.errorCode = {
3731 EXCEED_LIMIT: 'EXCEED_LIMIT',
3732 BEFOREUPLOAD_REJECT: 'BEFOREUPLOAD_REJECT',
3733 RESPONSE_FAIL: 'RESPONSE_FAIL'
3734};
3735
3736/***/ }),
3737/* 43 */
3738/***/ (function(module, exports, __webpack_require__) {
3739
3740"use strict";
3741
3742
3743exports.__esModule = true;
3744exports.setTime = setTime;
3745exports.switchInputType = switchInputType;
3746exports.mode2unit = mode2unit;
3747exports.fmtValue = fmtValue;
3748exports.isValueChanged = isValueChanged;
3749
3750var _util = __webpack_require__(6);
3751
3752var _constant = __webpack_require__(44);
3753
3754function setTime(targetVal, sourceVal) {
3755 if (sourceVal && targetVal) {
3756 return targetVal.hour(sourceVal.hour()).minute(sourceVal.minute()).second(sourceVal.second()).millisecond(sourceVal.millisecond());
3757 }
3758 return targetVal;
3759}
3760
3761function switchInputType(inputType) {
3762 var BEGIN = _constant.DATE_INPUT_TYPE.BEGIN,
3763 END = _constant.DATE_INPUT_TYPE.END;
3764
3765 return inputType === BEGIN ? END : BEGIN;
3766}
3767
3768function mode2unit(mode) {
3769 return mode === 'date' ? 'day' : mode;
3770}
3771
3772/**
3773 * 获取输入框值
3774 * @param {*} value 日期值
3775 * @param {string | funtion} format 日期格式
3776 * @returns {string | string[]}
3777 */
3778function fmtValue(value, fmt) {
3779 var formater = function formater(v, idx) {
3780 var _fmt = fmt;
3781
3782 if (Array.isArray(fmt)) {
3783 _fmt = fmt[idx];
3784 }
3785
3786 return v ? typeof _fmt === 'function' ? _fmt(v) : v.format(_fmt) : '';
3787 };
3788
3789 return Array.isArray(value) ? value.map(function (v, idx) {
3790 return formater(v, idx);
3791 }) : formater(value);
3792}
3793
3794/**
3795 * 判断值是否改变
3796 * @param {dayjs.ConfigType}} newValue
3797 * @param {dayjs.ConfigType} oldValue
3798 * @returns {boolean}
3799 */
3800function isValueChanged(newValue, oldValue) {
3801 return Array.isArray(newValue) ? isValueChanged(newValue[0], oldValue && oldValue[0]) || isValueChanged(newValue[1], oldValue && oldValue[1]) : newValue !== oldValue && !(0, _util.datejs)(newValue).isSame(oldValue);
3802}
3803
3804/***/ }),
3805/* 44 */
3806/***/ (function(module, exports, __webpack_require__) {
3807
3808"use strict";
3809
3810
3811exports.__esModule = true;
3812var DATE_PICKER_TYPE = exports.DATE_PICKER_TYPE = {
3813 DATE: 'date',
3814 RANGE: 'range'
3815};
3816
3817var DATE_INPUT_TYPE = exports.DATE_INPUT_TYPE = {
3818 BEGIN: 0,
3819 END: 1
3820};
3821
3822var DATE_PICKER_MODE = exports.DATE_PICKER_MODE = {
3823 DATE: 'date',
3824 MONTH: 'month',
3825 WEEK: 'week',
3826 QUARTER: 'quarter',
3827 YEAR: 'year'
3828};
3829
3830/***/ }),
3831/* 45 */
3832/***/ (function(module, exports, __webpack_require__) {
3833
3834"use strict";
3835
3836
3837exports.__esModule = true;
3838exports.error = undefined;
3839
3840var _typeof2 = __webpack_require__(14);
3841
3842var _typeof3 = _interopRequireDefault(_typeof2);
3843
3844var _propTypes = __webpack_require__(5);
3845
3846var PT = _interopRequireWildcard(_propTypes);
3847
3848var _constant = __webpack_require__(44);
3849
3850var _util = __webpack_require__(6);
3851
3852function _interopRequireWildcard(obj) {
3853 if (obj && obj.__esModule) {
3854 return obj;
3855 } else {
3856 var newObj = {};if (obj != null) {
3857 for (var key in obj) {
3858 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
3859 }
3860 }newObj.default = obj;return newObj;
3861 }
3862}
3863
3864function _interopRequireDefault(obj) {
3865 return obj && obj.__esModule ? obj : { default: obj };
3866}
3867
3868var error = exports.error = function error(propName, ComponentName) {
3869 return new Error('Invalid prop ' + propName + ' supplied to ' + ComponentName + '. Validation failed.');
3870};
3871
3872function checkType(type) {
3873 return function (props, propName, componentName) {
3874 var value = props[propName];
3875 if (value) {
3876 if (!Array.isArray(value)) {
3877 value = [value];
3878 }
3879
3880 if (!Array.isArray(type)) {
3881 type = [type];
3882 }
3883
3884 if (!value.every(function (v) {
3885 return type.includes(typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v));
3886 })) {
3887 throw error(propName, componentName);
3888 }
3889 }
3890 };
3891}
3892
3893var SharedPT = {
3894 date: function date(props, propName, componentName) {
3895 if (propName in props && !(0, _util.datejs)(props.propName).isValid()) {
3896 throw error(propName, componentName);
3897 }
3898 },
3899 value: function value(props, propName, componentName) {
3900 if (props[propName]) {
3901 var value = props[propName];
3902
3903 if (props.type === _constant.DATE_PICKER_TYPE.RANGE && !Array.isArray(value)) {
3904 throw error(propName, componentName);
3905 } else if (!Array.isArray(value)) {
3906 value = [value];
3907 }
3908
3909 if (!value.every(function (v) {
3910 return !v || (0, _util.datejs)(v).isValid();
3911 })) {
3912 throw error(propName, componentName);
3913 }
3914 }
3915 },
3916
3917 format: checkType(['string', 'function']),
3918 inputValue: checkType('string'),
3919 placeholder: checkType('string'),
3920 readOnly: checkType('boolean'),
3921 disabled: checkType('boolean'),
3922 disabledTime: checkType(['object', 'function']),
3923 ariaLabel: checkType('string'),
3924
3925 render: PT.oneOfType([PT.node, PT.func]),
3926 mode: PT.oneOf(Object.values(_constant.DATE_PICKER_MODE)),
3927 type: PT.oneOf(Object.values(_constant.DATE_PICKER_TYPE)),
3928 inputType: PT.oneOf(Object.values(_constant.DATE_INPUT_TYPE)),
3929 size: PT.oneOf(['small', 'medium', 'large'])
3930};
3931
3932exports.default = SharedPT;
3933
3934/***/ }),
3935/* 46 */
3936/***/ (function(module, exports, __webpack_require__) {
3937
3938var isObject = __webpack_require__(33);
3939module.exports = function (it) {
3940 if (!isObject(it)) throw TypeError(it + ' is not an object!');
3941 return it;
3942};
3943
3944
3945/***/ }),
3946/* 47 */
3947/***/ (function(module, exports) {
3948
3949module.exports = function (exec) {
3950 try {
3951 return !!exec();
3952 } catch (e) {
3953 return true;
3954 }
3955};
3956
3957
3958/***/ }),
3959/* 48 */
3960/***/ (function(module, exports, __webpack_require__) {
3961
3962"use strict";
3963
3964
3965exports.__esModule = true;
3966
3967var _configProvider = __webpack_require__(9);
3968
3969var _configProvider2 = _interopRequireDefault(_configProvider);
3970
3971var _dropdown = __webpack_require__(286);
3972
3973var _dropdown2 = _interopRequireDefault(_dropdown);
3974
3975function _interopRequireDefault(obj) {
3976 return obj && obj.__esModule ? obj : { default: obj };
3977}
3978
3979exports.default = _configProvider2.default.config(_dropdown2.default, {
3980 transform: /* istanbul ignore next */function transform(props, deprecated) {
3981 if ('triggerType' in props) {
3982 var triggerType = Array.isArray(props.triggerType) ? [].concat(props.triggerType) : [props.triggerType];
3983
3984 if (triggerType.indexOf('focus') > -1) {
3985 deprecated('triggerType[focus]', 'triggerType[hover, click]', 'Balloon');
3986 }
3987 }
3988
3989 return props;
3990 }
3991});
3992module.exports = exports['default'];
3993
3994/***/ }),
3995/* 49 */
3996/***/ (function(module, exports, __webpack_require__) {
3997
3998"use strict";
3999
4000
4001exports.__esModule = true;
4002
4003var _extends2 = __webpack_require__(1);
4004
4005var _extends3 = _interopRequireDefault(_extends2);
4006
4007var _objectWithoutProperties2 = __webpack_require__(8);
4008
4009var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
4010
4011var _checkbox = __webpack_require__(145);
4012
4013var _checkbox2 = _interopRequireDefault(_checkbox);
4014
4015var _checkboxGroup = __webpack_require__(292);
4016
4017var _checkboxGroup2 = _interopRequireDefault(_checkboxGroup);
4018
4019var _configProvider = __webpack_require__(9);
4020
4021var _configProvider2 = _interopRequireDefault(_configProvider);
4022
4023function _interopRequireDefault(obj) {
4024 return obj && obj.__esModule ? obj : { default: obj };
4025}
4026
4027_checkbox2.default.Group = _configProvider2.default.config(_checkboxGroup2.default, {
4028 transform: /* istanbul ignore next */function transform(props, deprecated) {
4029 if ('itemDirection' in props) {
4030 deprecated('itemDirection', 'direction', 'Checkbox');
4031 var _props = props,
4032 itemDirection = _props.itemDirection,
4033 others = (0, _objectWithoutProperties3.default)(_props, ['itemDirection']);
4034
4035 props = (0, _extends3.default)({ direction: itemDirection }, others);
4036 }
4037
4038 return props;
4039 }
4040});
4041
4042exports.default = _checkbox2.default;
4043module.exports = exports['default'];
4044
4045/***/ }),
4046/* 50 */
4047/***/ (function(module, exports, __webpack_require__) {
4048
4049"use strict";
4050
4051
4052exports.__esModule = true;
4053
4054var _extends2 = __webpack_require__(1);
4055
4056var _extends3 = _interopRequireDefault(_extends2);
4057
4058var _objectWithoutProperties2 = __webpack_require__(8);
4059
4060var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
4061
4062var _radio = __webpack_require__(148);
4063
4064var _radio2 = _interopRequireDefault(_radio);
4065
4066var _radioGroup = __webpack_require__(294);
4067
4068var _radioGroup2 = _interopRequireDefault(_radioGroup);
4069
4070var _configProvider = __webpack_require__(9);
4071
4072var _configProvider2 = _interopRequireDefault(_configProvider);
4073
4074function _interopRequireDefault(obj) {
4075 return obj && obj.__esModule ? obj : { default: obj };
4076}
4077
4078_radio2.default.Group = _configProvider2.default.config(_radioGroup2.default, {
4079 transform: /* istanbul ignore next */function transform(props, deprecated) {
4080 if ('itemDirection' in props) {
4081 deprecated('itemDirection', 'direction', 'Radio');
4082 var _props = props,
4083 itemDirection = _props.itemDirection,
4084 others = (0, _objectWithoutProperties3.default)(_props, ['itemDirection']);
4085
4086 props = (0, _extends3.default)({ direction: itemDirection }, others);
4087 }
4088
4089 return props;
4090 }
4091});
4092
4093exports.default = _radio2.default;
4094module.exports = exports['default'];
4095
4096/***/ }),
4097/* 51 */
4098/***/ (function(module, exports, __webpack_require__) {
4099
4100"use strict";
4101
4102
4103exports.__esModule = true;
4104
4105var _configProvider = __webpack_require__(9);
4106
4107var _configProvider2 = _interopRequireDefault(_configProvider);
4108
4109var _virtualList = __webpack_require__(311);
4110
4111var _virtualList2 = _interopRequireDefault(_virtualList);
4112
4113function _interopRequireDefault(obj) {
4114 return obj && obj.__esModule ? obj : { default: obj };
4115}
4116
4117exports.default = _configProvider2.default.config(_virtualList2.default);
4118module.exports = exports['default'];
4119
4120/***/ }),
4121/* 52 */
4122/***/ (function(module, exports, __webpack_require__) {
4123
4124"use strict";
4125
4126
4127exports.__esModule = true;
4128// 日历shape
4129var CALENDAR_SHAPE = exports.CALENDAR_SHAPE = {
4130 FULLSCREEN: 'fullscreen',
4131 CARD: 'card',
4132 PANEL: 'panel'
4133};
4134
4135// 日历模式
4136var CALENDAR_MODE = exports.CALENDAR_MODE = {
4137 MONTH: 'month',
4138 YEAR: 'year'
4139};
4140
4141// 日期面板的模式
4142var DATE_PANEL_MODE = exports.DATE_PANEL_MODE = {
4143 DATE: 'date',
4144 WEEK: 'week',
4145 MONTH: 'month',
4146 QUARTER: 'quarter',
4147 YEAR: 'year',
4148 DECADE: 'decade'
4149};
4150
4151// 单元格选中状态
4152var CALENDAR_CELL_STATE = exports.CALENDAR_CELL_STATE = {
4153 UN_SELECTED: 0,
4154 SELECTED: 1,
4155 SELECTED_BEGIN: 2,
4156 SELECTED_END: 3
4157};
4158
4159/***/ }),
4160/* 53 */
4161/***/ (function(module, exports) {
4162
4163module.exports = function (bitmap, value) {
4164 return {
4165 enumerable: !(bitmap & 1),
4166 configurable: !(bitmap & 2),
4167 writable: !(bitmap & 4),
4168 value: value
4169 };
4170};
4171
4172
4173/***/ }),
4174/* 54 */
4175/***/ (function(module, exports, __webpack_require__) {
4176
4177// 19.1.2.14 / 15.2.3.14 Object.keys(O)
4178var $keys = __webpack_require__(115);
4179var enumBugKeys = __webpack_require__(75);
4180
4181module.exports = Object.keys || function keys(O) {
4182 return $keys(O, enumBugKeys);
4183};
4184
4185
4186/***/ }),
4187/* 55 */
4188/***/ (function(module, exports) {
4189
4190module.exports = true;
4191
4192
4193/***/ }),
4194/* 56 */
4195/***/ (function(module, exports) {
4196
4197var id = 0;
4198var px = Math.random();
4199module.exports = function (key) {
4200 return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
4201};
4202
4203
4204/***/ }),
4205/* 57 */
4206/***/ (function(module, exports) {
4207
4208exports.f = {}.propertyIsEnumerable;
4209
4210
4211/***/ }),
4212/* 58 */
4213/***/ (function(module, __webpack_exports__, __webpack_require__) {
4214
4215"use strict";
4216Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
4217/* WEBPACK VAR INJECTION */(function(global) {/**
4218 * A collection of shims that provide minimal functionality of the ES6 collections.
4219 *
4220 * These implementations are not meant to be used outside of the ResizeObserver
4221 * modules as they cover only a limited range of use cases.
4222 */
4223/* eslint-disable require-jsdoc, valid-jsdoc */
4224var MapShim = (function () {
4225 if (typeof Map !== 'undefined') {
4226 return Map;
4227 }
4228 /**
4229 * Returns index in provided array that matches the specified key.
4230 *
4231 * @param {Array<Array>} arr
4232 * @param {*} key
4233 * @returns {number}
4234 */
4235 function getIndex(arr, key) {
4236 var result = -1;
4237 arr.some(function (entry, index) {
4238 if (entry[0] === key) {
4239 result = index;
4240 return true;
4241 }
4242 return false;
4243 });
4244 return result;
4245 }
4246 return /** @class */ (function () {
4247 function class_1() {
4248 this.__entries__ = [];
4249 }
4250 Object.defineProperty(class_1.prototype, "size", {
4251 /**
4252 * @returns {boolean}
4253 */
4254 get: function () {
4255 return this.__entries__.length;
4256 },
4257 enumerable: true,
4258 configurable: true
4259 });
4260 /**
4261 * @param {*} key
4262 * @returns {*}
4263 */
4264 class_1.prototype.get = function (key) {
4265 var index = getIndex(this.__entries__, key);
4266 var entry = this.__entries__[index];
4267 return entry && entry[1];
4268 };
4269 /**
4270 * @param {*} key
4271 * @param {*} value
4272 * @returns {void}
4273 */
4274 class_1.prototype.set = function (key, value) {
4275 var index = getIndex(this.__entries__, key);
4276 if (~index) {
4277 this.__entries__[index][1] = value;
4278 }
4279 else {
4280 this.__entries__.push([key, value]);
4281 }
4282 };
4283 /**
4284 * @param {*} key
4285 * @returns {void}
4286 */
4287 class_1.prototype.delete = function (key) {
4288 var entries = this.__entries__;
4289 var index = getIndex(entries, key);
4290 if (~index) {
4291 entries.splice(index, 1);
4292 }
4293 };
4294 /**
4295 * @param {*} key
4296 * @returns {void}
4297 */
4298 class_1.prototype.has = function (key) {
4299 return !!~getIndex(this.__entries__, key);
4300 };
4301 /**
4302 * @returns {void}
4303 */
4304 class_1.prototype.clear = function () {
4305 this.__entries__.splice(0);
4306 };
4307 /**
4308 * @param {Function} callback
4309 * @param {*} [ctx=null]
4310 * @returns {void}
4311 */
4312 class_1.prototype.forEach = function (callback, ctx) {
4313 if (ctx === void 0) { ctx = null; }
4314 for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {
4315 var entry = _a[_i];
4316 callback.call(ctx, entry[1], entry[0]);
4317 }
4318 };
4319 return class_1;
4320 }());
4321})();
4322
4323/**
4324 * Detects whether window and document objects are available in current environment.
4325 */
4326var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;
4327
4328// Returns global object of a current environment.
4329var global$1 = (function () {
4330 if (typeof global !== 'undefined' && global.Math === Math) {
4331 return global;
4332 }
4333 if (typeof self !== 'undefined' && self.Math === Math) {
4334 return self;
4335 }
4336 if (typeof window !== 'undefined' && window.Math === Math) {
4337 return window;
4338 }
4339 // eslint-disable-next-line no-new-func
4340 return Function('return this')();
4341})();
4342
4343/**
4344 * A shim for the requestAnimationFrame which falls back to the setTimeout if
4345 * first one is not supported.
4346 *
4347 * @returns {number} Requests' identifier.
4348 */
4349var requestAnimationFrame$1 = (function () {
4350 if (typeof requestAnimationFrame === 'function') {
4351 // It's required to use a bounded function because IE sometimes throws
4352 // an "Invalid calling object" error if rAF is invoked without the global
4353 // object on the left hand side.
4354 return requestAnimationFrame.bind(global$1);
4355 }
4356 return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };
4357})();
4358
4359// Defines minimum timeout before adding a trailing call.
4360var trailingTimeout = 2;
4361/**
4362 * Creates a wrapper function which ensures that provided callback will be
4363 * invoked only once during the specified delay period.
4364 *
4365 * @param {Function} callback - Function to be invoked after the delay period.
4366 * @param {number} delay - Delay after which to invoke callback.
4367 * @returns {Function}
4368 */
4369function throttle (callback, delay) {
4370 var leadingCall = false, trailingCall = false, lastCallTime = 0;
4371 /**
4372 * Invokes the original callback function and schedules new invocation if
4373 * the "proxy" was called during current request.
4374 *
4375 * @returns {void}
4376 */
4377 function resolvePending() {
4378 if (leadingCall) {
4379 leadingCall = false;
4380 callback();
4381 }
4382 if (trailingCall) {
4383 proxy();
4384 }
4385 }
4386 /**
4387 * Callback invoked after the specified delay. It will further postpone
4388 * invocation of the original function delegating it to the
4389 * requestAnimationFrame.
4390 *
4391 * @returns {void}
4392 */
4393 function timeoutCallback() {
4394 requestAnimationFrame$1(resolvePending);
4395 }
4396 /**
4397 * Schedules invocation of the original function.
4398 *
4399 * @returns {void}
4400 */
4401 function proxy() {
4402 var timeStamp = Date.now();
4403 if (leadingCall) {
4404 // Reject immediately following calls.
4405 if (timeStamp - lastCallTime < trailingTimeout) {
4406 return;
4407 }
4408 // Schedule new call to be in invoked when the pending one is resolved.
4409 // This is important for "transitions" which never actually start
4410 // immediately so there is a chance that we might miss one if change
4411 // happens amids the pending invocation.
4412 trailingCall = true;
4413 }
4414 else {
4415 leadingCall = true;
4416 trailingCall = false;
4417 setTimeout(timeoutCallback, delay);
4418 }
4419 lastCallTime = timeStamp;
4420 }
4421 return proxy;
4422}
4423
4424// Minimum delay before invoking the update of observers.
4425var REFRESH_DELAY = 20;
4426// A list of substrings of CSS properties used to find transition events that
4427// might affect dimensions of observed elements.
4428var transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];
4429// Check if MutationObserver is available.
4430var mutationObserverSupported = typeof MutationObserver !== 'undefined';
4431/**
4432 * Singleton controller class which handles updates of ResizeObserver instances.
4433 */
4434var ResizeObserverController = /** @class */ (function () {
4435 /**
4436 * Creates a new instance of ResizeObserverController.
4437 *
4438 * @private
4439 */
4440 function ResizeObserverController() {
4441 /**
4442 * Indicates whether DOM listeners have been added.
4443 *
4444 * @private {boolean}
4445 */
4446 this.connected_ = false;
4447 /**
4448 * Tells that controller has subscribed for Mutation Events.
4449 *
4450 * @private {boolean}
4451 */
4452 this.mutationEventsAdded_ = false;
4453 /**
4454 * Keeps reference to the instance of MutationObserver.
4455 *
4456 * @private {MutationObserver}
4457 */
4458 this.mutationsObserver_ = null;
4459 /**
4460 * A list of connected observers.
4461 *
4462 * @private {Array<ResizeObserverSPI>}
4463 */
4464 this.observers_ = [];
4465 this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);
4466 this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);
4467 }
4468 /**
4469 * Adds observer to observers list.
4470 *
4471 * @param {ResizeObserverSPI} observer - Observer to be added.
4472 * @returns {void}
4473 */
4474 ResizeObserverController.prototype.addObserver = function (observer) {
4475 if (!~this.observers_.indexOf(observer)) {
4476 this.observers_.push(observer);
4477 }
4478 // Add listeners if they haven't been added yet.
4479 if (!this.connected_) {
4480 this.connect_();
4481 }
4482 };
4483 /**
4484 * Removes observer from observers list.
4485 *
4486 * @param {ResizeObserverSPI} observer - Observer to be removed.
4487 * @returns {void}
4488 */
4489 ResizeObserverController.prototype.removeObserver = function (observer) {
4490 var observers = this.observers_;
4491 var index = observers.indexOf(observer);
4492 // Remove observer if it's present in registry.
4493 if (~index) {
4494 observers.splice(index, 1);
4495 }
4496 // Remove listeners if controller has no connected observers.
4497 if (!observers.length && this.connected_) {
4498 this.disconnect_();
4499 }
4500 };
4501 /**
4502 * Invokes the update of observers. It will continue running updates insofar
4503 * it detects changes.
4504 *
4505 * @returns {void}
4506 */
4507 ResizeObserverController.prototype.refresh = function () {
4508 var changesDetected = this.updateObservers_();
4509 // Continue running updates if changes have been detected as there might
4510 // be future ones caused by CSS transitions.
4511 if (changesDetected) {
4512 this.refresh();
4513 }
4514 };
4515 /**
4516 * Updates every observer from observers list and notifies them of queued
4517 * entries.
4518 *
4519 * @private
4520 * @returns {boolean} Returns "true" if any observer has detected changes in
4521 * dimensions of it's elements.
4522 */
4523 ResizeObserverController.prototype.updateObservers_ = function () {
4524 // Collect observers that have active observations.
4525 var activeObservers = this.observers_.filter(function (observer) {
4526 return observer.gatherActive(), observer.hasActive();
4527 });
4528 // Deliver notifications in a separate cycle in order to avoid any
4529 // collisions between observers, e.g. when multiple instances of
4530 // ResizeObserver are tracking the same element and the callback of one
4531 // of them changes content dimensions of the observed target. Sometimes
4532 // this may result in notifications being blocked for the rest of observers.
4533 activeObservers.forEach(function (observer) { return observer.broadcastActive(); });
4534 return activeObservers.length > 0;
4535 };
4536 /**
4537 * Initializes DOM listeners.
4538 *
4539 * @private
4540 * @returns {void}
4541 */
4542 ResizeObserverController.prototype.connect_ = function () {
4543 // Do nothing if running in a non-browser environment or if listeners
4544 // have been already added.
4545 if (!isBrowser || this.connected_) {
4546 return;
4547 }
4548 // Subscription to the "Transitionend" event is used as a workaround for
4549 // delayed transitions. This way it's possible to capture at least the
4550 // final state of an element.
4551 document.addEventListener('transitionend', this.onTransitionEnd_);
4552 window.addEventListener('resize', this.refresh);
4553 if (mutationObserverSupported) {
4554 this.mutationsObserver_ = new MutationObserver(this.refresh);
4555 this.mutationsObserver_.observe(document, {
4556 attributes: true,
4557 childList: true,
4558 characterData: true,
4559 subtree: true
4560 });
4561 }
4562 else {
4563 document.addEventListener('DOMSubtreeModified', this.refresh);
4564 this.mutationEventsAdded_ = true;
4565 }
4566 this.connected_ = true;
4567 };
4568 /**
4569 * Removes DOM listeners.
4570 *
4571 * @private
4572 * @returns {void}
4573 */
4574 ResizeObserverController.prototype.disconnect_ = function () {
4575 // Do nothing if running in a non-browser environment or if listeners
4576 // have been already removed.
4577 if (!isBrowser || !this.connected_) {
4578 return;
4579 }
4580 document.removeEventListener('transitionend', this.onTransitionEnd_);
4581 window.removeEventListener('resize', this.refresh);
4582 if (this.mutationsObserver_) {
4583 this.mutationsObserver_.disconnect();
4584 }
4585 if (this.mutationEventsAdded_) {
4586 document.removeEventListener('DOMSubtreeModified', this.refresh);
4587 }
4588 this.mutationsObserver_ = null;
4589 this.mutationEventsAdded_ = false;
4590 this.connected_ = false;
4591 };
4592 /**
4593 * "Transitionend" event handler.
4594 *
4595 * @private
4596 * @param {TransitionEvent} event
4597 * @returns {void}
4598 */
4599 ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {
4600 var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;
4601 // Detect whether transition may affect dimensions of an element.
4602 var isReflowProperty = transitionKeys.some(function (key) {
4603 return !!~propertyName.indexOf(key);
4604 });
4605 if (isReflowProperty) {
4606 this.refresh();
4607 }
4608 };
4609 /**
4610 * Returns instance of the ResizeObserverController.
4611 *
4612 * @returns {ResizeObserverController}
4613 */
4614 ResizeObserverController.getInstance = function () {
4615 if (!this.instance_) {
4616 this.instance_ = new ResizeObserverController();
4617 }
4618 return this.instance_;
4619 };
4620 /**
4621 * Holds reference to the controller's instance.
4622 *
4623 * @private {ResizeObserverController}
4624 */
4625 ResizeObserverController.instance_ = null;
4626 return ResizeObserverController;
4627}());
4628
4629/**
4630 * Defines non-writable/enumerable properties of the provided target object.
4631 *
4632 * @param {Object} target - Object for which to define properties.
4633 * @param {Object} props - Properties to be defined.
4634 * @returns {Object} Target object.
4635 */
4636var defineConfigurable = (function (target, props) {
4637 for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {
4638 var key = _a[_i];
4639 Object.defineProperty(target, key, {
4640 value: props[key],
4641 enumerable: false,
4642 writable: false,
4643 configurable: true
4644 });
4645 }
4646 return target;
4647});
4648
4649/**
4650 * Returns the global object associated with provided element.
4651 *
4652 * @param {Object} target
4653 * @returns {Object}
4654 */
4655var getWindowOf = (function (target) {
4656 // Assume that the element is an instance of Node, which means that it
4657 // has the "ownerDocument" property from which we can retrieve a
4658 // corresponding global object.
4659 var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;
4660 // Return the local global object if it's not possible extract one from
4661 // provided element.
4662 return ownerGlobal || global$1;
4663});
4664
4665// Placeholder of an empty content rectangle.
4666var emptyRect = createRectInit(0, 0, 0, 0);
4667/**
4668 * Converts provided string to a number.
4669 *
4670 * @param {number|string} value
4671 * @returns {number}
4672 */
4673function toFloat(value) {
4674 return parseFloat(value) || 0;
4675}
4676/**
4677 * Extracts borders size from provided styles.
4678 *
4679 * @param {CSSStyleDeclaration} styles
4680 * @param {...string} positions - Borders positions (top, right, ...)
4681 * @returns {number}
4682 */
4683function getBordersSize(styles) {
4684 var positions = [];
4685 for (var _i = 1; _i < arguments.length; _i++) {
4686 positions[_i - 1] = arguments[_i];
4687 }
4688 return positions.reduce(function (size, position) {
4689 var value = styles['border-' + position + '-width'];
4690 return size + toFloat(value);
4691 }, 0);
4692}
4693/**
4694 * Extracts paddings sizes from provided styles.
4695 *
4696 * @param {CSSStyleDeclaration} styles
4697 * @returns {Object} Paddings box.
4698 */
4699function getPaddings(styles) {
4700 var positions = ['top', 'right', 'bottom', 'left'];
4701 var paddings = {};
4702 for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {
4703 var position = positions_1[_i];
4704 var value = styles['padding-' + position];
4705 paddings[position] = toFloat(value);
4706 }
4707 return paddings;
4708}
4709/**
4710 * Calculates content rectangle of provided SVG element.
4711 *
4712 * @param {SVGGraphicsElement} target - Element content rectangle of which needs
4713 * to be calculated.
4714 * @returns {DOMRectInit}
4715 */
4716function getSVGContentRect(target) {
4717 var bbox = target.getBBox();
4718 return createRectInit(0, 0, bbox.width, bbox.height);
4719}
4720/**
4721 * Calculates content rectangle of provided HTMLElement.
4722 *
4723 * @param {HTMLElement} target - Element for which to calculate the content rectangle.
4724 * @returns {DOMRectInit}
4725 */
4726function getHTMLElementContentRect(target) {
4727 // Client width & height properties can't be
4728 // used exclusively as they provide rounded values.
4729 var clientWidth = target.clientWidth, clientHeight = target.clientHeight;
4730 // By this condition we can catch all non-replaced inline, hidden and
4731 // detached elements. Though elements with width & height properties less
4732 // than 0.5 will be discarded as well.
4733 //
4734 // Without it we would need to implement separate methods for each of
4735 // those cases and it's not possible to perform a precise and performance
4736 // effective test for hidden elements. E.g. even jQuery's ':visible' filter
4737 // gives wrong results for elements with width & height less than 0.5.
4738 if (!clientWidth && !clientHeight) {
4739 return emptyRect;
4740 }
4741 var styles = getWindowOf(target).getComputedStyle(target);
4742 var paddings = getPaddings(styles);
4743 var horizPad = paddings.left + paddings.right;
4744 var vertPad = paddings.top + paddings.bottom;
4745 // Computed styles of width & height are being used because they are the
4746 // only dimensions available to JS that contain non-rounded values. It could
4747 // be possible to utilize the getBoundingClientRect if only it's data wasn't
4748 // affected by CSS transformations let alone paddings, borders and scroll bars.
4749 var width = toFloat(styles.width), height = toFloat(styles.height);
4750 // Width & height include paddings and borders when the 'border-box' box
4751 // model is applied (except for IE).
4752 if (styles.boxSizing === 'border-box') {
4753 // Following conditions are required to handle Internet Explorer which
4754 // doesn't include paddings and borders to computed CSS dimensions.
4755 //
4756 // We can say that if CSS dimensions + paddings are equal to the "client"
4757 // properties then it's either IE, and thus we don't need to subtract
4758 // anything, or an element merely doesn't have paddings/borders styles.
4759 if (Math.round(width + horizPad) !== clientWidth) {
4760 width -= getBordersSize(styles, 'left', 'right') + horizPad;
4761 }
4762 if (Math.round(height + vertPad) !== clientHeight) {
4763 height -= getBordersSize(styles, 'top', 'bottom') + vertPad;
4764 }
4765 }
4766 // Following steps can't be applied to the document's root element as its
4767 // client[Width/Height] properties represent viewport area of the window.
4768 // Besides, it's as well not necessary as the <html> itself neither has
4769 // rendered scroll bars nor it can be clipped.
4770 if (!isDocumentElement(target)) {
4771 // In some browsers (only in Firefox, actually) CSS width & height
4772 // include scroll bars size which can be removed at this step as scroll
4773 // bars are the only difference between rounded dimensions + paddings
4774 // and "client" properties, though that is not always true in Chrome.
4775 var vertScrollbar = Math.round(width + horizPad) - clientWidth;
4776 var horizScrollbar = Math.round(height + vertPad) - clientHeight;
4777 // Chrome has a rather weird rounding of "client" properties.
4778 // E.g. for an element with content width of 314.2px it sometimes gives
4779 // the client width of 315px and for the width of 314.7px it may give
4780 // 314px. And it doesn't happen all the time. So just ignore this delta
4781 // as a non-relevant.
4782 if (Math.abs(vertScrollbar) !== 1) {
4783 width -= vertScrollbar;
4784 }
4785 if (Math.abs(horizScrollbar) !== 1) {
4786 height -= horizScrollbar;
4787 }
4788 }
4789 return createRectInit(paddings.left, paddings.top, width, height);
4790}
4791/**
4792 * Checks whether provided element is an instance of the SVGGraphicsElement.
4793 *
4794 * @param {Element} target - Element to be checked.
4795 * @returns {boolean}
4796 */
4797var isSVGGraphicsElement = (function () {
4798 // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement
4799 // interface.
4800 if (typeof SVGGraphicsElement !== 'undefined') {
4801 return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };
4802 }
4803 // If it's so, then check that element is at least an instance of the
4804 // SVGElement and that it has the "getBBox" method.
4805 // eslint-disable-next-line no-extra-parens
4806 return function (target) { return (target instanceof getWindowOf(target).SVGElement &&
4807 typeof target.getBBox === 'function'); };
4808})();
4809/**
4810 * Checks whether provided element is a document element (<html>).
4811 *
4812 * @param {Element} target - Element to be checked.
4813 * @returns {boolean}
4814 */
4815function isDocumentElement(target) {
4816 return target === getWindowOf(target).document.documentElement;
4817}
4818/**
4819 * Calculates an appropriate content rectangle for provided html or svg element.
4820 *
4821 * @param {Element} target - Element content rectangle of which needs to be calculated.
4822 * @returns {DOMRectInit}
4823 */
4824function getContentRect(target) {
4825 if (!isBrowser) {
4826 return emptyRect;
4827 }
4828 if (isSVGGraphicsElement(target)) {
4829 return getSVGContentRect(target);
4830 }
4831 return getHTMLElementContentRect(target);
4832}
4833/**
4834 * Creates rectangle with an interface of the DOMRectReadOnly.
4835 * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly
4836 *
4837 * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.
4838 * @returns {DOMRectReadOnly}
4839 */
4840function createReadOnlyRect(_a) {
4841 var x = _a.x, y = _a.y, width = _a.width, height = _a.height;
4842 // If DOMRectReadOnly is available use it as a prototype for the rectangle.
4843 var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;
4844 var rect = Object.create(Constr.prototype);
4845 // Rectangle's properties are not writable and non-enumerable.
4846 defineConfigurable(rect, {
4847 x: x, y: y, width: width, height: height,
4848 top: y,
4849 right: x + width,
4850 bottom: height + y,
4851 left: x
4852 });
4853 return rect;
4854}
4855/**
4856 * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.
4857 * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit
4858 *
4859 * @param {number} x - X coordinate.
4860 * @param {number} y - Y coordinate.
4861 * @param {number} width - Rectangle's width.
4862 * @param {number} height - Rectangle's height.
4863 * @returns {DOMRectInit}
4864 */
4865function createRectInit(x, y, width, height) {
4866 return { x: x, y: y, width: width, height: height };
4867}
4868
4869/**
4870 * Class that is responsible for computations of the content rectangle of
4871 * provided DOM element and for keeping track of it's changes.
4872 */
4873var ResizeObservation = /** @class */ (function () {
4874 /**
4875 * Creates an instance of ResizeObservation.
4876 *
4877 * @param {Element} target - Element to be observed.
4878 */
4879 function ResizeObservation(target) {
4880 /**
4881 * Broadcasted width of content rectangle.
4882 *
4883 * @type {number}
4884 */
4885 this.broadcastWidth = 0;
4886 /**
4887 * Broadcasted height of content rectangle.
4888 *
4889 * @type {number}
4890 */
4891 this.broadcastHeight = 0;
4892 /**
4893 * Reference to the last observed content rectangle.
4894 *
4895 * @private {DOMRectInit}
4896 */
4897 this.contentRect_ = createRectInit(0, 0, 0, 0);
4898 this.target = target;
4899 }
4900 /**
4901 * Updates content rectangle and tells whether it's width or height properties
4902 * have changed since the last broadcast.
4903 *
4904 * @returns {boolean}
4905 */
4906 ResizeObservation.prototype.isActive = function () {
4907 var rect = getContentRect(this.target);
4908 this.contentRect_ = rect;
4909 return (rect.width !== this.broadcastWidth ||
4910 rect.height !== this.broadcastHeight);
4911 };
4912 /**
4913 * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data
4914 * from the corresponding properties of the last observed content rectangle.
4915 *
4916 * @returns {DOMRectInit} Last observed content rectangle.
4917 */
4918 ResizeObservation.prototype.broadcastRect = function () {
4919 var rect = this.contentRect_;
4920 this.broadcastWidth = rect.width;
4921 this.broadcastHeight = rect.height;
4922 return rect;
4923 };
4924 return ResizeObservation;
4925}());
4926
4927var ResizeObserverEntry = /** @class */ (function () {
4928 /**
4929 * Creates an instance of ResizeObserverEntry.
4930 *
4931 * @param {Element} target - Element that is being observed.
4932 * @param {DOMRectInit} rectInit - Data of the element's content rectangle.
4933 */
4934 function ResizeObserverEntry(target, rectInit) {
4935 var contentRect = createReadOnlyRect(rectInit);
4936 // According to the specification following properties are not writable
4937 // and are also not enumerable in the native implementation.
4938 //
4939 // Property accessors are not being used as they'd require to define a
4940 // private WeakMap storage which may cause memory leaks in browsers that
4941 // don't support this type of collections.
4942 defineConfigurable(this, { target: target, contentRect: contentRect });
4943 }
4944 return ResizeObserverEntry;
4945}());
4946
4947var ResizeObserverSPI = /** @class */ (function () {
4948 /**
4949 * Creates a new instance of ResizeObserver.
4950 *
4951 * @param {ResizeObserverCallback} callback - Callback function that is invoked
4952 * when one of the observed elements changes it's content dimensions.
4953 * @param {ResizeObserverController} controller - Controller instance which
4954 * is responsible for the updates of observer.
4955 * @param {ResizeObserver} callbackCtx - Reference to the public
4956 * ResizeObserver instance which will be passed to callback function.
4957 */
4958 function ResizeObserverSPI(callback, controller, callbackCtx) {
4959 /**
4960 * Collection of resize observations that have detected changes in dimensions
4961 * of elements.
4962 *
4963 * @private {Array<ResizeObservation>}
4964 */
4965 this.activeObservations_ = [];
4966 /**
4967 * Registry of the ResizeObservation instances.
4968 *
4969 * @private {Map<Element, ResizeObservation>}
4970 */
4971 this.observations_ = new MapShim();
4972 if (typeof callback !== 'function') {
4973 throw new TypeError('The callback provided as parameter 1 is not a function.');
4974 }
4975 this.callback_ = callback;
4976 this.controller_ = controller;
4977 this.callbackCtx_ = callbackCtx;
4978 }
4979 /**
4980 * Starts observing provided element.
4981 *
4982 * @param {Element} target - Element to be observed.
4983 * @returns {void}
4984 */
4985 ResizeObserverSPI.prototype.observe = function (target) {
4986 if (!arguments.length) {
4987 throw new TypeError('1 argument required, but only 0 present.');
4988 }
4989 // Do nothing if current environment doesn't have the Element interface.
4990 if (typeof Element === 'undefined' || !(Element instanceof Object)) {
4991 return;
4992 }
4993 if (!(target instanceof getWindowOf(target).Element)) {
4994 throw new TypeError('parameter 1 is not of type "Element".');
4995 }
4996 var observations = this.observations_;
4997 // Do nothing if element is already being observed.
4998 if (observations.has(target)) {
4999 return;
5000 }
5001 observations.set(target, new ResizeObservation(target));
5002 this.controller_.addObserver(this);
5003 // Force the update of observations.
5004 this.controller_.refresh();
5005 };
5006 /**
5007 * Stops observing provided element.
5008 *
5009 * @param {Element} target - Element to stop observing.
5010 * @returns {void}
5011 */
5012 ResizeObserverSPI.prototype.unobserve = function (target) {
5013 if (!arguments.length) {
5014 throw new TypeError('1 argument required, but only 0 present.');
5015 }
5016 // Do nothing if current environment doesn't have the Element interface.
5017 if (typeof Element === 'undefined' || !(Element instanceof Object)) {
5018 return;
5019 }
5020 if (!(target instanceof getWindowOf(target).Element)) {
5021 throw new TypeError('parameter 1 is not of type "Element".');
5022 }
5023 var observations = this.observations_;
5024 // Do nothing if element is not being observed.
5025 if (!observations.has(target)) {
5026 return;
5027 }
5028 observations.delete(target);
5029 if (!observations.size) {
5030 this.controller_.removeObserver(this);
5031 }
5032 };
5033 /**
5034 * Stops observing all elements.
5035 *
5036 * @returns {void}
5037 */
5038 ResizeObserverSPI.prototype.disconnect = function () {
5039 this.clearActive();
5040 this.observations_.clear();
5041 this.controller_.removeObserver(this);
5042 };
5043 /**
5044 * Collects observation instances the associated element of which has changed
5045 * it's content rectangle.
5046 *
5047 * @returns {void}
5048 */
5049 ResizeObserverSPI.prototype.gatherActive = function () {
5050 var _this = this;
5051 this.clearActive();
5052 this.observations_.forEach(function (observation) {
5053 if (observation.isActive()) {
5054 _this.activeObservations_.push(observation);
5055 }
5056 });
5057 };
5058 /**
5059 * Invokes initial callback function with a list of ResizeObserverEntry
5060 * instances collected from active resize observations.
5061 *
5062 * @returns {void}
5063 */
5064 ResizeObserverSPI.prototype.broadcastActive = function () {
5065 // Do nothing if observer doesn't have active observations.
5066 if (!this.hasActive()) {
5067 return;
5068 }
5069 var ctx = this.callbackCtx_;
5070 // Create ResizeObserverEntry instance for every active observation.
5071 var entries = this.activeObservations_.map(function (observation) {
5072 return new ResizeObserverEntry(observation.target, observation.broadcastRect());
5073 });
5074 this.callback_.call(ctx, entries, ctx);
5075 this.clearActive();
5076 };
5077 /**
5078 * Clears the collection of active observations.
5079 *
5080 * @returns {void}
5081 */
5082 ResizeObserverSPI.prototype.clearActive = function () {
5083 this.activeObservations_.splice(0);
5084 };
5085 /**
5086 * Tells whether observer has active observations.
5087 *
5088 * @returns {boolean}
5089 */
5090 ResizeObserverSPI.prototype.hasActive = function () {
5091 return this.activeObservations_.length > 0;
5092 };
5093 return ResizeObserverSPI;
5094}());
5095
5096// Registry of internal observers. If WeakMap is not available use current shim
5097// for the Map collection as it has all required methods and because WeakMap
5098// can't be fully polyfilled anyway.
5099var observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();
5100/**
5101 * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation
5102 * exposing only those methods and properties that are defined in the spec.
5103 */
5104var ResizeObserver = /** @class */ (function () {
5105 /**
5106 * Creates a new instance of ResizeObserver.
5107 *
5108 * @param {ResizeObserverCallback} callback - Callback that is invoked when
5109 * dimensions of the observed elements change.
5110 */
5111 function ResizeObserver(callback) {
5112 if (!(this instanceof ResizeObserver)) {
5113 throw new TypeError('Cannot call a class as a function.');
5114 }
5115 if (!arguments.length) {
5116 throw new TypeError('1 argument required, but only 0 present.');
5117 }
5118 var controller = ResizeObserverController.getInstance();
5119 var observer = new ResizeObserverSPI(callback, controller, this);
5120 observers.set(this, observer);
5121 }
5122 return ResizeObserver;
5123}());
5124// Expose public methods of ResizeObserver.
5125[
5126 'observe',
5127 'unobserve',
5128 'disconnect'
5129].forEach(function (method) {
5130 ResizeObserver.prototype[method] = function () {
5131 var _a;
5132 return (_a = observers.get(this))[method].apply(_a, arguments);
5133 };
5134});
5135
5136var index = (function () {
5137 // Export existing implementation if available.
5138 if (typeof global$1.ResizeObserver !== 'undefined') {
5139 return global$1.ResizeObserver;
5140 }
5141 return ResizeObserver;
5142})();
5143
5144/* harmony default export */ __webpack_exports__["default"] = (index);
5145
5146/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(122)))
5147
5148/***/ }),
5149/* 59 */
5150/***/ (function(module, exports, __webpack_require__) {
5151
5152"use strict";
5153
5154
5155exports.__esModule = true;
5156
5157var _extends2 = __webpack_require__(1);
5158
5159var _extends3 = _interopRequireDefault(_extends2);
5160
5161var _objectWithoutProperties2 = __webpack_require__(8);
5162
5163var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5164
5165var _configProvider = __webpack_require__(9);
5166
5167var _configProvider2 = _interopRequireDefault(_configProvider);
5168
5169var _balloon = __webpack_require__(275);
5170
5171var _balloon2 = _interopRequireDefault(_balloon);
5172
5173var _tooltip = __webpack_require__(284);
5174
5175var _tooltip2 = _interopRequireDefault(_tooltip);
5176
5177var _inner = __webpack_require__(86);
5178
5179var _inner2 = _interopRequireDefault(_inner);
5180
5181function _interopRequireDefault(obj) {
5182 return obj && obj.__esModule ? obj : { default: obj };
5183}
5184
5185_balloon2.default.Tooltip = _configProvider2.default.config(_tooltip2.default, {
5186 transform: /* istanbul ignore next */function transform(props, deprecated) {
5187 if ('text' in props) {
5188 deprecated('text', 'children', 'Tooltip');
5189 var _props = props,
5190 text = _props.text,
5191 others = (0, _objectWithoutProperties3.default)(_props, ['text']);
5192
5193 props = (0, _extends3.default)({ children: text }, others);
5194 }
5195
5196 return props;
5197 }
5198});
5199_balloon2.default.Inner = _inner2.default;
5200
5201exports.default = _configProvider2.default.config(_balloon2.default, {
5202 transform: /* istanbul ignore next */function transform(props, deprecated) {
5203 if (props.alignment) {
5204 deprecated('alignment', 'alignEdge', 'Balloon');
5205 var _props2 = props,
5206 alignment = _props2.alignment,
5207 others = (0, _objectWithoutProperties3.default)(_props2, ['alignment']);
5208
5209 props = (0, _extends3.default)({ alignEdge: alignment === 'edge' }, others);
5210 }
5211 if (props.onCloseClick) {
5212 deprecated('onCloseClick', 'onVisibleChange(visible, [type = "closeClick"])', 'Balloon');
5213
5214 var _props3 = props,
5215 onCloseClick = _props3.onCloseClick,
5216 onVisibleChange = _props3.onVisibleChange,
5217 _others = (0, _objectWithoutProperties3.default)(_props3, ['onCloseClick', 'onVisibleChange']);
5218
5219 var newOnVisibleChange = function newOnVisibleChange(visible, type) {
5220 if (type === 'closeClick') {
5221 onCloseClick();
5222 }
5223 if (onVisibleChange) {
5224 onVisibleChange(visible, type);
5225 }
5226 };
5227 props = (0, _extends3.default)({ onVisibleChange: newOnVisibleChange }, _others);
5228 }
5229
5230 return props;
5231 }
5232});
5233module.exports = exports['default'];
5234
5235/***/ }),
5236/* 60 */
5237/***/ (function(module, exports, __webpack_require__) {
5238
5239"use strict";
5240
5241
5242exports.__esModule = true;
5243exports.default = findNode;
5244
5245var _reactDom = __webpack_require__(12);
5246
5247function findNode(target, param) {
5248 if (!target) {
5249 return null;
5250 }
5251
5252 if (typeof target === 'string') {
5253 return document.getElementById(target);
5254 }
5255
5256 if (typeof target === 'function') {
5257 try {
5258 target = target(param);
5259 } catch (err) {
5260 target = null;
5261 }
5262 }
5263
5264 if (!target) {
5265 return null;
5266 }
5267
5268 try {
5269 return (0, _reactDom.findDOMNode)(target);
5270 } catch (err) {
5271 return target;
5272 }
5273}
5274module.exports = exports['default'];
5275
5276/***/ }),
5277/* 61 */
5278/***/ (function(module, exports) {
5279
5280function _extends() {
5281 module.exports = _extends = Object.assign || function (target) {
5282 for (var i = 1; i < arguments.length; i++) {
5283 var source = arguments[i];
5284
5285 for (var key in source) {
5286 if (Object.prototype.hasOwnProperty.call(source, key)) {
5287 target[key] = source[key];
5288 }
5289 }
5290 }
5291
5292 return target;
5293 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
5294 return _extends.apply(this, arguments);
5295}
5296
5297module.exports = _extends, module.exports.__esModule = true, module.exports["default"] = module.exports;
5298
5299/***/ }),
5300/* 62 */
5301/***/ (function(module, exports, __webpack_require__) {
5302
5303"use strict";
5304
5305
5306exports.__esModule = true;
5307
5308var _objectWithoutProperties2 = __webpack_require__(8);
5309
5310var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5311
5312var _typeof2 = __webpack_require__(14);
5313
5314var _typeof3 = _interopRequireDefault(_typeof2);
5315
5316var _extends2 = __webpack_require__(1);
5317
5318var _extends3 = _interopRequireDefault(_extends2);
5319
5320exports.isSingle = isSingle;
5321exports.isNull = isNull;
5322exports.escapeForReg = escapeForReg;
5323exports.filter = filter;
5324exports.loopMap = loopMap;
5325exports.parseDataSourceFromChildren = parseDataSourceFromChildren;
5326exports.normalizeDataSource = normalizeDataSource;
5327exports.flattingDataSource = flattingDataSource;
5328exports.filterDataSource = filterDataSource;
5329exports.getValueDataSource = getValueDataSource;
5330exports.valueToSelectKey = valueToSelectKey;
5331
5332var _react = __webpack_require__(0);
5333
5334function _interopRequireDefault(obj) {
5335 return obj && obj.__esModule ? obj : { default: obj };
5336}
5337
5338/**
5339 * util module
5340 */
5341
5342/**
5343 * 是否是单选模式
5344 * @param {string} mode
5345 * @return {boolean} is single mode
5346 */
5347function isSingle(mode) {
5348 return !mode || mode === 'single';
5349}
5350
5351/**
5352 * 在 Select 中,认为 null 和 undefined 都是空值
5353 * @param {*} n any object
5354 * @return {boolean}
5355 */
5356function isNull(n) {
5357 return n === null || n === undefined;
5358}
5359
5360/**
5361 * 将字符串中的正则表达式关键字符添加转义
5362 * @param {string} str
5363 * @return {string}
5364 */
5365function escapeForReg(str) {
5366 return str.replace(/[-/\\^$*+?.()|[\]{}]/g, '\\$&');
5367}
5368
5369/**
5370 * filter by key
5371 * @param {string} key filter key
5372 * @param {object} item item object
5373 * @return {boolean} it's filtered
5374 */
5375function filter(key, item) {
5376 var _key = escapeForReg('' + key);
5377 var regExp = new RegExp('(' + _key + ')', 'ig');
5378
5379 return regExp.test('' + item.value) || regExp.test('' + item.label);
5380}
5381
5382/**
5383 * loop map
5384 * @param {Array} dataSource
5385 * @param {function} callback
5386 * @return {Array}
5387 * ----
5388 * @callback ~loopCallback
5389 * @param {object} option
5390 */
5391function loopMap(dataSource, callback) {
5392 var result = [];
5393 dataSource.forEach(function (option) {
5394 if (option.children) {
5395 var children = loopMap(option.children, callback);
5396 result.push((0, _extends3.default)({}, option, {
5397 children: children
5398 }));
5399 } else {
5400 // eslint-disable-next-line callback-return
5401 var tmp = callback(option);
5402 tmp && result.push(tmp);
5403 }
5404 });
5405
5406 return result;
5407}
5408
5409/**
5410 * Parse dataSource from MenuItem
5411 * @static
5412 * @param {Array<Element>} children
5413 * @param {number} [deep=0] recursion deep level
5414 */
5415function parseDataSourceFromChildren(children) {
5416 var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5417
5418 var source = [];
5419
5420 _react.Children.forEach(children, function (child, index) {
5421 if (!child) {
5422 return;
5423 }
5424 var type = child.type,
5425 childProps = child.props;
5426
5427 var item2 = { deep: deep };
5428
5429 var isOption = false;
5430 var isOptionGroup = false;
5431
5432 if (typeof type === 'function' && type._typeMark === 'next_select_option' || type === 'option') {
5433 isOption = true;
5434 }
5435 if (typeof type === 'function' && type._typeMark === 'next_select_option_group' || type === 'optgroup') {
5436 isOptionGroup = true;
5437 }
5438
5439 if (!isOption && !isOptionGroup) {
5440 return;
5441 }
5442
5443 if (isOption) {
5444 // option
5445 // If children is a string, it can be used as value
5446 var isStrChild = typeof childProps.children === 'string';
5447 // value > key > string children > index
5448 item2.value = 'value' in childProps ? childProps.value : 'key' in childProps ? childProps.key : isStrChild ? childProps.children : '' + index;
5449
5450 item2.label = childProps.label || childProps.children || '' + item2.value;
5451 if ('title' in childProps) {
5452 item2.title = childProps.title;
5453 }
5454 childProps.disabled === true && (item2.disabled = true);
5455 // You can put your extra data here, and use it in `itemRender` or `labelRender`
5456 (0, _extends3.default)(item2, childProps['data-extra'] || {});
5457 } else if (isOptionGroup && deep < 1) {
5458 // option group
5459 item2.label = childProps.label || 'Group';
5460 // parse children nodes
5461 item2.children = parseDataSourceFromChildren(childProps.children, deep + 1);
5462 }
5463
5464 source.push(item2);
5465 });
5466
5467 return source;
5468}
5469
5470/**
5471 * Normalize dataSource
5472 * @static
5473 * @param {Array} dataSource
5474 * @param {number} [deep=0] recursion deep level
5475 * ----
5476 * value priority: value > 'index'
5477 * label priority: label > 'value' > 'index'
5478 * disabled: disabled === true
5479 */
5480function normalizeDataSource(dataSource) {
5481 var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
5482 var showDataSourceChildren = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
5483
5484 var source = [];
5485
5486 dataSource.forEach(function (item, index) {
5487 // enable array of basic type
5488 if (/string|boolean|number/.test(typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) || item === null || item === undefined) {
5489 item = { label: '' + item, value: item };
5490 }
5491
5492 // filter off addon item
5493 if (item && item.__isAddon) {
5494 return;
5495 }
5496
5497 var item2 = { deep: deep };
5498 // deep < 1: only 2 level allowed
5499 if (Array.isArray(item.children) && deep < 1 && showDataSourceChildren) {
5500 // handle group
5501 item2.label = item.label || item.value || 'Group ' + index;
5502 // parse children
5503 item2.children = normalizeDataSource(item.children, deep + 1);
5504 } else {
5505 var _item = item,
5506 value = _item.value,
5507 label = _item.label,
5508 disabled = _item.disabled,
5509 title = _item.title,
5510 others = (0, _objectWithoutProperties3.default)(_item, ['value', 'label', 'disabled', 'title']);
5511 // undefined 认为是没传取 index 值替代
5512
5513 item2.value = typeof value !== 'undefined' ? value : '' + index;
5514 item2.label = label || '' + item2.value;
5515 if ('title' in item) {
5516 item2.title = title;
5517 }
5518 disabled === true && (item2.disabled = true);
5519
5520 (0, _extends3.default)(item2, others);
5521 }
5522
5523 source.push(item2);
5524 });
5525
5526 return source;
5527}
5528
5529/**
5530 * Get flatten dataSource
5531 * @static
5532 * @param {Array} dataSource structured dataSource
5533 * @return {Array}
5534 */
5535function flattingDataSource(dataSource) {
5536 var source = [];
5537
5538 dataSource.forEach(function (item) {
5539 if (Array.isArray(item.children)) {
5540 source.push.apply(source, flattingDataSource(item.children));
5541 } else {
5542 source.push(item);
5543 }
5544 });
5545
5546 return source;
5547}
5548
5549function filterDataSource(dataSource, key, filter, addonKey) {
5550 if (!Array.isArray(dataSource)) {
5551 return [];
5552 }
5553 if (typeof key === 'undefined' || key === null) {
5554 return [].concat(dataSource);
5555 }
5556
5557 var addKey = true;
5558 var menuDataSource = loopMap(dataSource, function (option) {
5559 if (key === '' + option.value) {
5560 addKey = false;
5561 }
5562 return filter(key, option) && !option.__isAddon && option;
5563 });
5564
5565 // if key not in menuDataSource, add key to dataSource
5566 if (addonKey && key && addKey) {
5567 menuDataSource.unshift({
5568 value: key,
5569 label: key,
5570 __isAddon: true
5571 });
5572 }
5573
5574 return menuDataSource;
5575}
5576
5577function getKeyItemByValue(value, valueMap) {
5578 var item = void 0;
5579
5580 if ((typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) === 'object') {
5581 if (value.hasOwnProperty('value')) {
5582 item = value;
5583 } else {
5584 item = (0, _extends3.default)({
5585 value: ''
5586 }, value);
5587 }
5588 } else {
5589 item = valueMap['' + value] || {
5590 value: value,
5591 label: value
5592 };
5593 }
5594
5595 return item;
5596}
5597
5598/**
5599 * compute valueDataSource by new value
5600 * @param {Array/String} value 数据
5601 * @param {Object} mapValueDS 上个value的缓存数据 value => {value,label} 的映射关系表
5602 * @param {*} mapMenuDS 通过 dataSource 建立 value => {value,label} 的映射关系表
5603 * @returns {Object} value: [value]; valueDS: [{value,label}]; mapValueDS: {value: {value,label}}
5604 */
5605function getValueDataSource(value, mapValueDS, mapMenuDS) {
5606 if (isNull(value)) {
5607 return {};
5608 }
5609
5610 var newValue = [];
5611 var newValueDS = [];
5612 var newMapValueDS = {};
5613 var _newMapDS = (0, _extends3.default)({}, mapValueDS, mapMenuDS);
5614
5615 if (Array.isArray(value)) {
5616 value.forEach(function (v) {
5617 var item = getKeyItemByValue(v, _newMapDS);
5618
5619 newValueDS.push(item);
5620 newMapValueDS['' + item.value] = item;
5621 newValue.push(item.value);
5622 });
5623
5624 return {
5625 value: newValue, // [value]
5626 valueDS: newValueDS, // [{value,label}]
5627 mapValueDS: newMapValueDS // {value: {value,label}}
5628 };
5629 } else {
5630 var _mapValueDS;
5631
5632 var item = getKeyItemByValue(value, _newMapDS);
5633
5634 return {
5635 value: item.value,
5636 valueDS: item,
5637 mapValueDS: (_mapValueDS = {}, _mapValueDS['' + item.value] = item, _mapValueDS)
5638 };
5639 }
5640}
5641
5642/**
5643 * Get flatten dataSource
5644 * @static
5645 * @param {any} value structured dataSource
5646 * @return {String}
5647 */
5648function valueToSelectKey(value) {
5649 var val = void 0;
5650 if ((typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) === 'object' && value.hasOwnProperty('value')) {
5651 val = value.value;
5652 } else {
5653 val = value;
5654 }
5655 return '' + val;
5656}
5657
5658/**
5659 * UP Down 改进双向链表方法
5660 */
5661// function DoubleLinkList(element){
5662// this.prev = null;
5663// this.next = null;
5664// this.element = element;
5665// }
5666//
5667// export function mapDoubleLinkList(dataSource){
5668//
5669// const mapDS = {};
5670// let doubleLink = null;
5671//
5672// let head = null;
5673// let tail = null;
5674//
5675// function append(element) {
5676// if (!doubleLink) {
5677// doubleLink = new DoubleLinkList(element);
5678// head = doubleLink;
5679// tail = doubleLink;
5680// return doubleLink;
5681// }
5682//
5683// const node = new DoubleLinkList(element);
5684// tail.next = node;
5685// node.prev = tail;
5686// tail = node;
5687//
5688// return tail;
5689// }
5690//
5691// dataSource.forEach((item => {
5692// if (item.disabled) {
5693// return;
5694// }
5695// mapDS[`${item.value}`] = append(item);
5696// }));
5697//
5698// return mapDS;
5699// }
5700//
5701
5702/***/ }),
5703/* 63 */
5704/***/ (function(module, exports, __webpack_require__) {
5705
5706"use strict";
5707
5708
5709exports.__esModule = true;
5710exports.default = undefined;
5711
5712var _extends2 = __webpack_require__(1);
5713
5714var _extends3 = _interopRequireDefault(_extends2);
5715
5716var _typeof2 = __webpack_require__(14);
5717
5718var _typeof3 = _interopRequireDefault(_typeof2);
5719
5720var _objectWithoutProperties2 = __webpack_require__(8);
5721
5722var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5723
5724var _classCallCheck2 = __webpack_require__(2);
5725
5726var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
5727
5728var _possibleConstructorReturn2 = __webpack_require__(3);
5729
5730var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
5731
5732var _inherits2 = __webpack_require__(4);
5733
5734var _inherits3 = _interopRequireDefault(_inherits2);
5735
5736var _class, _temp2;
5737
5738var _react = __webpack_require__(0);
5739
5740var _react2 = _interopRequireDefault(_react);
5741
5742var _propTypes = __webpack_require__(5);
5743
5744var _propTypes2 = _interopRequireDefault(_propTypes);
5745
5746var _classnames2 = __webpack_require__(7);
5747
5748var _classnames3 = _interopRequireDefault(_classnames2);
5749
5750var _row = __webpack_require__(64);
5751
5752var _row2 = _interopRequireDefault(_row);
5753
5754var _cell = __webpack_require__(65);
5755
5756var _cell2 = _interopRequireDefault(_cell);
5757
5758var _util = __webpack_require__(6);
5759
5760function _interopRequireDefault(obj) {
5761 return obj && obj.__esModule ? obj : { default: obj };
5762}
5763
5764var noop = function noop() {};
5765
5766var Body = (_temp2 = _class = function (_React$Component) {
5767 (0, _inherits3.default)(Body, _React$Component);
5768
5769 function Body() {
5770 var _temp, _this, _ret;
5771
5772 (0, _classCallCheck3.default)(this, Body);
5773
5774 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
5775 args[_key] = arguments[_key];
5776 }
5777
5778 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getRowRef = function (i, row) {
5779 _this.props.rowRef(i, row);
5780 }, _this.onRowClick = function (record, index, e) {
5781 _this.props.onRowClick(record, index, e);
5782 }, _this.onRowMouseEnter = function (record, index, e) {
5783 _this.props.onRowMouseEnter(record, index, e);
5784 }, _this.onRowMouseLeave = function (record, index, e) {
5785 _this.props.onRowMouseLeave(record, index, e);
5786 }, _this.onBodyMouseOver = function (e) {
5787 _this.props.onBodyMouseOver(e);
5788 }, _this.onBodyMouseOut = function (e) {
5789 _this.props.onBodyMouseOut(e);
5790 }, _this.getEmptyNode = function (ref) {
5791 _this.emptyNode = ref;
5792 }, _this.setEmptyDomStyle = function () {
5793 var tableEl = _this.props.tableEl;
5794 // getboundingclientRect 获取的是除 margin 之外的内容区,可能带小数点,不四舍五入
5795
5796 var borderLeftWidth = _util.dom.getStyle(tableEl, 'borderLeftWidth');
5797 var tableWidth = tableEl && tableEl.getBoundingClientRect().width;
5798 var totalWidth = tableWidth - borderLeftWidth - 1 || '100%';
5799
5800 _util.dom.setStyle(_this.emptyNode, { width: totalWidth });
5801 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
5802 }
5803
5804 Body.prototype.componentDidMount = function componentDidMount() {
5805 _util.events.on(window, 'resize', this.setEmptyDomStyle);
5806 };
5807
5808 Body.prototype.componentDidUpdate = function componentDidUpdate() {
5809 this.setEmptyDomStyle();
5810 };
5811
5812 Body.prototype.componentWillUnmount = function componentWillUnmount() {
5813 _util.events.off(window, 'resize', this.setEmptyDomStyle);
5814 };
5815
5816 Body.prototype.render = function render() {
5817 var _this2 = this;
5818
5819 /*eslint-disable no-unused-vars */
5820 var _props = this.props,
5821 prefix = _props.prefix,
5822 className = _props.className,
5823 children = _props.children,
5824 Tag = _props.component,
5825 colGroup = _props.colGroup,
5826 loading = _props.loading,
5827 emptyContent = _props.emptyContent,
5828 components = _props.components,
5829 getCellProps = _props.getCellProps,
5830 primaryKey = _props.primaryKey,
5831 getRowProps = _props.getRowProps,
5832 dataSource = _props.dataSource,
5833 cellRef = _props.cellRef,
5834 columns = _props.columns,
5835 rowRef = _props.rowRef,
5836 onRowClick = _props.onRowClick,
5837 onRowMouseEnter = _props.onRowMouseEnter,
5838 onRowMouseLeave = _props.onRowMouseLeave,
5839 onBodyMouseOver = _props.onBodyMouseOver,
5840 onBodyMouseOut = _props.onBodyMouseOut,
5841 locale = _props.locale,
5842 pure = _props.pure,
5843 expandedIndexSimulate = _props.expandedIndexSimulate,
5844 tableEl = _props.tableEl,
5845 rtl = _props.rtl,
5846 crossline = _props.crossline,
5847 tableWidth = _props.tableWidth,
5848 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'children', 'component', 'colGroup', 'loading', 'emptyContent', 'components', 'getCellProps', 'primaryKey', 'getRowProps', 'dataSource', 'cellRef', 'columns', 'rowRef', 'onRowClick', 'onRowMouseEnter', 'onRowMouseLeave', 'onBodyMouseOver', 'onBodyMouseOut', 'locale', 'pure', 'expandedIndexSimulate', 'tableEl', 'rtl', 'crossline', 'tableWidth']);
5849
5850 var totalWidth = +(tableEl && tableEl.clientWidth) - 1 || '100%';
5851
5852 var _components$Row = components.Row,
5853 Row = _components$Row === undefined ? _row2.default : _components$Row,
5854 _components$Cell = components.Cell,
5855 Cell = _components$Cell === undefined ? _cell2.default : _components$Cell;
5856
5857 var empty = loading ? _react2.default.createElement('span', null, '\xA0') : emptyContent || locale.empty;
5858 var rows = _react2.default.createElement('tr', null, _react2.default.createElement('td', { colSpan: columns.length }, _react2.default.createElement('div', {
5859 ref: this.getEmptyNode,
5860 className: prefix + 'table-empty',
5861 style: { position: 'sticky', left: 0, overflow: 'hidden', width: totalWidth }
5862 }, empty)));
5863 if (Tag === 'div') {
5864 rows = _react2.default.createElement('table', { role: 'table' }, _react2.default.createElement('tbody', null, rows));
5865 }
5866 if (dataSource.length) {
5867 rows = dataSource.map(function (record, index) {
5868 var _classnames;
5869
5870 var rowProps = {};
5871 // record may be a string
5872 var rowIndex = (typeof record === 'undefined' ? 'undefined' : (0, _typeof3.default)(record)) === 'object' && '__rowIndex' in record ? record.__rowIndex : index;
5873
5874 if (expandedIndexSimulate) {
5875 rowProps = record.__expanded ? {} : getRowProps(record, index / 2);
5876 } else {
5877 rowProps = getRowProps(record, rowIndex);
5878 }
5879
5880 rowProps = rowProps || {};
5881
5882 var rowClass = rowProps.className;
5883 var className = (0, _classnames3.default)((_classnames = {
5884 first: index === 0,
5885 last: index === dataSource.length - 1
5886 }, _classnames[rowClass] = rowClass, _classnames));
5887 var expanded = record.__expanded ? 'expanded' : '';
5888 return _react2.default.createElement(Row, (0, _extends3.default)({
5889 key: '' + (record[primaryKey] || (record[primaryKey] === 0 ? 0 : rowIndex)) + expanded
5890 }, rowProps, {
5891 ref: _this2.getRowRef.bind(_this2, expanded ? rowIndex + '_expanded' : rowIndex),
5892 colGroup: colGroup,
5893 rtl: rtl,
5894 columns: columns,
5895 primaryKey: primaryKey,
5896 record: record,
5897 rowIndex: rowIndex,
5898 __rowIndex: rowIndex,
5899 prefix: prefix,
5900 pure: pure,
5901 cellRef: cellRef,
5902 getCellProps: getCellProps,
5903 className: className,
5904 Cell: Cell,
5905 tableEl: tableEl,
5906 onClick: _this2.onRowClick,
5907 locale: locale,
5908 onMouseEnter: _this2.onRowMouseEnter,
5909 onMouseLeave: _this2.onRowMouseLeave
5910 }));
5911 });
5912 } else {
5913 // 异步设置空数据时的宽度
5914 this.setEmptyDomStyle();
5915 }
5916 var event = crossline ? {
5917 onMouseOver: this.onBodyMouseOver,
5918 onMouseOut: this.onBodyMouseOut
5919 } : {};
5920 return _react2.default.createElement(Tag, (0, _extends3.default)({ className: className }, others, event), rows, children);
5921 };
5922
5923 return Body;
5924}(_react2.default.Component), _class.propTypes = {
5925 loading: _propTypes2.default.bool,
5926 emptyContent: _propTypes2.default.any,
5927 tableEl: _propTypes2.default.any,
5928 prefix: _propTypes2.default.string,
5929 pure: _propTypes2.default.bool,
5930 components: _propTypes2.default.object,
5931 getCellProps: _propTypes2.default.func,
5932 cellRef: _propTypes2.default.func,
5933 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
5934 getRowProps: _propTypes2.default.func,
5935 rowRef: _propTypes2.default.func,
5936 dataSource: _propTypes2.default.array,
5937 children: _propTypes2.default.any,
5938 className: _propTypes2.default.string,
5939 component: _propTypes2.default.string,
5940 colGroup: _propTypes2.default.object,
5941 columns: _propTypes2.default.array,
5942 onRowClick: _propTypes2.default.func,
5943 onRowMouseEnter: _propTypes2.default.func,
5944 onRowMouseLeave: _propTypes2.default.func,
5945 onBodyMouseOver: _propTypes2.default.func,
5946 onBodyMouseOut: _propTypes2.default.func,
5947 locale: _propTypes2.default.object,
5948 crossline: _propTypes2.default.bool,
5949 tableWidth: _propTypes2.default.number
5950}, _class.defaultProps = {
5951 loading: false,
5952 prefix: 'next-',
5953 components: {},
5954 getCellProps: noop,
5955 cellRef: noop,
5956 primaryKey: 'id',
5957 getRowProps: noop,
5958 rowRef: noop,
5959 dataSource: [],
5960 component: 'tbody',
5961 columns: []
5962}, _temp2);
5963Body.displayName = 'Body';
5964exports.default = Body;
5965module.exports = exports['default'];
5966
5967/***/ }),
5968/* 64 */
5969/***/ (function(module, exports, __webpack_require__) {
5970
5971"use strict";
5972
5973
5974exports.__esModule = true;
5975exports.default = undefined;
5976
5977var _extends2 = __webpack_require__(1);
5978
5979var _extends3 = _interopRequireDefault(_extends2);
5980
5981var _objectWithoutProperties2 = __webpack_require__(8);
5982
5983var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
5984
5985var _classCallCheck2 = __webpack_require__(2);
5986
5987var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
5988
5989var _possibleConstructorReturn2 = __webpack_require__(3);
5990
5991var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
5992
5993var _inherits2 = __webpack_require__(4);
5994
5995var _inherits3 = _interopRequireDefault(_inherits2);
5996
5997var _class, _temp2;
5998
5999var _react = __webpack_require__(0);
6000
6001var _react2 = _interopRequireDefault(_react);
6002
6003var _reactDom = __webpack_require__(12);
6004
6005var _propTypes = __webpack_require__(5);
6006
6007var _propTypes2 = _interopRequireDefault(_propTypes);
6008
6009var _classnames3 = __webpack_require__(7);
6010
6011var _classnames4 = _interopRequireDefault(_classnames3);
6012
6013var _util = __webpack_require__(6);
6014
6015var _util2 = __webpack_require__(21);
6016
6017function _interopRequireDefault(obj) {
6018 return obj && obj.__esModule ? obj : { default: obj };
6019}
6020
6021var noop = function noop() {};
6022
6023var Row = (_temp2 = _class = function (_React$Component) {
6024 (0, _inherits3.default)(Row, _React$Component);
6025
6026 function Row() {
6027 var _temp, _this, _ret;
6028
6029 (0, _classCallCheck3.default)(this, Row);
6030
6031 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
6032 args[_key] = arguments[_key];
6033 }
6034
6035 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onClick = function (e) {
6036 var _this$props = _this.props,
6037 record = _this$props.record,
6038 rowIndex = _this$props.rowIndex;
6039
6040 _this.props.onClick(record, rowIndex, e);
6041 }, _this.onMouseEnter = function (e) {
6042 var _this$props2 = _this.props,
6043 record = _this$props2.record,
6044 rowIndex = _this$props2.rowIndex,
6045 __rowIndex = _this$props2.__rowIndex;
6046
6047 var row = __rowIndex || rowIndex;
6048 _this.onRowHover(record, row, true, e);
6049 }, _this.onMouseLeave = function (e) {
6050 var _this$props3 = _this.props,
6051 record = _this$props3.record,
6052 rowIndex = _this$props3.rowIndex,
6053 __rowIndex = _this$props3.__rowIndex;
6054
6055 var row = __rowIndex || rowIndex;
6056 _this.onRowHover(record, row, false, e);
6057 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
6058 }
6059
6060 Row.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
6061 if (nextProps.pure) {
6062 var isEqual = _util.obj.shallowEqual(this.props, nextProps);
6063 return !isEqual;
6064 }
6065
6066 return true;
6067 };
6068
6069 Row.prototype.onRowHover = function onRowHover(record, index, isEnter, e) {
6070 var _props = this.props,
6071 onMouseEnter = _props.onMouseEnter,
6072 onMouseLeave = _props.onMouseLeave,
6073 currentRow = (0, _reactDom.findDOMNode)(this);
6074
6075 if (isEnter) {
6076 onMouseEnter(record, index, e);
6077 currentRow && _util.dom.addClass(currentRow, 'hovered');
6078 } else {
6079 onMouseLeave(record, index, e);
6080 currentRow && _util.dom.removeClass(currentRow, 'hovered');
6081 }
6082 };
6083
6084 Row.prototype.renderCells = function renderCells(record, rowIndex) {
6085 var _this2 = this;
6086
6087 var _props2 = this.props,
6088 Cell = _props2.Cell,
6089 columns = _props2.columns,
6090 getCellProps = _props2.getCellProps,
6091 cellRef = _props2.cellRef,
6092 prefix = _props2.prefix,
6093 primaryKey = _props2.primaryKey,
6094 __rowIndex = _props2.__rowIndex,
6095 pure = _props2.pure,
6096 locale = _props2.locale,
6097 rtl = _props2.rtl;
6098
6099 // use params first, it's for list
6100
6101 rowIndex = rowIndex !== undefined ? rowIndex : this.props.rowIndex;
6102
6103 var lockType = this.context.lockType;
6104
6105 return columns.map(function (child, index) {
6106 var _classnames;
6107
6108 /* eslint-disable no-unused-vars, prefer-const */
6109 var dataIndex = child.dataIndex,
6110 align = child.align,
6111 alignHeader = child.alignHeader,
6112 width = child.width,
6113 colSpan = child.colSpan,
6114 style = child.style,
6115 cellStyle = child.cellStyle,
6116 __colIndex = child.__colIndex,
6117 others = (0, _objectWithoutProperties3.default)(child, ['dataIndex', 'align', 'alignHeader', 'width', 'colSpan', 'style', 'cellStyle', '__colIndex']);
6118
6119 var colIndex = '__colIndex' in child ? __colIndex : index;
6120 // colSpan should show in body td by the way of <Table.Column colSpan={2} />
6121 // tbody's cell merge should only by the way of <Table cellProps={} />
6122
6123 var value = (0, _util2.fetchDataByPath)(record, dataIndex);
6124 var attrs = getCellProps(rowIndex, colIndex, dataIndex, record) || {};
6125
6126 if (_this2.context.notRenderCellIndex) {
6127 var matchCellIndex = _this2.context.notRenderCellIndex.map(function (cellIndex) {
6128 return cellIndex.toString();
6129 }).indexOf([rowIndex, colIndex].toString());
6130 if (matchCellIndex > -1) {
6131 _this2.context.notRenderCellIndex.splice(matchCellIndex, 1);
6132 return null;
6133 }
6134 }
6135 if (attrs.colSpan && attrs.colSpan > 1 || attrs.rowSpan && attrs.rowSpan > 1) {
6136 _this2._getNotRenderCellIndex(colIndex, rowIndex, attrs.colSpan || 1, attrs.rowSpan || 1);
6137 }
6138
6139 var cellClass = attrs.className;
6140 var className = (0, _classnames4.default)((_classnames = {
6141 first: lockType !== 'right' && colIndex === 0,
6142 last: lockType !== 'left' && (colIndex === columns.length - 1 || colIndex + attrs.colSpan === columns.length) }, _classnames[child.className] = child.className, _classnames[cellClass] = cellClass, _classnames));
6143
6144 var newStyle = (0, _extends3.default)({}, attrs.style, cellStyle);
6145
6146 return _react2.default.createElement(Cell, (0, _extends3.default)({
6147 key: __rowIndex + '-' + colIndex
6148 }, others, attrs, {
6149 style: newStyle,
6150 'data-next-table-col': colIndex,
6151 'data-next-table-row': rowIndex,
6152 ref: function ref(cell) {
6153 return cellRef(__rowIndex, colIndex, cell);
6154 },
6155 prefix: prefix,
6156 pure: pure,
6157 primaryKey: primaryKey,
6158 record: record,
6159 className: className,
6160 value: value,
6161 colIndex: colIndex,
6162 rowIndex: rowIndex,
6163 align: align,
6164 locale: locale,
6165 rtl: rtl,
6166 width: width
6167 }));
6168 });
6169 };
6170
6171 Row.prototype._getNotRenderCellIndex = function _getNotRenderCellIndex(colIndex, rowIndex, colSpan, rowSpan) {
6172 var maxColIndex = colSpan;
6173 var maxRowIndex = rowSpan;
6174 var notRenderCellIndex = [];
6175 for (var i = 0; i < maxColIndex; i++) {
6176 for (var j = 0; j < maxRowIndex; j++) {
6177 notRenderCellIndex.push([rowIndex + j, colIndex + i]);
6178 }
6179 }
6180 [].push.apply(this.context.notRenderCellIndex, notRenderCellIndex);
6181 };
6182
6183 Row.prototype.render = function render() {
6184 var _classnames2;
6185
6186 /* eslint-disable no-unused-vars*/
6187 var _props3 = this.props,
6188 prefix = _props3.prefix,
6189 className = _props3.className,
6190 onClick = _props3.onClick,
6191 onMouseEnter = _props3.onMouseEnter,
6192 onMouseLeave = _props3.onMouseLeave,
6193 columns = _props3.columns,
6194 Cell = _props3.Cell,
6195 getCellProps = _props3.getCellProps,
6196 rowIndex = _props3.rowIndex,
6197 record = _props3.record,
6198 __rowIndex = _props3.__rowIndex,
6199 children = _props3.children,
6200 primaryKey = _props3.primaryKey,
6201 cellRef = _props3.cellRef,
6202 colGroup = _props3.colGroup,
6203 pure = _props3.pure,
6204 locale = _props3.locale,
6205 expandedIndexSimulate = _props3.expandedIndexSimulate,
6206 tableEl = _props3.tableEl,
6207 rtl = _props3.rtl,
6208 wrapper = _props3.wrapper,
6209 others = (0, _objectWithoutProperties3.default)(_props3, ['prefix', 'className', 'onClick', 'onMouseEnter', 'onMouseLeave', 'columns', 'Cell', 'getCellProps', 'rowIndex', 'record', '__rowIndex', 'children', 'primaryKey', 'cellRef', 'colGroup', 'pure', 'locale', 'expandedIndexSimulate', 'tableEl', 'rtl', 'wrapper']);
6210
6211 var cls = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'table-row'] = true, _classnames2[className] = className, _classnames2));
6212
6213 var tr = _react2.default.createElement('tr', (0, _extends3.default)({
6214 className: cls,
6215 role: 'row'
6216 }, others, {
6217 onClick: this.onClick,
6218 onMouseEnter: this.onMouseEnter,
6219 onMouseLeave: this.onMouseLeave
6220 }), this.renderCells(record), children);
6221
6222 return wrapper(tr);
6223 };
6224
6225 return Row;
6226}(_react2.default.Component), _class.propTypes = {
6227 prefix: _propTypes2.default.string,
6228 pure: _propTypes2.default.bool,
6229 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
6230 className: _propTypes2.default.string,
6231 columns: _propTypes2.default.array,
6232 record: _propTypes2.default.any,
6233 Cell: _propTypes2.default.func,
6234 rowIndex: _propTypes2.default.number,
6235 getCellProps: _propTypes2.default.func,
6236 onClick: _propTypes2.default.func,
6237 onMouseEnter: _propTypes2.default.func,
6238 onMouseLeave: _propTypes2.default.func,
6239 children: _propTypes2.default.any,
6240 cellRef: _propTypes2.default.func,
6241 colGroup: _propTypes2.default.object,
6242 locale: _propTypes2.default.object,
6243 wrapper: _propTypes2.default.func
6244}, _class.defaultProps = {
6245 prefix: 'next-',
6246 primaryKey: 'id',
6247 columns: [],
6248 record: {},
6249 getCellProps: noop,
6250 onClick: noop,
6251 onMouseEnter: noop,
6252 onMouseLeave: noop,
6253 cellRef: noop,
6254 colGroup: {},
6255 wrapper: function wrapper(row) {
6256 return row;
6257 }
6258}, _class.contextTypes = {
6259 notRenderCellIndex: _propTypes2.default.array,
6260 lockType: _propTypes2.default.oneOf(['left', 'right'])
6261}, _temp2);
6262Row.displayName = 'Row';
6263exports.default = Row;
6264module.exports = exports['default'];
6265
6266/***/ }),
6267/* 65 */
6268/***/ (function(module, exports, __webpack_require__) {
6269
6270"use strict";
6271
6272
6273exports.__esModule = true;
6274exports.default = undefined;
6275
6276var _extends2 = __webpack_require__(1);
6277
6278var _extends3 = _interopRequireDefault(_extends2);
6279
6280var _objectWithoutProperties2 = __webpack_require__(8);
6281
6282var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
6283
6284var _classCallCheck2 = __webpack_require__(2);
6285
6286var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6287
6288var _possibleConstructorReturn2 = __webpack_require__(3);
6289
6290var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6291
6292var _inherits2 = __webpack_require__(4);
6293
6294var _inherits3 = _interopRequireDefault(_inherits2);
6295
6296var _class, _temp;
6297
6298var _react = __webpack_require__(0);
6299
6300var _react2 = _interopRequireDefault(_react);
6301
6302var _propTypes = __webpack_require__(5);
6303
6304var _propTypes2 = _interopRequireDefault(_propTypes);
6305
6306var _classnames2 = __webpack_require__(7);
6307
6308var _classnames3 = _interopRequireDefault(_classnames2);
6309
6310var _util = __webpack_require__(6);
6311
6312function _interopRequireDefault(obj) {
6313 return obj && obj.__esModule ? obj : { default: obj };
6314}
6315
6316var Cell = (_temp = _class = function (_React$Component) {
6317 (0, _inherits3.default)(Cell, _React$Component);
6318
6319 function Cell() {
6320 (0, _classCallCheck3.default)(this, Cell);
6321 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
6322 }
6323
6324 Cell.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {
6325 if (nextProps.pure) {
6326 var isEqual = _util.obj.shallowEqual(this.props, nextProps);
6327 return !isEqual;
6328 }
6329 return true;
6330 };
6331
6332 Cell.prototype.render = function render() {
6333 var _classnames;
6334
6335 /* eslint-disable no-unused-vars */
6336 var _props = this.props,
6337 prefix = _props.prefix,
6338 className = _props.className,
6339 cell = _props.cell,
6340 value = _props.value,
6341 resizable = _props.resizable,
6342 asyncResizable = _props.asyncResizable,
6343 colIndex = _props.colIndex,
6344 rowIndex = _props.rowIndex,
6345 __colIndex = _props.__colIndex,
6346 record = _props.record,
6347 context = _props.context,
6348 align = _props.align,
6349 _props$style = _props.style,
6350 style = _props$style === undefined ? {} : _props$style,
6351 Tag = _props.component,
6352 children = _props.children,
6353 title = _props.title,
6354 width = _props.width,
6355 innerStyle = _props.innerStyle,
6356 primaryKey = _props.primaryKey,
6357 __normalized = _props.__normalized,
6358 filterMode = _props.filterMode,
6359 filterMenuProps = _props.filterMenuProps,
6360 filterProps = _props.filterProps,
6361 filters = _props.filters,
6362 sortable = _props.sortable,
6363 sortDirections = _props.sortDirections,
6364 lock = _props.lock,
6365 pure = _props.pure,
6366 locale = _props.locale,
6367 expandedIndexSimulate = _props.expandedIndexSimulate,
6368 rtl = _props.rtl,
6369 isIconLeft = _props.isIconLeft,
6370 type = _props.type,
6371 htmlTitle = _props.htmlTitle,
6372 wordBreak = _props.wordBreak,
6373 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'cell', 'value', 'resizable', 'asyncResizable', 'colIndex', 'rowIndex', '__colIndex', 'record', 'context', 'align', 'style', 'component', 'children', 'title', 'width', 'innerStyle', 'primaryKey', '__normalized', 'filterMode', 'filterMenuProps', 'filterProps', 'filters', 'sortable', 'sortDirections', 'lock', 'pure', 'locale', 'expandedIndexSimulate', 'rtl', 'isIconLeft', 'type', 'htmlTitle', 'wordBreak']);
6374
6375 var tagStyle = (0, _extends3.default)({}, style);
6376 var cellProps = { value: value, index: rowIndex, record: record, context: context };
6377 var content = cell;
6378 if (_react2.default.isValidElement(content)) {
6379 content = _react2.default.cloneElement(content, cellProps);
6380 } else if (typeof content === 'function') {
6381 content = content(value, rowIndex, record, context);
6382 }
6383 if (align) {
6384 tagStyle.textAlign = align;
6385 if (rtl) {
6386 tagStyle.textAlign = align === 'left' ? 'right' : align === 'right' ? 'left' : align;
6387 }
6388 }
6389 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-cell'] = true, _classnames[prefix + 'table-word-break-' + wordBreak] = !!wordBreak, _classnames[className] = className, _classnames));
6390
6391 return _react2.default.createElement(Tag, (0, _extends3.default)({}, (0, _util.pickAttrs)(others), { className: cls, style: tagStyle, role: 'gridcell' }), _react2.default.createElement('div', {
6392 className: prefix + 'table-cell-wrapper',
6393 ref: this.props.getCellDomRef,
6394 style: innerStyle,
6395 title: htmlTitle,
6396 'data-next-table-col': __colIndex,
6397 'data-next-table-row': rowIndex
6398 }, isIconLeft ? children : content, isIconLeft ? content : children));
6399 };
6400
6401 return Cell;
6402}(_react2.default.Component), _class.propTypes = {
6403 prefix: _propTypes2.default.string,
6404 pure: _propTypes2.default.bool,
6405 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
6406 className: _propTypes2.default.string,
6407 record: _propTypes2.default.any,
6408 value: _propTypes2.default.any,
6409 isIconLeft: _propTypes2.default.bool,
6410 colIndex: _propTypes2.default.number,
6411 rowIndex: _propTypes2.default.number,
6412 // 经过锁列调整后的列索引,lock right的列会从非0开始
6413 __colIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
6414 title: _propTypes2.default.any,
6415 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
6416 context: _propTypes2.default.any,
6417 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
6418 align: _propTypes2.default.oneOf(['left', 'center', 'right']),
6419 component: _propTypes2.default.oneOf(['td', 'th', 'div']),
6420 children: _propTypes2.default.any,
6421 style: _propTypes2.default.object,
6422 innerStyle: _propTypes2.default.object,
6423 filterMode: _propTypes2.default.oneOf(['single', 'multiple']),
6424 filterMenuProps: _propTypes2.default.object,
6425 filterProps: _propTypes2.default.object,
6426 filters: _propTypes2.default.array,
6427 sortable: _propTypes2.default.bool,
6428 sortDirections: _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['desc', 'asc', 'default'])),
6429 lock: _propTypes2.default.any,
6430 type: _propTypes2.default.oneOf(['header', 'body']),
6431 resizable: _propTypes2.default.bool,
6432 asyncResizable: _propTypes2.default.bool,
6433 __normalized: _propTypes2.default.bool
6434}, _class.defaultProps = {
6435 component: 'td',
6436 type: 'body',
6437 isIconLeft: false,
6438 cell: function cell(value) {
6439 return value;
6440 },
6441 prefix: 'next-'
6442}, _temp);
6443Cell.displayName = 'Cell';
6444exports.default = Cell;
6445module.exports = exports['default'];
6446
6447/***/ }),
6448/* 66 */
6449/***/ (function(module, exports, __webpack_require__) {
6450
6451"use strict";
6452
6453
6454exports.__esModule = true;
6455exports.default = undefined;
6456
6457var _extends2 = __webpack_require__(1);
6458
6459var _extends3 = _interopRequireDefault(_extends2);
6460
6461var _objectWithoutProperties2 = __webpack_require__(8);
6462
6463var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
6464
6465var _classCallCheck2 = __webpack_require__(2);
6466
6467var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6468
6469var _possibleConstructorReturn2 = __webpack_require__(3);
6470
6471var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6472
6473var _inherits2 = __webpack_require__(4);
6474
6475var _inherits3 = _interopRequireDefault(_inherits2);
6476
6477var _class, _temp;
6478
6479var _react = __webpack_require__(0);
6480
6481var _react2 = _interopRequireDefault(_react);
6482
6483var _reactDom = __webpack_require__(12);
6484
6485var _propTypes = __webpack_require__(5);
6486
6487var _propTypes2 = _interopRequireDefault(_propTypes);
6488
6489var _header = __webpack_require__(182);
6490
6491var _header2 = _interopRequireDefault(_header);
6492
6493function _interopRequireDefault(obj) {
6494 return obj && obj.__esModule ? obj : { default: obj };
6495}
6496
6497/* eslint-disable react/prefer-stateless-function */
6498var FixedHeader = (_temp = _class = function (_React$Component) {
6499 (0, _inherits3.default)(FixedHeader, _React$Component);
6500
6501 function FixedHeader() {
6502 (0, _classCallCheck3.default)(this, FixedHeader);
6503 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
6504 }
6505
6506 FixedHeader.prototype.componentDidMount = function componentDidMount() {
6507 this.context.getNode('header', (0, _reactDom.findDOMNode)(this));
6508 };
6509
6510 // 这里的 style={{overflow: 'unset'}} 可以删掉,只是为了解决用户js升级但是样式没升级的情况
6511 // 这里的 style={{position: 'absolute', right: 0}} 也可以删掉,是为了兼容用户js升级但是样式没升级的情况
6512
6513
6514 FixedHeader.prototype.render = function render() {
6515 var _props = this.props,
6516 prefix = _props.prefix,
6517 className = _props.className,
6518 colGroup = _props.colGroup,
6519 tableWidth = _props.tableWidth,
6520 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'colGroup', 'tableWidth']);
6521 var _context = this.context,
6522 onFixedScrollSync = _context.onFixedScrollSync,
6523 lockType = _context.lockType;
6524
6525 return _react2.default.createElement('div', { className: className, onScroll: onFixedScrollSync }, _react2.default.createElement('div', { className: prefix + 'table-header-inner', style: { overflow: 'unset' } }, _react2.default.createElement('table', { style: { width: tableWidth } }, colGroup, _react2.default.createElement(_header2.default, (0, _extends3.default)({}, others, { prefix: prefix })))), !lockType && _react2.default.createElement('div', { className: prefix + 'table-header-fixer', style: { position: 'absolute', right: 0 } }));
6526 };
6527
6528 return FixedHeader;
6529}(_react2.default.Component), _class.propTypes = {
6530 children: _propTypes2.default.any,
6531 prefix: _propTypes2.default.string,
6532 className: _propTypes2.default.string,
6533 colGroup: _propTypes2.default.any,
6534 tableWidth: _propTypes2.default.number
6535}, _class.contextTypes = {
6536 getNode: _propTypes2.default.func,
6537 onFixedScrollSync: _propTypes2.default.func,
6538 lockType: _propTypes2.default.oneOf(['left', 'right'])
6539}, _temp);
6540FixedHeader.displayName = 'FixedHeader';
6541exports.default = FixedHeader;
6542module.exports = exports['default'];
6543
6544/***/ }),
6545/* 67 */
6546/***/ (function(module, exports, __webpack_require__) {
6547
6548"use strict";
6549
6550
6551exports.__esModule = true;
6552exports.default = undefined;
6553
6554var _classCallCheck2 = __webpack_require__(2);
6555
6556var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6557
6558var _possibleConstructorReturn2 = __webpack_require__(3);
6559
6560var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6561
6562var _inherits2 = __webpack_require__(4);
6563
6564var _inherits3 = _interopRequireDefault(_inherits2);
6565
6566var _class, _temp;
6567
6568var _react = __webpack_require__(0);
6569
6570var _react2 = _interopRequireDefault(_react);
6571
6572var _propTypes = __webpack_require__(5);
6573
6574var _propTypes2 = _interopRequireDefault(_propTypes);
6575
6576function _interopRequireDefault(obj) {
6577 return obj && obj.__esModule ? obj : { default: obj };
6578}
6579
6580/* eslint-disable react/prefer-stateless-function */
6581var FixedWrapper = (_temp = _class = function (_React$Component) {
6582 (0, _inherits3.default)(FixedWrapper, _React$Component);
6583
6584 function FixedWrapper() {
6585 (0, _classCallCheck3.default)(this, FixedWrapper);
6586 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
6587 }
6588
6589 FixedWrapper.prototype.render = function render() {
6590 var _props = this.props,
6591 children = _props.children,
6592 wrapperContent = _props.wrapperContent,
6593 prefix = _props.prefix;
6594
6595 return _react2.default.createElement('div', { className: prefix + 'table-inner' }, children, wrapperContent);
6596 };
6597
6598 return FixedWrapper;
6599}(_react2.default.Component), _class.propTypes = {
6600 children: _propTypes2.default.any,
6601 prefix: _propTypes2.default.string,
6602 colGroup: _propTypes2.default.any,
6603 wrapperContent: _propTypes2.default.any
6604}, _temp);
6605FixedWrapper.displayName = 'FixedWrapper';
6606exports.default = FixedWrapper;
6607module.exports = exports['default'];
6608
6609/***/ }),
6610/* 68 */
6611/***/ (function(module, exports, __webpack_require__) {
6612
6613"use strict";
6614
6615
6616exports.__esModule = true;
6617
6618var _extends2 = __webpack_require__(1);
6619
6620var _extends3 = _interopRequireDefault(_extends2);
6621
6622var _objectWithoutProperties2 = __webpack_require__(8);
6623
6624var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
6625
6626var _classCallCheck2 = __webpack_require__(2);
6627
6628var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6629
6630var _possibleConstructorReturn2 = __webpack_require__(3);
6631
6632var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6633
6634var _inherits2 = __webpack_require__(4);
6635
6636var _inherits3 = _interopRequireDefault(_inherits2);
6637
6638var _class, _temp;
6639
6640var _react = __webpack_require__(0);
6641
6642var _react2 = _interopRequireDefault(_react);
6643
6644var _propTypes = __webpack_require__(5);
6645
6646var _propTypes2 = _interopRequireDefault(_propTypes);
6647
6648var _configProvider = __webpack_require__(9);
6649
6650var _configProvider2 = _interopRequireDefault(_configProvider);
6651
6652function _interopRequireDefault(obj) {
6653 return obj && obj.__esModule ? obj : { default: obj };
6654}
6655
6656/**
6657 * Typography.Text
6658 * @order 3
6659 */
6660var Text = (_temp = _class = function (_Component) {
6661 (0, _inherits3.default)(Text, _Component);
6662
6663 function Text() {
6664 (0, _classCallCheck3.default)(this, Text);
6665 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
6666 }
6667
6668 Text.prototype.render = function render() {
6669 var _props = this.props,
6670 prefix = _props.prefix,
6671 className = _props.className,
6672 component = _props.component,
6673 strong = _props.strong,
6674 underline = _props.underline,
6675 deleteProp = _props.delete,
6676 code = _props.code,
6677 mark = _props.mark,
6678 rtl = _props.rtl,
6679 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'component', 'strong', 'underline', 'delete', 'code', 'mark', 'rtl']);
6680
6681 var Tag = component;
6682 var children = this.props.children;
6683
6684 if (strong) {
6685 children = _react2.default.createElement('strong', null, children);
6686 }
6687
6688 if (underline) {
6689 children = _react2.default.createElement('u', null, children);
6690 }
6691
6692 if (deleteProp) {
6693 children = _react2.default.createElement('del', null, children);
6694 }
6695
6696 if (code) {
6697 children = _react2.default.createElement('code', null, children);
6698 }
6699
6700 if (mark) {
6701 children = _react2.default.createElement('mark', null, children);
6702 }
6703
6704 if (rtl) {
6705 others.dir = 'rtl';
6706 }
6707
6708 return _react2.default.createElement(Tag, (0, _extends3.default)({}, others, {
6709 className: (className || '') + ' ' + prefix + 'typography'
6710 }), children);
6711 };
6712
6713 return Text;
6714}(_react.Component), _class.propTypes = {
6715 prefix: _propTypes2.default.string,
6716 /**
6717 * 添加删除线样式
6718 */
6719 delete: _propTypes2.default.bool,
6720 /**
6721 * 添加标记样式
6722 */
6723 mark: _propTypes2.default.bool,
6724 /**
6725 * 添加下划线样式
6726 */
6727 underline: _propTypes2.default.bool,
6728 /**
6729 * 是否加粗
6730 */
6731 strong: _propTypes2.default.bool,
6732 /**
6733 * 添加代码样式
6734 */
6735 code: _propTypes2.default.bool,
6736 /**
6737 * 设置标签类型
6738 */
6739 component: _propTypes2.default.elementType,
6740 children: _propTypes2.default.node,
6741 rtl: _propTypes2.default.bool
6742}, _class.defaultProps = {
6743 prefix: 'next-',
6744 delete: false,
6745 mark: false,
6746 underline: false,
6747 strong: false,
6748 code: false,
6749 component: 'span',
6750 rtl: false
6751}, _temp);
6752Text.displayName = 'Text';
6753exports.default = _configProvider2.default.config(Text);
6754module.exports = exports['default'];
6755
6756/***/ }),
6757/* 69 */
6758/***/ (function(module, exports, __webpack_require__) {
6759
6760"use strict";
6761
6762
6763exports.__esModule = true;
6764
6765var _extends2 = __webpack_require__(1);
6766
6767var _extends3 = _interopRequireDefault(_extends2);
6768
6769var _classCallCheck2 = __webpack_require__(2);
6770
6771var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
6772
6773var _possibleConstructorReturn2 = __webpack_require__(3);
6774
6775var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
6776
6777var _inherits2 = __webpack_require__(4);
6778
6779var _inherits3 = _interopRequireDefault(_inherits2);
6780
6781var _class, _temp;
6782
6783var _react = __webpack_require__(0);
6784
6785var _react2 = _interopRequireDefault(_react);
6786
6787var _propTypes = __webpack_require__(5);
6788
6789var _propTypes2 = _interopRequireDefault(_propTypes);
6790
6791var _classnames2 = __webpack_require__(7);
6792
6793var _classnames3 = _interopRequireDefault(_classnames2);
6794
6795var _reactDom = __webpack_require__(12);
6796
6797var _reactLifecyclesCompat = __webpack_require__(10);
6798
6799var _resizeObserverPolyfill = __webpack_require__(58);
6800
6801var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);
6802
6803var _util = __webpack_require__(6);
6804
6805var _configProvider = __webpack_require__(9);
6806
6807var _configProvider2 = _interopRequireDefault(_configProvider);
6808
6809var _util2 = __webpack_require__(263);
6810
6811function _interopRequireDefault(obj) {
6812 return obj && obj.__esModule ? obj : { default: obj };
6813}
6814
6815/** Affix */
6816var Affix = (_temp = _class = function (_React$Component) {
6817 (0, _inherits3.default)(Affix, _React$Component);
6818
6819 Affix._getAffixMode = function _getAffixMode(nextProps) {
6820 var affixMode = {
6821 top: false,
6822 bottom: false,
6823 offset: 0
6824 };
6825 if (!nextProps) {
6826 return affixMode;
6827 }
6828 var offsetTop = nextProps.offsetTop,
6829 offsetBottom = nextProps.offsetBottom;
6830
6831 if (typeof offsetTop !== 'number' && typeof offsetBottom !== 'number') {
6832 // set default
6833 affixMode.top = true;
6834 } else if (typeof offsetTop === 'number') {
6835 affixMode.top = true;
6836 affixMode.bottom = false;
6837 affixMode.offset = offsetTop;
6838 } else if (typeof offsetBottom === 'number') {
6839 affixMode.bottom = true;
6840 affixMode.top = false;
6841 affixMode.offset = offsetBottom;
6842 }
6843
6844 return affixMode;
6845 };
6846
6847 function Affix(props, context) {
6848 (0, _classCallCheck3.default)(this, Affix);
6849
6850 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
6851
6852 _this._clearContainerEvent = function () {
6853 if (_this.timeout) {
6854 clearTimeout(_this.timeout);
6855 _this.timeout = null;
6856 }
6857 var container = _this.props.container;
6858
6859 _this._removeEventHandlerForContainer(container);
6860 };
6861
6862 _this.updatePosition = function () {
6863 _this._updateNodePosition();
6864 };
6865
6866 _this._updateNodePosition = function () {
6867 var affixMode = _this.state.affixMode;
6868 var _this$props = _this.props,
6869 container = _this$props.container,
6870 useAbsolute = _this$props.useAbsolute;
6871
6872 var affixContainer = container();
6873
6874 if (!affixContainer || !_this.affixNode) {
6875 return false;
6876 }
6877 var containerScrollTop = (0, _util2.getScroll)(affixContainer, true); // 容器在垂直位置上的滚动 offset
6878 var affixOffset = _this._getOffset(_this.affixNode, affixContainer); // 目标节点当前相对于容器的 offset
6879 var containerHeight = (0, _util2.getNodeHeight)(affixContainer); // 容器的高度
6880 var affixHeight = _this.affixNode.offsetHeight;
6881 var containerRect = (0, _util2.getRect)(affixContainer);
6882
6883 var affixChildHeight = _this.affixChildNode.offsetHeight;
6884
6885 var affixStyle = {
6886 width: affixOffset.width
6887 };
6888 var containerStyle = {
6889 width: affixOffset.width,
6890 height: affixChildHeight
6891 };
6892 var positionStyle = null;
6893 if (affixMode.top && containerScrollTop > affixOffset.top - affixMode.offset) {
6894 // affix top
6895 if (useAbsolute) {
6896 affixStyle.position = 'absolute';
6897 affixStyle.top = containerScrollTop - (affixOffset.top - affixMode.offset);
6898 positionStyle = 'relative';
6899 } else {
6900 affixStyle.position = 'fixed';
6901 affixStyle.top = affixMode.offset + containerRect.top;
6902 }
6903 _this._setAffixStyle(affixStyle, true);
6904 _this._setContainerStyle(containerStyle);
6905 } else if (affixMode.bottom && containerScrollTop < affixOffset.top + affixHeight + affixMode.offset - containerHeight) {
6906 // affix bottom
6907 affixStyle.height = affixHeight;
6908 if (useAbsolute) {
6909 affixStyle.position = 'absolute';
6910 affixStyle.top = containerScrollTop - (affixOffset.top + affixHeight + affixMode.offset - containerHeight);
6911 positionStyle = 'relative';
6912 } else {
6913 affixStyle.position = 'fixed';
6914 affixStyle.bottom = affixMode.offset;
6915 }
6916 _this._setAffixStyle(affixStyle, true);
6917 _this._setContainerStyle(containerStyle);
6918 } else {
6919 _this._setAffixStyle(null);
6920 _this._setContainerStyle(null);
6921 }
6922
6923 if (_this.state.positionStyle !== positionStyle) {
6924 _this.setState({ positionStyle: positionStyle });
6925 }
6926 };
6927
6928 _this._affixNodeRefHandler = function (ref) {
6929 _this.affixNode = ref;
6930 };
6931
6932 _this._affixChildNodeRefHandler = function (ref) {
6933 _this.affixChildNode = ref;
6934 };
6935
6936 _this.state = {
6937 style: null,
6938 containerStyle: null,
6939 positionStyle: null,
6940 affixMode: Affix._getAffixMode(props)
6941 };
6942 _this.resizeObserver = new _resizeObserverPolyfill2.default(_this._updateNodePosition);
6943 return _this;
6944 }
6945
6946 Affix.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
6947 if ('offsetTop' in nextProps || 'offsetBottom' in nextProps) {
6948 return {
6949 affixMode: Affix._getAffixMode(nextProps)
6950 };
6951 }
6952 return null;
6953 };
6954
6955 Affix.prototype.componentDidMount = function componentDidMount() {
6956 var _this2 = this;
6957
6958 var container = this.props.container;
6959 // wait for parent rendered
6960
6961 this.timeout = setTimeout(function () {
6962 _this2._updateNodePosition();
6963 _this2._setEventHandlerForContainer(container);
6964 });
6965 };
6966
6967 Affix.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState, snapshot) {
6968 var _this3 = this;
6969
6970 if (prevProps.container() !== this.props.container()) {
6971 this._clearContainerEvent();
6972
6973 this.timeout = setTimeout(function () {
6974 _this3._setEventHandlerForContainer(_this3.props.container);
6975 });
6976 }
6977
6978 setTimeout(this._updateNodePosition);
6979 };
6980
6981 Affix.prototype.componentWillUnmount = function componentWillUnmount() {
6982 this._clearContainerEvent();
6983 };
6984
6985 Affix.prototype._setEventHandlerForContainer = function _setEventHandlerForContainer(getContainer) {
6986 var container = getContainer();
6987 if (!container) {
6988 return;
6989 }
6990 _util.events.on(container, 'scroll', this._updateNodePosition, false);
6991 this.resizeObserver.observe(this.affixNode);
6992 };
6993
6994 Affix.prototype._removeEventHandlerForContainer = function _removeEventHandlerForContainer(getContainer) {
6995 var container = getContainer();
6996 if (container) {
6997 _util.events.off(container, 'scroll', this._updateNodePosition);
6998 this.resizeObserver.disconnect();
6999 }
7000 };
7001
7002 Affix.prototype._setAffixStyle = function _setAffixStyle(affixStyle) {
7003 var affixed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
7004
7005 if (_util.obj.shallowEqual(affixStyle, this.state.style)) {
7006 return;
7007 }
7008
7009 this.setState({
7010 style: affixStyle
7011 });
7012
7013 var onAffix = this.props.onAffix;
7014
7015 if (affixed) {
7016 setTimeout(function () {
7017 return onAffix(true);
7018 });
7019 } else if (!affixStyle) {
7020 setTimeout(function () {
7021 return onAffix(false);
7022 });
7023 }
7024 };
7025
7026 Affix.prototype._setContainerStyle = function _setContainerStyle(containerStyle) {
7027 if (_util.obj.shallowEqual(containerStyle, this.state.containerStyle)) {
7028 return;
7029 }
7030 this.setState({ containerStyle: containerStyle });
7031 };
7032
7033 Affix.prototype._getOffset = function _getOffset(affixNode, affixContainer) {
7034 var affixRect = affixNode.getBoundingClientRect(); // affix 元素 相对浏览器窗口的位置
7035 var containerRect = (0, _util2.getRect)(affixContainer); // affix 容器 相对浏览器窗口的位置
7036 var containerScrollTop = (0, _util2.getScroll)(affixContainer, true);
7037 var containerScrollLeft = (0, _util2.getScroll)(affixContainer, false);
7038
7039 return {
7040 top: affixRect.top - containerRect.top + containerScrollTop,
7041 left: affixRect.left - containerRect.left + containerScrollLeft,
7042 width: affixRect.width,
7043 height: affixRect.height
7044 };
7045 };
7046
7047 Affix.prototype.render = function render() {
7048 var _classnames;
7049
7050 var _state = this.state,
7051 affixMode = _state.affixMode,
7052 positionStyle = _state.positionStyle;
7053 var _props = this.props,
7054 prefix = _props.prefix,
7055 className = _props.className,
7056 style = _props.style,
7057 children = _props.children;
7058
7059 var state = this.state;
7060 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'affix'] = state.style, _classnames[prefix + 'affix-top'] = !state.style && affixMode.top, _classnames[prefix + 'affix-bottom'] = !state.style && affixMode.bottom, _classnames[className] = className, _classnames));
7061 var wrapperStyle = (0, _extends3.default)({}, style, { position: positionStyle });
7062
7063 return _react2.default.createElement('div', { ref: this._affixNodeRefHandler, style: wrapperStyle }, state.style && _react2.default.createElement('div', { style: state.containerStyle, 'aria-hidden': 'true' }), _react2.default.createElement('div', { ref: this._affixChildNodeRefHandler, className: classNames, style: state.style }, children));
7064 };
7065
7066 return Affix;
7067}(_react2.default.Component), _class.propTypes = {
7068 prefix: _propTypes2.default.string,
7069 /**
7070 * 设置 Affix 需要监听滚动事件的容器元素
7071 * @return {ReactElement} 目标容器元素的实例
7072 */
7073 container: _propTypes2.default.func,
7074 /**
7075 * 距离窗口顶部达到指定偏移量后触发
7076 */
7077 offsetTop: _propTypes2.default.number,
7078 /**
7079 * 距离窗口底部达到制定偏移量后触发
7080 */
7081 offsetBottom: _propTypes2.default.number,
7082 /**
7083 * 当元素的样式发生固钉样式变化时触发的回调函数
7084 * @param {Boolean} affixed 元素是否被固钉
7085 */
7086 onAffix: _propTypes2.default.func,
7087 /**
7088 * 是否启用绝对布局实现 affix
7089 * @param {Boolean} 是否启用绝对布局
7090 */
7091 useAbsolute: _propTypes2.default.bool,
7092 className: _propTypes2.default.string,
7093 style: _propTypes2.default.object,
7094 children: _propTypes2.default.any
7095}, _class.defaultProps = {
7096 prefix: 'next-',
7097 container: function container() {
7098 return window;
7099 },
7100 onAffix: _util.func.noop
7101}, _temp);
7102Affix.displayName = 'Affix';
7103exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Affix));
7104module.exports = exports['default'];
7105
7106/***/ }),
7107/* 70 */
7108/***/ (function(module, exports, __webpack_require__) {
7109
7110// 7.1.1 ToPrimitive(input [, PreferredType])
7111var isObject = __webpack_require__(33);
7112// instead of the ES6 spec version, we didn't implement @@toPrimitive case
7113// and the second argument - flag - preferred type is a string
7114module.exports = function (it, S) {
7115 if (!isObject(it)) return it;
7116 var fn, val;
7117 if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
7118 if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
7119 if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
7120 throw TypeError("Can't convert object to primitive value");
7121};
7122
7123
7124/***/ }),
7125/* 71 */
7126/***/ (function(module, exports) {
7127
7128// 7.2.1 RequireObjectCoercible(argument)
7129module.exports = function (it) {
7130 if (it == undefined) throw TypeError("Can't call method on " + it);
7131 return it;
7132};
7133
7134
7135/***/ }),
7136/* 72 */
7137/***/ (function(module, exports) {
7138
7139// 7.1.4 ToInteger
7140var ceil = Math.ceil;
7141var floor = Math.floor;
7142module.exports = function (it) {
7143 return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
7144};
7145
7146
7147/***/ }),
7148/* 73 */
7149/***/ (function(module, exports, __webpack_require__) {
7150
7151var shared = __webpack_require__(74)('keys');
7152var uid = __webpack_require__(56);
7153module.exports = function (key) {
7154 return shared[key] || (shared[key] = uid(key));
7155};
7156
7157
7158/***/ }),
7159/* 74 */
7160/***/ (function(module, exports, __webpack_require__) {
7161
7162var core = __webpack_require__(24);
7163var global = __webpack_require__(23);
7164var SHARED = '__core-js_shared__';
7165var store = global[SHARED] || (global[SHARED] = {});
7166
7167(module.exports = function (key, value) {
7168 return store[key] || (store[key] = value !== undefined ? value : {});
7169})('versions', []).push({
7170 version: core.version,
7171 mode: __webpack_require__(55) ? 'pure' : 'global',
7172 copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
7173});
7174
7175
7176/***/ }),
7177/* 75 */
7178/***/ (function(module, exports) {
7179
7180// IE 8- don't enum bug keys
7181module.exports = (
7182 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
7183).split(',');
7184
7185
7186/***/ }),
7187/* 76 */
7188/***/ (function(module, exports) {
7189
7190exports.f = Object.getOwnPropertySymbols;
7191
7192
7193/***/ }),
7194/* 77 */
7195/***/ (function(module, exports, __webpack_require__) {
7196
7197// 7.1.13 ToObject(argument)
7198var defined = __webpack_require__(71);
7199module.exports = function (it) {
7200 return Object(defined(it));
7201};
7202
7203
7204/***/ }),
7205/* 78 */
7206/***/ (function(module, exports) {
7207
7208module.exports = {};
7209
7210
7211/***/ }),
7212/* 79 */
7213/***/ (function(module, exports, __webpack_require__) {
7214
7215// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
7216var anObject = __webpack_require__(46);
7217var dPs = __webpack_require__(218);
7218var enumBugKeys = __webpack_require__(75);
7219var IE_PROTO = __webpack_require__(73)('IE_PROTO');
7220var Empty = function () { /* empty */ };
7221var PROTOTYPE = 'prototype';
7222
7223// Create object with fake `null` prototype: use iframe Object with cleared prototype
7224var createDict = function () {
7225 // Thrash, waste and sodomy: IE GC bug
7226 var iframe = __webpack_require__(114)('iframe');
7227 var i = enumBugKeys.length;
7228 var lt = '<';
7229 var gt = '>';
7230 var iframeDocument;
7231 iframe.style.display = 'none';
7232 __webpack_require__(219).appendChild(iframe);
7233 iframe.src = 'javascript:'; // eslint-disable-line no-script-url
7234 // createDict = iframe.contentWindow.Object;
7235 // html.removeChild(iframe);
7236 iframeDocument = iframe.contentWindow.document;
7237 iframeDocument.open();
7238 iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
7239 iframeDocument.close();
7240 createDict = iframeDocument.F;
7241 while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]];
7242 return createDict();
7243};
7244
7245module.exports = Object.create || function create(O, Properties) {
7246 var result;
7247 if (O !== null) {
7248 Empty[PROTOTYPE] = anObject(O);
7249 result = new Empty();
7250 Empty[PROTOTYPE] = null;
7251 // add "__proto__" for Object.getPrototypeOf polyfill
7252 result[IE_PROTO] = O;
7253 } else result = createDict();
7254 return Properties === undefined ? result : dPs(result, Properties);
7255};
7256
7257
7258/***/ }),
7259/* 80 */
7260/***/ (function(module, exports, __webpack_require__) {
7261
7262var def = __webpack_require__(26).f;
7263var has = __webpack_require__(27);
7264var TAG = __webpack_require__(35)('toStringTag');
7265
7266module.exports = function (it, tag, stat) {
7267 if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
7268};
7269
7270
7271/***/ }),
7272/* 81 */
7273/***/ (function(module, exports, __webpack_require__) {
7274
7275exports.f = __webpack_require__(35);
7276
7277
7278/***/ }),
7279/* 82 */
7280/***/ (function(module, exports, __webpack_require__) {
7281
7282var global = __webpack_require__(23);
7283var core = __webpack_require__(24);
7284var LIBRARY = __webpack_require__(55);
7285var wksExt = __webpack_require__(81);
7286var defineProperty = __webpack_require__(26).f;
7287module.exports = function (name) {
7288 var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
7289 if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
7290};
7291
7292
7293/***/ }),
7294/* 83 */
7295/***/ (function(module, exports, __webpack_require__) {
7296
7297"use strict";
7298
7299
7300exports.__esModule = true;
7301
7302var _dayjs = __webpack_require__(127);
7303
7304var _dayjs2 = _interopRequireDefault(_dayjs);
7305
7306var _customParseFormat = __webpack_require__(246);
7307
7308var _customParseFormat2 = _interopRequireDefault(_customParseFormat);
7309
7310var _updateLocale = __webpack_require__(247);
7311
7312var _updateLocale2 = _interopRequireDefault(_updateLocale);
7313
7314var _localeData = __webpack_require__(248);
7315
7316var _localeData2 = _interopRequireDefault(_localeData);
7317
7318var _quarterOfYear = __webpack_require__(249);
7319
7320var _quarterOfYear2 = _interopRequireDefault(_quarterOfYear);
7321
7322var _advancedFormat = __webpack_require__(250);
7323
7324var _advancedFormat2 = _interopRequireDefault(_advancedFormat);
7325
7326var _weekOfYear = __webpack_require__(251);
7327
7328var _weekOfYear2 = _interopRequireDefault(_weekOfYear);
7329
7330__webpack_require__(252);
7331
7332function _interopRequireDefault(obj) {
7333 return obj && obj.__esModule ? obj : { default: obj };
7334}
7335
7336_dayjs2.default.extend(_advancedFormat2.default);
7337_dayjs2.default.extend(_quarterOfYear2.default);
7338_dayjs2.default.extend(_customParseFormat2.default);
7339_dayjs2.default.extend(_updateLocale2.default);
7340_dayjs2.default.extend(_localeData2.default);
7341_dayjs2.default.extend(_weekOfYear2.default);
7342_dayjs2.default.locale('zh-cn');
7343
7344var datejs = _dayjs2.default;
7345datejs.isSelf = _dayjs2.default.isDayjs;
7346
7347_dayjs2.default.localeData();
7348
7349exports.default = datejs;
7350module.exports = exports['default'];
7351
7352/***/ }),
7353/* 84 */
7354/***/ (function(module, exports, __webpack_require__) {
7355
7356"use strict";
7357
7358
7359var _CSSTransition = _interopRequireDefault(__webpack_require__(264));
7360
7361var _ReplaceTransition = _interopRequireDefault(__webpack_require__(268));
7362
7363var _TransitionGroup = _interopRequireDefault(__webpack_require__(135));
7364
7365var _Transition = _interopRequireDefault(__webpack_require__(133));
7366
7367function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7368
7369module.exports = {
7370 Transition: _Transition.default,
7371 TransitionGroup: _TransitionGroup.default,
7372 ReplaceTransition: _ReplaceTransition.default,
7373 CSSTransition: _CSSTransition.default
7374};
7375
7376/***/ }),
7377/* 85 */
7378/***/ (function(module, __webpack_exports__, __webpack_require__) {
7379
7380"use strict";
7381Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
7382
7383// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.17.7@@babel/runtime/helpers/extends.js
7384var helpers_extends = __webpack_require__(61);
7385var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends);
7386
7387// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.17.7@@babel/runtime/helpers/objectWithoutPropertiesLoose.js
7388var objectWithoutPropertiesLoose = __webpack_require__(139);
7389var objectWithoutPropertiesLoose_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesLoose);
7390
7391// EXTERNAL MODULE: ./node_modules/_@babel_runtime@7.17.7@@babel/runtime/helpers/inheritsLoose.js
7392var inheritsLoose = __webpack_require__(279);
7393var inheritsLoose_default = /*#__PURE__*/__webpack_require__.n(inheritsLoose);
7394
7395// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"}
7396var external___root___React___commonjs2___react___commonjs___react___amd___react__ = __webpack_require__(0);
7397var external___root___React___commonjs2___react___commonjs___react___amd___react___default = /*#__PURE__*/__webpack_require__.n(external___root___React___commonjs2___react___commonjs___react___amd___react__);
7398
7399// EXTERNAL MODULE: external {"root":"ReactDOM","commonjs2":"react-dom","commonjs":"react-dom","amd":"react-dom"}
7400var external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__ = __webpack_require__(12);
7401var external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom___default = /*#__PURE__*/__webpack_require__.n(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__);
7402
7403// EXTERNAL MODULE: ./node_modules/_resize-observer-polyfill@1.5.1@resize-observer-polyfill/dist/ResizeObserver.es.js
7404var ResizeObserver_es = __webpack_require__(58);
7405
7406// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.9@@alifd/overlay/es/utils.js
7407
7408
7409function useListener(nodeList, eventName, callback, useCapture, condition) {
7410 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
7411 if (condition) {
7412 if (!Array.isArray(nodeList)) {
7413 nodeList = [nodeList];
7414 }
7415
7416 nodeList.forEach(function (n) {
7417 n && n.addEventListener && n.addEventListener(eventName, callback, useCapture || false);
7418 });
7419 return function () {
7420 Array.isArray(nodeList) && nodeList.forEach(function (n) {
7421 n && n.removeEventListener && n.removeEventListener(eventName, callback, useCapture || false);
7422 });
7423 };
7424 }
7425
7426 return undefined;
7427 }, [condition]);
7428 return;
7429}
7430/**
7431 * 将N个方法合并为一个链式调用的方法
7432 * @return {Function} 合并后的方法
7433 *
7434 * @example
7435 * func.makeChain(this.handleChange, this.props.onChange);
7436 */
7437
7438function makeChain() {
7439 var _this = this;
7440
7441 for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {
7442 fns[_key] = arguments[_key];
7443 }
7444
7445 if (fns.length === 1) {
7446 return fns[0];
7447 }
7448
7449 return function () {
7450 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
7451 args[_key2] = arguments[_key2];
7452 }
7453
7454 for (var i = 0, j = fns.length; i < j; i++) {
7455 if (fns[i] && fns[i].apply) {
7456 //@ts-ignore
7457 fns[i].apply(_this, args);
7458 }
7459 }
7460 };
7461}
7462function callRef(ref, element) {
7463 if (!ref) {
7464 return;
7465 }
7466
7467 if (typeof ref === 'string') {
7468 throw new Error("can not set ref string for " + ref);
7469 } else if (typeof ref === 'function') {
7470 ref(element);
7471 } else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {
7472 ref.current = element;
7473 }
7474}
7475function saveRef(ref) {
7476 if (!ref) {
7477 return null;
7478 }
7479
7480 return function (element) {
7481 if (typeof ref === 'string') {
7482 throw new Error("can not set ref string for " + ref);
7483 } else if (typeof ref === 'function') {
7484 ref(element);
7485 } else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {
7486 ref.current = element;
7487 }
7488 };
7489}
7490/**
7491 * 获取 position != static ,用来计算相对位置的容器
7492 * @param container
7493 * @returns
7494 */
7495
7496var getRelativeContainer = function getRelativeContainer(container) {
7497 if (typeof document === undefined) {
7498 return container;
7499 }
7500
7501 var calcContainer = container;
7502
7503 while (getStyle(calcContainer, 'position') === 'static') {
7504 if (!calcContainer || calcContainer === document.documentElement) {
7505 return document.documentElement;
7506 }
7507
7508 calcContainer = calcContainer.parentNode;
7509 }
7510
7511 return calcContainer;
7512};
7513/**
7514 * 获取 target 和 container 之间会滚动的元素 (不包含 target、container)
7515 * 用来监听滚动元素,自动更新弹窗位置
7516 * @param targetNode
7517 * @param container
7518 * @returns
7519 */
7520
7521var getOverflowNodes = function getOverflowNodes(targetNode, container) {
7522 if (typeof document === undefined) {
7523 return [];
7524 }
7525
7526 var overflowNodes = [];
7527 var calcContainer = targetNode;
7528
7529 while (true) {
7530 // 忽略 body/documentElement, 不算额外滚动元素
7531 if (!calcContainer || calcContainer === container || calcContainer === document.body || calcContainer === document.documentElement) {
7532 break;
7533 }
7534
7535 var overflow = getStyle(calcContainer, 'overflow');
7536
7537 if (overflow && overflow.match(/auto|scroll/)) {
7538 var _calcContainer = calcContainer,
7539 clientWidth = _calcContainer.clientWidth,
7540 clientHeight = _calcContainer.clientHeight,
7541 scrollWidth = _calcContainer.scrollWidth,
7542 scrollHeight = _calcContainer.scrollHeight;
7543
7544 if (clientHeight !== scrollHeight || clientWidth !== scrollWidth) {
7545 overflowNodes.push(calcContainer);
7546 }
7547 }
7548
7549 calcContainer = calcContainer.parentNode;
7550 }
7551
7552 return overflowNodes;
7553};
7554/**
7555 * 获取可视区域,用来计算弹窗应该相对哪个节点做上下左右的位置变化。
7556 * @param container
7557 * @returns
7558 */
7559
7560function getViewPort(container) {
7561 var calcContainer = container;
7562
7563 while (calcContainer) {
7564 var overflow = getStyle(calcContainer, 'overflow');
7565
7566 if (overflow !== null && overflow !== void 0 && overflow.match(/auto|scroll|hidden/)) {
7567 return calcContainer;
7568 }
7569
7570 calcContainer = calcContainer.parentNode;
7571 }
7572
7573 return document.documentElement;
7574}
7575function getStyle(elt, name) {
7576 if (!elt || elt.nodeType !== 1) {
7577 return null;
7578 }
7579
7580 var style = window.getComputedStyle(elt, null);
7581 return style.getPropertyValue(name);
7582}
7583var PIXEL_PATTERN = /margin|padding|width|height|max|min|offset|size|top|left/i;
7584function setStyle(node, name, value) {
7585 if (!node) {
7586 return;
7587 }
7588
7589 if (typeof name === 'string') {
7590 if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {
7591 value = value + "px";
7592 } //@ts-ignore
7593
7594
7595 node.style[name] = value;
7596 } else if (typeof name === 'object' && arguments.length === 2) {
7597 //@ts-ignore
7598 Object.keys(name).forEach(function (key) {
7599 return setStyle(node, key, name[key]);
7600 });
7601 }
7602} // 默认首次调用是立刻执行
7603
7604function throttle(func, wait) {
7605 var previous = -wait;
7606 return function () {
7607 var now = Date.now();
7608 var args = arguments;
7609
7610 if (now - previous > wait) {
7611 //@ts-ignore
7612 func.apply(this, args);
7613 previous = now;
7614 }
7615 };
7616}
7617function debounce(func, wait) {
7618 var _arguments = arguments,
7619 _this2 = this;
7620
7621 var timeoutID;
7622 return function () {
7623 var args = _arguments;
7624 clearTimeout(timeoutID);
7625 timeoutID = setTimeout(function () {
7626 //@ts-ignore
7627 func.apply(_this2, args);
7628 }, wait);
7629 };
7630}
7631/**
7632 * 元素相对于可视区的 left/top
7633 * @param node
7634 * @returns
7635 */
7636
7637function getViewTopLeft(node) {
7638 /**
7639 * document.body 向下滚动后 scrollTop 一直为0,同时 top=-xx 为负数,相当于本身是没有滚动条的,这个逻辑是正确的。
7640 * document.documentElement 向下滚动后 scrollTop/top 都在变化,会影响计算逻辑,所以这里写死 0
7641 */
7642 if (node === document.documentElement) {
7643 return {
7644 top: 0,
7645 left: 0
7646 };
7647 }
7648
7649 var _node$getBoundingClie = node.getBoundingClientRect(),
7650 left = _node$getBoundingClie.left,
7651 top = _node$getBoundingClie.top;
7652
7653 return {
7654 top: top,
7655 left: left
7656 };
7657}
7658/**
7659 * get element size
7660 * offsetWidth/offsetHeight 更容易获取真实大小,不会受到动画影响优先使用。
7661 * @param {Element} element
7662 * @return {Object}
7663 */
7664
7665function getWidthHeight(element) {
7666 // element like `svg` do not have offsetWidth and offsetHeight prop
7667 // then getBoundingClientRect
7668 if ('offsetWidth' in element && 'offsetHeight' in element) {
7669 return {
7670 width: element.offsetWidth,
7671 height: element.offsetHeight
7672 };
7673 } else {
7674 var _element$getBoundingC = element.getBoundingClientRect(),
7675 width = _element$getBoundingC.width,
7676 height = _element$getBoundingC.height;
7677
7678 return {
7679 width: width,
7680 height: height
7681 };
7682 }
7683}
7684/**
7685 * 获取默认的滚动条大小
7686 * @return {Number} width
7687 */
7688
7689function getScrollbarWidth() {
7690 var scrollDiv = document.createElement('div');
7691 scrollDiv.className += 'just-to-get-scrollbar-size';
7692 setStyle(scrollDiv, {
7693 position: 'absolute',
7694 width: '100px',
7695 height: '100px',
7696 overflow: 'scroll',
7697 top: '-9999px'
7698 });
7699 document.body && document.body.appendChild(scrollDiv);
7700 var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
7701 document.body.removeChild(scrollDiv);
7702 return scrollbarWidth;
7703}
7704/**
7705 * 元素是否可见
7706 * @private
7707 * @param {Element} node
7708 * @return {Boolean}
7709 */
7710
7711function _isVisible(node) {
7712 while (node) {
7713 if (node === document.body || node === document.documentElement) {
7714 break;
7715 }
7716
7717 if (node.style.display === 'none' || node.style.visibility === 'hidden') {
7718 return false;
7719 }
7720
7721 node = node.parentNode;
7722 }
7723
7724 return true;
7725}
7726/**
7727 * 元素是否可以获取焦点
7728 * @private
7729 * @param {Element} node
7730 * @return {Boolean}
7731 */
7732
7733
7734function _isFocusable(node) {
7735 var nodeName = node.nodeName.toLowerCase();
7736 var tabIndex = parseInt(node.getAttribute('tabindex'), 10);
7737 var hasTabIndex = !isNaN(tabIndex) && tabIndex > -1;
7738
7739 if (_isVisible(node)) {
7740 if (nodeName === 'input') {
7741 //@ts-ignore
7742 return !node.disabled && node.type !== 'hidden';
7743 } else if (['select', 'textarea', 'button'].indexOf(nodeName) > -1) {
7744 //@ts-ignore
7745 return !node.disabled;
7746 } else if (nodeName === 'a') {
7747 return node.getAttribute('href') || hasTabIndex;
7748 } else {
7749 return hasTabIndex;
7750 }
7751 }
7752
7753 return false;
7754}
7755/**
7756 * 列出能获取焦点的子节点
7757 * @param {Element} node 容器节点
7758 * @return {Array<Element>}
7759 */
7760
7761
7762function getFocusNodeList(node) {
7763 var res = [];
7764 var nodeList = node.querySelectorAll('*');
7765 nodeList.forEach(function (item) {
7766 if (_isFocusable(item)) {
7767 var method = item.getAttribute('data-auto-focus') ? 'unshift' : 'push';
7768 res[method](item);
7769 }
7770 });
7771
7772 if (_isFocusable(node)) {
7773 res.unshift(node);
7774 }
7775
7776 return res;
7777}
7778function getHTMLElement(node) {
7779 if (node) {
7780 if (node.nodeType) {
7781 if (node.nodeType === 1) {
7782 return node;
7783 } else {
7784 return document.body;
7785 }
7786 } else if (node === window) {
7787 return document.body;
7788 } else {
7789 return Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(node);
7790 }
7791 }
7792
7793 return node;
7794}
7795function getTargetNode(target) {
7796 if (typeof target === 'function') {
7797 return target();
7798 } else if (typeof target === 'string') {
7799 return document.getElementById(target);
7800 } // 兼容 target = HTMLElement
7801
7802
7803 return target;
7804}
7805// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.9@@alifd/overlay/es/placement.js
7806
7807;
7808var placementMap = {
7809 tl: ['bl', 'tl'],
7810 t: ['bc', 'tc'],
7811 tr: ['br', 'tr'],
7812 lt: ['tr', 'tl'],
7813 l: ['cr', 'cl'],
7814 lb: ['br', 'bl'],
7815 bl: ['tl', 'bl'],
7816 b: ['tc', 'bc'],
7817 br: ['tr', 'br'],
7818 rt: ['tl', 'tr'],
7819 r: ['cl', 'cr'],
7820 rb: ['bl', 'br']
7821};
7822
7823function getXY(p, staticInfo) {
7824 var targetInfo = staticInfo.targetInfo,
7825 containerInfo = staticInfo.containerInfo,
7826 overlayInfo = staticInfo.overlayInfo,
7827 opoints = staticInfo.points,
7828 placementOffset = staticInfo.placementOffset,
7829 offset = staticInfo.offset,
7830 rtl = staticInfo.rtl;
7831 var basex = targetInfo.left - containerInfo.left + containerInfo.scrollLeft;
7832 var basey = targetInfo.top - containerInfo.top + containerInfo.scrollTop;
7833
7834 function setPointX(point, positive, width) {
7835 if (positive === void 0) {
7836 positive = true;
7837 }
7838
7839 var plus = positive ? 1 : -1;
7840
7841 switch (point) {
7842 case 'l':
7843 basex += 0;
7844 break;
7845
7846 case 'c':
7847 basex += plus * width / 2;
7848 break;
7849
7850 case 'r':
7851 basex += plus * width;
7852 break;
7853 }
7854 }
7855
7856 function setPointY(point, positive, height) {
7857 if (positive === void 0) {
7858 positive = true;
7859 }
7860
7861 var plus = positive ? 1 : -1;
7862
7863 switch (point) {
7864 case 't':
7865 basey += 0;
7866 break;
7867
7868 case 'c':
7869 basey += plus * height / 2;
7870 break;
7871
7872 case 'b':
7873 basey += plus * height;
7874 break;
7875 }
7876 }
7877
7878 var points = [].concat(opoints);
7879
7880 if (p && p in placementMap) {
7881 points = placementMap[p];
7882 } // rtl 左右对调
7883
7884
7885 if (rtl) {
7886 if (points[0].match(/l/)) {
7887 points[0] = points[0].replace('l', 'r');
7888 } else if (points[0].match(/r/)) {
7889 points[0] = points[0].replace('r', 'l');
7890 }
7891
7892 if (points[1].match(/l/)) {
7893 points[1] = points[1].replace('l', 'r');
7894 } else if (points[1].match(/r/)) {
7895 points[1] = points[1].replace('r', 'l');
7896 }
7897 } // 目标元素
7898
7899
7900 setPointY(points[1][0], true, targetInfo.height);
7901 setPointX(points[1][1], true, targetInfo.width);
7902 setPointY(points[0][0], false, overlayInfo.height);
7903 setPointX(points[0][1], false, overlayInfo.width);
7904
7905 if (placementOffset && p.length >= 1) {
7906 switch (p[0]) {
7907 case 't':
7908 basey -= placementOffset;
7909 break;
7910
7911 case 'b':
7912 basey += placementOffset;
7913 break;
7914
7915 case 'l':
7916 basex -= placementOffset;
7917 break;
7918
7919 case 'r':
7920 basex += placementOffset;
7921 break;
7922 }
7923 }
7924
7925 return {
7926 points: points,
7927 left: basex + offset[0],
7928 top: basey + offset[1]
7929 };
7930}
7931
7932function shouldResizePlacement(l, t, viewport, staticInfo) {
7933 var container = staticInfo.container,
7934 containerInfo = staticInfo.containerInfo,
7935 overlayInfo = staticInfo.overlayInfo;
7936
7937 if (viewport !== container) {
7938 // 说明 container 不具备滚动属性
7939 var _getViewTopLeft = getViewTopLeft(viewport),
7940 vleft = _getViewTopLeft.left,
7941 vtop = _getViewTopLeft.top;
7942
7943 var vwidth = viewport.scrollWidth,
7944 vheight = viewport.scrollHeight,
7945 vscrollTop = viewport.scrollTop,
7946 vscrollLeft = viewport.scrollLeft;
7947 var nt = t + containerInfo.top - vtop + vscrollTop;
7948 var nl = l + containerInfo.left - vleft + vscrollLeft;
7949 return nt < 0 || nl < 0 || nt + overlayInfo.height > vheight || nl + overlayInfo.width > vwidth;
7950 }
7951
7952 return t < 0 || l < 0 || t + overlayInfo.height > containerInfo.height || l + overlayInfo.width > containerInfo.width;
7953}
7954
7955function getNewPlacement(l, t, p, staticInfo) {
7956 var overlayInfo = staticInfo.overlayInfo,
7957 containerInfo = staticInfo.containerInfo;
7958 var np = p.split('');
7959
7960 if (np.length === 1) {
7961 np.push('');
7962 } // 区域不够
7963
7964
7965 if (t < 0) {
7966 // [上边 => 下边, 底部对齐 => 顶部对齐]
7967 np = [np[0].replace('t', 'b'), np[1].replace('b', 't')];
7968 } // 区域不够
7969
7970
7971 if (l < 0) {
7972 // [左边 => 右边, 右对齐 => 左对齐]
7973 np = [np[0].replace('l', 'r'), np[1].replace('r', 'l')];
7974 } // 超出区域
7975
7976
7977 if (t + overlayInfo.height > containerInfo.height) {
7978 // [下边 => 上边, 顶部对齐 => 底部对齐]
7979 np = [np[0].replace('b', 't'), np[1].replace('t', 'b')];
7980 } // 超出区域
7981
7982
7983 if (l + overlayInfo.width > containerInfo.width) {
7984 // [右边 => 左边, 左对齐 => 右对齐]
7985 np = [np[0].replace('r', 'l'), np[1].replace('l', 'r')];
7986 }
7987
7988 return np.join('');
7989}
7990
7991function ajustLeftAndTop(l, t, staticInfo) {
7992 var overlayInfo = staticInfo.overlayInfo,
7993 containerInfo = staticInfo.containerInfo;
7994
7995 if (t < 0) {
7996 t = 0;
7997 }
7998
7999 if (l < 0) {
8000 l = 0;
8001 }
8002
8003 if (t + overlayInfo.height > containerInfo.height) {
8004 t = containerInfo.height - overlayInfo.height;
8005 }
8006
8007 if (l + overlayInfo.width > containerInfo.width) {
8008 l = containerInfo.width - overlayInfo.width;
8009 }
8010
8011 return {
8012 left: l,
8013 top: t
8014 };
8015}
8016/**
8017 * 计算相对于 container 的偏移位置
8018 * @param config
8019 * @returns
8020 */
8021
8022
8023function getPlacements(config) {
8024 var target = config.target,
8025 overlay = config.overlay,
8026 container = config.container,
8027 scrollNode = config.scrollNode,
8028 oplacement = config.placement,
8029 _config$placementOffs = config.placementOffset,
8030 placementOffset = _config$placementOffs === void 0 ? 0 : _config$placementOffs,
8031 _config$points = config.points,
8032 opoints = _config$points === void 0 ? ['tl', 'bl'] : _config$points,
8033 _config$offset = config.offset,
8034 offset = _config$offset === void 0 ? [0, 0] : _config$offset,
8035 _config$position = config.position,
8036 position = _config$position === void 0 ? 'absolute' : _config$position,
8037 beforePosition = config.beforePosition,
8038 _config$autoAdjust = config.autoAdjust,
8039 autoAdjust = _config$autoAdjust === void 0 ? true : _config$autoAdjust,
8040 _config$autoHideScrol = config.autoHideScrollOverflow,
8041 autoHideScrollOverflow = _config$autoHideScrol === void 0 ? true : _config$autoHideScrol,
8042 rtl = config.rtl;
8043 var placement = oplacement;
8044 /**
8045 * 可视窗口是浏览器给用户展示的窗口
8046 * getBoundingClientRect(): top/left 是相对 viewport
8047 * node: offsetTop/offsetarget.Left 是相对 parent 元素的
8048 *
8049 * top: 元素上边 距离可视窗口 上边框的距离
8050 * left: 元素左边 距离可视窗口 左边框的距离
8051 *
8052 * scrollTop: 容器上下滚动距离
8053 * scrollLeft: 容器左右滚动距离
8054 */
8055
8056 var _getWidthHeight = getWidthHeight(overlay),
8057 owidth = _getWidthHeight.width,
8058 oheight = _getWidthHeight.height;
8059
8060 if (position === 'fixed') {
8061 var _result = {
8062 config: {
8063 placement: undefined,
8064 points: undefined
8065 },
8066 style: {
8067 position: position,
8068 left: offset[0],
8069 top: offset[1]
8070 }
8071 };
8072
8073 if (beforePosition && typeof beforePosition) {
8074 return beforePosition(_result, {
8075 overlay: {
8076 node: overlay,
8077 width: owidth,
8078 height: oheight
8079 }
8080 });
8081 }
8082
8083 return _result;
8084 }
8085
8086 var _target$getBoundingCl = target.getBoundingClientRect(),
8087 twidth = _target$getBoundingCl.width,
8088 theight = _target$getBoundingCl.height,
8089 tleft = _target$getBoundingCl.left,
8090 ttop = _target$getBoundingCl.top;
8091
8092 var _getViewTopLeft2 = getViewTopLeft(container),
8093 cleft = _getViewTopLeft2.left,
8094 ctop = _getViewTopLeft2.top;
8095
8096 var cwidth = container.scrollWidth,
8097 cheight = container.scrollHeight,
8098 cscrollTop = container.scrollTop,
8099 cscrollLeft = container.scrollLeft;
8100 var staticInfo = {
8101 targetInfo: {
8102 width: twidth,
8103 height: theight,
8104 left: tleft,
8105 top: ttop
8106 },
8107 containerInfo: {
8108 left: cleft,
8109 top: ctop,
8110 width: cwidth,
8111 height: cheight,
8112 scrollTop: cscrollTop,
8113 scrollLeft: cscrollLeft
8114 },
8115 overlayInfo: {
8116 width: owidth,
8117 height: oheight
8118 },
8119 points: opoints,
8120 placementOffset: placementOffset,
8121 offset: offset,
8122 container: container,
8123 rtl: rtl
8124 }; // step1: 根据 placement 计算位置
8125
8126 var _getXY = getXY(placement, staticInfo),
8127 left = _getXY.left,
8128 top = _getXY.top,
8129 points = _getXY.points; // 获取可视区域,来计算容器相对位置
8130
8131
8132 var viewport = getViewPort(container); // step2: 根据 viewport(挂载容器不一定是可视区, eg: 挂载在父节点,但是弹窗超出父节点)重新计算位置. 根据可视区域优化位置
8133 // 位置动态优化思路见 https://github.com/alibaba-fusion/overlay/issues/2
8134
8135 if (autoAdjust && placement && shouldResizePlacement(left, top, viewport, staticInfo)) {
8136 var nplacement = getNewPlacement(left, top, placement, staticInfo); // step2: 空间不够,替换位置重新计算位置
8137
8138 if (placement !== nplacement) {
8139 var _getXY2 = getXY(nplacement, staticInfo),
8140 _nleft = _getXY2.left,
8141 _ntop = _getXY2.top;
8142
8143 if (shouldResizePlacement(_nleft, _ntop, viewport, staticInfo)) {
8144 var nnplacement = getNewPlacement(_nleft, _ntop, nplacement, staticInfo); // step3: 空间依然不够,说明xy轴至少有一个方向是怎么更换位置都不够的。停止计算开始补偿逻辑
8145
8146 if (nplacement !== nnplacement) {
8147 var _getXY3 = getXY(nnplacement, staticInfo),
8148 nnleft = _getXY3.left,
8149 nntop = _getXY3.top;
8150
8151 var _ajustLeftAndTop = ajustLeftAndTop(nnleft, nntop, staticInfo),
8152 nnnleft = _ajustLeftAndTop.left,
8153 nnntop = _ajustLeftAndTop.top;
8154
8155 placement = nnplacement;
8156 left = nnnleft;
8157 top = nnntop;
8158 } else {
8159 placement = nplacement;
8160 left = _nleft;
8161 top = _ntop;
8162 }
8163 } else {
8164 placement = nplacement;
8165 left = _nleft;
8166 top = _ntop;
8167 }
8168 }
8169
8170 var _ajustLeftAndTop2 = ajustLeftAndTop(left, top, staticInfo),
8171 nleft = _ajustLeftAndTop2.left,
8172 ntop = _ajustLeftAndTop2.top;
8173
8174 left = nleft;
8175 top = ntop;
8176 }
8177
8178 var result = {
8179 config: {
8180 placement: placement,
8181 points: points
8182 },
8183 style: {
8184 position: position,
8185 left: Math.round(left),
8186 top: Math.round(top)
8187 }
8188 };
8189 /**
8190 * step3: 滚动隐藏弹窗逻辑。避免出现 target 已经滚动消失,弹层飘在页面最上方的情况。详细见 https://github.com/alibaba-fusion/overlay/issues/3
8191 * 触发条件: target 和 document.body 之间存在 overflow 滚动元素, target 进入不可见区域
8192 */
8193
8194 if (autoHideScrollOverflow && placement && scrollNode !== null && scrollNode !== void 0 && scrollNode.length) {
8195 // 滚动改成 transform 提高性能, 但是有动效问题
8196 // result.style.transform = `translate3d(${result.style.left}px, ${result.style.top}px, 0px)`;
8197 // result.style.left = 0;
8198 // result.style.top = 0;
8199 scrollNode.forEach(function (node) {
8200 var _node$getBoundingClie = node.getBoundingClientRect(),
8201 top = _node$getBoundingClie.top,
8202 left = _node$getBoundingClie.left,
8203 width = _node$getBoundingClie.width,
8204 height = _node$getBoundingClie.height;
8205
8206 if (ttop + theight < top || ttop > top + height || tleft + twidth < left || tleft > left + width) {
8207 result.style.display = 'none';
8208 } else {
8209 result.style.display = '';
8210 }
8211 });
8212 }
8213
8214 if (beforePosition && typeof beforePosition) {
8215 return beforePosition(result, {
8216 target: {
8217 node: target,
8218 width: twidth,
8219 height: theight,
8220 left: tleft,
8221 top: ttop
8222 },
8223 overlay: {
8224 node: overlay,
8225 width: owidth,
8226 height: oheight
8227 }
8228 });
8229 }
8230
8231 return result;
8232}
8233// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.9@@alifd/overlay/es/overlay-context.js
8234
8235var OverlayContext = /*#__PURE__*/Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["createContext"])({
8236 setVisibleOverlayToParent: function setVisibleOverlayToParent() {}
8237});
8238/* harmony default export */ var overlay_context = (OverlayContext);
8239// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.9@@alifd/overlay/es/overlay.js
8240
8241
8242
8243var _excluded = ["target", "children", "wrapperClassName", "maskClassName", "maskStyle", "hasMask", "canCloseByMask", "maskRender", "points", "offset", "fixed", "visible", "onRequestClose", "onOpen", "onClose", "container", "placement", "placementOffset", "disableScroll", "canCloseByOutSideClick", "canCloseByEsc", "safeNode", "beforePosition", "onPosition", "cache", "autoAdjust", "autoFocus", "isAnimationEnd", "rtl", "wrapperStyle"],
8244 _excluded2 = ["setVisibleOverlayToParent"];
8245
8246var _this = this;
8247
8248function _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
8249
8250function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
8251
8252function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
8253
8254
8255
8256
8257
8258
8259
8260
8261
8262var isScrollDisplay = function isScrollDisplay(element) {
8263 try {
8264 var scrollbarStyle = window.getComputedStyle(element, '::-webkit-scrollbar');
8265 return !scrollbarStyle || scrollbarStyle.getPropertyValue('display') !== 'none';
8266 } catch (e) {// ignore error for firefox
8267 }
8268
8269 return true;
8270};
8271
8272var overlay_hasScroll = function hasScroll(containerNode) {
8273 var parentNode = containerNode.parentNode;
8274 return parentNode && parentNode.scrollHeight > parentNode.clientHeight && getScrollbarWidth() > 0 && isScrollDisplay(parentNode) && isScrollDisplay(containerNode);
8275};
8276/**
8277 * 传入的组件可能是没有 forwardRef 包裹的 Functional Component, 会导致取不到 ref
8278 */
8279
8280
8281var overlay_RefWrapper = /*#__PURE__*/function (_React$Component) {
8282 inheritsLoose_default()(RefWrapper, _React$Component);
8283
8284 function RefWrapper() {
8285 return _React$Component.apply(this, arguments) || this;
8286 }
8287
8288 var _proto = RefWrapper.prototype;
8289
8290 _proto.render = function render() {
8291 return this.props.children;
8292 };
8293
8294 return RefWrapper;
8295}(external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Component);
8296var Overlay = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.forwardRef(function (props, ref) {
8297 var _overflowRef$current;
8298
8299 var body = function body() {
8300 return document.body;
8301 };
8302
8303 var target = props.target,
8304 children = props.children,
8305 wrapperClassName = props.wrapperClassName,
8306 maskClassName = props.maskClassName,
8307 maskStyle = props.maskStyle,
8308 hasMask = props.hasMask,
8309 _props$canCloseByMask = props.canCloseByMask,
8310 canCloseByMask = _props$canCloseByMask === void 0 ? true : _props$canCloseByMask,
8311 maskRender = props.maskRender,
8312 points = props.points,
8313 offset = props.offset,
8314 fixed = props.fixed,
8315 visible = props.visible,
8316 _props$onRequestClose = props.onRequestClose,
8317 onRequestClose = _props$onRequestClose === void 0 ? function () {} : _props$onRequestClose,
8318 onOpen = props.onOpen,
8319 onClose = props.onClose,
8320 _props$container = props.container,
8321 popupContainer = _props$container === void 0 ? body : _props$container,
8322 placement = props.placement,
8323 placementOffset = props.placementOffset,
8324 _props$disableScroll = props.disableScroll,
8325 disableScroll = _props$disableScroll === void 0 ? false : _props$disableScroll,
8326 _props$canCloseByOutS = props.canCloseByOutSideClick,
8327 canCloseByOutSideClick = _props$canCloseByOutS === void 0 ? true : _props$canCloseByOutS,
8328 _props$canCloseByEsc = props.canCloseByEsc,
8329 canCloseByEsc = _props$canCloseByEsc === void 0 ? true : _props$canCloseByEsc,
8330 safeNode = props.safeNode,
8331 beforePosition = props.beforePosition,
8332 onPosition = props.onPosition,
8333 _props$cache = props.cache,
8334 cache = _props$cache === void 0 ? false : _props$cache,
8335 autoAdjust = props.autoAdjust,
8336 _props$autoFocus = props.autoFocus,
8337 autoFocus = _props$autoFocus === void 0 ? false : _props$autoFocus,
8338 _props$isAnimationEnd = props.isAnimationEnd,
8339 isAnimationEnd = _props$isAnimationEnd === void 0 ? true : _props$isAnimationEnd,
8340 rtl = props.rtl,
8341 owrapperStyle = props.wrapperStyle,
8342 others = objectWithoutPropertiesLoose_default()(props, _excluded);
8343
8344 var position = fixed ? 'fixed' : 'absolute';
8345
8346 var _useState = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(visible),
8347 firstVisible = _useState[0],
8348 setFirst = _useState[1];
8349
8350 var _useState2 = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(null),
8351 forceUpdate = _useState2[1];
8352
8353 var positionStyleRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])({
8354 position: position
8355 });
8356 var getContainer = typeof popupContainer === 'string' ? function () {
8357 return document.getElementById(popupContainer);
8358 } : typeof popupContainer !== 'function' ? function () {
8359 return popupContainer;
8360 } : popupContainer;
8361
8362 var _useState3 = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(null),
8363 container = _useState3[0],
8364 setContainer = _useState3[1];
8365
8366 var targetRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8367 var overlayRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8368 var containerRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8369 var maskRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8370 var overflowRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])([]);
8371 var lastFocus = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8372 var ro = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8373
8374 var _useState4 = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(Date.now().toString(36)),
8375 uuid = _useState4[0];
8376
8377 var _useContext = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useContext"])(overlay_context),
8378 setVisibleOverlayToParent = _useContext.setVisibleOverlayToParent,
8379 otherContext = objectWithoutPropertiesLoose_default()(_useContext, _excluded2);
8380
8381 var childIDMap = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(new Map());
8382
8383 var handleOpen = function handleOpen(node) {
8384 setVisibleOverlayToParent(uuid, node);
8385 onOpen === null || onOpen === void 0 ? void 0 : onOpen(node);
8386 };
8387
8388 var handleClose = function handleClose() {
8389 setVisibleOverlayToParent(uuid, null);
8390 onClose === null || onClose === void 0 ? void 0 : onClose();
8391 };
8392
8393 var getVisibleOverlayFromChild = function getVisibleOverlayFromChild(id, node) {
8394 if (node) {
8395 childIDMap.current.set(id, node);
8396 } else {
8397 childIDMap.current["delete"](id);
8398 } // 让父级也感知
8399
8400
8401 setVisibleOverlayToParent(id, node);
8402 };
8403
8404 var child = external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Children.only(children);
8405
8406 if (typeof child.ref === 'string') {
8407 throw new Error('Can not set ref by string in Overlay, use function instead.');
8408 }
8409
8410 var updatePosition = function updatePosition() {
8411 var overlayNode = overlayRef.current;
8412 var containerNode = containerRef.current;
8413 var targetNode = targetRef.current;
8414
8415 if (!overlayNode || !containerNode || !targetNode) {
8416 return;
8417 }
8418
8419 var placements = getPlacements({
8420 target: targetNode,
8421 overlay: overlayNode,
8422 container: containerNode,
8423 scrollNode: overflowRef.current,
8424 points: points,
8425 offset: offset,
8426 position: position,
8427 placement: placement,
8428 placementOffset: placementOffset,
8429 beforePosition: beforePosition,
8430 autoAdjust: autoAdjust,
8431 rtl: rtl
8432 });
8433 positionStyleRef.current = placements.style;
8434 setStyle(overlayNode, placements.style);
8435 typeof onPosition === 'function' && onPosition(placements);
8436 }; // 弹窗挂载
8437
8438
8439 var overlayRefCallback = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useCallback"])(function (nodeRef) {
8440 var node = Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(nodeRef);
8441 overlayRef.current = node;
8442 callRef(ref, node);
8443
8444 if (node !== null && container) {
8445 var containerNode = getRelativeContainer(getHTMLElement(container));
8446 containerRef.current = containerNode;
8447 var targetElement = target === 'viewport' ? hasMask ? maskRef.current : body() : getTargetNode(target) || body();
8448 var targetNode = getHTMLElement(targetElement);
8449 targetRef.current = targetNode;
8450 overflowRef.current = getOverflowNodes(targetNode, containerNode); // 1. 这里提前先设置好 position 属性,因为有的节点可能会因为设置了 position 属性导致宽度变小
8451 // 2. 提前设置 top/left -1000 先把弹窗藏起来,以免影响了 container 的高度计算
8452
8453 setStyle(node, {
8454 position: fixed ? 'fixed' : 'absolute',
8455 top: -1000,
8456 left: -1000
8457 });
8458 var waitTime = 100;
8459 ro.current = new ResizeObserver_es["default"](throttle(updatePosition.bind(_this), waitTime));
8460 ro.current.observe(containerNode);
8461 ro.current.observe(node);
8462 forceUpdate({});
8463
8464 if (autoFocus) {
8465 // 这里setTimeout是等弹窗位置计算完成再进行 focus,否则弹窗还在页面最低端,会出现突然滚动到页面最下方的情况
8466 setTimeout(function () {
8467 var focusableNodes = getFocusNodeList(node);
8468
8469 if (focusableNodes.length > 0 && focusableNodes[0]) {
8470 lastFocus.current = document.activeElement;
8471 focusableNodes[0].focus();
8472 }
8473 }, waitTime);
8474 }
8475
8476 !cache && handleOpen(node);
8477 } else {
8478 !cache && handleClose();
8479
8480 if (ro.current) {
8481 ro.current.disconnect();
8482 ro.current = null;
8483 }
8484 }
8485 }, [container]);
8486
8487 var clickEvent = function clickEvent(e) {
8488 // 点击在子元素上面,则忽略。为了兼容 react16,这里用 contains 判断而不利用 e.stopPropagation() 阻止冒泡的特性来处理
8489 for (var _iterator = _createForOfIteratorHelperLoose(childIDMap.current.entries()), _step; !(_step = _iterator()).done;) {
8490 var _step$value = _step.value,
8491 oNode = _step$value[1];
8492
8493 var _node2 = getHTMLElement(oNode);
8494
8495 if (_node2 && (_node2 === e.target || _node2.contains(e.target))) {
8496 return;
8497 }
8498 }
8499
8500 if (!visible) {
8501 return;
8502 } // 点击遮罩关闭
8503
8504
8505 if (hasMask && maskRef.current === e.target) {
8506 if (canCloseByMask) {
8507 onRequestClose('maskClick', e); // TODO: will rename to `mask` in 1.0
8508 }
8509
8510 return;
8511 }
8512
8513 var safeNodeList = Array.isArray(safeNode) ? safeNode : [safeNode]; // 弹层默认是安全节点
8514
8515 if (overlayRef.current) {
8516 safeNodeList.push(function () {
8517 return overlayRef.current;
8518 });
8519 } // 安全节点不关闭
8520
8521
8522 for (var i = 0; i < safeNodeList.length; i++) {
8523 var _safeNode = getTargetNode(safeNodeList[i]);
8524
8525 var _node = getHTMLElement(_safeNode);
8526
8527 if (_node && (_node === e.target || _node.contains(e.target))) {
8528 return;
8529 }
8530 }
8531
8532 if (canCloseByOutSideClick) {
8533 onRequestClose('docClick', e); // TODO: will rename to `doc` in 1.0
8534 }
8535 }; // 这里用 mousedown 而不是用 click。因为 click 是 mouseup 才触发。
8536 // 如果用 click 带来的问题: mousedown 在弹窗内部,然后按住鼠标不放拖动到弹窗外触发 mouseup 结果弹窗关了,这是不期望的展示。 https://github.com/alibaba-fusion/next/issues/742
8537 // react 17 冒泡问题:
8538 // - react17 中,如果弹窗 mousedown 阻止了 e.stopPropagation(), 那么 document 就不会监听到事件,因为事件冒泡到挂载节点 rootElement 就中断了。
8539 // - https://reactjs.org/blog/2020/08/10/react-v17-rc.html#changes-to-event-delegation
8540
8541
8542 useListener(document, 'mousedown', clickEvent, false, !!(visible && overlayRef.current && (canCloseByOutSideClick || hasMask && canCloseByMask)));
8543
8544 var keydownEvent = function keydownEvent(e) {
8545 if (!visible) {
8546 return;
8547 } // 无子元素才能 esc 取消关闭
8548
8549
8550 if (e.keyCode === 27 && canCloseByEsc && !childIDMap.current.size) {
8551 onRequestClose('esc', e);
8552 }
8553 };
8554
8555 useListener(document, 'keydown', keydownEvent, false, !!(visible && overlayRef.current && canCloseByEsc));
8556
8557 var scrollEvent = function scrollEvent(e) {
8558 if (!visible) {
8559 return;
8560 }
8561
8562 updatePosition();
8563 };
8564
8565 useListener(overflowRef.current, 'scroll', scrollEvent, false, !!(visible && overlayRef.current && (_overflowRef$current = overflowRef.current) !== null && _overflowRef$current !== void 0 && _overflowRef$current.length)); // 有弹窗情况下在 body 增加 overflow:hidden,两个弹窗同时存在也没问题,会按照堆的方式依次 pop
8566
8567 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8568 if (visible && disableScroll) {
8569 var originStyle = document.body.getAttribute('style');
8570 setStyle(document.body, 'overflow', 'hidden');
8571
8572 if (overlay_hasScroll(document.body)) {
8573 var scrollWidth = getScrollbarWidth();
8574
8575 if (scrollWidth) {
8576 setStyle(document.body, 'padding-right', "calc(" + getStyle(document.body, 'padding-right') + " + " + scrollWidth + "px)");
8577 }
8578 }
8579
8580 return function () {
8581 document.body.setAttribute('style', originStyle || '');
8582 };
8583 }
8584
8585 return undefined;
8586 }, [visible && disableScroll]); // 第一次加载并且 visible=false 的情况不挂载弹窗
8587
8588 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8589 if (!firstVisible && visible) {
8590 setFirst(true);
8591 }
8592 }, [visible]); // cache 情况下的模拟 onOpen/onClose
8593
8594 var overlayNode = overlayRef.current; // overlayRef.current 可能会异步变化,所以要先接下
8595
8596 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8597 if (cache && overlayNode) {
8598 if (visible) {
8599 updatePosition();
8600 handleOpen(overlayNode);
8601 } else {
8602 handleClose();
8603 }
8604 }
8605 }, [visible, cache && overlayNode]); // autoFocus 弹窗关闭后回到触发点
8606
8607 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8608 if (!visible && autoFocus && lastFocus.current) {
8609 lastFocus.current.focus();
8610 lastFocus.current = null;
8611 }
8612 }, [!visible && autoFocus && lastFocus.current]); // container 异步加载, 因为 container 很可能还没渲染完成,所以 visible 后这里异步设置下
8613
8614 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8615 if (visible) {
8616 // 首次更新
8617 if (!container) {
8618 setContainer(getContainer());
8619 } else if (getContainer() !== container) {
8620 setContainer(getContainer());
8621 }
8622 }
8623 }, [visible, popupContainer]);
8624
8625 if (firstVisible === false || !container) {
8626 return null;
8627 }
8628
8629 if (!visible && !cache && isAnimationEnd) {
8630 return null;
8631 }
8632
8633 var newChildren = child ? /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement(overlay_RefWrapper, {
8634 ref: overlayRefCallback
8635 }, /*#__PURE__*/Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["cloneElement"])(child, extends_default()({}, others, {
8636 style: extends_default()({
8637 top: 0,
8638 left: 0
8639 }, child.props.style, positionStyleRef.current)
8640 }))) : null;
8641
8642 var wrapperStyle = extends_default()({}, owrapperStyle);
8643
8644 if (cache && !visible && isAnimationEnd) {
8645 wrapperStyle.display = 'none';
8646 }
8647
8648 var maskNode = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement("div", {
8649 className: maskClassName,
8650 style: maskStyle,
8651 ref: maskRef
8652 });
8653 var content = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement("div", {
8654 className: wrapperClassName,
8655 style: wrapperStyle
8656 }, hasMask ? maskRender ? maskRender(maskNode) : maskNode : null, newChildren);
8657 return /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement(overlay_context.Provider, {
8658 value: extends_default()({}, otherContext, {
8659 setVisibleOverlayToParent: getVisibleOverlayFromChild
8660 })
8661 }, /*#__PURE__*/Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["createPortal"])(content, container));
8662});
8663/* harmony default export */ var es_overlay = (Overlay);
8664// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.9@@alifd/overlay/es/popup.js
8665
8666
8667var popup__excluded = ["overlay", "triggerType", "triggerClickKeyCode", "children", "defaultVisible", "className", "onVisibleChange", "container", "style", "placement", "canCloseByTrigger", "delay", "overlayProps", "safeNode", "followTrigger", "target"];
8668
8669
8670
8671
8672var Popup = /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.forwardRef(function (props, ref) {
8673 var body = function body() {
8674 return document.body;
8675 };
8676
8677 var overlay = props.overlay,
8678 _props$triggerType = props.triggerType,
8679 triggerType = _props$triggerType === void 0 ? 'click' : _props$triggerType,
8680 triggerClickKeyCode = props.triggerClickKeyCode,
8681 children = props.children,
8682 defaultVisible = props.defaultVisible,
8683 className = props.className,
8684 _props$onVisibleChang = props.onVisibleChange,
8685 onVisibleChange = _props$onVisibleChang === void 0 ? function () {} : _props$onVisibleChang,
8686 _props$container = props.container,
8687 container = _props$container === void 0 ? body : _props$container,
8688 _props$style = props.style,
8689 style = _props$style === void 0 ? {} : _props$style,
8690 _props$placement = props.placement,
8691 placement = _props$placement === void 0 ? "bl" : _props$placement,
8692 _props$canCloseByTrig = props.canCloseByTrigger,
8693 canCloseByTrigger = _props$canCloseByTrig === void 0 ? true : _props$canCloseByTrig,
8694 _props$delay = props.delay,
8695 delay = _props$delay === void 0 ? 200 : _props$delay,
8696 _props$overlayProps = props.overlayProps,
8697 overlayProps = _props$overlayProps === void 0 ? {} : _props$overlayProps,
8698 safeNode = props.safeNode,
8699 _props$followTrigger = props.followTrigger,
8700 followTrigger = _props$followTrigger === void 0 ? false : _props$followTrigger,
8701 otarget = props.target,
8702 others = objectWithoutPropertiesLoose_default()(props, popup__excluded);
8703
8704 var _useState = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useState"])(defaultVisible || props.visible),
8705 visible = _useState[0],
8706 setVisible = _useState[1];
8707
8708 var triggerRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8709 var overlayRef = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8710 var mouseLeaveTimer = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8711 var mouseEnterTimer = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(null);
8712 var overlayClick = Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useRef"])(false);
8713 var child = children && external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Children.only(children);
8714 var overlayChild = external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Children.only(overlay);
8715 Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useEffect"])(function () {
8716 if ('visible' in props) {
8717 setVisible(props.visible);
8718 }
8719 }, [props.visible]);
8720
8721 var handleVisibleChange = function handleVisibleChange(visible, e, triggerType) {
8722 if (triggerType === void 0) {
8723 triggerType = 'fromTrigger';
8724 }
8725
8726 if (!('visible' in props)) {
8727 if (visible || overlayRef.current) {
8728 setVisible(visible);
8729 }
8730 }
8731
8732 onVisibleChange(visible, triggerType, e);
8733 };
8734
8735 var handleClick = function handleClick(e) {
8736 if (visible && !canCloseByTrigger) {
8737 return;
8738 }
8739
8740 handleVisibleChange(!visible, e); // todo: rename to trigger in 1.x
8741 };
8742
8743 var handleKeyDown = function handleKeyDown(e) {
8744 var keycodes = Array.isArray(triggerClickKeyCode) ? triggerClickKeyCode : [triggerClickKeyCode];
8745
8746 if (keycodes.includes(e.keyCode)) {
8747 handleVisibleChange(!visible, e); // todo: rename to trigger in 1.x
8748 }
8749 };
8750
8751 var handleMouseEnter = function handleMouseEnter(targetType) {
8752 return function (e) {
8753 if (mouseLeaveTimer.current && visible) {
8754 clearTimeout(mouseLeaveTimer.current);
8755 mouseLeaveTimer.current = null;
8756 return;
8757 }
8758
8759 if (!mouseEnterTimer.current && !visible) {
8760 mouseEnterTimer.current = setTimeout(function () {
8761 handleVisibleChange(true, e, targetType);
8762 mouseEnterTimer.current = null;
8763 }, delay);
8764 }
8765 };
8766 };
8767
8768 var handleMouseLeave = function handleMouseLeave(targetType) {
8769 return function (e) {
8770 if (!mouseLeaveTimer.current && visible) {
8771 mouseLeaveTimer.current = setTimeout(function () {
8772 handleVisibleChange(false, e, targetType);
8773 mouseLeaveTimer.current = null;
8774 }, delay);
8775 }
8776
8777 if (mouseEnterTimer.current && !visible) {
8778 clearTimeout(mouseEnterTimer.current);
8779 mouseEnterTimer.current = null;
8780 }
8781 };
8782 };
8783
8784 var handleFocus = function handleFocus(e) {
8785 handleVisibleChange(true, e);
8786 };
8787
8788 var handleBlur = function handleBlur(e) {
8789 if (overlayClick.current) {
8790 overlayClick.current = false;
8791 return;
8792 }
8793
8794 handleVisibleChange(false, e);
8795 }; // 点击弹窗的时候不能被 onBlur 关闭
8796
8797
8798 var handleOverlayClick = function handleOverlayClick(e) {
8799 overlayClick.current = true;
8800 };
8801
8802 var handleRequestClose = function handleRequestClose(targetType, e) {
8803 handleVisibleChange(false, e, targetType);
8804 };
8805
8806 var triggerProps = {};
8807 var overlayOtherProps = {};
8808 var safeNodes = Array.isArray(safeNode) ? safeNode : [safeNode];
8809
8810 if (child) {
8811 var triggerTypeList = typeof triggerType === 'string' ? [triggerType] : triggerType;
8812 triggerTypeList.forEach(function (t) {
8813 var _child$props, _child$props2, _child$props3, _child$props4, _child$props5, _child$props6;
8814
8815 switch (t) {
8816 case 'click':
8817 triggerProps.onClick = makeChain(handleClick, (_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.onClick);
8818 triggerProps.onKeyDown = makeChain(handleKeyDown, (_child$props2 = child.props) === null || _child$props2 === void 0 ? void 0 : _child$props2.onKeyDown);
8819 break;
8820
8821 case 'hover':
8822 triggerProps.onMouseEnter = makeChain(handleMouseEnter('fromTrigger'), (_child$props3 = child.props) === null || _child$props3 === void 0 ? void 0 : _child$props3.onMouseEnter);
8823 triggerProps.onMouseLeave = makeChain(handleMouseLeave('fromTrigger'), (_child$props4 = child.props) === null || _child$props4 === void 0 ? void 0 : _child$props4.onMouseLeave);
8824 overlayOtherProps.onMouseEnter = makeChain(handleMouseEnter('overlay'), overlayProps.onMouseEnter);
8825 overlayOtherProps.onMouseLeave = makeChain(handleMouseLeave('overlay'), overlayProps.onMouseLeave);
8826 break;
8827
8828 case 'focus':
8829 triggerProps.onFocus = makeChain(handleFocus, (_child$props5 = child.props) === null || _child$props5 === void 0 ? void 0 : _child$props5.onFocus);
8830 triggerProps.onBlur = makeChain(handleBlur, (_child$props6 = child.props) === null || _child$props6 === void 0 ? void 0 : _child$props6.onBlur);
8831 overlayOtherProps.onMouseDown = makeChain(handleOverlayClick, overlayProps.onMouseDown);
8832 break;
8833 }
8834 }); // trigger 是安全节点
8835
8836 safeNodes.push(function () {
8837 return Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(triggerRef.current);
8838 });
8839 }
8840
8841 var target = otarget ? otarget : child ? function () {
8842 return Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(triggerRef.current);
8843 } : body;
8844 var getContainer = typeof container === 'string' ? function () {
8845 return document.getElementById(container);
8846 } : typeof container !== 'function' ? function () {
8847 return container;
8848 } : function () {
8849 return container(Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(triggerRef.current));
8850 };
8851 var overlayContainer = followTrigger ? function () {
8852 var _findDOMNode;
8853
8854 return (_findDOMNode = Object(external___root___ReactDOM___commonjs2___react_dom___commonjs___react_dom___amd___react_dom__["findDOMNode"])(triggerRef.current)) === null || _findDOMNode === void 0 ? void 0 : _findDOMNode.parentNode;
8855 } : getContainer; // triggerRef 可能会更新,等计算的时候再通过 findDOMNode 取真实值
8856
8857 return /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement(external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.Fragment, null, child && /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement(overlay_RefWrapper, {
8858 ref: Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useCallback"])(function (ref) {
8859 return triggerRef.current = ref;
8860 }, [])
8861 }, /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.cloneElement(child, triggerProps)), /*#__PURE__*/external___root___React___commonjs2___react___commonjs___react___amd___react___default.a.createElement(es_overlay, extends_default()({}, others, overlayOtherProps, {
8862 placement: placement,
8863 container: overlayContainer,
8864 safeNode: safeNodes,
8865 visible: visible,
8866 target: target,
8867 onRequestClose: handleRequestClose,
8868 ref: Object(external___root___React___commonjs2___react___commonjs___react___amd___react__["useCallback"])(makeChain(saveRef(overlayRef), saveRef(ref)), [])
8869 }), overlayChild));
8870});
8871/* harmony default export */ var popup = (Popup);
8872// CONCATENATED MODULE: ./node_modules/_@alifd_overlay@0.2.9@@alifd/overlay/es/index.js
8873
8874
8875
8876var es_Overlay = es_overlay;
8877es_Overlay.Popup = popup;
8878es_Overlay.OverlayContext = overlay_context;
8879/* harmony default export */ var es = __webpack_exports__["default"] = (es_Overlay);
8880
8881/***/ }),
8882/* 86 */
8883/***/ (function(module, exports, __webpack_require__) {
8884
8885"use strict";
8886
8887
8888exports.__esModule = true;
8889
8890var _extends2 = __webpack_require__(1);
8891
8892var _extends3 = _interopRequireDefault(_extends2);
8893
8894var _objectWithoutProperties2 = __webpack_require__(8);
8895
8896var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
8897
8898var _classCallCheck2 = __webpack_require__(2);
8899
8900var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
8901
8902var _possibleConstructorReturn2 = __webpack_require__(3);
8903
8904var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
8905
8906var _inherits2 = __webpack_require__(4);
8907
8908var _inherits3 = _interopRequireDefault(_inherits2);
8909
8910var _class, _temp;
8911
8912var _react = __webpack_require__(0);
8913
8914var _react2 = _interopRequireDefault(_react);
8915
8916var _propTypes = __webpack_require__(5);
8917
8918var _propTypes2 = _interopRequireDefault(_propTypes);
8919
8920var _classnames = __webpack_require__(7);
8921
8922var _classnames2 = _interopRequireDefault(_classnames);
8923
8924var _util = __webpack_require__(6);
8925
8926var _icon = __webpack_require__(11);
8927
8928var _icon2 = _interopRequireDefault(_icon);
8929
8930var _zhCn = __webpack_require__(13);
8931
8932var _zhCn2 = _interopRequireDefault(_zhCn);
8933
8934var _alignMap = __webpack_require__(87);
8935
8936function _interopRequireDefault(obj) {
8937 return obj && obj.__esModule ? obj : { default: obj };
8938}
8939
8940/**
8941 * Created by xiachi on 17/2/10.
8942 */
8943
8944var noop = _util.func.noop;
8945var BalloonInner = (_temp = _class = function (_React$Component) {
8946 (0, _inherits3.default)(BalloonInner, _React$Component);
8947
8948 function BalloonInner() {
8949 (0, _classCallCheck3.default)(this, BalloonInner);
8950 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
8951 }
8952
8953 BalloonInner.prototype.render = function render() {
8954 var _classNames, _classNames2;
8955
8956 var _props = this.props,
8957 prefix = _props.prefix,
8958 closable = _props.closable,
8959 className = _props.className,
8960 style = _props.style,
8961 isTooltip = _props.isTooltip,
8962 align = _props.align,
8963 title = _props.title,
8964 type = _props.type,
8965 onClose = _props.onClose,
8966 alignEdge = _props.alignEdge,
8967 v2 = _props.v2,
8968 children = _props.children,
8969 rtl = _props.rtl,
8970 locale = _props.locale,
8971 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'closable', 'className', 'style', 'isTooltip', 'align', 'title', 'type', 'onClose', 'alignEdge', 'v2', 'children', 'rtl', 'locale']);
8972
8973 var alignMap = alignEdge || v2 ? _alignMap.edgeMap : _alignMap.normalMap;
8974 var _prefix = prefix;
8975
8976 if (isTooltip) {
8977 _prefix = _prefix + 'balloon-tooltip';
8978 } else {
8979 _prefix = _prefix + 'balloon';
8980 }
8981
8982 var closableInTitle = closable && title !== undefined;
8983 var closableInContent = closable && title === undefined;
8984
8985 var classes = (0, _classnames2.default)((_classNames = {}, _classNames['' + _prefix] = true, _classNames[_prefix + '-' + type] = type, _classNames[_prefix + '-medium'] = true, _classNames[_prefix + '-' + alignMap[align].arrow] = alignMap[align], _classNames[_prefix + '-closable'] = closableInContent, _classNames[className] = className, _classNames));
8986
8987 var titleCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'balloon-title'] = true, _classNames2[_prefix + '-closable'] = closableInTitle, _classNames2));
8988
8989 var closeIcon = _react2.default.createElement('a', { role: 'button', 'aria-label': locale.close, tabIndex: '0', className: _prefix + '-close', onClick: onClose }, _react2.default.createElement(_icon2.default, { type: 'close', size: 'small' }));
8990
8991 return _react2.default.createElement('div', (0, _extends3.default)({
8992 role: 'tooltip',
8993 'aria-live': 'polite',
8994 dir: rtl ? 'rtl' : undefined,
8995 className: classes,
8996 style: style
8997 }, _util.obj.pickOthers(Object.keys(BalloonInner.propTypes), others)), _react2.default.createElement('div', { className: prefix + 'balloon-arrow' }, _react2.default.createElement('div', { className: prefix + 'balloon-arrow-content' })), title && _react2.default.createElement('div', { className: titleCls }, title, closableInTitle && closeIcon), _react2.default.createElement('div', { className: prefix + 'balloon-content' }, children), closableInContent && closeIcon);
8998 };
8999
9000 return BalloonInner;
9001}(_react2.default.Component), _class.contextTypes = {
9002 prefix: _propTypes2.default.string
9003}, _class.propTypes = {
9004 prefix: _propTypes2.default.string,
9005 rtl: _propTypes2.default.bool,
9006 closable: _propTypes2.default.bool,
9007 children: _propTypes2.default.any,
9008 title: _propTypes2.default.node,
9009 className: _propTypes2.default.string,
9010 alignEdge: _propTypes2.default.bool,
9011 onClose: _propTypes2.default.func,
9012 style: _propTypes2.default.any,
9013 align: _propTypes2.default.string,
9014 type: _propTypes2.default.string,
9015 isTooltip: _propTypes2.default.bool,
9016 locale: _propTypes2.default.object,
9017 pure: _propTypes2.default.bool,
9018 v2: _propTypes2.default.bool
9019}, _class.defaultProps = {
9020 prefix: 'next-',
9021 closable: true,
9022 onClose: noop,
9023 locale: _zhCn2.default.Balloon,
9024 align: 'b',
9025 type: 'normal',
9026 alignEdge: false,
9027 pure: false
9028}, _temp);
9029BalloonInner.displayName = 'BalloonInner';
9030exports.default = BalloonInner;
9031module.exports = exports['default'];
9032
9033/***/ }),
9034/* 87 */
9035/***/ (function(module, exports, __webpack_require__) {
9036
9037"use strict";
9038
9039
9040exports.__esModule = true;
9041/**
9042 * Created by xiachi on 17/1/17.
9043 */
9044
9045var normalMap = {
9046 t: {
9047 align: 'bc tc',
9048 rtlAlign: 'bc tc',
9049 arrow: 'bottom',
9050 trOrigin: 'bottom',
9051 rtlTrOrigin: 'bottom',
9052 offset: [0, -12]
9053 },
9054 r: {
9055 align: 'cl cr',
9056 rtlAlign: 'cr cl',
9057 arrow: 'left',
9058 trOrigin: 'left',
9059 rtlTrOrigin: 'right',
9060 offset: [12, 0]
9061 },
9062 b: {
9063 align: 'tc bc',
9064 rtlAlign: 'tc bc',
9065 arrow: 'top',
9066 trOrigin: 'top',
9067 rtlTrOrigin: 'top',
9068 offset: [0, 12]
9069 },
9070 l: {
9071 align: 'cr cl',
9072 rtlAlign: 'cl cr',
9073 arrow: 'right',
9074 trOrigin: 'right',
9075 rtlTrOrigin: 'left',
9076 offset: [-12, 0]
9077 },
9078 tl: {
9079 align: 'br tc',
9080 rtlAlign: 'bl tc',
9081 arrow: 'bottom-right',
9082 trOrigin: 'bottom right',
9083 rtlTrOrigin: 'bottom left',
9084 offset: [20, -12]
9085 },
9086 tr: {
9087 align: 'bl tc',
9088 rtlAlign: 'br tc',
9089 arrow: 'bottom-left',
9090 trOrigin: 'bottom left',
9091 rtlTrOrigin: 'bottom right',
9092 offset: [-20, -12]
9093 },
9094 rt: {
9095 align: 'bl cr',
9096 rtlAlign: 'br cl',
9097 arrow: 'left-bottom',
9098 trOrigin: 'bottom left',
9099 rtlTrOrigin: 'bottom right',
9100 offset: [12, 20]
9101 },
9102 rb: {
9103 align: 'tl cr',
9104 rtlAlign: 'tr cl',
9105 arrow: 'left-top',
9106 trOrigin: 'top left',
9107 rtlTrOrigin: 'top right',
9108 offset: [12, -20]
9109 },
9110 bl: {
9111 align: 'tr bc',
9112 rtlAlign: 'tl bc',
9113 arrow: 'top-right',
9114 trOrigin: 'top right',
9115 rtlTrOrigin: 'top left',
9116 offset: [20, 12]
9117 },
9118 br: {
9119 align: 'tl bc',
9120 rtlAlign: 'tr bc',
9121 arrow: 'top-left',
9122 trOrigin: 'top left',
9123 rtlTrOrigin: 'top right',
9124 offset: [-20, 12]
9125 },
9126 lt: {
9127 align: 'br cl',
9128 rtlAlign: 'bl cr',
9129 arrow: 'right-bottom',
9130 trOrigin: 'bottom right',
9131 rtlTrOrigin: 'bottom left',
9132 offset: [-12, 20]
9133 },
9134 lb: {
9135 align: 'tr cl',
9136 rtlAlign: 'tl cr',
9137 arrow: 'right-top',
9138 trOrigin: 'top right',
9139 rtlTrOrigin: 'top left',
9140 offset: [-12, -20]
9141 }
9142};
9143var edgeMap = {
9144 t: {
9145 align: 'bc tc',
9146 rtlAlign: 'bc tc',
9147 arrow: 'bottom',
9148 trOrigin: 'bottom',
9149 rtlTrOrigin: 'bottom',
9150 offset: [0, -12]
9151 },
9152 r: {
9153 align: 'cl cr',
9154 rtlAlign: 'cr cl',
9155 arrow: 'left',
9156 trOrigin: 'left',
9157 rtlTrOrigin: 'right',
9158 offset: [12, 0]
9159 },
9160 b: {
9161 align: 'tc bc',
9162 rtlAlign: 'tc bc',
9163 arrow: 'top',
9164 trOrigin: 'top',
9165 rtlTrOrigin: 'top',
9166 offset: [0, 12]
9167 },
9168 l: {
9169 align: 'cr cl',
9170 rtlAlign: 'cl cr',
9171 arrow: 'right',
9172 trOrigin: 'right',
9173 rtlTrOrigin: 'left',
9174 offset: [-12, 0]
9175 },
9176 tl: {
9177 align: 'bl tl',
9178 rtlAlign: 'br tr',
9179 arrow: 'bottom-left',
9180 trOrigin: 'bottom left',
9181 rtlTrOrigin: 'bottom right',
9182 offset: [0, -12]
9183 },
9184 tr: {
9185 align: 'br tr',
9186 rtlAlign: 'bl tl',
9187 arrow: 'bottom-right',
9188 trOrigin: 'bottom right',
9189 rtlTrOrigin: 'bottom left',
9190 offset: [0, -12]
9191 },
9192 rt: {
9193 align: 'tl tr',
9194 rtlAlign: 'tr tl',
9195 arrow: 'left-top',
9196 trOrigin: 'top left',
9197 rtlTrOrigin: 'top right',
9198 offset: [12, 0]
9199 },
9200 rb: {
9201 align: 'bl br',
9202 rtlAlign: 'br bl',
9203 arrow: 'left-bottom',
9204 trOrigin: 'bottom left',
9205 rtlTrOrigin: 'bottom right',
9206 offset: [12, 0]
9207 },
9208 bl: {
9209 align: 'tl bl',
9210 rtlAlign: 'tr br',
9211 arrow: 'top-left',
9212 trOrigin: 'top left',
9213 rtlTrOrigin: 'top right',
9214 offset: [0, 12]
9215 },
9216 br: {
9217 align: 'tr br',
9218 rtlAlign: 'tl bl',
9219 arrow: 'top-right',
9220 trOrigin: 'top right',
9221 rtlTrOrigin: 'top left',
9222 offset: [0, 12]
9223 },
9224 lt: {
9225 align: 'tr tl',
9226 rtlAlign: 'tl tr',
9227 arrow: 'right-top',
9228 trOrigin: 'top right',
9229 rtlTrOrigin: 'top left',
9230 offset: [-12, 0]
9231 },
9232 lb: {
9233 align: 'br bl',
9234 rtlAlign: 'bl br',
9235 arrow: 'right-bottom',
9236 trOrigin: 'bottom right',
9237 rtlTrOrigin: 'bottom left',
9238 offset: [-12, 0]
9239 }
9240};
9241
9242exports.normalMap = normalMap;
9243exports.edgeMap = edgeMap;
9244
9245/***/ }),
9246/* 88 */
9247/***/ (function(module, exports, __webpack_require__) {
9248
9249"use strict";
9250
9251
9252exports.__esModule = true;
9253exports.default = undefined;
9254
9255var _extends2 = __webpack_require__(1);
9256
9257var _extends3 = _interopRequireDefault(_extends2);
9258
9259var _classCallCheck2 = __webpack_require__(2);
9260
9261var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
9262
9263var _possibleConstructorReturn2 = __webpack_require__(3);
9264
9265var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
9266
9267var _inherits2 = __webpack_require__(4);
9268
9269var _inherits3 = _interopRequireDefault(_inherits2);
9270
9271var _class, _temp;
9272
9273var _react = __webpack_require__(0);
9274
9275var _react2 = _interopRequireDefault(_react);
9276
9277var _propTypes = __webpack_require__(5);
9278
9279var _propTypes2 = _interopRequireDefault(_propTypes);
9280
9281var _classnames = __webpack_require__(7);
9282
9283var _classnames2 = _interopRequireDefault(_classnames);
9284
9285var _icon = __webpack_require__(11);
9286
9287var _icon2 = _interopRequireDefault(_icon);
9288
9289var _util = __webpack_require__(6);
9290
9291var _item = __webpack_require__(37);
9292
9293var _item2 = _interopRequireDefault(_item);
9294
9295function _interopRequireDefault(obj) {
9296 return obj && obj.__esModule ? obj : { default: obj };
9297}
9298
9299var bindCtx = _util.func.bindCtx;
9300var pickOthers = _util.obj.pickOthers;
9301
9302/**
9303 * Menu.Item
9304 * @order 0
9305 */
9306
9307var SelectableItem = (_temp = _class = function (_Component) {
9308 (0, _inherits3.default)(SelectableItem, _Component);
9309
9310 function SelectableItem(props) {
9311 (0, _classCallCheck3.default)(this, SelectableItem);
9312
9313 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
9314
9315 bindCtx(_this, ['handleKeyDown', 'handleClick']);
9316 return _this;
9317 }
9318
9319 SelectableItem.prototype.getSelected = function getSelected() {
9320 var _props = this.props,
9321 _key = _props._key,
9322 root = _props.root,
9323 selected = _props.selected;
9324 var selectMode = root.props.selectMode;
9325 var selectedKeys = root.state.selectedKeys;
9326
9327 return selected || !!selectMode && selectedKeys.indexOf(_key) > -1;
9328 };
9329
9330 SelectableItem.prototype.handleSelect = function handleSelect(e) {
9331 var _props2 = this.props,
9332 _key = _props2._key,
9333 root = _props2.root,
9334 onSelect = _props2.onSelect;
9335
9336 if (onSelect) {
9337 onSelect(!this.getSelected(), this, e);
9338 } else {
9339 root.handleSelect(_key, !this.getSelected(), this);
9340 }
9341 };
9342
9343 SelectableItem.prototype.handleKeyDown = function handleKeyDown(e) {
9344 if (e.keyCode === _util.KEYCODE.SPACE && !this.props.disabled) {
9345 this.handleSelect(e);
9346 }
9347
9348 this.props.onKeyDown && this.props.onKeyDown(e);
9349 };
9350
9351 SelectableItem.prototype.handleClick = function handleClick(e) {
9352 this.handleSelect(e);
9353
9354 this.props.onClick && this.props.onClick(e);
9355 };
9356
9357 SelectableItem.prototype.renderSelectedIcon = function renderSelectedIcon(selected) {
9358 var _cx;
9359
9360 var _props3 = this.props,
9361 root = _props3.root,
9362 inlineIndent = _props3.inlineIndent,
9363 needIndent = _props3.needIndent,
9364 hasSelectedIcon = _props3.hasSelectedIcon,
9365 isSelectIconRight = _props3.isSelectIconRight,
9366 type = _props3.type;
9367 var _root$props = root.props,
9368 prefix = _root$props.prefix,
9369 rootSelectedIcon = _root$props.hasSelectedIcon,
9370 rootSelectIconRight = _root$props.isSelectIconRight,
9371 icons = _root$props.icons;
9372
9373 var iconsSelect = icons.select;
9374
9375 if (!(0, _react.isValidElement)(icons.select) && icons.select) {
9376 iconsSelect = _react2.default.createElement('span', null, icons.select);
9377 }
9378
9379 var cls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-icon-selected'] = true, _cx[prefix + 'menu-symbol-icon-selected'] = !iconsSelect, _cx[prefix + 'menu-icon-right'] = ('isSelectIconRight' in this.props ? isSelectIconRight : rootSelectIconRight) && type !== 'submenu', _cx));
9380
9381 return ('hasSelectedIcon' in this.props ? hasSelectedIcon : rootSelectedIcon) && selected ? _react2.default.cloneElement(iconsSelect || _react2.default.createElement(_icon2.default, { type: 'select' }), {
9382 style: needIndent && inlineIndent > 0 ? { left: inlineIndent + 'px' } : null,
9383 className: cls
9384 }) : null;
9385 };
9386
9387 SelectableItem.prototype.render = function render() {
9388 var _cx2;
9389
9390 var _props4 = this.props,
9391 _key = _props4._key,
9392 root = _props4.root,
9393 className = _props4.className,
9394 disabled = _props4.disabled,
9395 helper = _props4.helper,
9396 children = _props4.children,
9397 needIndent = _props4.needIndent;
9398 var prefix = root.props.prefix;
9399
9400 var others = pickOthers(Object.keys(SelectableItem.propTypes), this.props);
9401 var selected = this.getSelected();
9402
9403 var newProps = (0, _extends3.default)({
9404 _key: _key,
9405 root: root,
9406 disabled: disabled,
9407 type: 'item',
9408 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'selected'] = selected, _cx2[className] = !!className, _cx2)),
9409 onKeyDown: this.handleKeyDown,
9410 onClick: !disabled ? this.handleClick : this.props.onClick,
9411 needIndent: needIndent
9412 }, others);
9413
9414 if (!('title' in newProps) && typeof children === 'string') {
9415 newProps.title = children;
9416 }
9417
9418 var textProps = {};
9419
9420 if ('selectMode' in root.props) {
9421 textProps['aria-selected'] = selected;
9422 }
9423
9424 return _react2.default.createElement(_item2.default, newProps, this.renderSelectedIcon(selected), _react2.default.createElement('span', (0, _extends3.default)({ className: prefix + 'menu-item-text' }, textProps), children), helper ? _react2.default.createElement('div', { className: prefix + 'menu-item-helper' }, helper) : null);
9425 };
9426
9427 return SelectableItem;
9428}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
9429 _key: _propTypes2.default.string,
9430 root: _propTypes2.default.object,
9431 selected: _propTypes2.default.bool,
9432 onSelect: _propTypes2.default.func,
9433 inlineIndent: _propTypes2.default.number,
9434 /**
9435 * 是否禁用
9436 */
9437 disabled: _propTypes2.default.bool,
9438 /**
9439 * 帮助文本
9440 */
9441 helper: _propTypes2.default.node,
9442 /**
9443 * 菜单项标签内容
9444 */
9445 children: _propTypes2.default.node,
9446 className: _propTypes2.default.string,
9447 onKeyDown: _propTypes2.default.func,
9448 onClick: _propTypes2.default.func,
9449 needIndent: _propTypes2.default.bool,
9450 hasSelectedIcon: _propTypes2.default.bool,
9451 isSelectIconRight: _propTypes2.default.bool,
9452 icons: _propTypes2.default.object
9453}, _class.defaultProps = {
9454 disabled: false,
9455 needIndent: true,
9456 icons: {}
9457}, _temp);
9458SelectableItem.displayName = 'SelectableItem';
9459exports.default = SelectableItem;
9460module.exports = exports['default'];
9461
9462/***/ }),
9463/* 89 */
9464/***/ (function(module, exports, __webpack_require__) {
9465
9466"use strict";
9467
9468
9469exports.__esModule = true;
9470var getWidth = exports.getWidth = function getWidth(elem) {
9471 var width = elem && typeof elem.getBoundingClientRect === 'function' && elem.getBoundingClientRect().width;
9472 if (width) {
9473 width = +width.toFixed(6);
9474 }
9475 return width || 0;
9476};
9477
9478var normalizeToArray = exports.normalizeToArray = function normalizeToArray(items) {
9479 if (items) {
9480 if (Array.isArray(items)) {
9481 return items;
9482 }
9483 return [items];
9484 }
9485
9486 return [];
9487};
9488
9489var isSibling = exports.isSibling = function isSibling(currentPos, targetPos) {
9490 var currentNums = currentPos.split('-').slice(0, -1);
9491 var targetNums = targetPos.split('-').slice(0, -1);
9492
9493 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
9494 return num === targetNums[index];
9495 });
9496};
9497
9498var isAncestor = exports.isAncestor = function isAncestor(currentPos, targetPos) {
9499 var currentNums = currentPos.split('-');
9500 var targetNums = targetPos.split('-');
9501
9502 return currentNums.length > targetNums.length && targetNums.every(function (num, index) {
9503 return num === currentNums[index];
9504 });
9505};
9506
9507var isAvailablePos = exports.isAvailablePos = function isAvailablePos(refPos, targetPos, _p2n) {
9508 var _p2n$targetPos = _p2n[targetPos],
9509 type = _p2n$targetPos.type,
9510 disabled = _p2n$targetPos.disabled;
9511
9512 return isSibling(refPos, targetPos) && (type === 'item' && !disabled || type === 'submenu');
9513};
9514
9515var getFirstAvaliablelChildKey = exports.getFirstAvaliablelChildKey = function getFirstAvaliablelChildKey(parentPos, _p2n) {
9516 var pos = Object.keys(_p2n).find(function (p) {
9517 return isAvailablePos(parentPos + '-0', p, _p2n);
9518 });
9519 return pos ? _p2n[pos].key : null;
9520};
9521
9522/**
9523 * 如果 key 在 SelectedKeys 的选中链上(例如 SelectedKeys 是['0-1-2'], key是 0-1 ),那么返回true
9524 *
9525 * selectMode?: string; 当前的选择模式,一般为 multiple single
9526 * selectedKeys?: string[]; 选中的key值
9527 * k2n?: object[] mapping;
9528 * _key?: string; 待测试的key值
9529 *
9530 * @return bool 当前元素是否有孩子被选中
9531 */
9532var getChildSelected = exports.getChildSelected = function getChildSelected(_ref) {
9533 var selectMode = _ref.selectMode,
9534 selectedKeys = _ref.selectedKeys,
9535 _k2n = _ref._k2n,
9536 _key = _ref._key;
9537
9538 if (!_k2n) {
9539 return false;
9540 }
9541
9542 var _keyPos = (_k2n[_key] && _k2n[_key].pos) + '-';
9543
9544 return !!selectMode && selectedKeys.some(function (key) {
9545 return _k2n[key] && _k2n[key].pos.indexOf(_keyPos) === 0;
9546 });
9547};
9548
9549/***/ }),
9550/* 90 */
9551/***/ (function(module, exports, __webpack_require__) {
9552
9553"use strict";
9554
9555
9556exports.__esModule = true;
9557
9558var _objectWithoutProperties2 = __webpack_require__(8);
9559
9560var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
9561
9562var _extends2 = __webpack_require__(1);
9563
9564var _extends3 = _interopRequireDefault(_extends2);
9565
9566var _classCallCheck2 = __webpack_require__(2);
9567
9568var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
9569
9570var _possibleConstructorReturn2 = __webpack_require__(3);
9571
9572var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
9573
9574var _inherits2 = __webpack_require__(4);
9575
9576var _inherits3 = _interopRequireDefault(_inherits2);
9577
9578var _class, _temp;
9579
9580var _react = __webpack_require__(0);
9581
9582var _react2 = _interopRequireDefault(_react);
9583
9584var _propTypes = __webpack_require__(5);
9585
9586var _propTypes2 = _interopRequireDefault(_propTypes);
9587
9588var _classnames = __webpack_require__(7);
9589
9590var _classnames2 = _interopRequireDefault(_classnames);
9591
9592var _animate = __webpack_require__(20);
9593
9594var _animate2 = _interopRequireDefault(_animate);
9595
9596var _icon = __webpack_require__(11);
9597
9598var _icon2 = _interopRequireDefault(_icon);
9599
9600var _util = __webpack_require__(6);
9601
9602var _zhCn = __webpack_require__(13);
9603
9604var _zhCn2 = _interopRequireDefault(_zhCn);
9605
9606var _configProvider = __webpack_require__(9);
9607
9608var _configProvider2 = _interopRequireDefault(_configProvider);
9609
9610function _interopRequireDefault(obj) {
9611 return obj && obj.__esModule ? obj : { default: obj };
9612}
9613
9614var noop = _util.func.noop,
9615 bindCtx = _util.func.bindCtx;
9616
9617var PRESET_COLOR_REG = /blue|green|orange|red|turquoise|yellow/;
9618
9619/**
9620 * Tag
9621 */
9622var Tag = (_temp = _class = function (_Component) {
9623 (0, _inherits3.default)(Tag, _Component);
9624
9625 function Tag(props) {
9626 (0, _classCallCheck3.default)(this, Tag);
9627
9628 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
9629
9630 _this.onKeyDown = function (e) {
9631 // 针对无障碍化要求 添加键盘SPACE事件
9632 var _this$props = _this.props,
9633 closable = _this$props.closable,
9634 closeArea = _this$props.closeArea,
9635 onClick = _this$props.onClick,
9636 disabled = _this$props.disabled;
9637
9638 if (e.keyCode !== _util.KEYCODE.SPACE || disabled) {
9639 return;
9640 }
9641
9642 e.preventDefault();
9643 e.stopPropagation();
9644
9645 if (closable) {
9646 _this.handleClose(closeArea);
9647 } else {
9648 typeof onClick === 'function' && onClick(e);
9649 }
9650 };
9651
9652 _this.state = {
9653 visible: true
9654 };
9655
9656 bindCtx(_this, ['handleBodyClick', 'handleTailClick', 'handleAnimationInit', 'handleAnimationEnd', 'renderTailNode']);
9657 return _this;
9658 }
9659
9660 Tag.prototype.componentWillUnmount = function componentWillUnmount() {
9661 this.__destroyed = true;
9662 };
9663
9664 Tag.prototype.handleClose = function handleClose(from) {
9665 var _this2 = this;
9666
9667 var _props = this.props,
9668 animation = _props.animation,
9669 onClose = _props.onClose;
9670
9671 var hasAnimation = _util.support.animation && animation;
9672
9673 // 先执行回调
9674 var result = onClose(from, this.tagNode);
9675
9676 // 如果回调函数返回 false,则阻止关闭行为
9677 if (result !== false && !this.__destroyed) {
9678 this.setState({
9679 visible: false
9680 }, function () {
9681 // 如果没有动画,则直接执行 afterClose
9682 !hasAnimation && _this2.props.afterClose(_this2.tagNode);
9683 });
9684 }
9685 };
9686
9687 // 标签体点击
9688
9689
9690 Tag.prototype.handleBodyClick = function handleBodyClick(e) {
9691 var _props2 = this.props,
9692 closable = _props2.closable,
9693 closeArea = _props2.closeArea,
9694 onClick = _props2.onClick;
9695
9696 var node = e.currentTarget;
9697
9698 if (node && (node === e.target || node.contains(e.target))) {
9699 if (closable && closeArea === 'tag') {
9700 this.handleClose('tag');
9701 }
9702
9703 if (typeof onClick === 'function') {
9704 return onClick(e);
9705 }
9706 }
9707 };
9708
9709 Tag.prototype.handleTailClick = function handleTailClick(e) {
9710 e && e.preventDefault();
9711 e && e.stopPropagation();
9712
9713 this.handleClose('tail');
9714 };
9715
9716 Tag.prototype.handleAnimationInit = function handleAnimationInit(node) {
9717 this.props.afterAppear(node);
9718 };
9719
9720 Tag.prototype.handleAnimationEnd = function handleAnimationEnd(node) {
9721 this.props.afterClose(node);
9722 };
9723
9724 Tag.prototype.renderAnimatedTag = function renderAnimatedTag(children, animationName) {
9725 return _react2.default.createElement(_animate2.default, {
9726 animation: animationName,
9727 afterAppear: this.handleAnimationInit,
9728 afterLeave: this.handleAnimationEnd
9729 }, children);
9730 };
9731
9732 Tag.prototype.renderTailNode = function renderTailNode() {
9733 var _props3 = this.props,
9734 prefix = _props3.prefix,
9735 closable = _props3.closable,
9736 locale = _props3.locale;
9737
9738 if (!closable) {
9739 return null;
9740 }
9741
9742 return _react2.default.createElement('span', {
9743 className: prefix + 'tag-close-btn',
9744 onClick: this.handleTailClick,
9745 role: 'button',
9746 'aria-label': locale.delete
9747 }, _react2.default.createElement(_icon2.default, { type: 'close' }));
9748 };
9749
9750 Tag.prototype.isPresetColor = function isPresetColor() {
9751 var color = this.props.color;
9752
9753 if (!color) {
9754 return false;
9755 }
9756
9757 return PRESET_COLOR_REG.test(color);
9758 };
9759
9760 Tag.prototype.getTagStyle = function getTagStyle() {
9761 var _props4 = this.props,
9762 _props4$color = _props4.color,
9763 color = _props4$color === undefined ? '' : _props4$color,
9764 style = _props4.style;
9765
9766 var isPresetColor = this.isPresetColor();
9767 var customColorStyle = {
9768 backgroundColor: color,
9769 borderColor: color,
9770 color: '#fff'
9771 };
9772
9773 return (0, _extends3.default)({}, color && !isPresetColor ? customColorStyle : null, style);
9774 };
9775
9776 Tag.prototype.render = function render() {
9777 var _classNames,
9778 _this3 = this;
9779
9780 var _props5 = this.props,
9781 prefix = _props5.prefix,
9782 type = _props5.type,
9783 size = _props5.size,
9784 color = _props5.color,
9785 _shape = _props5._shape,
9786 closable = _props5.closable,
9787 closeArea = _props5.closeArea,
9788 className = _props5.className,
9789 children = _props5.children,
9790 animation = _props5.animation,
9791 disabled = _props5.disabled,
9792 rtl = _props5.rtl;
9793 var visible = this.state.visible;
9794
9795 var isPresetColor = this.isPresetColor();
9796 var others = _util.obj.pickOthers(Tag.propTypes, this.props);
9797 // eslint-disable-next-line no-unused-vars
9798 var style = others.style,
9799 otherTagProps = (0, _objectWithoutProperties3.default)(others, ['style']);
9800
9801 var shape = closable ? 'closable' : _shape;
9802 var bodyClazz = (0, _classnames2.default)([prefix + 'tag', prefix + 'tag-' + shape, prefix + 'tag-' + size], (_classNames = {}, _classNames[prefix + 'tag-level-' + type] = !color, _classNames[prefix + 'tag-closable'] = closable, _classNames[prefix + 'tag-body-pointer'] = closable && closeArea === 'tag', _classNames[prefix + 'tag-' + color] = color && isPresetColor && type === 'primary', _classNames[prefix + 'tag-' + color + '-inverse'] = color && isPresetColor && type === 'normal', _classNames), className);
9803
9804 // close btn
9805 var tailNode = this.renderTailNode();
9806 // tag node
9807 var tagNode = !visible ? null : _react2.default.createElement('div', (0, _extends3.default)({
9808 className: bodyClazz,
9809 onClick: this.handleBodyClick,
9810 onKeyDown: this.onKeyDown,
9811 tabIndex: disabled ? '' : '0',
9812 role: 'button',
9813 'aria-disabled': disabled,
9814 disabled: disabled,
9815 dir: rtl ? 'rtl' : undefined,
9816 ref: function ref(n) {
9817 return _this3.tagNode = n;
9818 },
9819 style: this.getTagStyle()
9820 }, otherTagProps), _react2.default.createElement('span', { className: prefix + 'tag-body' }, children), tailNode);
9821
9822 if (animation && _util.support.animation) {
9823 return this.renderAnimatedTag(tagNode, prefix + 'tag-zoom');
9824 }
9825
9826 // 未开启或不支持动画
9827 return tagNode;
9828 };
9829
9830 return Tag;
9831}(_react.Component), _class.propTypes = {
9832 /**
9833 * 标签类名前缀,提供给二次开发者用
9834 * @default next-
9835 */
9836 prefix: _propTypes2.default.string,
9837 /**
9838 * 标签的类型
9839 * @enumdesc 普通, 主要
9840 */
9841 type: _propTypes2.default.oneOf(['normal', 'primary']),
9842 /**
9843 * 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
9844 * @enumdesc 小, 中, 大
9845 */
9846 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
9847
9848 /**
9849 * 标签颜色, 目前支持:blue、 green、 orange、red、 turquoise、 yellow 和 hex 颜色值 (`color keywords`作为 Tag 组件的保留字,请勿直接使用 ), `1.19.0` 以上版本生效
9850 */
9851 color: _propTypes2.default.string,
9852 /**
9853 * 是否开启动效
9854 */
9855 animation: _propTypes2.default.bool,
9856 closeArea: _propTypes2.default.oneOf(['tag', 'tail']),
9857 closable: _propTypes2.default.bool,
9858 onClose: _propTypes2.default.func,
9859 afterClose: _propTypes2.default.func,
9860 /**
9861 * 标签出现动画结束后执行的回调
9862 */
9863 afterAppear: _propTypes2.default.func,
9864 className: _propTypes2.default.any,
9865 children: _propTypes2.default.node,
9866 /**
9867 * 点击回调
9868 */
9869 onClick: _propTypes2.default.func,
9870 _shape: _propTypes2.default.oneOf(['default', 'closable', 'checkable']),
9871 disabled: _propTypes2.default.bool,
9872 rtl: _propTypes2.default.bool,
9873 locale: _propTypes2.default.object
9874}, _class.defaultProps = {
9875 prefix: 'next-',
9876 type: 'normal',
9877 size: 'medium',
9878 closeArea: 'tail',
9879 animation: false,
9880 onClose: noop,
9881 afterClose: noop,
9882 afterAppear: noop,
9883 onClick: noop,
9884 _shape: 'default',
9885 disabled: false,
9886 rtl: false,
9887 locale: _zhCn2.default.Tag
9888}, _temp);
9889Tag.displayName = 'Tag';
9890exports.default = _configProvider2.default.config(Tag);
9891module.exports = exports['default'];
9892
9893/***/ }),
9894/* 91 */
9895/***/ (function(module, exports, __webpack_require__) {
9896
9897"use strict";
9898
9899
9900exports.__esModule = true;
9901
9902var _extends2 = __webpack_require__(1);
9903
9904var _extends3 = _interopRequireDefault(_extends2);
9905
9906var _objectWithoutProperties2 = __webpack_require__(8);
9907
9908var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
9909
9910var _classCallCheck2 = __webpack_require__(2);
9911
9912var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
9913
9914var _possibleConstructorReturn2 = __webpack_require__(3);
9915
9916var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
9917
9918var _inherits2 = __webpack_require__(4);
9919
9920var _inherits3 = _interopRequireDefault(_inherits2);
9921
9922var _class, _temp2;
9923
9924var _react = __webpack_require__(0);
9925
9926var _react2 = _interopRequireDefault(_react);
9927
9928var _propTypes = __webpack_require__(5);
9929
9930var _propTypes2 = _interopRequireDefault(_propTypes);
9931
9932var _classnames = __webpack_require__(7);
9933
9934var _classnames2 = _interopRequireDefault(_classnames);
9935
9936var _moment = __webpack_require__(19);
9937
9938var _moment2 = _interopRequireDefault(_moment);
9939
9940var _zhCn = __webpack_require__(13);
9941
9942var _zhCn2 = _interopRequireDefault(_zhCn);
9943
9944var _util = __webpack_require__(6);
9945
9946var _timeMenu = __webpack_require__(334);
9947
9948var _timeMenu2 = _interopRequireDefault(_timeMenu);
9949
9950var _utils = __webpack_require__(92);
9951
9952function _interopRequireDefault(obj) {
9953 return obj && obj.__esModule ? obj : { default: obj };
9954}
9955
9956var noop = _util.func.noop;
9957var TimePickerPanel = (_temp2 = _class = function (_Component) {
9958 (0, _inherits3.default)(TimePickerPanel, _Component);
9959
9960 function TimePickerPanel() {
9961 var _temp, _this, _ret;
9962
9963 (0, _classCallCheck3.default)(this, TimePickerPanel);
9964
9965 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
9966 args[_key] = arguments[_key];
9967 }
9968
9969 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onSelectMenuItem = function (index, type) {
9970 var value = _this.props.value;
9971
9972 var clonedValue = value ? value.clone() : (0, _moment2.default)('00:00:00', 'HH:mm:ss', true);
9973 switch (type) {
9974 case 'hour':
9975 clonedValue.hour(index);
9976 break;
9977 case 'minute':
9978 clonedValue.minute(index);
9979 break;
9980 case 'second':
9981 clonedValue.second(index);
9982 break;
9983 }
9984 _this.props.onSelect(clonedValue);
9985 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
9986 }
9987
9988 TimePickerPanel.prototype.render = function render() {
9989 var _props = this.props,
9990 prefix = _props.prefix,
9991 value = _props.value,
9992 locale = _props.locale,
9993 className = _props.className,
9994 disabled = _props.disabled,
9995 showHour = _props.showHour,
9996 showMinute = _props.showMinute,
9997 showSecond = _props.showSecond,
9998 hourStep = _props.hourStep,
9999 minuteStep = _props.minuteStep,
10000 secondStep = _props.secondStep,
10001 disabledHours = _props.disabledHours,
10002 disabledMinutes = _props.disabledMinutes,
10003 disabledSeconds = _props.disabledSeconds,
10004 renderTimeMenuItems = _props.renderTimeMenuItems,
10005 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'value', 'locale', 'className', 'disabled', 'showHour', 'showMinute', 'showSecond', 'hourStep', 'minuteStep', 'secondStep', 'disabledHours', 'disabledMinutes', 'disabledSeconds', 'renderTimeMenuItems']);
10006
10007 var colLen = [showHour, showMinute, showSecond].filter(function (v) {
10008 return v;
10009 }).length;
10010 var classNames = (0, _classnames2.default)(prefix + 'time-picker-panel', prefix + 'time-picker-panel-col-' + colLen, className);
10011
10012 var commonProps = {
10013 prefix: prefix,
10014 disabled: disabled,
10015 onSelect: this.onSelectMenuItem,
10016 renderTimeMenuItems: renderTimeMenuItems,
10017 value: value
10018 };
10019
10020 var activeHour = void 0;
10021 var activeMinute = void 0;
10022 var activeSecond = void 0;
10023
10024 if (value && _moment2.default.isMoment(value)) {
10025 activeHour = value.hour();
10026 activeMinute = value.minute();
10027 activeSecond = value.second();
10028 }
10029
10030 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: classNames }), showHour ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
10031 activeIndex: activeHour,
10032 title: locale.hour,
10033 mode: 'hour',
10034 step: hourStep,
10035 disabledItems: disabledHours
10036 })) : null, showMinute ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
10037 activeIndex: activeMinute,
10038 title: locale.minute,
10039 mode: 'minute',
10040 step: minuteStep,
10041 disabledItems: disabledMinutes
10042 })) : null, showSecond ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
10043 activeIndex: activeSecond,
10044 title: locale.second,
10045 step: secondStep,
10046 mode: 'second',
10047 disabledItems: disabledSeconds
10048 })) : null);
10049 };
10050
10051 return TimePickerPanel;
10052}(_react.Component), _class.propTypes = {
10053 prefix: _propTypes2.default.string,
10054 /**
10055 * 时间值(moment 对象)
10056 */
10057 value: _utils.checkMomentObj,
10058 /**
10059 * 是否显示小时
10060 */
10061 showHour: _propTypes2.default.bool,
10062 /**
10063 * 是否显示分钟
10064 */
10065 showMinute: _propTypes2.default.bool,
10066 /**
10067 * 是否显示秒
10068 */
10069 showSecond: _propTypes2.default.bool,
10070 /**
10071 * 小时选项步长
10072 */
10073 hourStep: _propTypes2.default.number,
10074 /**
10075 * 分钟选项步长
10076 */
10077 minuteStep: _propTypes2.default.number,
10078 /**
10079 * 秒钟选项步长
10080 */
10081 secondStep: _propTypes2.default.number,
10082 /**
10083 * 禁用小时函数
10084 * @param {Number} index 时 0 - 23
10085 * @return {Boolean} 是否禁用
10086 */
10087 disabledHours: _propTypes2.default.func,
10088 /**
10089 * 禁用分钟函数
10090 * @param {Number} index 分 0 - 59
10091 * @return {Boolean} 是否禁用
10092 */
10093 disabledMinutes: _propTypes2.default.func,
10094 /**
10095 * 禁用秒函数
10096 * @param {Number} index 秒 0 - 59
10097 * @return {Boolean} 是否禁用
10098 */
10099 disabledSeconds: _propTypes2.default.func,
10100 /**
10101 * 渲染的可选择时间列表
10102 * [{
10103 * label: '01',
10104 * value: 1
10105 * }]
10106 * @param {Array} list 默认渲染的列表
10107 * @param {String} mode 渲染的菜单 hour, minute, second
10108 * @param {moment} value 当前时间,可能为 null
10109 * @return {Array} 返回需要渲染的数据
10110 */
10111 renderTimeMenuItems: _propTypes2.default.func,
10112 /**
10113 * 选择某个日期值时的回调
10114 * @param {Object} 选中后的日期值
10115 */
10116 onSelect: _propTypes2.default.func,
10117 locale: _propTypes2.default.object,
10118 disabled: _propTypes2.default.bool,
10119 className: _propTypes2.default.string
10120}, _class.defaultProps = {
10121 prefix: 'next-',
10122 showHour: true,
10123 showSecond: true,
10124 showMinute: true,
10125 disabledHours: noop,
10126 disabledMinutes: noop,
10127 disabledSeconds: noop,
10128 onSelect: noop,
10129 disabled: false,
10130 locale: _zhCn2.default.TimePicker
10131}, _temp2);
10132TimePickerPanel.displayName = 'TimePickerPanel';
10133exports.default = TimePickerPanel;
10134module.exports = exports['default'];
10135
10136/***/ }),
10137/* 92 */
10138/***/ (function(module, exports, __webpack_require__) {
10139
10140"use strict";
10141
10142
10143exports.__esModule = true;
10144exports.checkMomentObj = checkMomentObj;
10145exports.checkDateValue = checkDateValue;
10146exports.formatDateValue = formatDateValue;
10147
10148var _moment = __webpack_require__(19);
10149
10150var _moment2 = _interopRequireDefault(_moment);
10151
10152function _interopRequireDefault(obj) {
10153 return obj && obj.__esModule ? obj : { default: obj };
10154}
10155
10156// 检查传入值是否为 moment 对象
10157function checkMomentObj(props, propName, componentName) {
10158 if (props[propName] && !_moment2.default.isMoment(props[propName])) {
10159 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object');
10160 }
10161}
10162
10163// 检查传入值是否为 moment 对象或时间字符串,字符串不检测是否为日期字符串
10164function checkDateValue(props, propName, componentName) {
10165 if (props[propName] && !_moment2.default.isMoment(props[propName]) && typeof props[propName] !== 'string') {
10166 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object or format date string!');
10167 }
10168}
10169
10170function formatDateValue(value, format) {
10171 var val = typeof value === 'string' ? (0, _moment2.default)(value, format, true) : value;
10172 if (val && _moment2.default.isMoment(val) && val.isValid()) {
10173 return val;
10174 }
10175 return null;
10176}
10177
10178/***/ }),
10179/* 93 */
10180/***/ (function(module, exports, __webpack_require__) {
10181
10182"use strict";
10183
10184
10185exports.__esModule = true;
10186exports.default = undefined;
10187
10188var _extends2 = __webpack_require__(1);
10189
10190var _extends3 = _interopRequireDefault(_extends2);
10191
10192var _classCallCheck2 = __webpack_require__(2);
10193
10194var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10195
10196var _possibleConstructorReturn2 = __webpack_require__(3);
10197
10198var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
10199
10200var _inherits2 = __webpack_require__(4);
10201
10202var _inherits3 = _interopRequireDefault(_inherits2);
10203
10204var _class, _temp;
10205
10206var _react = __webpack_require__(0);
10207
10208var _react2 = _interopRequireDefault(_react);
10209
10210var _propTypes = __webpack_require__(5);
10211
10212var _propTypes2 = _interopRequireDefault(_propTypes);
10213
10214var _classnames = __webpack_require__(7);
10215
10216var _classnames2 = _interopRequireDefault(_classnames);
10217
10218var _button = __webpack_require__(17);
10219
10220var _button2 = _interopRequireDefault(_button);
10221
10222var _icon = __webpack_require__(11);
10223
10224var _icon2 = _interopRequireDefault(_icon);
10225
10226var _zhCn = __webpack_require__(13);
10227
10228var _zhCn2 = _interopRequireDefault(_zhCn);
10229
10230var _util = __webpack_require__(6);
10231
10232function _interopRequireDefault(obj) {
10233 return obj && obj.__esModule ? obj : { default: obj };
10234}
10235
10236var makeChain = _util.func.makeChain;
10237var pickOthers = _util.obj.pickOthers;
10238
10239var noop = function noop() {};
10240
10241var Inner = (_temp = _class = function (_Component) {
10242 (0, _inherits3.default)(Inner, _Component);
10243
10244 function Inner() {
10245 (0, _classCallCheck3.default)(this, Inner);
10246 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
10247 }
10248
10249 Inner.prototype.componentDidUpdate = function componentDidUpdate() {
10250 var _props = this.props,
10251 maxHeight = _props.maxHeight,
10252 _props$height = _props.height,
10253 pheight = _props$height === undefined ? maxHeight : _props$height,
10254 v2 = _props.v2;
10255
10256 if (this.bodyNode && v2 && pheight && pheight !== 'auto') {
10257 var style = {};
10258 var headerHeight = 0,
10259 footerHeight = 0;
10260 if (this.headerNode) {
10261 headerHeight = this.headerNode.getBoundingClientRect().height;
10262 }
10263 if (this.footerNode) {
10264 footerHeight = this.footerNode.getBoundingClientRect().height;
10265 }
10266 var minHeight = headerHeight + footerHeight;
10267 style.minHeight = minHeight;
10268
10269 var height = pheight;
10270 if (pheight && typeof pheight === 'string') {
10271 if (height.match(/calc|vh/)) {
10272 style.maxHeight = 'calc(' + pheight + ' - ' + minHeight + 'px)';
10273 style.overflowY = 'auto';
10274 } else {
10275 height = parseInt(pheight);
10276 }
10277 }
10278
10279 if (typeof height === 'number' && height > minHeight) {
10280 style.maxHeight = height - minHeight;
10281 style.overflowY = 'auto';
10282 }
10283
10284 _util.dom.setStyle(this.bodyNode, style);
10285 }
10286 };
10287
10288 Inner.prototype.getNode = function getNode(name, ref) {
10289 this[name] = ref;
10290 };
10291
10292 Inner.prototype.renderHeader = function renderHeader() {
10293 var _props2 = this.props,
10294 prefix = _props2.prefix,
10295 title = _props2.title;
10296
10297 if (title) {
10298 this.titleId = (0, _util.guid)('dialog-title-');
10299 return _react2.default.createElement('div', {
10300 className: prefix + 'dialog-header',
10301 id: this.titleId,
10302 ref: this.getNode.bind(this, 'headerNode'),
10303 role: 'heading',
10304 'aria-level': '1'
10305 }, title);
10306 }
10307 return null;
10308 };
10309
10310 Inner.prototype.renderBody = function renderBody() {
10311 var _props3 = this.props,
10312 prefix = _props3.prefix,
10313 children = _props3.children,
10314 footer = _props3.footer;
10315
10316 if (children) {
10317 var _cx;
10318
10319 return _react2.default.createElement('div', {
10320 className: (0, _classnames2.default)(prefix + 'dialog-body', (_cx = {}, _cx[prefix + 'dialog-body-no-footer'] = footer === false, _cx)),
10321 ref: this.getNode.bind(this, 'bodyNode')
10322 }, children);
10323 }
10324 return null;
10325 };
10326
10327 Inner.prototype.renderFooter = function renderFooter() {
10328 var _cx2,
10329 _this2 = this;
10330
10331 var _props4 = this.props,
10332 prefix = _props4.prefix,
10333 footer = _props4.footer,
10334 footerAlign = _props4.footerAlign,
10335 footerActions = _props4.footerActions,
10336 locale = _props4.locale,
10337 height = _props4.height;
10338
10339 if (footer === false) {
10340 return null;
10341 }
10342
10343 var newClassName = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'dialog-footer'] = true, _cx2[prefix + 'align-' + footerAlign] = true, _cx2[prefix + 'dialog-footer-fixed-height'] = !!height, _cx2));
10344 var footerContent = footer === true || !footer ? footerActions.map(function (action) {
10345 var btnProps = _this2.props[action + 'Props'];
10346 var newBtnProps = (0, _extends3.default)({}, btnProps, {
10347 prefix: prefix,
10348 className: (0, _classnames2.default)(prefix + 'dialog-btn', btnProps.className),
10349 onClick: makeChain(_this2.props['on' + (action[0].toUpperCase() + action.slice(1))], btnProps.onClick),
10350 children: btnProps.children || locale[action]
10351 });
10352 if (action === 'ok') {
10353 newBtnProps.type = 'primary';
10354 }
10355
10356 return _react2.default.createElement(_button2.default, (0, _extends3.default)({ key: action }, newBtnProps));
10357 }) : footer;
10358
10359 return _react2.default.createElement('div', { className: newClassName, ref: this.getNode.bind(this, 'footerNode') }, footerContent);
10360 };
10361
10362 Inner.prototype.renderCloseLink = function renderCloseLink() {
10363 var _props5 = this.props,
10364 prefix = _props5.prefix,
10365 closeable = _props5.closeable,
10366 onClose = _props5.onClose,
10367 locale = _props5.locale,
10368 closeIcon = _props5.closeIcon;
10369
10370 if (closeable) {
10371 return _react2.default.createElement('a', { role: 'button', 'aria-label': locale.close, className: prefix + 'dialog-close', onClick: onClose }, closeIcon ? closeIcon : _react2.default.createElement(_icon2.default, { className: prefix + 'dialog-close-icon', type: 'close' }));
10372 }
10373
10374 return null;
10375 };
10376
10377 Inner.prototype.render = function render() {
10378 var _cx3;
10379
10380 var _props6 = this.props,
10381 prefix = _props6.prefix,
10382 className = _props6.className,
10383 closeable = _props6.closeable,
10384 title = _props6.title,
10385 role = _props6.role,
10386 rtl = _props6.rtl;
10387
10388 var others = pickOthers(Object.keys(Inner.propTypes), this.props);
10389 var newClassName = (0, _classnames2.default)((_cx3 = {}, _cx3[prefix + 'dialog'] = true, _cx3[prefix + 'closeable'] = closeable, _cx3[className] = !!className, _cx3));
10390
10391 var header = this.renderHeader();
10392 var body = this.renderBody();
10393 var footer = this.renderFooter();
10394 var closeLink = this.renderCloseLink();
10395
10396 var ariaProps = {
10397 role: role,
10398 'aria-modal': 'true'
10399 };
10400 if (title) {
10401 ariaProps['aria-labelledby'] = this.titleId;
10402 }
10403
10404 var width = others.style && others.style.width;
10405 others.style = (0, _extends3.default)({}, others.style, _util.obj.pickProps(['height', 'maxHeight', 'width'], this.props));
10406 // 兼容 v1 style={width} 用法, 这里增加了 width api, 导致 style.width 优先级低了
10407 if (width) {
10408 others.style.width = width;
10409 }
10410
10411 return _react2.default.createElement('div', (0, _extends3.default)({}, ariaProps, { className: newClassName }, others, { dir: rtl ? 'rtl' : undefined }), header, body, footer, closeLink);
10412 };
10413
10414 return Inner;
10415}(_react.Component), _class.propTypes = {
10416 prefix: _propTypes2.default.string,
10417 className: _propTypes2.default.string,
10418 title: _propTypes2.default.node,
10419 children: _propTypes2.default.node,
10420 footer: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
10421 footerAlign: _propTypes2.default.oneOf(['left', 'center', 'right']),
10422 footerActions: _propTypes2.default.array,
10423 onOk: _propTypes2.default.func,
10424 onCancel: _propTypes2.default.func,
10425 okProps: _propTypes2.default.object,
10426 cancelProps: _propTypes2.default.object,
10427 closeable: _propTypes2.default.bool,
10428 onClose: _propTypes2.default.func,
10429 locale: _propTypes2.default.object,
10430 role: _propTypes2.default.string,
10431 rtl: _propTypes2.default.bool,
10432 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10433 // set value for a fixed height dialog. Passing a value will absolutely position the footer to the bottom.
10434 height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10435 maxHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10436 v2: _propTypes2.default.bool,
10437 closeIcon: _propTypes2.default.node,
10438 pure: _propTypes2.default.bool
10439}, _class.defaultProps = {
10440 prefix: 'next-',
10441 footerAlign: 'right',
10442 footerActions: ['ok', 'cancel'],
10443 onOk: noop,
10444 onCancel: noop,
10445 okProps: {},
10446 cancelProps: {},
10447 closeable: true,
10448 onClose: noop,
10449 locale: _zhCn2.default.Dialog,
10450 role: 'dialog'
10451}, _temp);
10452Inner.displayName = 'Inner';
10453exports.default = Inner;
10454module.exports = exports['default'];
10455
10456/***/ }),
10457/* 94 */
10458/***/ (function(module, exports, __webpack_require__) {
10459
10460"use strict";
10461
10462
10463exports.__esModule = true;
10464
10465var _configProvider = __webpack_require__(9);
10466
10467var _configProvider2 = _interopRequireDefault(_configProvider);
10468
10469var _message = __webpack_require__(95);
10470
10471var _message2 = _interopRequireDefault(_message);
10472
10473var _toast = __webpack_require__(342);
10474
10475var _toast2 = _interopRequireDefault(_toast);
10476
10477var _toast3 = __webpack_require__(343);
10478
10479var _toast4 = _interopRequireDefault(_toast3);
10480
10481function _interopRequireDefault(obj) {
10482 return obj && obj.__esModule ? obj : { default: obj };
10483}
10484
10485_message2.default.show = _toast2.default.show;
10486_message2.default.success = _toast2.default.success;
10487_message2.default.warning = _toast2.default.warning;
10488_message2.default.error = _toast2.default.error;
10489_message2.default.notice = _toast2.default.notice;
10490_message2.default.help = _toast2.default.help;
10491_message2.default.loading = _toast2.default.loading;
10492_message2.default.hide = _toast2.default.hide;
10493_message2.default.withContext = _toast.withContext;
10494
10495var MessageProvider = _configProvider2.default.config(_message2.default, {
10496 componentName: 'Message'
10497});
10498
10499exports.default = MessageProvider;
10500
10501var openV2 = false;
10502// 调用 config 开启 v2 版本的 message
10503MessageProvider.config = function (config) {
10504 _toast4.default.config(config);
10505
10506 if (!openV2) {
10507 MessageProvider.show = _toast4.default.open; // 兼容 show 用法, 后续计划都改成 open( Notification 已经用了 open)
10508 MessageProvider.open = _toast4.default.open;
10509 MessageProvider.hide = _toast4.default.close; // 兼容 hide 用法, 后续计划都改成 open( Notification 已经用了 close)
10510 MessageProvider.close = _toast4.default.close;
10511 MessageProvider.destory = _toast4.default.destory;
10512 MessageProvider.success = _toast4.default.success;
10513 MessageProvider.warning = _toast4.default.warning;
10514 MessageProvider.error = _toast4.default.error;
10515 MessageProvider.notice = _toast4.default.notice;
10516 MessageProvider.help = _toast4.default.help;
10517 MessageProvider.loading = _toast4.default.loading;
10518
10519 openV2 = true;
10520 }
10521};
10522module.exports = exports['default'];
10523
10524/***/ }),
10525/* 95 */
10526/***/ (function(module, exports, __webpack_require__) {
10527
10528"use strict";
10529
10530
10531exports.__esModule = true;
10532
10533var _extends2 = __webpack_require__(1);
10534
10535var _extends3 = _interopRequireDefault(_extends2);
10536
10537var _classCallCheck2 = __webpack_require__(2);
10538
10539var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10540
10541var _possibleConstructorReturn2 = __webpack_require__(3);
10542
10543var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
10544
10545var _inherits2 = __webpack_require__(4);
10546
10547var _inherits3 = _interopRequireDefault(_inherits2);
10548
10549var _class, _temp2;
10550
10551var _react = __webpack_require__(0);
10552
10553var _react2 = _interopRequireDefault(_react);
10554
10555var _propTypes = __webpack_require__(5);
10556
10557var _propTypes2 = _interopRequireDefault(_propTypes);
10558
10559var _reactLifecyclesCompat = __webpack_require__(10);
10560
10561var _classnames = __webpack_require__(7);
10562
10563var _classnames2 = _interopRequireDefault(_classnames);
10564
10565var _zhCn = __webpack_require__(13);
10566
10567var _zhCn2 = _interopRequireDefault(_zhCn);
10568
10569var _icon = __webpack_require__(11);
10570
10571var _icon2 = _interopRequireDefault(_icon);
10572
10573var _animate = __webpack_require__(20);
10574
10575var _animate2 = _interopRequireDefault(_animate);
10576
10577var _configProvider = __webpack_require__(9);
10578
10579var _configProvider2 = _interopRequireDefault(_configProvider);
10580
10581var _util = __webpack_require__(6);
10582
10583function _interopRequireDefault(obj) {
10584 return obj && obj.__esModule ? obj : { default: obj };
10585}
10586
10587var noop = function noop() {};
10588
10589/**
10590 * Message
10591 */
10592var Message = (_temp2 = _class = function (_Component) {
10593 (0, _inherits3.default)(Message, _Component);
10594
10595 function Message() {
10596 var _temp, _this, _ret;
10597
10598 (0, _classCallCheck3.default)(this, Message);
10599
10600 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
10601 args[_key] = arguments[_key];
10602 }
10603
10604 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
10605 visible: typeof _this.props.visible === 'undefined' ? _this.props.defaultVisible : _this.props.visible
10606 }, _this.onClose = function () {
10607 if (!('visible' in _this.props)) {
10608 _this.setState({
10609 visible: false
10610 });
10611 }
10612 _this.props.onClose(false);
10613 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
10614 }
10615
10616 Message.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
10617 if ('visible' in props) {
10618 return {
10619 visible: props.visible
10620 };
10621 }
10622
10623 return {};
10624 };
10625
10626 Message.prototype.render = function render() {
10627 var _classNames;
10628
10629 /* eslint-disable no-unused-vars */
10630 var _props = this.props,
10631 prefix = _props.prefix,
10632 pure = _props.pure,
10633 className = _props.className,
10634 style = _props.style,
10635 type = _props.type,
10636 shape = _props.shape,
10637 size = _props.size,
10638 title = _props.title,
10639 children = _props.children,
10640 defaultVisible = _props.defaultVisible,
10641 propsVisible = _props.visible,
10642 icon = _props.iconType,
10643 closeable = _props.closeable,
10644 onClose = _props.onClose,
10645 afterClose = _props.afterClose,
10646 animation = _props.animation,
10647 rtl = _props.rtl,
10648 locale = _props.locale;
10649
10650 var others = (0, _extends3.default)({}, _util.obj.pickOthers(Object.keys(Message.propTypes), this.props));
10651 /* eslint-enable */
10652 var visible = this.state.visible;
10653
10654 var messagePrefix = prefix + 'message';
10655
10656 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[messagePrefix] = true, _classNames[prefix + 'message-' + type] = type, _classNames['' + prefix + shape] = shape, _classNames['' + prefix + size] = size, _classNames[prefix + 'title-content'] = !!title, _classNames[prefix + 'only-content'] = !title && !!children, _classNames[className] = className, _classNames));
10657
10658 var newChildren = visible ? _react2.default.createElement('div', (0, _extends3.default)({ role: 'alert', style: style }, others, { className: classes, dir: rtl ? 'rtl' : undefined }), closeable ? _react2.default.createElement('a', {
10659 role: 'button',
10660 'aria-label': locale.closeAriaLabel,
10661 className: messagePrefix + '-close',
10662 onClick: this.onClose
10663 }, _react2.default.createElement(_icon2.default, { type: 'close' })) : null, icon !== false ? _react2.default.createElement(_icon2.default, {
10664 className: messagePrefix + '-symbol ' + (!icon && messagePrefix + '-symbol-icon'),
10665 type: icon
10666 }) : null, title ? _react2.default.createElement('div', { className: messagePrefix + '-title' }, title) : null, children ? _react2.default.createElement('div', { className: messagePrefix + '-content' }, children) : null) : null;
10667
10668 if (animation) {
10669 return _react2.default.createElement(_animate2.default.Expand, { animationAppear: false, afterLeave: afterClose }, newChildren);
10670 }
10671
10672 return newChildren;
10673 };
10674
10675 return Message;
10676}(_react.Component), _class.propTypes = {
10677 prefix: _propTypes2.default.string,
10678 pure: _propTypes2.default.bool,
10679 className: _propTypes2.default.string,
10680 style: _propTypes2.default.object,
10681 /**
10682 * 反馈类型
10683 */
10684 type: _propTypes2.default.oneOf(['success', 'warning', 'error', 'notice', 'help', 'loading']),
10685 /**
10686 * 反馈外观
10687 */
10688 shape: _propTypes2.default.oneOf(['inline', 'addon', 'toast']),
10689 /**
10690 * 反馈大小
10691 */
10692 size: _propTypes2.default.oneOf(['medium', 'large']),
10693 /**
10694 * 标题
10695 */
10696 title: _propTypes2.default.node,
10697 /**
10698 * 内容
10699 */
10700 children: _propTypes2.default.node,
10701 /**
10702 * 默认是否显示
10703 */
10704 defaultVisible: _propTypes2.default.bool,
10705 /**
10706 * 当前是否显示
10707 */
10708 visible: _propTypes2.default.bool,
10709 /**
10710 * 显示的图标类型,会覆盖内部设置的IconType,传false不显示图标
10711 */
10712 iconType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
10713 /**
10714 * 显示关闭按钮
10715 */
10716 closeable: _propTypes2.default.bool,
10717 /**
10718 * 关闭按钮的回调
10719 */
10720 onClose: _propTypes2.default.func,
10721 /**
10722 * 关闭之后调用的函数
10723 */
10724 afterClose: _propTypes2.default.func,
10725 /**
10726 * 是否开启展开收起动画
10727 */
10728 animation: _propTypes2.default.bool,
10729 locale: _propTypes2.default.object,
10730 rtl: _propTypes2.default.bool
10731}, _class.defaultProps = {
10732 prefix: 'next-',
10733 pure: false,
10734 type: 'success',
10735 shape: 'inline',
10736 size: 'medium',
10737 defaultVisible: true,
10738 closeable: false,
10739 onClose: noop,
10740 afterClose: noop,
10741 animation: true,
10742 locale: _zhCn2.default.Message
10743}, _temp2);
10744Message.displayName = 'Message';
10745exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Message));
10746module.exports = exports['default'];
10747
10748/***/ }),
10749/* 96 */
10750/***/ (function(module, exports, __webpack_require__) {
10751
10752module.exports = __webpack_require__(347);
10753
10754
10755/***/ }),
10756/* 97 */
10757/***/ (function(module, exports) {
10758
10759function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
10760 try {
10761 var info = gen[key](arg);
10762 var value = info.value;
10763 } catch (error) {
10764 reject(error);
10765 return;
10766 }
10767
10768 if (info.done) {
10769 resolve(value);
10770 } else {
10771 Promise.resolve(value).then(_next, _throw);
10772 }
10773}
10774
10775function _asyncToGenerator(fn) {
10776 return function () {
10777 var self = this,
10778 args = arguments;
10779 return new Promise(function (resolve, reject) {
10780 var gen = fn.apply(self, args);
10781
10782 function _next(value) {
10783 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
10784 }
10785
10786 function _throw(err) {
10787 asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
10788 }
10789
10790 _next(undefined);
10791 });
10792 };
10793}
10794
10795module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports["default"] = module.exports;
10796
10797/***/ }),
10798/* 98 */
10799/***/ (function(module, exports) {
10800
10801function _defineProperty(obj, key, value) {
10802 if (key in obj) {
10803 Object.defineProperty(obj, key, {
10804 value: value,
10805 enumerable: true,
10806 configurable: true,
10807 writable: true
10808 });
10809 } else {
10810 obj[key] = value;
10811 }
10812
10813 return obj;
10814}
10815
10816module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
10817
10818/***/ }),
10819/* 99 */
10820/***/ (function(module, exports, __webpack_require__) {
10821
10822"use strict";
10823
10824
10825exports.__esModule = true;
10826
10827var _classCallCheck2 = __webpack_require__(2);
10828
10829var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
10830
10831var _possibleConstructorReturn2 = __webpack_require__(3);
10832
10833var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
10834
10835var _inherits2 = __webpack_require__(4);
10836
10837var _inherits3 = _interopRequireDefault(_inherits2);
10838
10839var _extends2 = __webpack_require__(1);
10840
10841var _extends3 = _interopRequireDefault(_extends2);
10842
10843var _typeof2 = __webpack_require__(14);
10844
10845var _typeof3 = _interopRequireDefault(_typeof2);
10846
10847var _class, _temp;
10848
10849var _react = __webpack_require__(0);
10850
10851var _react2 = _interopRequireDefault(_react);
10852
10853var _propTypes = __webpack_require__(5);
10854
10855var _propTypes2 = _interopRequireDefault(_propTypes);
10856
10857var _classnames = __webpack_require__(7);
10858
10859var _classnames2 = _interopRequireDefault(_classnames);
10860
10861var _configProvider = __webpack_require__(9);
10862
10863var _configProvider2 = _interopRequireDefault(_configProvider);
10864
10865var _box = __webpack_require__(175);
10866
10867var _box2 = _interopRequireDefault(_box);
10868
10869var _util = __webpack_require__(6);
10870
10871var _createStyle = __webpack_require__(176);
10872
10873var _createStyle2 = _interopRequireDefault(_createStyle);
10874
10875var _cell = __webpack_require__(369);
10876
10877var _cell2 = _interopRequireDefault(_cell);
10878
10879function _interopRequireDefault(obj) {
10880 return obj && obj.__esModule ? obj : { default: obj };
10881}
10882
10883var ieVersion = _util.env.ieVersion;
10884var pickOthers = _util.obj.pickOthers,
10885 isReactFragment = _util.obj.isReactFragment;
10886
10887var createChildren = function createChildren(children, device, gap) {
10888 var array = _react2.default.Children.toArray(children);
10889 if (!children) {
10890 return null;
10891 }
10892
10893 return array.map(function (child) {
10894 if (isReactFragment(child)) {
10895 return createChildren(child.props.children, device, gap);
10896 }
10897
10898 if (_react2.default.isValidElement(child) && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && ['form_item', 'responsive_grid_cell'].indexOf(child.type._typeMark) > -1) {
10899 return _react2.default.cloneElement(child, {
10900 style: (0, _extends3.default)({}, (0, _createStyle.getGridChildProps)(child.props, device, gap), child.props.style || {})
10901 });
10902 }
10903
10904 return child;
10905 });
10906};
10907
10908var getStyle = function getStyle() {
10909 var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10910 var props = arguments[1];
10911
10912 return (0, _extends3.default)({}, (0, _createStyle2.default)((0, _extends3.default)({ display: 'grid' }, props)), style);
10913};
10914
10915/**
10916 * ResponsiveGrid
10917 */
10918var ResponsiveGrid = (_temp = _class = function (_Component) {
10919 (0, _inherits3.default)(ResponsiveGrid, _Component);
10920
10921 function ResponsiveGrid() {
10922 (0, _classCallCheck3.default)(this, ResponsiveGrid);
10923 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
10924 }
10925
10926 ResponsiveGrid.prototype.render = function render() {
10927 var _classNames;
10928
10929 var _props = this.props,
10930 prefix = _props.prefix,
10931 View = _props.component,
10932 style = _props.style,
10933 className = _props.className,
10934 children = _props.children,
10935 device = _props.device,
10936 rows = _props.rows,
10937 columns = _props.columns,
10938 gap = _props.gap,
10939 rowSpan = _props.rowSpan,
10940 colSpan = _props.colSpan,
10941 component = _props.component,
10942 dense = _props.dense;
10943
10944 var styleProps = {
10945 rows: rows,
10946 columns: columns,
10947 gap: gap,
10948 device: device,
10949 rowSpan: rowSpan,
10950 colSpan: colSpan,
10951 component: component,
10952 dense: dense
10953 };
10954
10955 var others = pickOthers(Object.keys(ResponsiveGrid.propTypes), this.props);
10956
10957 var styleSheet = getStyle(style, styleProps);
10958
10959 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'responsive-grid'] = true, _classNames[prefix + 'responsive-grid-ie'] = ieVersion, _classNames), className);
10960
10961 return ieVersion ? _react2.default.createElement(_box2.default, (0, _extends3.default)({}, this.props, { direction: 'row', wrap: true, spacing: gap, children: createChildren(children, device, gap) })) : _react2.default.createElement(View, (0, _extends3.default)({ style: styleSheet, className: cls }, others), createChildren(children, device, gap));
10962 };
10963
10964 return ResponsiveGrid;
10965}(_react.Component), _class._typeMark = 'responsive_grid', _class.propTypes = {
10966 prefix: _propTypes2.default.string,
10967 className: _propTypes2.default.any,
10968 /**
10969 * 设备,用来做自适应,默认为 PC
10970 * @enumdesc 手机, 平板, PC
10971 */
10972 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
10973 rows: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10974 /**
10975 * 分为几列, 默认是 12 列
10976 */
10977 columns: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
10978 /**
10979 * 每个 cell 之间的间距, [bottom&top, right&left]
10980 */
10981 gap: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
10982 /**
10983 * 设置标签类型
10984 */
10985 component: _propTypes2.default.elementType,
10986 /**
10987 * 是否开启紧密模式,开启后尽可能能紧密填满,尽量不出现空格
10988 */
10989 dense: _propTypes2.default.bool,
10990 style: _propTypes2.default.object
10991}, _class.defaultProps = {
10992 prefix: 'next-',
10993 component: 'div',
10994 device: 'desktop',
10995 dense: false
10996}, _temp);
10997ResponsiveGrid.displayName = 'ResponsiveGrid';
10998
10999ResponsiveGrid.Cell = _cell2.default;
11000
11001exports.default = _configProvider2.default.config(ResponsiveGrid);
11002module.exports = exports['default'];
11003
11004/***/ }),
11005/* 100 */
11006/***/ (function(module, exports, __webpack_require__) {
11007
11008"use strict";
11009
11010
11011exports.__esModule = true;
11012
11013var _extends2 = __webpack_require__(1);
11014
11015var _extends3 = _interopRequireDefault(_extends2);
11016
11017var _classCallCheck2 = __webpack_require__(2);
11018
11019var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11020
11021var _possibleConstructorReturn2 = __webpack_require__(3);
11022
11023var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11024
11025var _inherits2 = __webpack_require__(4);
11026
11027var _inherits3 = _interopRequireDefault(_inherits2);
11028
11029var _class, _temp;
11030
11031var _react = __webpack_require__(0);
11032
11033var _react2 = _interopRequireDefault(_react);
11034
11035var _propTypes = __webpack_require__(5);
11036
11037var _propTypes2 = _interopRequireDefault(_propTypes);
11038
11039var _classnames = __webpack_require__(7);
11040
11041var _classnames2 = _interopRequireDefault(_classnames);
11042
11043var _overlay = __webpack_require__(15);
11044
11045var _overlay2 = _interopRequireDefault(_overlay);
11046
11047var _configProvider = __webpack_require__(9);
11048
11049var _configProvider2 = _interopRequireDefault(_configProvider);
11050
11051var _util = __webpack_require__(6);
11052
11053function _interopRequireDefault(obj) {
11054 return obj && obj.__esModule ? obj : { default: obj };
11055}
11056
11057/* eslint-disable react/prefer-stateless-function */
11058
11059/** Loading */
11060var Loading = (_temp = _class = function (_React$Component) {
11061 (0, _inherits3.default)(Loading, _React$Component);
11062
11063 function Loading() {
11064 (0, _classCallCheck3.default)(this, Loading);
11065 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
11066 }
11067
11068 Loading.prototype.render = function render() {
11069 var _classNames2, _classNames3, _classNames4;
11070
11071 var _props = this.props,
11072 tip = _props.tip,
11073 visible = _props.visible,
11074 children = _props.children,
11075 className = _props.className,
11076 style = _props.style,
11077 indicator = _props.indicator,
11078 color = _props.color,
11079 prefix = _props.prefix,
11080 fullScreen = _props.fullScreen,
11081 disableScroll = _props.disableScroll,
11082 onVisibleChange = _props.onVisibleChange,
11083 tipAlign = _props.tipAlign,
11084 size = _props.size,
11085 inline = _props.inline,
11086 rtl = _props.rtl,
11087 safeNode = _props.safeNode;
11088
11089 var indicatorDom = null;
11090 var dotCls = prefix + 'loading-dot';
11091
11092 if (indicator) {
11093 indicatorDom = indicator;
11094 } else {
11095 var _classNames;
11096
11097 var backgroundColor = color;
11098 var fusionReactorCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'loading-fusion-reactor'] = true, _classNames[prefix + 'loading-medium-fusion-reactor'] = size === 'medium', _classNames));
11099 indicatorDom = _react2.default.createElement('div', { className: fusionReactorCls, dir: rtl ? 'rtl' : undefined }, _react2.default.createElement('span', { className: dotCls, style: { backgroundColor: backgroundColor } }), _react2.default.createElement('span', { className: dotCls, style: { backgroundColor: backgroundColor } }), _react2.default.createElement('span', { className: dotCls, style: { backgroundColor: backgroundColor } }), _react2.default.createElement('span', { className: dotCls, style: { backgroundColor: backgroundColor } }));
11100 }
11101
11102 var loadingCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'loading'] = true, _classNames2[prefix + 'open'] = visible, _classNames2[prefix + 'loading-inline'] = inline, _classNames2[className] = className, _classNames2));
11103
11104 var tipCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'loading-tip'] = true, _classNames3[prefix + 'loading-tip-fullscreen'] = fullScreen, _classNames3[prefix + 'loading-right-tip'] = tipAlign === 'right', _classNames3));
11105
11106 var others = _util.obj.pickOthers(Loading.propTypes, this.props);
11107
11108 var contentCls = (0, _classnames2.default)((_classNames4 = {}, _classNames4[prefix + 'loading-component'] = visible, _classNames4[prefix + 'loading-wrap'] = true, _classNames4));
11109
11110 return fullScreen ? [children, _react2.default.createElement(_overlay2.default, (0, _extends3.default)({
11111 key: 'overlay',
11112 hasMask: true,
11113 align: 'cc cc',
11114 safeNode: safeNode,
11115 disableScroll: disableScroll
11116 }, others, {
11117 className: className,
11118 style: style,
11119 visible: visible,
11120 onRequestClose: onVisibleChange
11121 }), _react2.default.createElement('div', { className: tipCls }, _react2.default.createElement('div', { className: prefix + 'loading-indicator' }, indicatorDom), _react2.default.createElement('div', { className: prefix + 'loading-tip-content' }, tip), _react2.default.createElement('div', { className: prefix + 'loading-tip-placeholder' }, tip)))] : _react2.default.createElement('div', (0, _extends3.default)({ className: loadingCls, style: style }, others), visible ? _react2.default.createElement('div', { className: tipCls }, _react2.default.createElement('div', { className: prefix + 'loading-indicator' }, indicatorDom), _react2.default.createElement('div', { className: prefix + 'loading-tip-content' }, tip), _react2.default.createElement('div', { className: prefix + 'loading-tip-placeholder' }, tip)) : null, _react2.default.createElement('div', { className: contentCls }, visible ? _react2.default.createElement('div', { className: prefix + 'loading-masker' }) : null, children));
11122 };
11123
11124 return Loading;
11125}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
11126 /**
11127 * 样式前缀
11128 */
11129 prefix: _propTypes2.default.string,
11130 /**
11131 * 自定义内容,可以传入string或reactElement
11132 */
11133 tip: _propTypes2.default.any,
11134 /**
11135 * 自定义内容位置
11136 * @enumdesc 出现在动画右边, 出现在动画下面
11137 */
11138 tipAlign: _propTypes2.default.oneOf(['right', 'bottom']),
11139 /**
11140 * loading 状态, 默认 true
11141 */
11142 visible: _propTypes2.default.bool,
11143 /**
11144 * 全屏模式下,loading弹层请求关闭时触发的回调函数
11145 * @param {String} type 弹层关闭的来源
11146 * @param {Object} e DOM 事件
11147 */
11148 onVisibleChange: _propTypes2.default.func,
11149 /**
11150 * 自定义class
11151 */
11152 className: _propTypes2.default.string,
11153 /**
11154 * 自定义内联样式
11155 */
11156 style: _propTypes2.default.object,
11157 /**
11158 * 设置动画尺寸
11159 * @description 仅仅对默认动画效果起作用
11160 * @enumdesc 大号, 中号
11161 */
11162 size: _propTypes2.default.oneOf(['large', 'medium']),
11163 /**
11164 * 自定义动画
11165 */
11166 indicator: _propTypes2.default.any,
11167 /**
11168 * 动画颜色
11169 */
11170 color: _propTypes2.default.string,
11171 /**
11172 * 全屏展示
11173 */
11174 fullScreen: _propTypes2.default.bool,
11175 /**
11176 * 当点击 document 的时候,如果包含该节点则不会关闭弹层,
11177 * 如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组
11178 * 是否禁用滚动,仅在 fullScreen 模式下生效
11179 */
11180 disableScroll: _propTypes2.default.bool,
11181 /**
11182 * 安全节点,fullScreen时有效,
11183 */
11184 safeNode: _propTypes2.default.any,
11185 /**
11186 * 子元素
11187 */
11188 children: _propTypes2.default.any,
11189 inline: _propTypes2.default.bool,
11190 rtl: _propTypes2.default.bool
11191}), _class.defaultProps = {
11192 prefix: 'next-',
11193 visible: true,
11194 onVisibleChange: _util.func.noop,
11195 animate: null,
11196 tipAlign: 'bottom',
11197 size: 'large',
11198 inline: true,
11199 disableScroll: false
11200}, _temp);
11201Loading.displayName = 'Loading';
11202exports.default = _configProvider2.default.config(Loading);
11203module.exports = exports['default'];
11204
11205/***/ }),
11206/* 101 */
11207/***/ (function(module, exports, __webpack_require__) {
11208
11209"use strict";
11210
11211
11212exports.__esModule = true;
11213
11214var _extends2 = __webpack_require__(1);
11215
11216var _extends3 = _interopRequireDefault(_extends2);
11217
11218var _objectWithoutProperties2 = __webpack_require__(8);
11219
11220var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
11221
11222var _configProvider = __webpack_require__(9);
11223
11224var _configProvider2 = _interopRequireDefault(_configProvider);
11225
11226var _progress = __webpack_require__(389);
11227
11228var _progress2 = _interopRequireDefault(_progress);
11229
11230function _interopRequireDefault(obj) {
11231 return obj && obj.__esModule ? obj : { default: obj };
11232}
11233
11234exports.default = _configProvider2.default.config(_progress2.default, {
11235 transform: /* istanbul ignore next */function transform(props, deprecated) {
11236 if ('type' in props) {
11237 deprecated('type', 'progressive', 'Progress');
11238
11239 var _props = props,
11240 type = _props.type,
11241 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
11242
11243 props = (0, _extends3.default)({ progressive: type === 'progressive' }, others);
11244 }
11245
11246 if ('showInfo' in props) {
11247 deprecated('showInfo', 'textRender', 'Progress');
11248
11249 var _props2 = props,
11250 showInfo = _props2.showInfo,
11251 _others = (0, _objectWithoutProperties3.default)(_props2, ['showInfo']);
11252
11253 if (showInfo) {
11254 props = _others;
11255 } else {
11256 props = (0, _extends3.default)({ textRender: function textRender() {
11257 return false;
11258 } }, _others);
11259 }
11260 }
11261
11262 if ('suffix' in props) {
11263 deprecated('suffix', 'textRender', 'Progress');
11264
11265 var _props3 = props,
11266 suffix = _props3.suffix,
11267 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['suffix']);
11268
11269 props = (0, _extends3.default)({ textRender: function textRender() {
11270 return suffix;
11271 } }, _others2);
11272 }
11273
11274 return props;
11275 }
11276});
11277module.exports = exports['default'];
11278
11279/***/ }),
11280/* 102 */
11281/***/ (function(module, exports, __webpack_require__) {
11282
11283var styleEqual = __webpack_require__(427);
11284var hasOwnProperty = Object.prototype.hasOwnProperty;
11285
11286function type(a) {
11287 return Array.isArray(a) ? 'array' : typeof a;
11288}
11289
11290function elementEquals(a, b) {
11291 var typeOfA = type(a);
11292 var typeOfB = type(b);
11293
11294 if (typeOfA !== typeOfB) return false;
11295
11296 switch (typeOfA) {
11297 case 'array':
11298 if (a.length !== b.length) return false;
11299 for (var i = 0; i < a.length; i++) {
11300 if (!elementEquals(a[i], b[i])) return false;
11301 }
11302 return true;
11303 case 'object':
11304 if (!a || !b) return a === b;
11305 if (a.type !== b.type) return false;
11306 if (a.key !== b.key) return false;
11307 if (a.ref !== b.ref) return false;
11308 return shallowElementEquals(a.props, b.props);
11309 break;
11310 default:
11311 return a === b;
11312 }
11313}
11314
11315function shallowElementEquals(a, b) {
11316 var aCount = 0;
11317 var bCount = 0;
11318
11319 for (var key in a) {
11320 if (hasOwnProperty.call(a, key)) {
11321 if (key === 'style') {
11322 // NOTE(lmr): kind of risky, but i'm assuming that a `style` prop is a React Native style,
11323 // and using the `styleEqual` algorithm here.
11324 if (!styleEqual(a[key], b[key])) return false;
11325 } else if (key === 'children') {
11326 // will compare children later
11327 } else {
11328 if (a[key] !== b[key]) return false;
11329 }
11330 aCount++;
11331 }
11332 }
11333
11334 for (var key in b) {
11335 if (hasOwnProperty.call(b, key)) {
11336 bCount++;
11337 }
11338 }
11339
11340 if (aCount !== bCount) return false;
11341
11342 // compare children last...
11343 return elementEquals(a.children, b.children);
11344}
11345
11346module.exports = shallowElementEquals;
11347
11348
11349/***/ }),
11350/* 103 */
11351/***/ (function(module, exports, __webpack_require__) {
11352
11353"use strict";
11354
11355
11356exports.__esModule = true;
11357exports.default = undefined;
11358
11359var _classCallCheck2 = __webpack_require__(2);
11360
11361var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11362
11363var _possibleConstructorReturn2 = __webpack_require__(3);
11364
11365var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11366
11367var _inherits2 = __webpack_require__(4);
11368
11369var _inherits3 = _interopRequireDefault(_inherits2);
11370
11371var _class, _temp;
11372
11373var _react = __webpack_require__(0);
11374
11375var _react2 = _interopRequireDefault(_react);
11376
11377var _propTypes = __webpack_require__(5);
11378
11379var _propTypes2 = _interopRequireDefault(_propTypes);
11380
11381function _interopRequireDefault(obj) {
11382 return obj && obj.__esModule ? obj : { default: obj };
11383}
11384
11385/**
11386 * Table.Column
11387 * @order 0
11388 **/
11389var Column = (_temp = _class = function (_React$Component) {
11390 (0, _inherits3.default)(Column, _React$Component);
11391
11392 function Column() {
11393 (0, _classCallCheck3.default)(this, Column);
11394 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
11395 }
11396
11397 Column.prototype.render = function render() {
11398 return null;
11399 };
11400
11401 return Column;
11402}(_react2.default.Component), _class.propTypes = {
11403 /**
11404 * 指定列对应的字段,支持`a.b`形式的快速取值
11405 */
11406 dataIndex: _propTypes2.default.string,
11407 /**
11408 * 行渲染的逻辑
11409 * value, rowIndex, record, context四个属性只可读不可被更改
11410 * Function(value, index, record) => Element
11411 */
11412 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
11413 /**
11414 * 表头显示的内容
11415 */
11416 title: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
11417 /**
11418 * 写到 header 单元格上的title属性
11419 */
11420 htmlTitle: _propTypes2.default.string,
11421 /**
11422 * 是否支持排序
11423 */
11424 sortable: _propTypes2.default.bool,
11425 /**
11426 * 排序的方向。
11427 * 设置 ['desc', 'asc'],表示降序、升序
11428 * 设置 ['desc', 'asc', 'default'],表示表示降序、升序、不排序
11429 * @version 1.23
11430 */
11431 sortDirections: _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['desc', 'asc', 'default'])),
11432 /**
11433 * 列宽,注意在锁列的情况下一定需要配置宽度
11434 */
11435 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
11436 /**
11437 * 单元格的对齐方式
11438 */
11439 align: _propTypes2.default.oneOf(['left', 'center', 'right']),
11440 /**
11441 * 单元格标题的对齐方式, 不配置默认读取align值
11442 */
11443 alignHeader: _propTypes2.default.oneOf(['left', 'center', 'right']),
11444 /**
11445 * 生成标题过滤的菜单, 格式为`[{label:'xxx', value:'xxx'}]`
11446 */
11447 filters: _propTypes2.default.arrayOf(_propTypes2.default.shape({
11448 label: _propTypes2.default.string,
11449 value: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string])
11450 })),
11451 /**
11452 * 过滤的模式是单选还是多选
11453 */
11454 filterMode: _propTypes2.default.oneOf(['single', 'multiple']),
11455 /**
11456 * filter 模式下传递给 Menu 菜单的属性, 默认继承 `Menu` 组件的API
11457 * @property {Boolean} subMenuSelectable 默认为`false` subMenu是否可选择
11458 * @property {Boolean} isSelectIconRight 默认为`false` 是否将选中图标居右。注意:SubMenu 上的选中图标一直居左,不受此API控制
11459 */
11460 filterMenuProps: _propTypes2.default.object,
11461 filterProps: _propTypes2.default.object,
11462 /**
11463 * 是否支持锁列,可选值为`left`,`right`, `true`
11464 */
11465 lock: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),
11466 /**
11467 * 是否支持列宽调整, 当该值设为true,table的布局方式会修改为fixed.
11468 */
11469 resizable: _propTypes2.default.bool,
11470 /**
11471 * (推荐使用)是否支持异步列宽调整, 当该值设为true,table的布局方式会修改为fixed.
11472 * @version 1.24
11473 */
11474 asyncResizable: _propTypes2.default.bool,
11475 /**
11476 * header cell 横跨的格数,设置为0表示不出现此 th
11477 */
11478 colSpan: _propTypes2.default.number,
11479 /**
11480 * 设置该列单元格的word-break样式,对于id类、中文类适合用all,对于英文句子适合用word
11481 * @enumdesc all, word
11482 * @default all
11483 * @version 1.23
11484 */
11485 wordBreak: _propTypes2.default.oneOf(['all', 'word'])
11486}, _class.contextTypes = {
11487 parent: _propTypes2.default.any
11488}, _class.defaultProps = {
11489 cell: function cell(value) {
11490 return value;
11491 },
11492 filterMode: 'multiple',
11493 filterMenuProps: {
11494 subMenuSelectable: false
11495 },
11496 filterProps: {},
11497 resizable: false,
11498 asyncResizable: false
11499}, _class._typeMark = 'column', _temp);
11500Column.displayName = 'Column';
11501exports.default = Column;
11502module.exports = exports['default'];
11503
11504/***/ }),
11505/* 104 */
11506/***/ (function(module, exports, __webpack_require__) {
11507
11508"use strict";
11509
11510
11511exports.__esModule = true;
11512exports.default = undefined;
11513
11514var _extends2 = __webpack_require__(1);
11515
11516var _extends3 = _interopRequireDefault(_extends2);
11517
11518var _classCallCheck2 = __webpack_require__(2);
11519
11520var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11521
11522var _possibleConstructorReturn2 = __webpack_require__(3);
11523
11524var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11525
11526var _inherits2 = __webpack_require__(4);
11527
11528var _inherits3 = _interopRequireDefault(_inherits2);
11529
11530var _class, _temp2;
11531
11532var _react = __webpack_require__(0);
11533
11534var _react2 = _interopRequireDefault(_react);
11535
11536var _propTypes = __webpack_require__(5);
11537
11538var _propTypes2 = _interopRequireDefault(_propTypes);
11539
11540var _row = __webpack_require__(64);
11541
11542var _row2 = _interopRequireDefault(_row);
11543
11544function _interopRequireDefault(obj) {
11545 return obj && obj.__esModule ? obj : { default: obj };
11546}
11547
11548var LockRow = (_temp2 = _class = function (_React$Component) {
11549 (0, _inherits3.default)(LockRow, _React$Component);
11550
11551 function LockRow() {
11552 var _temp, _this, _ret;
11553
11554 (0, _classCallCheck3.default)(this, LockRow);
11555
11556 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
11557 args[_key] = arguments[_key];
11558 }
11559
11560 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onMouseEnter = function (record, index, e) {
11561 var onRowMouseEnter = _this.context.onRowMouseEnter;
11562 var onMouseEnter = _this.props.onMouseEnter;
11563
11564 onRowMouseEnter && onRowMouseEnter(record, index, e);
11565 onMouseEnter(record, index, e);
11566 }, _this.onMouseLeave = function (record, index, e) {
11567 var onRowMouseLeave = _this.context.onRowMouseLeave;
11568 var onMouseLeave = _this.props.onMouseLeave;
11569
11570 onRowMouseLeave && onRowMouseLeave(record, index, e);
11571 onMouseLeave(record, index, e);
11572 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
11573 }
11574
11575 LockRow.prototype.render = function render() {
11576 /* eslint-disable no-unused-vars*/
11577 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, this.props, {
11578 onMouseEnter: this.onMouseEnter,
11579 onMouseLeave: this.onMouseLeave
11580 }));
11581 };
11582
11583 return LockRow;
11584}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.contextTypes = {
11585 onRowMouseEnter: _propTypes2.default.func,
11586 onRowMouseLeave: _propTypes2.default.func
11587}, _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _temp2);
11588LockRow.displayName = 'LockRow';
11589exports.default = LockRow;
11590module.exports = exports['default'];
11591
11592/***/ }),
11593/* 105 */
11594/***/ (function(module, exports, __webpack_require__) {
11595
11596"use strict";
11597
11598
11599exports.__esModule = true;
11600
11601var _extends2 = __webpack_require__(1);
11602
11603var _extends3 = _interopRequireDefault(_extends2);
11604
11605var _typeof2 = __webpack_require__(14);
11606
11607var _typeof3 = _interopRequireDefault(_typeof2);
11608
11609var _classCallCheck2 = __webpack_require__(2);
11610
11611var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
11612
11613var _possibleConstructorReturn2 = __webpack_require__(3);
11614
11615var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
11616
11617var _inherits2 = __webpack_require__(4);
11618
11619var _inherits3 = _interopRequireDefault(_inherits2);
11620
11621var _class, _temp;
11622
11623var _react = __webpack_require__(0);
11624
11625var _react2 = _interopRequireDefault(_react);
11626
11627var _reactDom = __webpack_require__(12);
11628
11629var _propTypes = __webpack_require__(5);
11630
11631var _propTypes2 = _interopRequireDefault(_propTypes);
11632
11633var _reactLifecyclesCompat = __webpack_require__(10);
11634
11635var _classnames = __webpack_require__(7);
11636
11637var _classnames2 = _interopRequireDefault(_classnames);
11638
11639var _icon = __webpack_require__(11);
11640
11641var _icon2 = _interopRequireDefault(_icon);
11642
11643var _checkbox = __webpack_require__(49);
11644
11645var _checkbox2 = _interopRequireDefault(_checkbox);
11646
11647var _animate = __webpack_require__(20);
11648
11649var _animate2 = _interopRequireDefault(_animate);
11650
11651var _util = __webpack_require__(6);
11652
11653var _treeNodeInput = __webpack_require__(456);
11654
11655var _treeNodeInput2 = _interopRequireDefault(_treeNodeInput);
11656
11657var _treeNodeIndent = __webpack_require__(457);
11658
11659var _treeNodeIndent2 = _interopRequireDefault(_treeNodeIndent);
11660
11661function _interopRequireDefault(obj) {
11662 return obj && obj.__esModule ? obj : { default: obj };
11663}
11664
11665var Expand = _animate2.default.Expand;
11666var bindCtx = _util.func.bindCtx;
11667var isPromise = _util.obj.isPromise,
11668 pickOthers = _util.obj.pickOthers,
11669 pickAttrsWith = _util.obj.pickAttrsWith;
11670
11671var isRoot = function isRoot(pos) {
11672 return (/^0-(\d)+$/.test(pos)
11673 );
11674};
11675
11676/**
11677 * Tree.Node
11678 */
11679var TreeNode = (_temp = _class = function (_Component) {
11680 (0, _inherits3.default)(TreeNode, _Component);
11681
11682 function TreeNode(props) {
11683 (0, _classCallCheck3.default)(this, TreeNode);
11684
11685 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
11686
11687 _this.saveRef = function (ref) {
11688 _this.nodeEl = ref;
11689 };
11690
11691 _this.saveLabelWrapperRef = function (ref) {
11692 _this.labelWrapperEl = ref;
11693 };
11694
11695 _this.state = {
11696 editing: false,
11697 loading: false,
11698 label: props.label
11699 };
11700
11701 bindCtx(_this, ['handleExpand', 'handleSelect', 'handleCheck', 'handleEditStart', 'handleEditFinish', 'handleRightClick', 'handleDragStart', 'handleDragEnter', 'handleDragOver', 'handleDragLeave', 'handleDragEnd', 'handleDrop', 'handleInputKeyDown', 'handleKeyDown']);
11702 return _this;
11703 }
11704
11705 TreeNode.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
11706 if ('label' in props) {
11707 return {
11708 label: props.label
11709 };
11710 }
11711
11712 return null;
11713 };
11714
11715 TreeNode.prototype.componentDidMount = function componentDidMount() {
11716 this.itemNode = (0, _reactDom.findDOMNode)(this.nodeEl);
11717 this.setFocus();
11718 };
11719
11720 TreeNode.prototype.componentDidUpdate = function componentDidUpdate() {
11721 this.setFocus();
11722 };
11723
11724 TreeNode.prototype.getParentNode = function getParentNode() {
11725 return this.props.root.getParentNode(this.props.pos);
11726 };
11727
11728 TreeNode.prototype.focusable = function focusable() {
11729 var _props = this.props,
11730 root = _props.root,
11731 disabled = _props.disabled;
11732 var focusable = root.props.focusable;
11733
11734 return focusable && !disabled;
11735 };
11736
11737 TreeNode.prototype.getFocused = function getFocused() {
11738 var _props2 = this.props,
11739 _key = _props2._key,
11740 root = _props2.root;
11741 var focusedKey = root.state.focusedKey;
11742
11743 return focusedKey === _key;
11744 };
11745
11746 TreeNode.prototype.setFocus = function setFocus() {
11747 var focused = this.getFocused();
11748 if (focused && this.focusable()) {
11749 this.itemNode.focus({ preventScroll: true });
11750 }
11751 };
11752
11753 TreeNode.prototype.handleExpand = function handleExpand(e) {
11754 var _this2 = this;
11755
11756 var _props3 = this.props,
11757 root = _props3.root,
11758 expanded = _props3.expanded,
11759 eventKey = _props3.eventKey;
11760
11761 if (root.props.isNodeBlock) {
11762 e.stopPropagation();
11763 }
11764
11765 var loading = this.state.loading;
11766
11767 if (loading) {
11768 return;
11769 }
11770
11771 var returnValue = root.handleExpand(!expanded, eventKey, this);
11772 if (isPromise(returnValue)) {
11773 this.setLoading(true);
11774 return returnValue.then(function () {
11775 _this2.setLoading(false);
11776 }, function () {
11777 _this2.setLoading(false);
11778 });
11779 }
11780 };
11781
11782 TreeNode.prototype.setLoading = function setLoading(loading) {
11783 this.setState({ loading: loading });
11784 };
11785
11786 TreeNode.prototype.handleSelect = function handleSelect(e) {
11787 e.preventDefault();
11788
11789 var _props4 = this.props,
11790 root = _props4.root,
11791 selected = _props4.selected,
11792 eventKey = _props4.eventKey;
11793
11794 root.handleSelect(!selected, eventKey, this, e);
11795 };
11796
11797 TreeNode.prototype.handleCheck = function handleCheck() {
11798 var _props5 = this.props,
11799 root = _props5.root,
11800 checked = _props5.checked,
11801 eventKey = _props5.eventKey;
11802
11803 root.handleCheck(!checked, eventKey, this);
11804 };
11805
11806 TreeNode.prototype.handleEditStart = function handleEditStart(e) {
11807 e.preventDefault();
11808
11809 this.setState({
11810 editing: true
11811 });
11812 };
11813
11814 TreeNode.prototype.handleEditFinish = function handleEditFinish(e) {
11815 var label = e.target.value;
11816
11817 this.setState({
11818 editing: false
11819 });
11820
11821 var _props6 = this.props,
11822 root = _props6.root,
11823 eventKey = _props6.eventKey;
11824
11825 root.props.onEditFinish(eventKey, label, this);
11826 };
11827
11828 TreeNode.prototype.handleRightClick = function handleRightClick(e) {
11829 this.props.root.props.onRightClick({
11830 event: e,
11831 node: this
11832 });
11833 };
11834
11835 TreeNode.prototype.handleDragStart = function handleDragStart(e) {
11836 e.stopPropagation();
11837
11838 this.props.root.handleDragStart(e, this);
11839 };
11840
11841 TreeNode.prototype.handleDragEnter = function handleDragEnter(e) {
11842 e.preventDefault();
11843 e.stopPropagation();
11844
11845 this.props.root.handleDragEnter(e, this);
11846 };
11847
11848 TreeNode.prototype.handleDragOver = function handleDragOver(e) {
11849 if (this.props.root.canDrop(this)) {
11850 e.preventDefault();
11851
11852 this.props.root.handleDragOver(e, this);
11853 }
11854 e.stopPropagation();
11855 };
11856
11857 TreeNode.prototype.handleDragLeave = function handleDragLeave(e) {
11858 e.stopPropagation();
11859
11860 this.props.root.handleDragLeave(e, this);
11861 };
11862
11863 TreeNode.prototype.handleDragEnd = function handleDragEnd(e) {
11864 e.stopPropagation();
11865
11866 this.props.root.handleDragEnd(e, this);
11867 };
11868
11869 TreeNode.prototype.handleDrop = function handleDrop(e) {
11870 e.preventDefault();
11871 e.stopPropagation();
11872
11873 this.props.root.handleDrop(e, this);
11874 };
11875
11876 TreeNode.prototype.handleInputKeyDown = function handleInputKeyDown(e) {
11877 if (e.keyCode === _util.KEYCODE.ENTER) {
11878 this.handleEditFinish(e);
11879 }
11880 e.stopPropagation();
11881 };
11882
11883 TreeNode.prototype.handleKeyDown = function handleKeyDown(e) {
11884 var _props7 = this.props,
11885 _key = _props7._key,
11886 root = _props7.root,
11887 disabled = _props7.disabled;
11888
11889 if (disabled) {
11890 return;
11891 }
11892
11893 if (this.focusable()) {
11894 root.handleItemKeyDown(_key, this, e);
11895 }
11896
11897 this.props.onKeyDown && this.props.onKeyDown(e);
11898 };
11899
11900 TreeNode.prototype.addCallbacks = function addCallbacks(props) {
11901 var _props8 = this.props,
11902 disabled = _props8.disabled,
11903 root = _props8.root;
11904
11905 if (!disabled) {
11906 var selectable = typeof this.props.selectable !== 'undefined' ? this.props.selectable : root.props.selectable;
11907 if (selectable) {
11908 props.onClick = this.handleSelect;
11909 }
11910 var editable = typeof this.props.editable !== 'undefined' ? this.props.editable : root.props.editable;
11911 if (editable) {
11912 props.onDoubleClick = this.handleEditStart;
11913 }
11914 var draggable = typeof this.props.draggable !== 'undefined' ? this.props.draggable : root.props.draggable;
11915 if (draggable) {
11916 props.draggable = true;
11917 props.onDragStart = this.handleDragStart;
11918 props.onDragEnd = this.handleDragEnd;
11919 }
11920 props.onContextMenu = this.handleRightClick;
11921 }
11922 };
11923
11924 TreeNode.prototype.renderSwitcher = function renderSwitcher(showLine) {
11925 var _cx, _cx2;
11926
11927 var _props9 = this.props,
11928 prefix = _props9.prefix,
11929 disabled = _props9.disabled,
11930 expanded = _props9.expanded,
11931 root = _props9.root;
11932 var loadData = root.props.loadData;
11933 var loading = this.state.loading;
11934
11935 var lineState = showLine ? 'line' : 'noline';
11936 var className = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'tree-switcher'] = true, _cx['' + prefix + lineState] = !loading, _cx[prefix + 'close'] = !loading && !showLine && !expanded, _cx[prefix + 'disabled'] = disabled, _cx[prefix + 'loading'] = loading, _cx[prefix + 'loading-' + lineState] = loading, _cx));
11937 var iconType = loadData && loading ? 'loading' : showLine ? expanded ? 'minus' : 'add' : 'arrow-down';
11938 var iconCls = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'tree-switcher-icon'] = true, _cx2[prefix + 'tree-fold-icon'] = iconType === 'arrow-down', _cx2[prefix + 'tree-switcher-fold-icon'] = showLine && !expanded, _cx2[prefix + 'tree-switcher-unfold-icon'] = showLine && expanded, _cx2));
11939
11940 return (
11941 // eslint-disable-next-line jsx-a11y/click-events-have-key-events
11942 _react2.default.createElement('span', { className: className, onClick: disabled ? null : this.handleExpand }, this.renderRightAngle(showLine), _react2.default.createElement(_icon2.default, { className: iconCls, type: iconType }))
11943 );
11944 };
11945
11946 TreeNode.prototype.renderNoopSwitcher = function renderNoopSwitcher(showLine) {
11947 var _cx3;
11948
11949 var _props10 = this.props,
11950 prefix = _props10.prefix,
11951 pos = _props10.pos;
11952
11953 var lineState = showLine ? 'line' : 'noline';
11954 var className = (0, _classnames2.default)((_cx3 = {}, _cx3[prefix + 'tree-switcher'] = true, _cx3[prefix + 'noop-' + lineState] = true, _cx3[prefix + 'noop-line-noroot'] = showLine && !isRoot(pos), _cx3));
11955
11956 return _react2.default.createElement('span', { className: className }, this.renderRightAngle(showLine));
11957 };
11958
11959 TreeNode.prototype.renderRightAngle = function renderRightAngle(showLine) {
11960 var _props11 = this.props,
11961 prefix = _props11.prefix,
11962 pos = _props11.pos;
11963
11964 return showLine && !isRoot(pos) ? _react2.default.createElement('span', { className: prefix + 'tree-right-angle' }) : null;
11965 };
11966
11967 TreeNode.prototype.renderCheckbox = function renderCheckbox() {
11968 var _props12 = this.props,
11969 checked = _props12.checked,
11970 indeterminate = _props12.indeterminate,
11971 disabled = _props12.disabled,
11972 checkboxDisabled = _props12.checkboxDisabled;
11973 var label = this.state.label;
11974
11975 return _react2.default.createElement(_checkbox2.default, {
11976 'aria-label': typeof label === 'string' ? label : null,
11977 checked: checked,
11978 tabIndex: -1,
11979 indeterminate: indeterminate,
11980 disabled: disabled || checkboxDisabled
11981 // don't use onChange, fix https://github.com/alibaba-fusion/next/issues/3850
11982 , onClick: this.handleCheck
11983 });
11984 };
11985
11986 TreeNode.prototype.renderLabel = function renderLabel() {
11987 var _cx4;
11988
11989 var _props13 = this.props,
11990 prefix = _props13.prefix,
11991 root = _props13.root,
11992 disabled = _props13.disabled,
11993 icon = _props13.icon;
11994 var isNodeBlock = root.props.isNodeBlock;
11995 var label = this.state.label;
11996
11997 var selectable = typeof this.props.selectable !== 'undefined' ? this.props.selectable : root.props.selectable;
11998 var labelProps = {
11999 className: (0, _classnames2.default)((_cx4 = {}, _cx4[prefix + 'tree-node-label'] = true, _cx4[prefix + 'tree-node-label-selectable'] = selectable && !disabled, _cx4))
12000 };
12001
12002 if (!isNodeBlock) {
12003 this.addCallbacks(labelProps);
12004 }
12005
12006 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { type: icon }) : icon;
12007
12008 return _react2.default.createElement('div', { className: prefix + 'tree-node-label-wrapper', ref: this.saveLabelWrapperRef }, _react2.default.createElement('div', labelProps, iconEl, label));
12009 };
12010
12011 TreeNode.prototype.renderInput = function renderInput() {
12012 var prefix = this.props.prefix;
12013 var label = this.state.label;
12014
12015 return _react2.default.createElement('div', { className: prefix + 'tree-node-label-wrapper', ref: this.saveLabelWrapperRef }, _react2.default.createElement(_treeNodeInput2.default, {
12016 prefix: prefix,
12017 defaultValue: label,
12018 onBlur: this.handleEditFinish,
12019 onKeyDown: this.handleInputKeyDown
12020 }));
12021 };
12022
12023 TreeNode.prototype.renderChildTree = function renderChildTree() {
12024 var _props14 = this.props,
12025 prefix = _props14.prefix,
12026 children = _props14.children;
12027
12028 return children && this.addAnimationIfNeeded(_react2.default.createElement('ul', { role: 'group', className: prefix + 'tree-child-tree' }, children));
12029 };
12030
12031 TreeNode.prototype.addAnimationIfNeeded = function addAnimationIfNeeded(node) {
12032 var root = this.props.root;
12033
12034 return root && root.props.animation ? _react2.default.createElement(Expand, { animationAppear: false }, node) : node;
12035 };
12036
12037 TreeNode.prototype.render = function render() {
12038 var _cx5, _cx6, _ref;
12039
12040 var _props15 = this.props,
12041 prefix = _props15.prefix,
12042 rtl = _props15.rtl,
12043 className = _props15.className,
12044 isLeaf = _props15.isLeaf,
12045 level = _props15.level,
12046 root = _props15.root,
12047 selected = _props15.selected,
12048 checked = _props15.checked,
12049 disabled = _props15.disabled,
12050 dragOver = _props15.dragOver,
12051 dragOverGapTop = _props15.dragOverGapTop,
12052 dragOverGapBottom = _props15.dragOverGapBottom,
12053 _key = _props15._key,
12054 size = _props15.size,
12055 posinset = _props15.posinset,
12056 children = _props15.children,
12057 expanded = _props15.expanded,
12058 isLastChild = _props15.isLastChild;
12059 var _root$props = root.props,
12060 isNodeBlock = _root$props.isNodeBlock,
12061 showLine = _root$props.showLine,
12062 rootDraggable = _root$props.draggable,
12063 filterTreeNode = _root$props.filterTreeNode;
12064 var label = this.state.label;
12065
12066 var ARIA_PREFIX = 'aria-';
12067 var ariaProps = pickAttrsWith(this.props, ARIA_PREFIX);
12068 var others = pickOthers(Object.keys(TreeNode.propTypes), this.props);
12069
12070 var hasRenderChildNodes = root && root.props.renderChildNodes;
12071 var shouldShouldLine = !isNodeBlock && showLine && !hasRenderChildNodes;
12072 var useVirtual = root && root.props.useVirtual;
12073
12074 // remove aria keys
12075 Object.keys(others).forEach(function (key) {
12076 if (key.match(ARIA_PREFIX)) {
12077 delete others[key];
12078 }
12079 });
12080
12081 if (rootDraggable) {
12082 others.onDragEnter = this.handleDragEnter;
12083 others.onDragOver = this.handleDragOver;
12084 others.onDragLeave = this.handleDragLeave;
12085 others.onDrop = this.handleDrop;
12086 }
12087 var newClassName = (0, _classnames2.default)((_cx5 = {}, _cx5[prefix + 'tree-node'] = true, _cx5[prefix + 'filtered'] = !!filterTreeNode && !!root.filterTreeNode(this), _cx5[className] = !!className, _cx5));
12088
12089 var innerClassName = (0, _classnames2.default)((_cx6 = {}, _cx6[prefix + 'tree-node-inner'] = true, _cx6[prefix + 'selected'] = selected, _cx6[prefix + 'disabled'] = disabled, _cx6[prefix + 'drag-over'] = dragOver, _cx6[prefix + 'drag-over-gap-top'] = dragOverGapTop, _cx6[prefix + 'drag-over-gap-bottom'] = dragOverGapBottom, _cx6));
12090
12091 var defaultPaddingLeft = (typeof isNodeBlock === 'undefined' ? 'undefined' : (0, _typeof3.default)(isNodeBlock)) === 'object' ? parseInt(isNodeBlock.defaultPaddingLeft || 0) : 0;
12092 var paddingLeftProp = rtl ? 'paddingRight' : 'paddingLeft';
12093
12094 var indent = (typeof isNodeBlock === 'undefined' ? 'undefined' : (0, _typeof3.default)(isNodeBlock)) === 'object' ? parseInt(isNodeBlock.indent || 24) : 24;
12095 var innerStyle = isNodeBlock ? (_ref = {}, _ref[paddingLeftProp] = (useVirtual ? 0 : indent * (level - 1)) + defaultPaddingLeft + 'px', _ref) : null;
12096
12097 var innerProps = (0, _extends3.default)({
12098 className: innerClassName,
12099 style: innerStyle,
12100 onKeyDown: this.handleKeyDown
12101 }, ariaProps);
12102
12103 if (isNodeBlock) {
12104 this.addCallbacks(innerProps);
12105 }
12106
12107 var checkable = typeof this.props.checkable !== 'undefined' ? this.props.checkable : root.props.checkable;
12108
12109 var editing = this.state.editing;
12110
12111 innerProps.tabIndex = root.tabbableKey === _key ? '0' : '-1';
12112
12113 if (rtl) {
12114 others.dir = 'rtl';
12115 }
12116
12117 return this.addAnimationIfNeeded(_react2.default.createElement('li', (0, _extends3.default)({ role: 'presentation', className: newClassName }, others), _react2.default.createElement('div', (0, _extends3.default)({
12118 ref: this.saveRef,
12119 role: 'treeitem',
12120 'aria-selected': selected,
12121 'aria-disabled': disabled,
12122 'aria-checked': checked,
12123 'aria-expanded': !isLeaf,
12124 'aria-label': typeof label === 'string' ? label : null,
12125 'aria-level': level,
12126 'aria-posinset': posinset,
12127 'aria-setsize': size
12128 }, innerProps), useVirtual && !hasRenderChildNodes && _react2.default.createElement(_treeNodeIndent2.default, {
12129 prefix: prefix,
12130 level: level,
12131 isLastChild: isLastChild,
12132 showLine: shouldShouldLine
12133 }), isLeaf ? this.renderNoopSwitcher(shouldShouldLine) : this.renderSwitcher(shouldShouldLine), checkable ? this.renderCheckbox() : null, editing ? this.renderInput() : this.renderLabel()), expanded && (hasRenderChildNodes ? children : this.renderChildTree(children))));
12134 };
12135
12136 return TreeNode;
12137}(_react.Component), _class.propTypes = {
12138 prefix: _propTypes2.default.string,
12139 rtl: _propTypes2.default.bool,
12140 _key: _propTypes2.default.string,
12141 className: _propTypes2.default.string,
12142 /**
12143 * 树节点
12144 */
12145 children: _propTypes2.default.node,
12146 /**
12147 * 节点文本内容
12148 */
12149 label: _propTypes2.default.node,
12150 /**
12151 * 单独设置是否支持选中,覆盖 Tree 的 selectable
12152 */
12153 selectable: _propTypes2.default.bool,
12154 /**
12155 * 单独设置是否出现复选框,覆盖 Tree 的 checkable
12156 */
12157 checkable: _propTypes2.default.bool,
12158 /**
12159 * 单独设置是否支持编辑,覆盖 Tree 的 editable
12160 */
12161 editable: _propTypes2.default.bool,
12162 /**
12163 * 单独设置是否支持拖拽,覆盖 Tree 的 draggable
12164 */
12165 draggable: _propTypes2.default.bool,
12166 /**
12167 * 是否禁止节点响应
12168 */
12169 disabled: _propTypes2.default.bool,
12170 /**
12171 * 是否禁止勾选节点复选框
12172 */
12173 checkboxDisabled: _propTypes2.default.bool,
12174 /**
12175 * 是否是叶子节点,设置loadData时生效
12176 */
12177 isLeaf: _propTypes2.default.bool,
12178 root: _propTypes2.default.object,
12179 eventKey: _propTypes2.default.string,
12180 pos: _propTypes2.default.string,
12181 expanded: _propTypes2.default.bool,
12182 selected: _propTypes2.default.bool,
12183 checked: _propTypes2.default.bool,
12184 indeterminate: _propTypes2.default.bool,
12185 dragOver: _propTypes2.default.bool,
12186 dragOverGapTop: _propTypes2.default.bool,
12187 dragOverGapBottom: _propTypes2.default.bool,
12188 parentNode: _propTypes2.default.object,
12189 onKeyDown: _propTypes2.default.func,
12190 // 无障碍化属性:aria-setsize
12191 size: _propTypes2.default.number,
12192 // 无障碍化属性:aria-posinset
12193 posinset: _propTypes2.default.number,
12194 // 是否是最后一个子节点,数组类型,包含对祖先节点的判断
12195 isLastChild: _propTypes2.default.arrayOf(_propTypes2.default.bool),
12196 /**
12197 * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `<Icon type="icon type" />`
12198 * @version 1.21
12199 */
12200 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node])
12201}, _class.defaultProps = {
12202 label: '---',
12203 rtl: false,
12204 disabled: false,
12205 checkboxDisabled: false,
12206 size: 1,
12207 posinset: 1
12208}, _temp);
12209TreeNode.displayName = 'TreeNode';
12210exports.default = (0, _reactLifecyclesCompat.polyfill)(TreeNode);
12211module.exports = exports['default'];
12212
12213/***/ }),
12214/* 106 */
12215/***/ (function(module, exports, __webpack_require__) {
12216
12217"use strict";
12218
12219
12220exports.__esModule = true;
12221
12222var _extends2 = __webpack_require__(1);
12223
12224var _extends3 = _interopRequireDefault(_extends2);
12225
12226var _objectWithoutProperties2 = __webpack_require__(8);
12227
12228var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
12229
12230var _classCallCheck2 = __webpack_require__(2);
12231
12232var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
12233
12234var _possibleConstructorReturn2 = __webpack_require__(3);
12235
12236var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12237
12238var _inherits2 = __webpack_require__(4);
12239
12240var _inherits3 = _interopRequireDefault(_inherits2);
12241
12242var _class, _temp, _initialiseProps;
12243
12244var _react = __webpack_require__(0);
12245
12246var _react2 = _interopRequireDefault(_react);
12247
12248var _propTypes = __webpack_require__(5);
12249
12250var _propTypes2 = _interopRequireDefault(_propTypes);
12251
12252var _classnames = __webpack_require__(7);
12253
12254var _classnames2 = _interopRequireDefault(_classnames);
12255
12256var _reactLifecyclesCompat = __webpack_require__(10);
12257
12258var _util = __webpack_require__(6);
12259
12260var _icon = __webpack_require__(11);
12261
12262var _icon2 = _interopRequireDefault(_icon);
12263
12264var _base = __webpack_require__(195);
12265
12266var _base2 = _interopRequireDefault(_base);
12267
12268var _index = __webpack_require__(465);
12269
12270var _index2 = _interopRequireDefault(_index);
12271
12272var _html5Uploader = __webpack_require__(196);
12273
12274var _html5Uploader2 = _interopRequireDefault(_html5Uploader);
12275
12276var _list = __webpack_require__(108);
12277
12278var _list2 = _interopRequireDefault(_list);
12279
12280var _util2 = __webpack_require__(42);
12281
12282function _interopRequireDefault(obj) {
12283 return obj && obj.__esModule ? obj : { default: obj };
12284}
12285
12286var noop = _util.func.noop;
12287
12288/**
12289 * Upload
12290 */
12291var Upload = (_temp = _class = function (_Base) {
12292 (0, _inherits3.default)(Upload, _Base);
12293
12294 function Upload(props) {
12295 (0, _classCallCheck3.default)(this, Upload);
12296
12297 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
12298
12299 _initialiseProps.call(_this);
12300
12301 var value = void 0;
12302 if ('value' in props) {
12303 value = props.value;
12304 } else {
12305 value = props.defaultValue;
12306 }
12307
12308 _this.state = {
12309 value: !Array.isArray(value) ? [] : value,
12310 uploading: false
12311 };
12312 return _this;
12313 }
12314
12315 Upload.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
12316 // 上传中不允许做受控修改
12317 if ('value' in nextProps && nextProps.value !== prevState.value && !prevState.uploading) {
12318 return {
12319 value: !Array.isArray(nextProps.value) ? [] : nextProps.value
12320 };
12321 }
12322
12323 return null;
12324 };
12325
12326 /**
12327 * 对外暴露API, 添加文件
12328 * @param files
12329 */
12330 Upload.prototype.selectFiles = function selectFiles(files) {
12331 var filesArr = files.length ? Array.prototype.slice.call(files) : [files];
12332
12333 this.onSelect(filesArr);
12334 };
12335
12336 Upload.prototype.uploadFiles = function uploadFiles(files) {
12337 // NOTE: drag上传,当鼠标松开的时候回执行 onDrop,但此时onChange还没出发所以 value=[], 必须提前标识上传中
12338 this.state.uploading = true;
12339 var fileList = files.filter(function (file) {
12340 if (file.state === 'selected') {
12341 file.state = 'uploading';
12342 return true;
12343 }
12344 return false;
12345 }).map(function (file) {
12346 return file.originFileObj;
12347 });
12348
12349 fileList.length && this.uploaderRef.startUpload(fileList);
12350 };
12351
12352 /**
12353 * 对外暴露api,控制文件上传
12354 */
12355
12356 Upload.prototype.startUpload = function startUpload() {
12357 this.uploadFiles(this.state.value);
12358 };
12359
12360 Upload.prototype.replaceFiles = function replaceFiles(old, current) {
12361 var targetItem = (0, _util2.getFileItem)(old, this.state.value);
12362 if (!targetItem) {
12363 return;
12364 }
12365
12366 current.uid = old.uid;
12367 targetItem.originFileObj = current;
12368 };
12369
12370 // 替换掉队列里面的文件
12371
12372
12373 Upload.prototype.isUploading = function isUploading() {
12374 return this.state.uploading;
12375 };
12376
12377 /**
12378 * 删除文件
12379 * @param {File} file
12380 * @return {void}
12381 */
12382
12383 /**
12384 * 取消上传
12385 * @param {File} file
12386 * @return {void}
12387 */
12388
12389 Upload.prototype.render = function render() {
12390 var _classNames, _classNames2;
12391
12392 var _props = this.props,
12393 listType = _props.listType,
12394 prefix = _props.prefix,
12395 dragable = _props.dragable,
12396 shape = _props.shape,
12397 className = _props.className,
12398 style = _props.style,
12399 useDataURL = _props.useDataURL,
12400 disabled = _props.disabled,
12401 limit = _props.limit,
12402 closable = _props.closable,
12403 beforeUpload = _props.beforeUpload,
12404 readonly = _props.readonly,
12405 onRemove = _props.onRemove,
12406 onCancel = _props.onCancel,
12407 onPreview = _props.onPreview,
12408 list = _props.list,
12409 extraRender = _props.extraRender,
12410 progressProps = _props.progressProps,
12411 rtl = _props.rtl,
12412 isPreview = _props.isPreview,
12413 renderPreview = _props.renderPreview,
12414 name = _props.name,
12415 _props$fileKeyName = _props.fileKeyName,
12416 fileKeyName = _props$fileKeyName === undefined ? name : _props$fileKeyName,
12417 fileNameRender = _props.fileNameRender,
12418 actionRender = _props.actionRender,
12419 previewOnFileName = _props.previewOnFileName,
12420 others = (0, _objectWithoutProperties3.default)(_props, ['listType', 'prefix', 'dragable', 'shape', 'className', 'style', 'useDataURL', 'disabled', 'limit', 'closable', 'beforeUpload', 'readonly', 'onRemove', 'onCancel', 'onPreview', 'list', 'extraRender', 'progressProps', 'rtl', 'isPreview', 'renderPreview', 'name', 'fileKeyName', 'fileNameRender', 'actionRender', 'previewOnFileName']);
12421
12422 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'upload'] = true, _classNames[prefix + 'upload-dragable'] = dragable, _classNames[prefix + 'disabled'] = disabled, _classNames[prefix + 'readonly'] = readonly, _classNames[className] = className, _classNames));
12423
12424 var isExceedLimit = this.state.value.length >= limit;
12425 var innerCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'upload-inner'] = true, _classNames2[prefix + 'hidden'] = isExceedLimit, _classNames2));
12426
12427 var children = this.props.children;
12428 if (shape === 'card') {
12429 var _classNames3;
12430
12431 var cardCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'upload-card'] = true, _classNames3[prefix + 'disabled'] = disabled, _classNames3));
12432 children = _react2.default.createElement('div', { className: cardCls }, _react2.default.createElement(_icon2.default, { size: 'large', type: 'add', className: prefix + 'upload-add-icon' }), _react2.default.createElement('div', { tabIndex: '0', role: 'button', className: prefix + 'upload-text' }, children));
12433 }
12434
12435 if (isPreview) {
12436 if (typeof renderPreview === 'function') {
12437 var _classNames4;
12438
12439 var previewCls = (0, _classnames2.default)((_classNames4 = {}, _classNames4[prefix + 'form-preview'] = true, _classNames4[className] = !!className, _classNames4));
12440 return _react2.default.createElement('div', { style: style, className: previewCls }, renderPreview(this.state.value, this.props));
12441 }
12442
12443 if (listType) {
12444 return _react2.default.createElement(_list2.default, { isPreview: true, listType: listType, style: style, className: className, value: this.state.value });
12445 }
12446
12447 return null;
12448 }
12449
12450 // disabled 状态下把 remove函数替换成禁止 remove的函数
12451 var onRemoveFunc = disabled ? _util.func.prevent : onRemove;
12452 var otherAttributes = _util.obj.pickAttrsWith(this.props, 'data-');
12453 return _react2.default.createElement('div', (0, _extends3.default)({ className: cls, style: style }, otherAttributes), _react2.default.createElement(_index2.default, (0, _extends3.default)({}, others, {
12454 name: fileKeyName,
12455 beforeUpload: beforeUpload,
12456 dragable: dragable,
12457 disabled: disabled || isExceedLimit,
12458 className: innerCls,
12459 onSelect: this.onSelect,
12460 onDrop: this.onDrop,
12461 onProgress: this.onProgress,
12462 onSuccess: this.onSuccess,
12463 onError: this.onError,
12464 ref: this.saveUploaderRef
12465 }), children), listType || list ? _react2.default.createElement(_list2.default, {
12466 useDataURL: useDataURL,
12467 fileNameRender: fileNameRender,
12468 actionRender: actionRender,
12469 uploader: this,
12470 listType: listType,
12471 value: this.state.value,
12472 closable: closable,
12473 onRemove: onRemoveFunc,
12474 progressProps: progressProps,
12475 onCancel: onCancel,
12476 onPreview: onPreview,
12477 extraRender: extraRender,
12478 rtl: rtl,
12479 previewOnFileName: previewOnFileName
12480 }) : null);
12481 };
12482
12483 return Upload;
12484}(_base2.default), _class.displayName = 'Upload', _class.propTypes = (0, _extends3.default)({}, _html5Uploader2.default.propTypes, _list2.default.propTypes, {
12485 /**
12486 * 样式前缀
12487 */
12488 prefix: _propTypes2.default.string.isRequired,
12489 /**
12490 * 上传的地址
12491 */
12492 action: _propTypes2.default.string,
12493 /**
12494 * 文件列表
12495 */
12496 value: _propTypes2.default.array,
12497 /**
12498 * 默认文件列表
12499 */
12500 defaultValue: _propTypes2.default.array,
12501 /**
12502 * 上传按钮形状
12503 */
12504 shape: _propTypes2.default.oneOf(['card']),
12505 /**
12506 * 上传列表的样式
12507 * @enumdesc 文字, 图文, 卡片
12508 */
12509 listType: _propTypes2.default.oneOf(['text', 'image', 'card']),
12510 list: _propTypes2.default.any,
12511 /**
12512 * 文件名字段
12513 */
12514 name: _propTypes2.default.string,
12515 /**
12516 * 上传额外传参
12517 */
12518 data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
12519 /**
12520 * 数据格式化函数,配合自定义 action 使用,参数为服务器的响应数据,详见 [formatter](#formater)
12521 * @param {Object} response 返回
12522 * @param {File} file 文件对象
12523 */
12524 formatter: _propTypes2.default.func,
12525 /**
12526 * 最大文件上传个数
12527 */
12528 limit: _propTypes2.default.number,
12529 /**
12530 * 设置上传超时,单位ms
12531 */
12532 timeout: _propTypes2.default.number,
12533 /**
12534 * 可选参数,是否支持拖拽上传,`ie10+` 支持。
12535 */
12536 dragable: _propTypes2.default.bool,
12537 closable: _propTypes2.default.bool,
12538 /**
12539 * 可选参数,是否本地预览
12540 */
12541 useDataURL: _propTypes2.default.bool,
12542 /**
12543 * 可选参数,是否禁用上传功能
12544 */
12545 disabled: _propTypes2.default.bool,
12546 /**
12547 * 选择文件回调
12548 */
12549 onSelect: _propTypes2.default.func,
12550 /**
12551 * 上传中
12552 */
12553 onProgress: _propTypes2.default.func,
12554 /**
12555 * 上传文件改变时的状态
12556 * @param {Object} info 文件事件对象
12557 */
12558 onChange: _propTypes2.default.func,
12559 /**
12560 * 可选参数,上传成功回调函数,参数为请求下响应信息以及文件
12561 * @param {Object} file 文件
12562 * @param {Array<Object>} value 值
12563 */
12564 onSuccess: _propTypes2.default.func,
12565 /**
12566 * 可选参数, 用于校验文件,afterSelect仅在 autoUpload=false 的时候生效,autoUpload=true时,可以使用beforeUpload完全可以替代该功能.
12567 * @param {Object} file
12568 * @returns {Boolean} 返回false会阻止上传,其他则表示正常
12569 */
12570 afterSelect: _propTypes2.default.func,
12571 /**
12572 * 移除文件回调函数
12573 * @param {Object} file 文件
12574 * @returns {Boolean|Promise} 返回 false、Promise.resolve(false)、 Promise.reject() 将阻止文件删除
12575 */
12576 onRemove: _propTypes2.default.func,
12577 /**
12578 * 可选参数,上传失败回调函数,参数为上传失败的信息、响应信息以及文件
12579 * @param {Object} file 出错的文件
12580 * @param {Array} value 当前值
12581 */
12582 onError: _propTypes2.default.func,
12583 /**
12584 * 可选参数, 详见 [beforeUpload](#beforeUpload)
12585 * @param {Object} file 所有文件
12586 * @param {Object} options 参数
12587 * @returns {Boolean|Object|Promise} 返回值作用见demo
12588 */
12589 beforeUpload: _propTypes2.default.func,
12590 /**
12591 * 放文件
12592 */
12593 onDrop: _propTypes2.default.func,
12594 /**
12595 * 自定义class
12596 */
12597 className: _propTypes2.default.string,
12598 /**
12599 * 自定义内联样式
12600 */
12601 style: _propTypes2.default.object,
12602 /**
12603 * 子元素
12604 */
12605 children: _propTypes2.default.node,
12606 /**
12607 * 自动上传
12608 */
12609 autoUpload: _propTypes2.default.bool,
12610 /**
12611 * 自定义上传方法
12612 * @param {Object} option
12613 * @return {Object} object with abort method
12614 */
12615 request: _propTypes2.default.func,
12616 /**
12617 * 透传给Progress props
12618 */
12619 progressProps: _propTypes2.default.object,
12620 rtl: _propTypes2.default.bool,
12621 /**
12622 * 是否为预览态
12623 */
12624 isPreview: _propTypes2.default.bool,
12625 /**
12626 * 预览态模式下渲染的内容
12627 * @param {number} value 评分值
12628 */
12629 renderPreview: _propTypes2.default.func,
12630 /**
12631 * 文件对象的 key name
12632 * @version 1.21
12633 */
12634 fileKeyName: _propTypes2.default.string,
12635 /**
12636 * list 的自定义文件名渲染
12637 * @param {Object} file 文件
12638 * @return {Node} react node
12639 */
12640 fileNameRender: _propTypes2.default.func,
12641 /**
12642 * 操作区域额外渲染
12643 * @param {Object} file 文件
12644 * @return {Node} react node
12645 */
12646 actionRender: _propTypes2.default.func,
12647 /**
12648 * 点击文件名时触发 onPreview
12649 * @version 1.24
12650 */
12651 previewOnFileName: _propTypes2.default.bool
12652}), _class.defaultProps = (0, _extends3.default)({}, _html5Uploader2.default.defaultProps, {
12653 prefix: 'next-',
12654 limit: Infinity,
12655 autoUpload: true,
12656 closable: true,
12657 onSelect: noop,
12658 onProgress: noop,
12659 onChange: noop,
12660 onSuccess: noop,
12661 onRemove: noop,
12662 onError: noop,
12663 onDrop: noop,
12664 beforeUpload: noop,
12665 afterSelect: noop,
12666 previewOnFileName: false
12667}), _initialiseProps = function _initialiseProps() {
12668 var _this2 = this;
12669
12670 this.onSelect = function (files) {
12671 var _props2 = _this2.props,
12672 autoUpload = _props2.autoUpload,
12673 afterSelect = _props2.afterSelect,
12674 onSelect = _props2.onSelect,
12675 limit = _props2.limit;
12676 // 总数
12677
12678 var total = _this2.state.value.length + files.length;
12679 // 差额
12680 var less = limit - _this2.state.value.length;
12681 if (less <= 0) {
12682 // 差额不足 则不上传
12683 return;
12684 }
12685
12686 var fileList = files.map(function (file) {
12687 var objFile = (0, _util2.fileToObject)(file);
12688 objFile.state = 'selected';
12689 return objFile;
12690 });
12691
12692 // 默认全量上传
12693 var uploadFiles = fileList;
12694 var discardFiles = [];
12695 if (total > limit) {
12696 // 全量上传总数会超过limit 但是 还有差额
12697 uploadFiles = fileList.slice(0, less);
12698 discardFiles = fileList.slice(less);
12699 }
12700
12701 var value = _this2.state.value.concat(fileList);
12702
12703 /* eslint-disable-next */
12704 _this2.state.value = value;
12705
12706 if (autoUpload) {
12707 _this2.uploadFiles(uploadFiles);
12708 }
12709
12710 onSelect(uploadFiles, value);
12711 discardFiles.forEach(function (file) {
12712 // 丢弃的文件
12713 var err = new Error(_util2.errorCode.EXCEED_LIMIT);
12714 err.code = _util2.errorCode.EXCEED_LIMIT;
12715 _this2.onError(err, null, file);
12716 });
12717
12718 if (!autoUpload) {
12719 uploadFiles.forEach(function (file) {
12720 var isPassed = afterSelect(file);
12721 _util.func.promiseCall(isPassed, _util.func.noop, function (error) {
12722 _this2.onError(error, null, file); // TODO: handle error message
12723 });
12724 });
12725 _this2.onChange(value, uploadFiles);
12726 }
12727 };
12728
12729 this.onDrop = function (files) {
12730 _this2.onSelect(files);
12731 _this2.props.onDrop(files);
12732 };
12733
12734 this.replaceWithNewFile = function (old, current) {
12735 var newFile = (0, _util2.fileToObject)(current);
12736 newFile.state = 'selected';
12737
12738 var matchKey = old.uid !== undefined ? 'uid' : 'name';
12739
12740 var fileList = _this2.state.value;
12741 for (var i = 0; i < fileList.length; i++) {
12742 var item = fileList[i];
12743 if (item[matchKey] === old[matchKey]) {
12744 fileList.splice(i, 1, newFile);
12745 break;
12746 }
12747 }
12748
12749 _this2.uploadFiles([newFile]);
12750 return newFile;
12751 };
12752
12753 this.onProgress = function (e, file) {
12754 _this2.state.uploading = true;
12755
12756 var value = _this2.state.value;
12757 var targetItem = (0, _util2.getFileItem)(file, value);
12758
12759 if (!targetItem) {
12760 return;
12761 }
12762
12763 (0, _extends3.default)(targetItem, {
12764 state: 'uploading',
12765 percent: e.percent
12766 });
12767
12768 _this2.setState({
12769 value: value
12770 });
12771
12772 _this2.props.onProgress(value, targetItem);
12773 };
12774
12775 this.onSuccess = function (response, file) {
12776 var formatter = _this2.props.formatter;
12777
12778 if (formatter) {
12779 response = formatter(response, file);
12780 }
12781
12782 try {
12783 if (typeof response === 'string') {
12784 response = JSON.parse(response);
12785 }
12786 } catch (e) {
12787 e.code = _util2.errorCode.RESPONSE_FAIL;
12788 return _this2.onError(e, response, file);
12789 }
12790
12791 if (response.success === false) {
12792 var err = new Error(response.message || _util2.errorCode.RESPONSE_FAIL);
12793 err.code = _util2.errorCode.RESPONSE_FAIL;
12794 return _this2.onError(err, response, file);
12795 }
12796
12797 var value = _this2.state.value;
12798 var targetItem = (0, _util2.getFileItem)(file, value);
12799
12800 if (!targetItem) {
12801 return;
12802 }
12803
12804 (0, _extends3.default)(targetItem, {
12805 state: 'done',
12806 response: response,
12807 url: response.url,
12808 downloadURL: response.downloadURL || response.url // 下载地址(可选)
12809 });
12810
12811 if (!_this2.props.useDataURL) {
12812 targetItem.imgURL = response.imgURL || response.url; // 缩略图地址(可选)
12813 }
12814
12815 _this2.updateUploadingState();
12816
12817 _this2.onChange(value, targetItem);
12818 _this2.props.onSuccess(targetItem, value);
12819 };
12820
12821 this.onError = function (err, response, file) {
12822 var value = _this2.state.value;
12823 var targetItem = (0, _util2.getFileItem)(file, value);
12824
12825 if (!targetItem) {
12826 return;
12827 }
12828
12829 (0, _extends3.default)(targetItem, {
12830 state: 'error',
12831 error: err,
12832 response: response
12833 });
12834
12835 _this2.updateUploadingState();
12836
12837 _this2.onChange(value, targetItem);
12838 _this2.props.onError(targetItem, value);
12839 };
12840
12841 this.removeFile = function (file) {
12842 file.state = 'removed';
12843 _this2.uploaderRef.abort(file); // 删除组件时调用组件的 `abort` 方法中断上传
12844
12845 var fileList = _this2.state.value;
12846 var targetItem = (0, _util2.getFileItem)(file, fileList);
12847 var index = fileList.indexOf(targetItem);
12848 if (index !== -1) {
12849 fileList.splice(index, 1);
12850 _this2.onChange(fileList, targetItem);
12851 }
12852 };
12853
12854 this.updateUploadingState = function () {
12855 var inProgress = _this2.state.value.some(function (i) {
12856 return i.state === 'uploading';
12857 });
12858 if (!inProgress) {
12859 _this2.state.uploading = false;
12860 }
12861 };
12862
12863 this.abort = function (file) {
12864 var fileList = _this2.state.value;
12865 var targetItem = (0, _util2.getFileItem)(file, fileList);
12866 var index = fileList.indexOf(targetItem);
12867 if (index !== -1) {
12868 fileList.splice(index, 1);
12869 _this2.onChange(fileList, targetItem);
12870 }
12871 _this2.uploaderRef.abort(file); // 取消上传时调用组件的 `abort` 方法中断上传
12872 };
12873
12874 this.onChange = function (value, file) {
12875 _this2.setState({
12876 value: value
12877 });
12878 _this2.props.onChange(value, file);
12879 };
12880}, _temp);
12881exports.default = (0, _reactLifecyclesCompat.polyfill)(Upload);
12882module.exports = exports['default'];
12883
12884/***/ }),
12885/* 107 */
12886/***/ (function(module, exports, __webpack_require__) {
12887
12888"use strict";
12889
12890
12891exports.__esModule = true;
12892exports.default = undefined;
12893
12894var _extends2 = __webpack_require__(1);
12895
12896var _extends3 = _interopRequireDefault(_extends2);
12897
12898var _classCallCheck2 = __webpack_require__(2);
12899
12900var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
12901
12902var _possibleConstructorReturn2 = __webpack_require__(3);
12903
12904var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
12905
12906var _inherits2 = __webpack_require__(4);
12907
12908var _inherits3 = _interopRequireDefault(_inherits2);
12909
12910var _class, _temp2;
12911
12912var _react = __webpack_require__(0);
12913
12914var _react2 = _interopRequireDefault(_react);
12915
12916var _propTypes = __webpack_require__(5);
12917
12918var _propTypes2 = _interopRequireDefault(_propTypes);
12919
12920var _util = __webpack_require__(6);
12921
12922var _util2 = __webpack_require__(42);
12923
12924function _interopRequireDefault(obj) {
12925 return obj && obj.__esModule ? obj : { default: obj };
12926}
12927
12928var noop = _util.func.noop;
12929
12930/**
12931 * Upload.Selecter
12932 * @description [底层能力] 可自定义样式的文件选择器
12933 */
12934
12935var Selecter = (_temp2 = _class = function (_React$Component) {
12936 (0, _inherits3.default)(Selecter, _React$Component);
12937
12938 function Selecter() {
12939 var _temp, _this, _ret;
12940
12941 (0, _classCallCheck3.default)(this, Selecter);
12942
12943 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
12944 args[_key] = arguments[_key];
12945 }
12946
12947 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onSelect = function (e) {
12948 var files = e.target.files;
12949 var filesArr = files.length ? Array.prototype.slice.call(files) : [files];
12950
12951 filesArr.forEach(function (file) {
12952 file.uid = (0, _util2.uid)();
12953 });
12954
12955 _this.props.onSelect(filesArr);
12956 }, _this.onClick = function () {
12957 var el = _this.fileRef;
12958 if (!el) {
12959 return;
12960 }
12961 // NOTE: 在 IE 下,el.value = '' 在 el.click() 之后,会触发 input[type=file] 两次 onChange
12962 el.value = '';
12963 el.click();
12964 }, _this.onKeyDown = function (e) {
12965 if (e.key === 'Enter') {
12966 _this.onClick();
12967 }
12968 }, _this.onDrop = function (e) {
12969 e.preventDefault();
12970
12971 var files = e.dataTransfer.files;
12972 var filesArr = Array.prototype.slice.call(files);
12973
12974 _this.props.onDrop(filesArr);
12975 }, _this.onDragOver = function (e) {
12976 e.preventDefault();
12977 _this.props.onDragOver(e);
12978 }, _this.saveFileRef = function (ref) {
12979 _this.fileRef = ref;
12980 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
12981 }
12982
12983 /**
12984 * 点击上传按钮
12985 * @return {void}
12986 */
12987
12988 /**
12989 * 键盘事件
12990 * @param {SyntheticEvent} e
12991 * @return {void}
12992 */
12993
12994 /**
12995 * 拖拽
12996 * @param {SyntheticEvent} e
12997 * @return {void}
12998 */
12999
13000 Selecter.prototype.render = function render() {
13001 var _props = this.props,
13002 accept = _props.accept,
13003 multiple = _props.multiple,
13004 capture = _props.capture,
13005 webkitdirectory = _props.webkitdirectory,
13006 children = _props.children,
13007 id = _props.id,
13008 disabled = _props.disabled,
13009 dragable = _props.dragable,
13010 style = _props.style,
13011 className = _props.className,
13012 name = _props.name;
13013
13014 var events = {};
13015 if (!disabled) {
13016 events = (0, _extends3.default)({
13017 onClick: this.onClick,
13018 onKeyDown: this.onKeyDown,
13019 tabIndex: '0'
13020 }, dragable ? {
13021 onDrop: this.onDrop,
13022 onDragOver: this.onDragOver,
13023 onDragLeave: this.props.onDragLeave
13024 } : {});
13025 }
13026
13027 var otherProps = {};
13028 if (webkitdirectory) {
13029 otherProps.webkitdirectory = '';
13030 }
13031 if (capture) {
13032 otherProps.capture = capture;
13033 }
13034
13035 return _react2.default.createElement('div', (0, _extends3.default)({ role: 'application', style: style, className: className }, events), _react2.default.createElement('input', (0, _extends3.default)({}, otherProps, {
13036 type: 'file',
13037 name: name,
13038 id: id,
13039 ref: this.saveFileRef,
13040 style: { display: 'none' },
13041 accept: accept,
13042 'aria-hidden': true,
13043 multiple: multiple,
13044 onChange: this.onSelect,
13045 disabled: disabled
13046 })), children);
13047 };
13048
13049 return Selecter;
13050}(_react2.default.Component), _class.propTypes = {
13051 id: _propTypes2.default.string,
13052 style: _propTypes2.default.object,
13053 className: _propTypes2.default.string,
13054 /**
13055 * 是否禁用上传功能
13056 */
13057 disabled: _propTypes2.default.bool,
13058 /**
13059 * 是否支持多选文件,`ie10+` 支持。开启后按住 ctrl 可选择多个文件
13060 */
13061 multiple: _propTypes2.default.bool,
13062 /**
13063 * 是否支持上传文件夹,仅在 chorme 下生效
13064 */
13065 webkitdirectory: _propTypes2.default.bool,
13066 /**
13067 * 调用系统设备媒体
13068 */
13069 capture: _propTypes2.default.string,
13070 /**
13071 * 是否支持拖拽上传,`ie10+` 支持。
13072 */
13073 dragable: _propTypes2.default.bool,
13074 /**
13075 * 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept)
13076 */
13077 accept: _propTypes2.default.string,
13078 /**
13079 * 文件选择回调
13080 */
13081 onSelect: _propTypes2.default.func,
13082 /**
13083 * 拖拽经过回调
13084 */
13085 onDragOver: _propTypes2.default.func,
13086 /**
13087 * 拖拽离开回调
13088 */
13089 onDragLeave: _propTypes2.default.func,
13090 /**
13091 * 拖拽完成回调
13092 */
13093 onDrop: _propTypes2.default.func,
13094 children: _propTypes2.default.node,
13095 name: _propTypes2.default.string
13096}, _class.defaultProps = {
13097 name: 'file',
13098 multiple: false,
13099 onSelect: noop,
13100 onDragOver: noop,
13101 onDragLeave: noop,
13102 onDrop: noop
13103}, _temp2);
13104Selecter.displayName = 'Selecter';
13105exports.default = Selecter;
13106module.exports = exports['default'];
13107
13108/***/ }),
13109/* 108 */
13110/***/ (function(module, exports, __webpack_require__) {
13111
13112"use strict";
13113
13114
13115exports.__esModule = true;
13116
13117var _extends2 = __webpack_require__(1);
13118
13119var _extends3 = _interopRequireDefault(_extends2);
13120
13121var _classCallCheck2 = __webpack_require__(2);
13122
13123var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
13124
13125var _possibleConstructorReturn2 = __webpack_require__(3);
13126
13127var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
13128
13129var _inherits2 = __webpack_require__(4);
13130
13131var _inherits3 = _interopRequireDefault(_inherits2);
13132
13133var _class, _temp2;
13134
13135var _react = __webpack_require__(0);
13136
13137var _react2 = _interopRequireDefault(_react);
13138
13139var _propTypes = __webpack_require__(5);
13140
13141var _propTypes2 = _interopRequireDefault(_propTypes);
13142
13143var _classnames = __webpack_require__(7);
13144
13145var _classnames2 = _interopRequireDefault(_classnames);
13146
13147var _configProvider = __webpack_require__(9);
13148
13149var _configProvider2 = _interopRequireDefault(_configProvider);
13150
13151var _progress = __webpack_require__(101);
13152
13153var _progress2 = _interopRequireDefault(_progress);
13154
13155var _icon = __webpack_require__(11);
13156
13157var _icon2 = _interopRequireDefault(_icon);
13158
13159var _button = __webpack_require__(17);
13160
13161var _button2 = _interopRequireDefault(_button);
13162
13163var _util = __webpack_require__(6);
13164
13165var _zhCn = __webpack_require__(13);
13166
13167var _zhCn2 = _interopRequireDefault(_zhCn);
13168
13169var _util2 = __webpack_require__(42);
13170
13171var _transform = __webpack_require__(194);
13172
13173var _transform2 = _interopRequireDefault(_transform);
13174
13175var _item = __webpack_require__(37);
13176
13177var _item2 = _interopRequireDefault(_item);
13178
13179var _selecter = __webpack_require__(107);
13180
13181var _selecter2 = _interopRequireDefault(_selecter);
13182
13183function _interopRequireDefault(obj) {
13184 return obj && obj.__esModule ? obj : { default: obj };
13185}
13186
13187var isIE9 = _util.env.ieVersion === 9;
13188
13189var List = (_temp2 = _class = function (_Component) {
13190 (0, _inherits3.default)(List, _Component);
13191
13192 function List() {
13193 var _temp, _this, _ret;
13194
13195 (0, _classCallCheck3.default)(this, List);
13196
13197 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
13198 args[_key] = arguments[_key];
13199 }
13200
13201 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.handleClose = function (file) {
13202 var _this$props = _this.props,
13203 onRemove = _this$props.onRemove,
13204 uploader = _this$props.uploader;
13205
13206 var remove = onRemove(file);
13207
13208 _util.func.promiseCall(remove, function () {
13209 uploader && uploader.removeFile(file);
13210 });
13211 }, _this.handleCancel = function (file) {
13212 var _this$props2 = _this.props,
13213 onCancel = _this$props2.onCancel,
13214 uploader = _this$props2.uploader;
13215
13216 var cancel = onCancel(file);
13217
13218 _util.func.promiseCall(cancel, function () {
13219 uploader && uploader.abort(file);
13220 });
13221 }, _this.onImageError = function (file, obj) {
13222 obj.onerror = null;
13223 _this.props.onImageError(obj, file);
13224 }, _this.onSelect = function (oldfile, files) {
13225 var uploader = _this.props.uploader;
13226 uploader && files.length && uploader.replaceWithNewFile(oldfile, files[0]);
13227 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
13228 }
13229
13230 List.prototype.componentDidUpdate = function componentDidUpdate() {
13231 var _this2 = this;
13232
13233 var _props = this.props,
13234 listType = _props.listType,
13235 useDataURL = _props.useDataURL,
13236 value = _props.value;
13237
13238 if (listType !== 'image' && listType !== 'card') {
13239 return;
13240 }
13241
13242 useDataURL && value.forEach(function (file) {
13243 if (typeof document === 'undefined' || typeof window === 'undefined' || !window.FileReader || !window.File || !(file.originFileObj instanceof File) || file.imgURL !== undefined) {
13244 return;
13245 }
13246 file.imgURL = '';
13247 (0, _util2.previewFile)(file.originFileObj, function (previewDataUrl) {
13248 file.imgURL = previewDataUrl;
13249 _this2.forceUpdate();
13250 });
13251 });
13252 };
13253
13254 List.prototype.onPreview = function onPreview(file, e) {
13255 var onPreview = this.props.onPreview;
13256
13257 if (!onPreview) {
13258 return;
13259 }
13260 // e.preventDefault();
13261 return onPreview(file, e);
13262 };
13263
13264 List.prototype.getInfo = function getInfo(file) {
13265 var _classNames;
13266
13267 var prefixCls = this.props.prefix + 'upload';
13268 var downloadURL = file.downloadURL || file.url;
13269 var imgURL = file.imgURL || file.url;
13270 var size = this.sizeCaculator(file.size);
13271 var itemCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefixCls + '-list-item'] = true, _classNames[prefixCls + '-list-item-' + file.state] = file.state, _classNames[prefixCls + '-list-item-error-with-msg'] = file.state === 'error' && file.errorMsg, _classNames));
13272 var alt = file.name || file.alt;
13273 return { prefixCls: prefixCls, downloadURL: downloadURL, imgURL: imgURL, size: size, itemCls: itemCls, alt: alt };
13274 };
13275 // transfer size from number to xx K/ XxxM / xxG
13276
13277
13278 List.prototype.sizeCaculator = function sizeCaculator(size) {
13279 var fileSize = parseFloat(size, 10);
13280 // fileSize为浮点数 用 < 0.000001 替代 === 0
13281 if (isNaN(fileSize) || fileSize < 0.0000001) {
13282 return 0;
13283 }
13284 var SIZE_SUFFIX = ['B', 'K', 'M', 'G', 'T', 'P'];
13285 var suffixIndex = 0;
13286
13287 // 在Mac上实验发现 取1024造成显示的大小和实际大小不一致
13288 // 因为单位制不同 见 https://superuser.com/questions/938234/size-of-files-in-windows-os-its-kb-or-kb
13289 var BIT_NUMBER_SYSTEM = 1024;
13290 while (fileSize >= BIT_NUMBER_SYSTEM && suffixIndex < SIZE_SUFFIX.length) {
13291 suffixIndex++;
13292 fileSize /= BIT_NUMBER_SYSTEM;
13293 }
13294
13295 var suffix = SIZE_SUFFIX[suffixIndex];
13296 fileSize = fileSize.toFixed(2);
13297
13298 return '' + fileSize + suffix;
13299 };
13300
13301 List.prototype.getTextList = function getTextList(file) {
13302 var _this3 = this;
13303
13304 var _props2 = this.props,
13305 locale = _props2.locale,
13306 extraRender = _props2.extraRender,
13307 actionRender = _props2.actionRender,
13308 progressProps = _props2.progressProps,
13309 rtl = _props2.rtl,
13310 fileNameRender = _props2.fileNameRender,
13311 previewOnFileName = _props2.previewOnFileName;
13312
13313 var _getInfo = this.getInfo(file),
13314 prefixCls = _getInfo.prefixCls,
13315 downloadURL = _getInfo.downloadURL,
13316 size = _getInfo.size,
13317 itemCls = _getInfo.itemCls;
13318
13319 var onClick = function onClick() {
13320 return file.state === 'uploading' ? _this3.handleCancel(file) : _this3.handleClose(file);
13321 };
13322 var onKeyDown = function onKeyDown(e) {
13323 if (e.keyCode === _util.KEYCODE.ENTER) {
13324 onClick();
13325 }
13326 };
13327 return _react2.default.createElement('div', { className: itemCls, key: file.uid || file.name }, _react2.default.createElement('div', { className: prefixCls + '-list-item-name-wrap' }, _react2.default.createElement('a', {
13328 onClick: previewOnFileName ? this.onPreview.bind(this, file) : _util.func.noop,
13329 href: downloadURL,
13330 target: '_blank',
13331 style: { pointerEvents: downloadURL ? '' : 'none' },
13332 className: prefixCls + '-list-item-name'
13333 }, _react2.default.createElement('span', null, fileNameRender(file)), !!size && _react2.default.createElement('span', { className: prefixCls + '-list-item-size', dir: rtl ? 'rtl' : undefined }, '(', size, ')'), _react2.default.createElement('span', { className: prefixCls + '-extra' }, extraRender(file)))), file.state === 'uploading' ? _react2.default.createElement('div', { className: prefixCls + '-list-item-progress' }, _react2.default.createElement(_progress2.default, (0, _extends3.default)({
13334 size: 'medium',
13335 percent: file.percent,
13336 textRender: _util.func.noop,
13337 rtl: rtl
13338 }, progressProps))) : null, file.state === 'error' && file.errorMsg ? _react2.default.createElement('div', { className: prefixCls + '-list-item-error-msg' }, file.errorMsg) : null, _react2.default.createElement('span', { className: prefixCls + '-list-item-op' }, actionRender(file), this.props.closable ? _react2.default.createElement(_icon2.default, {
13339 type: 'close',
13340 size: 'large',
13341 role: 'button',
13342 'aria-label': locale.upload.delete,
13343 tabIndex: '0',
13344 onClick: onClick,
13345 onKeyDown: onKeyDown
13346 }) : null));
13347 };
13348
13349 List.prototype.getImageList = function getImageList(file) {
13350 var _this4 = this;
13351
13352 var _props3 = this.props,
13353 extraRender = _props3.extraRender,
13354 actionRender = _props3.actionRender,
13355 progressProps = _props3.progressProps,
13356 rtl = _props3.rtl,
13357 fileNameRender = _props3.fileNameRender,
13358 previewOnFileName = _props3.previewOnFileName;
13359
13360 var _getInfo2 = this.getInfo(file),
13361 prefixCls = _getInfo2.prefixCls,
13362 downloadURL = _getInfo2.downloadURL,
13363 imgURL = _getInfo2.imgURL,
13364 size = _getInfo2.size,
13365 itemCls = _getInfo2.itemCls,
13366 alt = _getInfo2.alt;
13367
13368 var img = null;
13369
13370 var onClick = function onClick() {
13371 return file.state === 'uploading' ? _this4.handleCancel(file) : _this4.handleClose(file);
13372 };
13373 var onKeyDown = function onKeyDown(e) {
13374 if (e.keyCode === _util.KEYCODE.ENTER) {
13375 onClick();
13376 }
13377 };
13378
13379 if (file.state === 'uploading' || file.state === 'selected' && !imgURL) {
13380 img = _react2.default.createElement(_icon2.default, { type: 'picture' });
13381 } else if (file.state === 'error') {
13382 img = _react2.default.createElement(_icon2.default, { type: 'cry' });
13383 } else {
13384 img = _react2.default.createElement('img', {
13385 src: imgURL,
13386 onError: this.onImageError.bind(this, file),
13387 tabIndex: '0',
13388 alt: alt,
13389 onClick: this.onPreview.bind(this, file)
13390 });
13391 }
13392
13393 return _react2.default.createElement('div', { className: itemCls, key: file.uid || file.name }, _react2.default.createElement('div', { className: prefixCls + '-list-item-thumbnail' }, img), _react2.default.createElement('span', { className: prefixCls + '-list-item-op' }, actionRender(file), this.props.closable ? _react2.default.createElement(_icon2.default, {
13394 type: 'close',
13395 size: 'large',
13396 tabIndex: '0',
13397 role: 'button',
13398 onClick: onClick,
13399 onKeyDown: onKeyDown
13400 }) : null), _react2.default.createElement('a', {
13401 onClick: previewOnFileName ? this.onPreview.bind(this, file) : _util.func.noop,
13402 href: downloadURL,
13403 target: '_blank',
13404 style: { pointerEvents: downloadURL ? '' : 'none' },
13405 className: prefixCls + '-list-item-name'
13406 }, _react2.default.createElement('span', null, fileNameRender(file)), !!size && _react2.default.createElement('span', { className: prefixCls + '-list-item-size', dir: rtl ? 'rtl' : undefined }, '(', size, ')'), _react2.default.createElement('span', { className: prefixCls + '-extra' }, extraRender(file))), file.state === 'uploading' ? _react2.default.createElement('div', { className: prefixCls + '-list-item-progress' }, _react2.default.createElement(_progress2.default, (0, _extends3.default)({ size: 'medium', percent: file.percent, textRender: _util.func.noop }, progressProps))) : null, file.state === 'error' && file.errorMsg ? _react2.default.createElement('div', { className: prefixCls + '-list-item-error-msg' }, file.errorMsg) : null);
13407 };
13408
13409 List.prototype.getPictureCardList = function getPictureCardList(file, isPreview) {
13410 var _this5 = this;
13411
13412 var _props4 = this.props,
13413 locale = _props4.locale,
13414 progressProps = _props4.progressProps,
13415 fileNameRender = _props4.fileNameRender,
13416 itemRender = _props4.itemRender,
13417 showDownload = _props4.showDownload;
13418
13419 var _getInfo3 = this.getInfo(file),
13420 prefixCls = _getInfo3.prefixCls,
13421 downloadURL = _getInfo3.downloadURL,
13422 imgURL = _getInfo3.imgURL,
13423 itemCls = _getInfo3.itemCls,
13424 alt = _getInfo3.alt;
13425
13426 var state = isPreview ? '' : file.state;
13427
13428 var img = null;
13429
13430 if (state === 'uploading' || state === 'selected' && !imgURL) {
13431 img = _react2.default.createElement('div', { className: prefixCls + '-list-item-handler' }, _react2.default.createElement(_icon2.default, { type: 'picture' }), _react2.default.createElement(_button2.default, { text: true, onClick: function onClick() {
13432 return _this5.handleCancel(file);
13433 } }, locale.card.cancel));
13434 } else if (state === 'error') {
13435 img = _react2.default.createElement('div', { className: prefixCls + '-list-item-handler' }, _react2.default.createElement(_icon2.default, { type: 'cry' }));
13436 } else {
13437 img = _react2.default.createElement('img', {
13438 src: imgURL,
13439 tabIndex: '0',
13440 alt: alt,
13441 onError: this.onImageError.bind(this, file),
13442 onClick: this.onPreview.bind(this, file)
13443 });
13444 }
13445
13446 var onClose = function onClose() {
13447 return _this5.handleClose(file);
13448 };
13449 var onKeyDownClose = function onKeyDownClose(e) {
13450 if (e.keyCode === _util.KEYCODE.ENTER) {
13451 onClose();
13452 }
13453 };
13454
13455 var item = null;
13456 if (state === 'uploading') {
13457 item = [_react2.default.createElement('div', { className: prefixCls + '-list-item-thumbnail', key: 'img' }, img), _react2.default.createElement('div', { className: prefixCls + '-list-item-progress', key: 'progress' }, _react2.default.createElement(_progress2.default, (0, _extends3.default)({ size: 'medium', percent: file.percent, textRender: _util.func.noop }, progressProps)))];
13458 } else {
13459 /* eslint-disable no-lonely-if */
13460 if (typeof itemRender === 'function') {
13461 // 不处理上传态和选择态,太过复杂
13462 item = itemRender(file, { remove: onClose });
13463 } else {
13464 var Uploader = this.props.uploader || { props: {} };
13465 var UploaderProps = Uploader.props;
13466
13467 // TODO: 2.x 中逻辑会修改为,只要有showDownload,那就有下载按钮(不管有没有downloadURL)
13468 item = [_react2.default.createElement('div', { className: prefixCls + '-list-item-thumbnail', key: 'img' }, img), _react2.default.createElement('span', { key: 'tool', className: prefixCls + '-tool' }, state !== 'error' && showDownload && downloadURL ? _react2.default.createElement('a', {
13469 href: downloadURL,
13470 target: '_blank',
13471 className: prefixCls + '-tool-item ' + prefixCls + '-tool-download-link'
13472 }, _react2.default.createElement(_icon2.default, {
13473 type: 'download',
13474 'aria-label': locale.card.download,
13475 className: prefixCls + '-tool-download-icon'
13476 })) : null, this.props.reUpload && !isPreview && !isIE9 ? _react2.default.createElement(_selecter2.default, {
13477 className: prefixCls + '-tool-item ' + prefixCls + '-tool-reupload',
13478 accept: UploaderProps.accept,
13479 name: UploaderProps.fileKeyName,
13480 onSelect: this.onSelect.bind(this, file)
13481 }, _react2.default.createElement(_icon2.default, { type: 'edit', className: prefixCls + '-tool-reupload-icon' })) : null, this.props.closable && !isPreview ? _react2.default.createElement('span', { className: prefixCls + '-tool-item ' + prefixCls + '-tool-close' }, _react2.default.createElement(_icon2.default, {
13482 type: 'ashbin',
13483 'aria-label': locale.card.delete,
13484 tabIndex: '0',
13485 role: 'button',
13486 onClick: onClose,
13487 onKeyDown: onKeyDownClose
13488 })) : null)];
13489 }
13490 }
13491
13492 return _react2.default.createElement('div', { className: itemCls, key: file.uid || file.name }, _react2.default.createElement('div', { className: prefixCls + '-list-item-wrapper' }, item), _react2.default.createElement('span', { className: prefixCls + '-list-item-name' }, fileNameRender(file)));
13493 };
13494
13495 List.prototype.render = function render() {
13496 var _this6 = this,
13497 _classNames3;
13498
13499 var _props5 = this.props,
13500 listType = _props5.listType,
13501 children = _props5.children,
13502 prefix = _props5.prefix,
13503 rtl = _props5.rtl,
13504 className = _props5.className,
13505 isPreview = _props5.isPreview;
13506
13507 var prefixCls = prefix + 'upload';
13508
13509 var list = [];
13510 if (isPreview) {
13511 var _classNames2;
13512
13513 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
13514 list = this.props.value.map(function (file) {
13515 if (!file) {
13516 return null;
13517 }
13518
13519 var downloadURL = file.downloadURL,
13520 imgURL = file.imgURL,
13521 name = file.name;
13522
13523 if (listType === 'text') {
13524 return _react2.default.createElement('div', { className: previewCls }, _react2.default.createElement('a', { href: downloadURL, target: '_blank' }, name));
13525 } else if (listType === 'image' || listType === 'card') {
13526 return _this6.getPictureCardList(file, true);
13527 }
13528 return null;
13529 });
13530 } else {
13531 list = this.props.value.map(function (file) {
13532 if (!file) {
13533 return null;
13534 }
13535
13536 if (listType === 'text') {
13537 return _this6.getTextList(file);
13538 } else if (listType === 'image') {
13539 return _this6.getImageList(file);
13540 } else if (listType === 'card') {
13541 return _this6.getPictureCardList(file);
13542 }
13543 return null;
13544 });
13545 }
13546
13547 if (rtl && listType === 'card' && Array.isArray(list)) {
13548 list = list.reverse();
13549 }
13550 var _listType = isPreview && listType === 'image' ? 'card' : this.props.listType;
13551 var listclassNames = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefixCls + '-list'] = true, _classNames3[prefixCls + '-list-' + _listType] = true, _classNames3[prefixCls + '-ie9'] = isIE9, _classNames3), className);
13552
13553 var others = _util.obj.pickAttrsWith(this.props, 'data-');
13554 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: listclassNames, dir: rtl ? 'rtl' : undefined }), rtl ? children : list, rtl ? list : children);
13555 };
13556
13557 return List;
13558}(_react.Component), _class.propTypes = {
13559 prefix: _propTypes2.default.string,
13560 /**
13561 * 多语言
13562 */
13563 locale: _propTypes2.default.object,
13564 /**
13565 * 文件列表,数据格式请参考 文件对象
13566 */
13567 listType: _propTypes2.default.oneOf(['text', 'image', 'card']),
13568 /**
13569 * 文件列表
13570 */
13571 value: _propTypes2.default.array,
13572 closable: _propTypes2.default.bool,
13573 /**
13574 * 删除文件回调(支持Promise)
13575 */
13576 onRemove: _propTypes2.default.func,
13577 /**
13578 * 取消上传回调(支持Promise)
13579 */
13580 onCancel: _propTypes2.default.func,
13581 /**
13582 * 头像加载出错回调
13583 */
13584 onImageError: _propTypes2.default.func,
13585 /**
13586 * 点击图片回调
13587 */
13588 onPreview: _propTypes2.default.func,
13589 /**
13590 * 点击文件名时触发 onPreview
13591 */
13592 previewOnFileName: _propTypes2.default.bool,
13593 /**
13594 * 自定义额外渲染
13595 */
13596 extraRender: _propTypes2.default.func,
13597 /**
13598 * 自定义操作渲染
13599 */
13600 actionRender: _propTypes2.default.func,
13601 /**
13602 * 卡片自定义渲染(目前只支持 Card)
13603 * @param {Object} file 文件对象
13604 * @param {Object} {remove} remove:删除回调
13605 * @retuns {ReactNode} React元素
13606 */
13607 itemRender: _propTypes2.default.func,
13608 /**
13609 * 透传给Progress props
13610 */
13611 progressProps: _propTypes2.default.object,
13612 children: _propTypes2.default.node,
13613 uploader: _propTypes2.default.any,
13614 showDownload: _propTypes2.default.bool,
13615 /**
13616 * 可选参数,是否本地预览
13617 */
13618 useDataURL: _propTypes2.default.bool,
13619 rtl: _propTypes2.default.bool,
13620 isPreview: _propTypes2.default.bool,
13621 fileNameRender: _propTypes2.default.func
13622}, _class.defaultProps = {
13623 prefix: 'next-',
13624 listType: 'text',
13625 value: [],
13626 locale: _zhCn2.default.Upload,
13627 closable: false,
13628 showDownload: true,
13629 onRemove: _util.func.noop,
13630 onCancel: _util.func.noop,
13631 extraRender: _util.func.noop,
13632 actionRender: _util.func.noop,
13633 onImageError: _util.func.noop,
13634 progressProps: {},
13635 fileNameRender: function fileNameRender(file) {
13636 return file.name;
13637 },
13638 previewOnFileName: false
13639}, _temp2);
13640
13641// Wrap <List> with <ConfigProvider> to avoid context missing if it is
13642// referenced by other internal modules.
13643// https://github.com/alibaba-fusion/next/blob/build/1.13.9/src/upload/upload.jsx#L521
13644
13645List.displayName = 'List';
13646exports.default = _configProvider2.default.config(List, {
13647 componentName: 'Upload',
13648 transform: _transform2.default
13649});
13650module.exports = exports['default'];
13651
13652/***/ }),
13653/* 109 */
13654/***/ (function(module, exports, __webpack_require__) {
13655
13656"use strict";
13657
13658
13659exports.__esModule = true;
13660exports.error = undefined;
13661
13662var _typeof2 = __webpack_require__(14);
13663
13664var _typeof3 = _interopRequireDefault(_typeof2);
13665
13666var _propTypes = __webpack_require__(5);
13667
13668var PT = _interopRequireWildcard(_propTypes);
13669
13670var _constant = __webpack_require__(110);
13671
13672var _util = __webpack_require__(6);
13673
13674function _interopRequireWildcard(obj) {
13675 if (obj && obj.__esModule) {
13676 return obj;
13677 } else {
13678 var newObj = {};if (obj != null) {
13679 for (var key in obj) {
13680 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
13681 }
13682 }newObj.default = obj;return newObj;
13683 }
13684}
13685
13686function _interopRequireDefault(obj) {
13687 return obj && obj.__esModule ? obj : { default: obj };
13688}
13689
13690var error = exports.error = function error(propName, ComponentName) {
13691 return new Error('Invalid prop ' + propName + ' supplied to ' + ComponentName + '. Validation failed.');
13692};
13693
13694function checkType(type) {
13695 return function (props, propName, componentName) {
13696 var value = props[propName];
13697 if (value) {
13698 if (!Array.isArray(value)) {
13699 value = [value];
13700 }
13701
13702 if (!Array.isArray(type)) {
13703 type = [type];
13704 }
13705
13706 if (!value.every(function (v) {
13707 return type.includes(typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v));
13708 })) {
13709 throw error(propName, componentName);
13710 }
13711 }
13712 };
13713}
13714
13715var SharedPT = {
13716 date: function date(props, propName, componentName) {
13717 if (propName in props && !(0, _util.datejs)(props.propName).isValid()) {
13718 throw error(propName, componentName);
13719 }
13720 },
13721 value: function value(props, propName, componentName) {
13722 if (props[propName]) {
13723 var value = props[propName];
13724
13725 if (props.type === _constant.TIME_PICKER_TYPE.RANGE && !Array.isArray(value)) {
13726 throw error(propName, componentName);
13727 } else if (!Array.isArray(value)) {
13728 value = [value];
13729 }
13730
13731 if (!value.every(function (v) {
13732 return !v || (0, _util.datejs)(v).isValid() || typeof v === 'string';
13733 })) {
13734 throw error(propName, componentName);
13735 }
13736 }
13737 },
13738
13739 format: checkType(['string', 'function']),
13740 inputValue: checkType('string'),
13741 placeholder: checkType('string'),
13742 readOnly: checkType('boolean'),
13743 disabled: checkType('boolean'),
13744
13745 render: PT.oneOfType([PT.node, PT.func]),
13746 type: PT.oneOf(Object.values(_constant.TIME_PICKER_TYPE)),
13747 inputType: PT.oneOf(Object.values(_constant.TIME_INPUT_TYPE)),
13748 size: PT.oneOf(['small', 'medium', 'large'])
13749};
13750
13751exports.default = SharedPT;
13752
13753/***/ }),
13754/* 110 */
13755/***/ (function(module, exports, __webpack_require__) {
13756
13757"use strict";
13758
13759
13760exports.__esModule = true;
13761var TIME_PICKER_TYPE = exports.TIME_PICKER_TYPE = {
13762 TIME: 'time',
13763 RANGE: 'range'
13764};
13765
13766var TIME_INPUT_TYPE = exports.TIME_INPUT_TYPE = {
13767 BEGIN: 0,
13768 END: 1
13769};
13770
13771/***/ }),
13772/* 111 */
13773/***/ (function(module, exports, __webpack_require__) {
13774
13775"use strict";
13776
13777
13778exports.__esModule = true;
13779
13780var _configProvider = __webpack_require__(9);
13781
13782var _configProvider2 = _interopRequireDefault(_configProvider);
13783
13784var _calendar = __webpack_require__(485);
13785
13786var _calendar2 = _interopRequireDefault(_calendar);
13787
13788function _interopRequireDefault(obj) {
13789 return obj && obj.__esModule ? obj : { default: obj };
13790}
13791
13792exports.default = _configProvider2.default.config(_calendar2.default);
13793module.exports = exports['default'];
13794
13795/***/ }),
13796/* 112 */
13797/***/ (function(module, exports, __webpack_require__) {
13798
13799// optional / simple context binding
13800var aFunction = __webpack_require__(208);
13801module.exports = function (fn, that, length) {
13802 aFunction(fn);
13803 if (that === undefined) return fn;
13804 switch (length) {
13805 case 1: return function (a) {
13806 return fn.call(that, a);
13807 };
13808 case 2: return function (a, b) {
13809 return fn.call(that, a, b);
13810 };
13811 case 3: return function (a, b, c) {
13812 return fn.call(that, a, b, c);
13813 };
13814 }
13815 return function (/* ...args */) {
13816 return fn.apply(that, arguments);
13817 };
13818};
13819
13820
13821/***/ }),
13822/* 113 */
13823/***/ (function(module, exports, __webpack_require__) {
13824
13825module.exports = !__webpack_require__(25) && !__webpack_require__(47)(function () {
13826 return Object.defineProperty(__webpack_require__(114)('div'), 'a', { get: function () { return 7; } }).a != 7;
13827});
13828
13829
13830/***/ }),
13831/* 114 */
13832/***/ (function(module, exports, __webpack_require__) {
13833
13834var isObject = __webpack_require__(33);
13835var document = __webpack_require__(23).document;
13836// typeof document.createElement is 'object' in old IE
13837var is = isObject(document) && isObject(document.createElement);
13838module.exports = function (it) {
13839 return is ? document.createElement(it) : {};
13840};
13841
13842
13843/***/ }),
13844/* 115 */
13845/***/ (function(module, exports, __webpack_require__) {
13846
13847var has = __webpack_require__(27);
13848var toIObject = __webpack_require__(34);
13849var arrayIndexOf = __webpack_require__(210)(false);
13850var IE_PROTO = __webpack_require__(73)('IE_PROTO');
13851
13852module.exports = function (object, names) {
13853 var O = toIObject(object);
13854 var i = 0;
13855 var result = [];
13856 var key;
13857 for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
13858 // Don't enum bug & hidden keys
13859 while (names.length > i) if (has(O, key = names[i++])) {
13860 ~arrayIndexOf(result, key) || result.push(key);
13861 }
13862 return result;
13863};
13864
13865
13866/***/ }),
13867/* 116 */
13868/***/ (function(module, exports, __webpack_require__) {
13869
13870// fallback for non-array-like ES3 and non-enumerable old V8 strings
13871var cof = __webpack_require__(117);
13872// eslint-disable-next-line no-prototype-builtins
13873module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
13874 return cof(it) == 'String' ? it.split('') : Object(it);
13875};
13876
13877
13878/***/ }),
13879/* 117 */
13880/***/ (function(module, exports) {
13881
13882var toString = {}.toString;
13883
13884module.exports = function (it) {
13885 return toString.call(it).slice(8, -1);
13886};
13887
13888
13889/***/ }),
13890/* 118 */
13891/***/ (function(module, exports, __webpack_require__) {
13892
13893"use strict";
13894
13895var LIBRARY = __webpack_require__(55);
13896var $export = __webpack_require__(31);
13897var redefine = __webpack_require__(119);
13898var hide = __webpack_require__(32);
13899var Iterators = __webpack_require__(78);
13900var $iterCreate = __webpack_require__(217);
13901var setToStringTag = __webpack_require__(80);
13902var getPrototypeOf = __webpack_require__(220);
13903var ITERATOR = __webpack_require__(35)('iterator');
13904var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
13905var FF_ITERATOR = '@@iterator';
13906var KEYS = 'keys';
13907var VALUES = 'values';
13908
13909var returnThis = function () { return this; };
13910
13911module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
13912 $iterCreate(Constructor, NAME, next);
13913 var getMethod = function (kind) {
13914 if (!BUGGY && kind in proto) return proto[kind];
13915 switch (kind) {
13916 case KEYS: return function keys() { return new Constructor(this, kind); };
13917 case VALUES: return function values() { return new Constructor(this, kind); };
13918 } return function entries() { return new Constructor(this, kind); };
13919 };
13920 var TAG = NAME + ' Iterator';
13921 var DEF_VALUES = DEFAULT == VALUES;
13922 var VALUES_BUG = false;
13923 var proto = Base.prototype;
13924 var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
13925 var $default = $native || getMethod(DEFAULT);
13926 var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
13927 var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
13928 var methods, key, IteratorPrototype;
13929 // Fix native
13930 if ($anyNative) {
13931 IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
13932 if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
13933 // Set @@toStringTag to native iterators
13934 setToStringTag(IteratorPrototype, TAG, true);
13935 // fix for some old engines
13936 if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
13937 }
13938 }
13939 // fix Array#{values, @@iterator}.name in V8 / FF
13940 if (DEF_VALUES && $native && $native.name !== VALUES) {
13941 VALUES_BUG = true;
13942 $default = function values() { return $native.call(this); };
13943 }
13944 // Define iterator
13945 if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
13946 hide(proto, ITERATOR, $default);
13947 }
13948 // Plug for library
13949 Iterators[NAME] = $default;
13950 Iterators[TAG] = returnThis;
13951 if (DEFAULT) {
13952 methods = {
13953 values: DEF_VALUES ? $default : getMethod(VALUES),
13954 keys: IS_SET ? $default : getMethod(KEYS),
13955 entries: $entries
13956 };
13957 if (FORCED) for (key in methods) {
13958 if (!(key in proto)) redefine(proto, key, methods[key]);
13959 } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
13960 }
13961 return methods;
13962};
13963
13964
13965/***/ }),
13966/* 119 */
13967/***/ (function(module, exports, __webpack_require__) {
13968
13969module.exports = __webpack_require__(32);
13970
13971
13972/***/ }),
13973/* 120 */
13974/***/ (function(module, exports, __webpack_require__) {
13975
13976// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
13977var $keys = __webpack_require__(115);
13978var hiddenKeys = __webpack_require__(75).concat('length', 'prototype');
13979
13980exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
13981 return $keys(O, hiddenKeys);
13982};
13983
13984
13985/***/ }),
13986/* 121 */
13987/***/ (function(module, exports, __webpack_require__) {
13988
13989var pIE = __webpack_require__(57);
13990var createDesc = __webpack_require__(53);
13991var toIObject = __webpack_require__(34);
13992var toPrimitive = __webpack_require__(70);
13993var has = __webpack_require__(27);
13994var IE8_DOM_DEFINE = __webpack_require__(113);
13995var gOPD = Object.getOwnPropertyDescriptor;
13996
13997exports.f = __webpack_require__(25) ? gOPD : function getOwnPropertyDescriptor(O, P) {
13998 O = toIObject(O);
13999 P = toPrimitive(P, true);
14000 if (IE8_DOM_DEFINE) try {
14001 return gOPD(O, P);
14002 } catch (e) { /* empty */ }
14003 if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
14004};
14005
14006
14007/***/ }),
14008/* 122 */
14009/***/ (function(module, exports) {
14010
14011var g;
14012
14013// This works in non-strict mode
14014g = (function() {
14015 return this;
14016})();
14017
14018try {
14019 // This works if eval is allowed (see CSP)
14020 g = g || Function("return this")() || (1,eval)("this");
14021} catch(e) {
14022 // This works if the window reference is available
14023 if(typeof window === "object")
14024 g = window;
14025}
14026
14027// g can still be undefined, but nothing to do about it...
14028// We return undefined, instead of nothing here, so it's
14029// easier to handle this case. if(!global) { ...}
14030
14031module.exports = g;
14032
14033
14034/***/ }),
14035/* 123 */
14036/***/ (function(module, exports, __webpack_require__) {
14037
14038"use strict";
14039
14040
14041exports.__esModule = true;
14042exports.matches = exports.hasDOM = undefined;
14043
14044var _typeof2 = __webpack_require__(14);
14045
14046var _typeof3 = _interopRequireDefault(_typeof2);
14047
14048exports.hasClass = hasClass;
14049exports.addClass = addClass;
14050exports.removeClass = removeClass;
14051exports.toggleClass = toggleClass;
14052exports.getNodeHozWhitespace = getNodeHozWhitespace;
14053exports.getStyle = getStyle;
14054exports.setStyle = setStyle;
14055exports.scrollbar = scrollbar;
14056exports.hasScroll = hasScroll;
14057exports.getOffset = getOffset;
14058exports.getPixels = getPixels;
14059exports.getClosest = getClosest;
14060exports.getMatches = getMatches;
14061exports.saveRef = saveRef;
14062
14063var _string = __webpack_require__(124);
14064
14065var _object = __webpack_require__(36);
14066
14067function _interopRequireDefault(obj) {
14068 return obj && obj.__esModule ? obj : { default: obj };
14069}
14070
14071/**
14072 * 是否能使用 DOM 方法
14073 * @type {Boolean}
14074 */
14075var hasDOM = exports.hasDOM = typeof window !== 'undefined' && !!window.document && !!document.createElement;
14076
14077/**
14078 * 节点是否包含指定 className
14079 * @param {Element} node
14080 * @param {String} className
14081 * @return {Boolean}
14082 *
14083 * @example
14084 * dom.hasClass(document.body, 'foo');
14085 */
14086function hasClass(node, className) {
14087 /* istanbul ignore if */
14088 if (!hasDOM || !node) {
14089 return false;
14090 }
14091
14092 if (node.classList) {
14093 return node.classList.contains(className);
14094 } else {
14095 return node.className.indexOf(className) > -1;
14096 }
14097}
14098
14099/**
14100 * 添加 className
14101 * @param {Element} node
14102 * @param {String} className
14103 *
14104 * @example
14105 * dom.addClass(document.body, 'foo');
14106 */
14107function addClass(node, className, _force) {
14108 /* istanbul ignore if */
14109 if (!hasDOM || !node) {
14110 return;
14111 }
14112
14113 if (node.classList) {
14114 node.classList.add(className);
14115 } else if (_force === true || !hasClass(node, className)) {
14116 node.className += ' ' + className;
14117 }
14118}
14119
14120/**
14121 * 移除 className
14122 * @param {Element} node
14123 * @param {String} className
14124 *
14125 * @example
14126 * dom.removeClass(document.body, 'foo');
14127 */
14128function removeClass(node, className, _force) {
14129 /* istanbul ignore if */
14130 if (!hasDOM || !node) {
14131 return;
14132 }
14133
14134 if (node.classList) {
14135 node.classList.remove(className);
14136 } else if (_force === true || hasClass(node, className)) {
14137 node.className = node.className.replace(className, '').replace(/\s+/g, ' ').trim();
14138 }
14139}
14140
14141/**
14142 * 切换 className
14143 * @param {Element} node
14144 * @param {String} className
14145 * @return {Boolean} 执行后节点上是否还有此 className
14146 *
14147 * @example
14148 * dom.toggleClass(document.body, 'foo');
14149 */
14150function toggleClass(node, className) {
14151 /* istanbul ignore if */
14152 if (!hasDOM || !node) {
14153 return false;
14154 }
14155
14156 if (node.classList) {
14157 return node.classList.toggle(className);
14158 } else {
14159 var flag = hasClass(node, className);
14160 flag ? removeClass(node, className, true) : addClass(node, className, true);
14161
14162 return !flag;
14163 }
14164}
14165
14166/**
14167 * 元素是否匹配 CSS 选择器
14168 * @param {Element} node DOM 节点
14169 * @param {String} selector CSS 选择器
14170 * @return {Boolean}
14171 *
14172 * @example
14173 * dom.matches(mountNode, '.container'); // boolean
14174 */
14175var matches = exports.matches = function () {
14176 var matchesFn = null;
14177 /* istanbul ignore else */
14178 if (hasDOM) {
14179 var _body = document.body || document.head;
14180 matchesFn = _body.matches ? 'matches' : _body.webkitMatchesSelector ? 'webkitMatchesSelector' : _body.msMatchesSelector ? 'msMatchesSelector' : _body.mozMatchesSelector ? 'mozMatchesSelector' : null;
14181 }
14182
14183 return function (node, selector) {
14184 if (!hasDOM || !node) {
14185 return false;
14186 }
14187
14188 return matchesFn ? node[matchesFn](selector) : false;
14189 };
14190}();
14191
14192/**
14193 * 获取元素计算后的样式
14194 * @private
14195 * @param {Element} node
14196 * @return {Object}
14197 */
14198function _getComputedStyle(node) {
14199 return node && node.nodeType === 1 ? window.getComputedStyle(node, null) : {};
14200}
14201
14202var PIXEL_PATTERN = /margin|padding|width|height|max|min|offset|size|top/i;
14203var removePixel = { left: 1, top: 1, right: 1, bottom: 1 };
14204
14205/**
14206 * 校验并修正元素的样式属性值
14207 * @private
14208 * @param {Element} node
14209 * @param {String} type
14210 * @param {Number} value
14211 */
14212function _getStyleValue(node, type, value) {
14213 type = type.toLowerCase();
14214
14215 if (value === 'auto') {
14216 if (type === 'height') {
14217 return node.offsetHeight || 0;
14218 }
14219 if (type === 'width') {
14220 return node.offsetWidth || 0;
14221 }
14222 }
14223
14224 if (!(type in removePixel)) {
14225 // 属性值是否需要去掉 px 单位,这里假定此类的属性值都是 px 为单位的
14226 removePixel[type] = PIXEL_PATTERN.test(type);
14227 }
14228
14229 return removePixel[type] ? parseFloat(value) || 0 : value;
14230}
14231
14232var floatMap = { cssFloat: 1, styleFloat: 1, float: 1 };
14233
14234function getNodeHozWhitespace(node) {
14235 var paddingLeft = getStyle(node, 'paddingLeft');
14236 var paddingRight = getStyle(node, 'paddingRight');
14237 var marginLeft = getStyle(node, 'marginLeft');
14238 var marginRight = getStyle(node, 'marginRight');
14239 return paddingLeft + paddingRight + marginLeft + marginRight;
14240}
14241
14242/**
14243 * 获取元素计算后的样式
14244 * @param {Element} node DOM 节点
14245 * @param {String} name 属性名
14246 * @return {Number|Object}
14247 */
14248function getStyle(node, name) {
14249 /* istanbul ignore if */
14250 if (!hasDOM || !node) {
14251 return null;
14252 }
14253
14254 var style = _getComputedStyle(node);
14255
14256 // 如果不指定属性名,则返回全部值
14257 if (arguments.length === 1) {
14258 return style;
14259 }
14260
14261 // if style is {}(e.g. node isn't a element node), return null
14262 if ((0, _object.isPlainObject)(style)) {
14263 return null;
14264 }
14265
14266 name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;
14267
14268 return _getStyleValue(node, name, style.getPropertyValue((0, _string.hyphenate)(name)) || node.style[(0, _string.camelcase)(name)]);
14269}
14270
14271/**
14272 * 设置元素的样式
14273 * @param {Element} node DOM 节点
14274 * @param {Object|String} name 属性名,或者是一个对象,包含多个属性
14275 * @param {Number|String} value 属性值
14276 *
14277 * @example
14278 * // 设置单个属性值
14279 * dom.setStyle(mountNode, 'width', 100);
14280 * // 设置多条属性值
14281 * dom.setStyle(mountNode, {
14282 * width: 100,
14283 * height: 200
14284 * });
14285 */
14286function setStyle(node, name, value) {
14287 /* istanbul ignore if */
14288 if (!hasDOM || !node) {
14289 return false;
14290 }
14291
14292 // 批量设置多个值
14293 if ((typeof name === 'undefined' ? 'undefined' : (0, _typeof3.default)(name)) === 'object' && arguments.length === 2) {
14294 (0, _object.each)(name, function (val, key) {
14295 return setStyle(node, key, val);
14296 });
14297 } else {
14298 name = floatMap[name] ? 'cssFloat' in node.style ? 'cssFloat' : 'styleFloat' : name;
14299 if (typeof value === 'number' && PIXEL_PATTERN.test(name)) {
14300 value = value + 'px';
14301 }
14302 node.style[(0, _string.camelcase)(name)] = value; // IE8 support
14303 }
14304}
14305
14306var isScrollDisplay = function isScrollDisplay(element) {
14307 try {
14308 var scrollbarStyle = window.getComputedStyle(element, '::-webkit-scrollbar');
14309 return !scrollbarStyle || scrollbarStyle.getPropertyValue('display') !== 'none';
14310 } catch (e) {
14311 // ignore error for firefox
14312 }
14313
14314 return true;
14315};
14316
14317/**
14318 * 获取默认的滚动条大小(通过创造一个滚动元素,读取滚动元素的滚动条信息)
14319 * @return {Object} width, height
14320 */
14321function scrollbar() {
14322 var scrollDiv = document.createElement('div');
14323 scrollDiv.className += 'just-to-get-scrollbar-size';
14324
14325 setStyle(scrollDiv, {
14326 position: 'absolute',
14327 width: '100px',
14328 height: '100px',
14329 overflow: 'scroll',
14330 top: '-9999px'
14331 });
14332 document.body && document.body.appendChild(scrollDiv);
14333 var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
14334 var scrollbarHeight = scrollDiv.offsetHeight - scrollDiv.clientHeight;
14335 document.body.removeChild(scrollDiv);
14336
14337 return {
14338 width: scrollbarWidth,
14339 height: scrollbarHeight
14340 };
14341}
14342
14343function hasScroll(containerNode) {
14344 // 当元素带有 overflow: hidden 一定没有滚动条
14345 var overflow = getStyle(containerNode, 'overflow');
14346 if (overflow === 'hidden') {
14347 return false;
14348 }
14349
14350 var parentNode = containerNode.parentNode;
14351
14352 return parentNode && parentNode.scrollHeight > parentNode.clientHeight && scrollbar().width > 0 && isScrollDisplay(parentNode) && isScrollDisplay(containerNode);
14353}
14354
14355/**
14356 * 获取元素距离视口顶部和左边的偏移距离
14357 * @return {Object} top, left
14358 */
14359function getOffset(node) {
14360 var rect = node.getBoundingClientRect();
14361 var win = node.ownerDocument.defaultView;
14362 return {
14363 top: rect.top + win.pageYOffset,
14364 left: rect.left + win.pageXOffset
14365 };
14366}
14367
14368/**
14369 * 获取不同单位转为 number 的长度
14370 * @param {string|number} len 传入的长度
14371 * @return {number} pixels
14372 */
14373function getPixels(len) {
14374 var win = document.defaultView;
14375 if (typeof +len === 'number' && !isNaN(+len)) {
14376 return +len;
14377 }
14378
14379 if (typeof len === 'string') {
14380 var PX_REG = /(\d+)px/;
14381 var VH_REG = /(\d+)vh/;
14382 if (Array.isArray(len.match(PX_REG))) {
14383 return +len.match(PX_REG)[1] || 0;
14384 }
14385
14386 if (Array.isArray(len.match(VH_REG))) {
14387 var _1vh = win.innerHeight / 100;
14388 return +(len.match(VH_REG)[1] * _1vh) || 0;
14389 }
14390 }
14391
14392 return 0;
14393}
14394
14395/**
14396 * 匹配特定选择器且离当前元素最近的祖先元素(也可以是当前元素本身),如果匹配不到,则返回 null
14397 * @param {element} dom 待匹配的元素
14398 * @param {string} selecotr 选择器
14399 * @return {element} parent
14400 */
14401function getClosest(dom, selector) {
14402 /* istanbul ignore if */
14403 if (!hasDOM || !dom) {
14404 return null;
14405 }
14406
14407 // ie9
14408 /* istanbul ignore if */
14409 if (!Element.prototype.closest) {
14410 if (!document.documentElement.contains(dom)) return null;
14411 do {
14412 if (getMatches(dom, selector)) return dom;
14413 dom = dom.parentElement;
14414 } while (dom !== null);
14415 } else {
14416 return dom.closest(selector);
14417 }
14418 return null;
14419}
14420
14421/**
14422 * 如果元素被指定的选择器字符串选择,getMatches() 方法返回true; 否则返回false
14423 * @param {element} dom 待匹配的元素
14424 * @param {string} selecotr 选择器
14425 * @return {element} parent
14426 */
14427function getMatches(dom, selector) {
14428 /* istanbul ignore if */
14429 if (!hasDOM || !dom) {
14430 return null;
14431 }
14432
14433 /* istanbul ignore if */
14434 if (Element.prototype.matches) {
14435 return dom.matches(selector);
14436 } else if (Element.prototype.msMatchesSelector) {
14437 return dom.msMatchesSelector(selector);
14438 } else if (Element.prototype.webkitMatchesSelector) {
14439 return dom.webkitMatchesSelector(selector);
14440 }
14441
14442 return null;
14443}
14444
14445function saveRef(ref) {
14446 if (!ref) {
14447 return null;
14448 }
14449 return function (element) {
14450 if (typeof ref === 'string') {
14451 throw new Error('can not set ref string for ' + ref);
14452 } else if (typeof ref === 'function') {
14453 ref(element);
14454 } else if (Object.prototype.hasOwnProperty.call(ref, 'current')) {
14455 ref.current = element;
14456 }
14457 };
14458}
14459
14460/***/ }),
14461/* 124 */
14462/***/ (function(module, exports, __webpack_require__) {
14463
14464"use strict";
14465
14466
14467exports.__esModule = true;
14468exports.camelcase = camelcase;
14469exports.hyphenate = hyphenate;
14470exports.template = template;
14471
14472var _log = __webpack_require__(125);
14473
14474var _object = __webpack_require__(36);
14475
14476/**
14477 * 将字符串转化为驼峰式写法
14478 * @param {String} str 例:-webkit-transition
14479 * @return {String} 例:WebkitTransition
14480 */
14481function camelcase(str) {
14482 if (!/-/.test(str)) {
14483 return str || '';
14484 }
14485 return str.toLowerCase().replace(/-([a-z])/g, function ($0, $1) {
14486 return $1.toUpperCase();
14487 });
14488}
14489
14490/**
14491 * 将驼峰式字符串转化为连字符写法
14492 * @param {String} str 例:WebkitTransition
14493 * @return {String} 例:-webkit-transition
14494 */
14495function hyphenate(str) {
14496 var strType = (0, _object.typeOf)(str);
14497 if (strType !== 'String') {
14498 (0, _log.warning)('[ hyphenate(str: string): string ] ' + ('Expected arguments[0] to be a string but get a ' + strType + '.') + 'It will return an empty string without any processing.');
14499 return '';
14500 }
14501 return str.replace(/([A-Z])/g, function ($0) {
14502 return '-' + $0.toLowerCase();
14503 });
14504}
14505
14506/**
14507 * 替换模板字符串
14508 * @param {String} tpl 例:当前{current}, 共{total}页
14509 * @param {Object} object 例:{current: 1, total: 9}
14510 * @return {String} 例:
14511 */
14512function template(tpl) {
14513 var object = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14514
14515 var tplType = (0, _object.typeOf)(tpl);
14516 if (tplType !== 'String') {
14517 (0, _log.warning)('[ template(tpl: string, object: object): string ] ' + ('Expected arguments[0] to be a string but get a ' + tplType + '.') + 'It will return an empty string without any processing.');
14518 return '';
14519 }
14520
14521 return tpl.replace(/\{[a-z]*\}/g, function (str) {
14522 var key = str.substring(1, str.length - 1);
14523 return object[key] || '';
14524 });
14525}
14526
14527/***/ }),
14528/* 125 */
14529/***/ (function(module, exports, __webpack_require__) {
14530
14531"use strict";
14532
14533
14534exports.__esModule = true;
14535exports.deprecated = deprecated;
14536exports.warning = warning;
14537
14538var _env = __webpack_require__(126);
14539
14540/* eslint no-console: 0 */
14541
14542/**
14543 * 反对使用某一方法或属性的警告
14544 * @param {String} props 过时的属性或方法名
14545 * @param {String} instead 替代的属性或方法名
14546 * @param {String} component 组件名
14547 *
14548 * @example
14549 * log.deprecated('onBeforeClose', 'beforeClose', 'Dialog');
14550 * // Warning: onBeforeClose is deprecated at [ Dialog ], use [ beforeClose ] instead of it.
14551 */
14552function deprecated(props, instead, component) {
14553 /* istanbul ignore else */
14554 if (!(0, _env.isProduction)() && typeof console !== 'undefined' && console.error) {
14555 return console.error('Warning: [ ' + props + ' ] is deprecated at [ ' + component + ' ], ' + ('use [ ' + instead + ' ] instead of it.'));
14556 }
14557}
14558
14559/**
14560 * 控制台警告日志
14561 * @param {String} msg
14562 * @return {Console<Error> | void}
14563 */
14564function warning(msg) {
14565 /* istanbul ignore else */
14566 if (!(0, _env.isProduction)() && typeof console !== 'undefined' && console.error) {
14567 return console.error('Warning: ' + msg);
14568 }
14569}
14570
14571/***/ }),
14572/* 126 */
14573/***/ (function(module, exports, __webpack_require__) {
14574
14575"use strict";
14576
14577
14578exports.__esModule = true;
14579/**
14580 * IE浏览器的渲染引擎版本号
14581 * 注意:此属性与浏览器版本号不同,IE的渲染引擎版本号是可以通过HTML header或手动设置去更改的
14582 * @type {Number} 6 ~ 11
14583 */
14584var ieVersion = exports.ieVersion = typeof document !== 'undefined' ? document.documentMode : undefined;
14585
14586/**
14587 * 判断是否是生产环境
14588 * @type {Boolean}
14589 */
14590var isProduction = exports.isProduction = function isProduction() {
14591 var PRODUCTION_ENV = 'production';
14592 var result = false;
14593 try {
14594 if ("production" === PRODUCTION_ENV) {
14595 result = true;
14596 }
14597 } catch (err) {
14598 //
14599 }
14600
14601 return result;
14602};
14603
14604exports.default = {
14605 ieVersion: ieVersion,
14606 isProduction: isProduction
14607};
14608
14609/***/ }),
14610/* 127 */
14611/***/ (function(module, exports, __webpack_require__) {
14612
14613!function(t,e){ true?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){"use strict";var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",$="Invalid Date",l=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_")},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},g={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},v="en",D={};D[v]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return v;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(v=i),i||!r&&v},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=g;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t)}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match(l);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return O},m.isValid=function(){return!(this.$d.toString()===$)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),$=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},l=function(t,e){return O.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,g="set"+(this.$u?"UTC":"");switch(h){case c:return r?$(1,0):$(31,11);case f:return r?$(1,M):$(0,M+1);case o:var v=this.$locale().weekStart||0,D=(y<v?y+7:y)-v;return $(r?m-D:m+(6-D),M);case a:case d:return l(g+"Hours",0);case u:return l(g+"Minutes",1);case s:return l(g+"Seconds",2);case i:return l(g+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h="set"+(this.$u?"UTC":""),$=(n={},n[a]=h+"Date",n[d]=h+"Date",n[f]=h+"Month",n[c]=h+"FullYear",n[u]=h+"Hours",n[s]=h+"Minutes",n[i]=h+"Seconds",n[r]=h+"Milliseconds",n)[o],l=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[$](l),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else $&&this.$d[$](l);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,$=this;r=Number(r);var l=O.p(h),y=function(t){var e=w($);return O.w(e.date(e.date()+Math.round(t*r)),$)};if(l===f)return this.set(f,this.$M+r);if(l===c)return this.set(c,this.$y+r);if(l===a)return y(1);if(l===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[l]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||$;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].substr(0,s)},c=function(t){return O.s(s%12||12,t,"0")},d=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},l={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,"0"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,"0"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:i};return r.replace(y,(function(t,e){return e||l[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,$){var l,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,g=this-M,v=O.m(this,M);return v=(l={},l[c]=v/12,l[f]=v,l[h]=v/3,l[o]=(g-m)/6048e5,l[a]=(g-m)/864e5,l[u]=g/n,l[s]=g/e,l[i]=g/t,l)[y]||g,$?v:O.a(v)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),b=_.prototype;return w.prototype=b,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){b[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[v],w.Ls=D,w.p={},w}));
14614
14615/***/ }),
14616/* 128 */
14617/***/ (function(module, exports, __webpack_require__) {
14618
14619"use strict";
14620
14621
14622exports.__esModule = true;
14623exports.default = {
14624 BACKSPACE: 8,
14625 TAB: 9,
14626 ENTER: 13,
14627 SHIFT: 16,
14628 CTRL: 17,
14629 ALT: 18,
14630 ESC: 27,
14631 SPACE: 32,
14632 END: 35,
14633 HOME: 36,
14634 LEFT: 37,
14635 UP: 38,
14636 RIGHT: 39,
14637 DOWN: 40,
14638 PAGE_UP: 33,
14639 PAGE_DOWN: 34,
14640
14641 // version 0.x
14642 ESCAPE: 27,
14643 LEFT_ARROW: 37,
14644 UP_ARROW: 38,
14645 RIGHT_ARROW: 39,
14646 DOWN_ARROW: 40,
14647
14648 // MacOS
14649 CONTROL: 17,
14650 OPTION: 18,
14651 CMD: 91,
14652 COMMAND: 91,
14653 DELETE: 8
14654};
14655module.exports = exports["default"];
14656
14657/***/ }),
14658/* 129 */
14659/***/ (function(module, exports, __webpack_require__) {
14660
14661"use strict";
14662
14663
14664exports.__esModule = true;
14665
14666exports.default = function (prefix) {
14667 prefix = prefix || '';
14668
14669 return prefix + (timestamp++).toString(36);
14670};
14671
14672var timestamp = Date.now();
14673
14674/**
14675 * 生成全局唯一的id
14676 * @param {String} [prefix=''] 前缀字符串
14677 * @return {String}
14678 *
14679 * @example
14680 * guid(); // j7jv509c
14681 * guid('prefix-'); // prefix-j7jv509d
14682 */
14683module.exports = exports['default'];
14684
14685/***/ }),
14686/* 130 */
14687/***/ (function(module, exports, __webpack_require__) {
14688
14689"use strict";
14690
14691
14692exports.__esModule = true;
14693
14694var _extends2 = __webpack_require__(1);
14695
14696var _extends3 = _interopRequireDefault(_extends2);
14697
14698exports.default = getContextProps;
14699
14700var _zhCn = __webpack_require__(13);
14701
14702var _zhCn2 = _interopRequireDefault(_zhCn);
14703
14704var _util = __webpack_require__(6);
14705
14706function _interopRequireDefault(obj) {
14707 return obj && obj.__esModule ? obj : { default: obj };
14708}
14709
14710/**
14711 *
14712 * @param {Object|Boolean} input
14713 * @returns {Object} typeof obj.open === 'boolean'
14714 */
14715var parseBoundary = function parseBoundary(input) {
14716 var obj = void 0;
14717 if (input === undefined || input === null) {
14718 return {};
14719 } else if (typeof input === 'boolean') {
14720 obj = { open: input };
14721 } else {
14722 obj = (0, _extends3.default)({ open: true }, input);
14723 }
14724
14725 return obj;
14726};
14727
14728function getContextProps(props, context, displayName) {
14729 var prefix = props.prefix,
14730 locale = props.locale,
14731 defaultPropsConfig = props.defaultPropsConfig,
14732 pure = props.pure,
14733 rtl = props.rtl,
14734 device = props.device,
14735 popupContainer = props.popupContainer,
14736 errorBoundary = props.errorBoundary;
14737 var nextPrefix = context.nextPrefix,
14738 nextLocale = context.nextLocale,
14739 nextDefaultPropsConfig = context.nextDefaultPropsConfig,
14740 nextPure = context.nextPure,
14741 nextWarning = context.nextWarning,
14742 nextRtl = context.nextRtl,
14743 nextDevice = context.nextDevice,
14744 nextPopupContainer = context.nextPopupContainer,
14745 nextErrorBoundary = context.nextErrorBoundary;
14746
14747 var newPrefix = prefix || nextPrefix;
14748
14749 var localeFromContext = void 0;
14750 var newDisplayName = displayName;
14751
14752 switch (displayName) {
14753 case 'DatePicker2':
14754 newDisplayName = 'DatePicker';
14755 break;
14756 case 'Calendar2':
14757 newDisplayName = 'Calendar';
14758 break;
14759 case 'TimePicker2':
14760 newDisplayName = 'TimePicker';
14761 break;
14762 default:
14763 break;
14764 }
14765
14766 if (nextLocale) {
14767 localeFromContext = nextLocale[newDisplayName];
14768 if (localeFromContext) {
14769 localeFromContext.momentLocale = nextLocale.momentLocale;
14770 }
14771 }
14772
14773 var newLocale = void 0;
14774 if (locale) {
14775 newLocale = _util.obj.deepMerge({}, _zhCn2.default[newDisplayName], localeFromContext, locale);
14776 } else if (localeFromContext) {
14777 newLocale = _util.obj.deepMerge({}, _zhCn2.default[newDisplayName], localeFromContext);
14778 }
14779
14780 var newPure = typeof pure === 'boolean' ? pure : nextPure;
14781 var newRtl = typeof rtl === 'boolean' ? rtl : nextRtl;
14782
14783 // ProtoType of [nextE|e]rrorBoundary can be one of [boolean, object]
14784 // but typeof newErrorBoundary === 'object'
14785 // newErrorBoundary should always have the key 'open', which indicates ErrorBoundary on or off
14786 var newErrorBoundary = (0, _extends3.default)({}, parseBoundary(nextErrorBoundary), parseBoundary(errorBoundary));
14787
14788 if (!('open' in newErrorBoundary)) {
14789 newErrorBoundary.open = false;
14790 }
14791
14792 return {
14793 prefix: newPrefix,
14794 locale: newLocale,
14795 pure: newPure,
14796 rtl: newRtl,
14797 warning: nextWarning,
14798 defaultPropsConfig: nextDefaultPropsConfig || {},
14799 device: device || nextDevice || undefined,
14800 popupContainer: popupContainer || nextPopupContainer,
14801 errorBoundary: newErrorBoundary
14802 };
14803}
14804module.exports = exports['default'];
14805
14806/***/ }),
14807/* 131 */
14808/***/ (function(module, exports, __webpack_require__) {
14809
14810"use strict";
14811
14812
14813exports.__esModule = true;
14814exports.default = undefined;
14815
14816var _classCallCheck2 = __webpack_require__(2);
14817
14818var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14819
14820var _possibleConstructorReturn2 = __webpack_require__(3);
14821
14822var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
14823
14824var _inherits2 = __webpack_require__(4);
14825
14826var _inherits3 = _interopRequireDefault(_inherits2);
14827
14828var _class, _temp;
14829
14830var _react = __webpack_require__(0);
14831
14832var _react2 = _interopRequireDefault(_react);
14833
14834var _propTypes = __webpack_require__(5);
14835
14836var _propTypes2 = _interopRequireDefault(_propTypes);
14837
14838function _interopRequireDefault(obj) {
14839 return obj && obj.__esModule ? obj : { default: obj };
14840}
14841
14842DefaultUI.propTypes = {
14843 error: _propTypes2.default.object,
14844 errorInfo: _propTypes2.default.object
14845};
14846
14847function DefaultUI() {
14848 return '';
14849}
14850
14851var ErrorBoundary = (_temp = _class = function (_React$Component) {
14852 (0, _inherits3.default)(ErrorBoundary, _React$Component);
14853
14854 function ErrorBoundary(props) {
14855 (0, _classCallCheck3.default)(this, ErrorBoundary);
14856
14857 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
14858
14859 _this.state = { error: null, errorInfo: null };
14860 return _this;
14861 }
14862
14863 ErrorBoundary.prototype.componentDidCatch = function componentDidCatch(error, errorInfo) {
14864 this.setState({
14865 error: error,
14866 errorInfo: errorInfo
14867 });
14868
14869 var afterCatch = this.props.afterCatch;
14870
14871 if ('afterCatch' in this.props && typeof afterCatch === 'function') {
14872 this.props.afterCatch(error, errorInfo);
14873 }
14874 };
14875
14876 ErrorBoundary.prototype.render = function render() {
14877 var _props$fallbackUI = this.props.fallbackUI,
14878 FallbackUI = _props$fallbackUI === undefined ? DefaultUI : _props$fallbackUI;
14879
14880 if (this.state.errorInfo) {
14881 return _react2.default.createElement(FallbackUI, {
14882 error: this.state.error,
14883 errorInfo: this.state.errorInfo
14884 });
14885 }
14886 // Normally, just render children
14887 return this.props.children;
14888 };
14889
14890 return ErrorBoundary;
14891}(_react2.default.Component), _class.propTypes = {
14892 children: _propTypes2.default.element,
14893 /**
14894 * 捕获错误后的自定义处理, 比如埋点上传
14895 * @param {Object} error 错误
14896 * @param {Object} errorInfo 错误详细信息
14897 */
14898 afterCatch: _propTypes2.default.func,
14899 /**
14900 * 捕获错误后的展现 自定义组件
14901 * @param {Object} error 错误
14902 * @param {Object} errorInfo 错误详细信息
14903 * @returns {Element} 捕获错误后的处理
14904 */
14905 fallbackUI: _propTypes2.default.func
14906}, _temp);
14907ErrorBoundary.displayName = 'ErrorBoundary';
14908exports.default = ErrorBoundary;
14909module.exports = exports['default'];
14910
14911/***/ }),
14912/* 132 */
14913/***/ (function(module, exports, __webpack_require__) {
14914
14915"use strict";
14916
14917
14918exports.__esModule = true;
14919
14920var _extends2 = __webpack_require__(1);
14921
14922var _extends3 = _interopRequireDefault(_extends2);
14923
14924var _objectWithoutProperties2 = __webpack_require__(8);
14925
14926var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
14927
14928var _typeof2 = __webpack_require__(14);
14929
14930var _typeof3 = _interopRequireDefault(_typeof2);
14931
14932var _classCallCheck2 = __webpack_require__(2);
14933
14934var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
14935
14936var _possibleConstructorReturn2 = __webpack_require__(3);
14937
14938var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
14939
14940var _inherits2 = __webpack_require__(4);
14941
14942var _inherits3 = _interopRequireDefault(_inherits2);
14943
14944var _class, _temp;
14945
14946var _react = __webpack_require__(0);
14947
14948var _react2 = _interopRequireDefault(_react);
14949
14950var _propTypes = __webpack_require__(5);
14951
14952var _propTypes2 = _interopRequireDefault(_propTypes);
14953
14954var _reactTransitionGroup = __webpack_require__(84);
14955
14956var _child = __webpack_require__(270);
14957
14958var _child2 = _interopRequireDefault(_child);
14959
14960function _interopRequireDefault(obj) {
14961 return obj && obj.__esModule ? obj : { default: obj };
14962}
14963
14964var noop = function noop() {};
14965var FirstChild = function FirstChild(props) {
14966 var childrenArray = _react2.default.Children.toArray(props.children);
14967 return childrenArray[0] || null;
14968};
14969
14970/**
14971 * Animate
14972 */
14973var Animate = (_temp = _class = function (_Component) {
14974 (0, _inherits3.default)(Animate, _Component);
14975
14976 function Animate() {
14977 (0, _classCallCheck3.default)(this, Animate);
14978 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
14979 }
14980
14981 Animate.prototype.normalizeNames = function normalizeNames(names) {
14982 if (typeof names === 'string') {
14983 return {
14984 appear: names + '-appear',
14985 appearActive: names + '-appear-active',
14986 enter: names + '-enter',
14987 enterActive: names + '-enter-active',
14988 leave: names + '-leave',
14989 leaveActive: names + '-leave-active'
14990 };
14991 }
14992 if ((typeof names === 'undefined' ? 'undefined' : (0, _typeof3.default)(names)) === 'object') {
14993 return {
14994 appear: names.appear,
14995 appearActive: names.appear + '-active',
14996 enter: '' + names.enter,
14997 enterActive: names.enter + '-active',
14998 leave: '' + names.leave,
14999 leaveActive: names.leave + '-active'
15000 };
15001 }
15002 };
15003
15004 Animate.prototype.render = function render() {
15005 var _this2 = this;
15006
15007 /* eslint-disable no-unused-vars */
15008 var _props = this.props,
15009 animation = _props.animation,
15010 children = _props.children,
15011 animationAppear = _props.animationAppear,
15012 singleMode = _props.singleMode,
15013 component = _props.component,
15014 beforeAppear = _props.beforeAppear,
15015 onAppear = _props.onAppear,
15016 afterAppear = _props.afterAppear,
15017 beforeEnter = _props.beforeEnter,
15018 onEnter = _props.onEnter,
15019 afterEnter = _props.afterEnter,
15020 beforeLeave = _props.beforeLeave,
15021 onLeave = _props.onLeave,
15022 afterLeave = _props.afterLeave,
15023 others = (0, _objectWithoutProperties3.default)(_props, ['animation', 'children', 'animationAppear', 'singleMode', 'component', 'beforeAppear', 'onAppear', 'afterAppear', 'beforeEnter', 'onEnter', 'afterEnter', 'beforeLeave', 'onLeave', 'afterLeave']);
15024 /* eslint-enable no-unused-vars */
15025
15026 var animateChildren = _react.Children.map(children, function (child) {
15027 return _react2.default.createElement(_child2.default, {
15028 key: child.key,
15029 names: _this2.normalizeNames(animation),
15030 onAppear: beforeAppear,
15031 onAppearing: onAppear,
15032 onAppeared: afterAppear,
15033 onEnter: beforeEnter,
15034 onEntering: onEnter,
15035 onEntered: afterEnter,
15036 onExit: beforeLeave,
15037 onExiting: onLeave,
15038 onExited: afterLeave
15039 }, child);
15040 });
15041
15042 return _react2.default.createElement(_reactTransitionGroup.TransitionGroup, (0, _extends3.default)({
15043 appear: animationAppear,
15044 component: singleMode ? FirstChild : component
15045 }, others), animateChildren);
15046 };
15047
15048 return Animate;
15049}(_react.Component), _class.propTypes = {
15050 /**
15051 * 动画 className
15052 */
15053 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
15054 /**
15055 * 子元素第一次挂载时是否执行动画
15056 */
15057 animationAppear: _propTypes2.default.bool,
15058 /**
15059 * 包裹子元素的标签
15060 */
15061 component: _propTypes2.default.any,
15062 /**
15063 * 是否只有单个子元素,如果有多个子元素,请设置为 false
15064 */
15065 singleMode: _propTypes2.default.bool,
15066 /**
15067 * 子元素
15068 */
15069 children: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.arrayOf(_propTypes2.default.element)]),
15070 /**
15071 * 执行第一次挂载动画前触发的回调函数
15072 * @param {HTMLElement} node 执行动画的 dom 元素
15073 */
15074 beforeAppear: _propTypes2.default.func,
15075 /**
15076 * 执行第一次挂载动画,添加 xxx-appear-active 类名后触发的回调函数
15077 * @param {HTMLElement} node 执行动画的 dom 元素
15078 */
15079 onAppear: _propTypes2.default.func,
15080 /**
15081 * 执行完第一次挂载动画后触发的函数
15082 * @param {HTMLElement} node 执行动画的 dom 元素
15083 */
15084 afterAppear: _propTypes2.default.func,
15085 /**
15086 * 执行进场动画前触发的回调函数
15087 * @param {HTMLElement} node 执行动画的 dom 元素
15088 */
15089 beforeEnter: _propTypes2.default.func,
15090 /**
15091 * 执行进场动画,添加 xxx-enter-active 类名后触发的回调函数
15092 * @param {HTMLElement} node 执行动画的 dom 元素
15093 */
15094 onEnter: _propTypes2.default.func,
15095 /**
15096 * 执行完进场动画后触发的回调函数
15097 * @param {HTMLElement} node 执行动画的 dom 元素
15098 */
15099 afterEnter: _propTypes2.default.func,
15100 /**
15101 * 执行离场动画前触发的回调函数
15102 * @param {HTMLElement} node 执行动画的 dom 元素
15103 */
15104 beforeLeave: _propTypes2.default.func,
15105 /**
15106 * 执行离场动画,添加 xxx-leave-active 类名后触发的回调函数
15107 * @param {HTMLElement} node 执行动画的 dom 元素
15108 */
15109 onLeave: _propTypes2.default.func,
15110 /**
15111 * 执行完离场动画后触发的回调函数
15112 * @param {HTMLElement} node 执行动画的 dom 元素
15113 */
15114 afterLeave: _propTypes2.default.func
15115}, _class.defaultProps = {
15116 animationAppear: true,
15117 component: 'div',
15118 singleMode: true,
15119 beforeAppear: noop,
15120 onAppear: noop,
15121 afterAppear: noop,
15122 beforeEnter: noop,
15123 onEnter: noop,
15124 afterEnter: noop,
15125 beforeLeave: noop,
15126 onLeave: noop,
15127 afterLeave: noop
15128}, _temp);
15129Animate.displayName = 'Animate';
15130exports.default = Animate;
15131module.exports = exports['default'];
15132
15133/***/ }),
15134/* 133 */
15135/***/ (function(module, exports, __webpack_require__) {
15136
15137"use strict";
15138
15139
15140exports.__esModule = true;
15141exports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;
15142
15143var PropTypes = _interopRequireWildcard(__webpack_require__(5));
15144
15145var _react = _interopRequireDefault(__webpack_require__(0));
15146
15147var _reactDom = _interopRequireDefault(__webpack_require__(12));
15148
15149var _reactLifecyclesCompat = __webpack_require__(10);
15150
15151var _PropTypes = __webpack_require__(134);
15152
15153function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15154
15155function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
15156
15157function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
15158
15159function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
15160
15161var UNMOUNTED = 'unmounted';
15162exports.UNMOUNTED = UNMOUNTED;
15163var EXITED = 'exited';
15164exports.EXITED = EXITED;
15165var ENTERING = 'entering';
15166exports.ENTERING = ENTERING;
15167var ENTERED = 'entered';
15168exports.ENTERED = ENTERED;
15169var EXITING = 'exiting';
15170/**
15171 * The Transition component lets you describe a transition from one component
15172 * state to another _over time_ with a simple declarative API. Most commonly
15173 * it's used to animate the mounting and unmounting of a component, but can also
15174 * be used to describe in-place transition states as well.
15175 *
15176 * ---
15177 *
15178 * **Note**: `Transition` is a platform-agnostic base component. If you're using
15179 * transitions in CSS, you'll probably want to use
15180 * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)
15181 * instead. It inherits all the features of `Transition`, but contains
15182 * additional features necessary to play nice with CSS transitions (hence the
15183 * name of the component).
15184 *
15185 * ---
15186 *
15187 * By default the `Transition` component does not alter the behavior of the
15188 * component it renders, it only tracks "enter" and "exit" states for the
15189 * components. It's up to you to give meaning and effect to those states. For
15190 * example we can add styles to a component when it enters or exits:
15191 *
15192 * ```jsx
15193 * import { Transition } from 'react-transition-group';
15194 *
15195 * const duration = 300;
15196 *
15197 * const defaultStyle = {
15198 * transition: `opacity ${duration}ms ease-in-out`,
15199 * opacity: 0,
15200 * }
15201 *
15202 * const transitionStyles = {
15203 * entering: { opacity: 0 },
15204 * entered: { opacity: 1 },
15205 * };
15206 *
15207 * const Fade = ({ in: inProp }) => (
15208 * <Transition in={inProp} timeout={duration}>
15209 * {state => (
15210 * <div style={{
15211 * ...defaultStyle,
15212 * ...transitionStyles[state]
15213 * }}>
15214 * I'm a fade Transition!
15215 * </div>
15216 * )}
15217 * </Transition>
15218 * );
15219 * ```
15220 *
15221 * There are 4 main states a Transition can be in:
15222 * - `'entering'`
15223 * - `'entered'`
15224 * - `'exiting'`
15225 * - `'exited'`
15226 *
15227 * Transition state is toggled via the `in` prop. When `true` the component
15228 * begins the "Enter" stage. During this stage, the component will shift from
15229 * its current transition state, to `'entering'` for the duration of the
15230 * transition and then to the `'entered'` stage once it's complete. Let's take
15231 * the following example (we'll use the
15232 * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):
15233 *
15234 * ```jsx
15235 * function App() {
15236 * const [inProp, setInProp] = useState(false);
15237 * return (
15238 * <div>
15239 * <Transition in={inProp} timeout={500}>
15240 * {state => (
15241 * // ...
15242 * )}
15243 * </Transition>
15244 * <button onClick={() => setInProp(true)}>
15245 * Click to Enter
15246 * </button>
15247 * </div>
15248 * );
15249 * }
15250 * ```
15251 *
15252 * When the button is clicked the component will shift to the `'entering'` state
15253 * and stay there for 500ms (the value of `timeout`) before it finally switches
15254 * to `'entered'`.
15255 *
15256 * When `in` is `false` the same thing happens except the state moves from
15257 * `'exiting'` to `'exited'`.
15258 */
15259
15260exports.EXITING = EXITING;
15261
15262var Transition =
15263/*#__PURE__*/
15264function (_React$Component) {
15265 _inheritsLoose(Transition, _React$Component);
15266
15267 function Transition(props, context) {
15268 var _this;
15269
15270 _this = _React$Component.call(this, props, context) || this;
15271 var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears
15272
15273 var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;
15274 var initialStatus;
15275 _this.appearStatus = null;
15276
15277 if (props.in) {
15278 if (appear) {
15279 initialStatus = EXITED;
15280 _this.appearStatus = ENTERING;
15281 } else {
15282 initialStatus = ENTERED;
15283 }
15284 } else {
15285 if (props.unmountOnExit || props.mountOnEnter) {
15286 initialStatus = UNMOUNTED;
15287 } else {
15288 initialStatus = EXITED;
15289 }
15290 }
15291
15292 _this.state = {
15293 status: initialStatus
15294 };
15295 _this.nextCallback = null;
15296 return _this;
15297 }
15298
15299 var _proto = Transition.prototype;
15300
15301 _proto.getChildContext = function getChildContext() {
15302 return {
15303 transitionGroup: null // allows for nested Transitions
15304
15305 };
15306 };
15307
15308 Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {
15309 var nextIn = _ref.in;
15310
15311 if (nextIn && prevState.status === UNMOUNTED) {
15312 return {
15313 status: EXITED
15314 };
15315 }
15316
15317 return null;
15318 }; // getSnapshotBeforeUpdate(prevProps) {
15319 // let nextStatus = null
15320 // if (prevProps !== this.props) {
15321 // const { status } = this.state
15322 // if (this.props.in) {
15323 // if (status !== ENTERING && status !== ENTERED) {
15324 // nextStatus = ENTERING
15325 // }
15326 // } else {
15327 // if (status === ENTERING || status === ENTERED) {
15328 // nextStatus = EXITING
15329 // }
15330 // }
15331 // }
15332 // return { nextStatus }
15333 // }
15334
15335
15336 _proto.componentDidMount = function componentDidMount() {
15337 this.updateStatus(true, this.appearStatus);
15338 };
15339
15340 _proto.componentDidUpdate = function componentDidUpdate(prevProps) {
15341 var nextStatus = null;
15342
15343 if (prevProps !== this.props) {
15344 var status = this.state.status;
15345
15346 if (this.props.in) {
15347 if (status !== ENTERING && status !== ENTERED) {
15348 nextStatus = ENTERING;
15349 }
15350 } else {
15351 if (status === ENTERING || status === ENTERED) {
15352 nextStatus = EXITING;
15353 }
15354 }
15355 }
15356
15357 this.updateStatus(false, nextStatus);
15358 };
15359
15360 _proto.componentWillUnmount = function componentWillUnmount() {
15361 this.cancelNextCallback();
15362 };
15363
15364 _proto.getTimeouts = function getTimeouts() {
15365 var timeout = this.props.timeout;
15366 var exit, enter, appear;
15367 exit = enter = appear = timeout;
15368
15369 if (timeout != null && typeof timeout !== 'number') {
15370 exit = timeout.exit;
15371 enter = timeout.enter; // TODO: remove fallback for next major
15372
15373 appear = timeout.appear !== undefined ? timeout.appear : enter;
15374 }
15375
15376 return {
15377 exit: exit,
15378 enter: enter,
15379 appear: appear
15380 };
15381 };
15382
15383 _proto.updateStatus = function updateStatus(mounting, nextStatus) {
15384 if (mounting === void 0) {
15385 mounting = false;
15386 }
15387
15388 if (nextStatus !== null) {
15389 // nextStatus will always be ENTERING or EXITING.
15390 this.cancelNextCallback();
15391
15392 var node = _reactDom.default.findDOMNode(this);
15393
15394 if (nextStatus === ENTERING) {
15395 this.performEnter(node, mounting);
15396 } else {
15397 this.performExit(node);
15398 }
15399 } else if (this.props.unmountOnExit && this.state.status === EXITED) {
15400 this.setState({
15401 status: UNMOUNTED
15402 });
15403 }
15404 };
15405
15406 _proto.performEnter = function performEnter(node, mounting) {
15407 var _this2 = this;
15408
15409 var enter = this.props.enter;
15410 var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting;
15411 var timeouts = this.getTimeouts();
15412 var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED
15413 // if we are mounting and running this it means appear _must_ be set
15414
15415 if (!mounting && !enter) {
15416 this.safeSetState({
15417 status: ENTERED
15418 }, function () {
15419 _this2.props.onEntered(node);
15420 });
15421 return;
15422 }
15423
15424 this.props.onEnter(node, appearing);
15425 this.safeSetState({
15426 status: ENTERING
15427 }, function () {
15428 _this2.props.onEntering(node, appearing);
15429
15430 _this2.onTransitionEnd(node, enterTimeout, function () {
15431 _this2.safeSetState({
15432 status: ENTERED
15433 }, function () {
15434 _this2.props.onEntered(node, appearing);
15435 });
15436 });
15437 });
15438 };
15439
15440 _proto.performExit = function performExit(node) {
15441 var _this3 = this;
15442
15443 var exit = this.props.exit;
15444 var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED
15445
15446 if (!exit) {
15447 this.safeSetState({
15448 status: EXITED
15449 }, function () {
15450 _this3.props.onExited(node);
15451 });
15452 return;
15453 }
15454
15455 this.props.onExit(node);
15456 this.safeSetState({
15457 status: EXITING
15458 }, function () {
15459 _this3.props.onExiting(node);
15460
15461 _this3.onTransitionEnd(node, timeouts.exit, function () {
15462 _this3.safeSetState({
15463 status: EXITED
15464 }, function () {
15465 _this3.props.onExited(node);
15466 });
15467 });
15468 });
15469 };
15470
15471 _proto.cancelNextCallback = function cancelNextCallback() {
15472 if (this.nextCallback !== null) {
15473 this.nextCallback.cancel();
15474 this.nextCallback = null;
15475 }
15476 };
15477
15478 _proto.safeSetState = function safeSetState(nextState, callback) {
15479 // This shouldn't be necessary, but there are weird race conditions with
15480 // setState callbacks and unmounting in testing, so always make sure that
15481 // we can cancel any pending setState callbacks after we unmount.
15482 callback = this.setNextCallback(callback);
15483 this.setState(nextState, callback);
15484 };
15485
15486 _proto.setNextCallback = function setNextCallback(callback) {
15487 var _this4 = this;
15488
15489 var active = true;
15490
15491 this.nextCallback = function (event) {
15492 if (active) {
15493 active = false;
15494 _this4.nextCallback = null;
15495 callback(event);
15496 }
15497 };
15498
15499 this.nextCallback.cancel = function () {
15500 active = false;
15501 };
15502
15503 return this.nextCallback;
15504 };
15505
15506 _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {
15507 this.setNextCallback(handler);
15508 var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;
15509
15510 if (!node || doesNotHaveTimeoutOrListener) {
15511 setTimeout(this.nextCallback, 0);
15512 return;
15513 }
15514
15515 if (this.props.addEndListener) {
15516 this.props.addEndListener(node, this.nextCallback);
15517 }
15518
15519 if (timeout != null) {
15520 setTimeout(this.nextCallback, timeout);
15521 }
15522 };
15523
15524 _proto.render = function render() {
15525 var status = this.state.status;
15526
15527 if (status === UNMOUNTED) {
15528 return null;
15529 }
15530
15531 var _this$props = this.props,
15532 children = _this$props.children,
15533 childProps = _objectWithoutPropertiesLoose(_this$props, ["children"]); // filter props for Transtition
15534
15535
15536 delete childProps.in;
15537 delete childProps.mountOnEnter;
15538 delete childProps.unmountOnExit;
15539 delete childProps.appear;
15540 delete childProps.enter;
15541 delete childProps.exit;
15542 delete childProps.timeout;
15543 delete childProps.addEndListener;
15544 delete childProps.onEnter;
15545 delete childProps.onEntering;
15546 delete childProps.onEntered;
15547 delete childProps.onExit;
15548 delete childProps.onExiting;
15549 delete childProps.onExited;
15550
15551 if (typeof children === 'function') {
15552 return children(status, childProps);
15553 }
15554
15555 var child = _react.default.Children.only(children);
15556
15557 return _react.default.cloneElement(child, childProps);
15558 };
15559
15560 return Transition;
15561}(_react.default.Component);
15562
15563Transition.contextTypes = {
15564 transitionGroup: PropTypes.object
15565};
15566Transition.childContextTypes = {
15567 transitionGroup: function transitionGroup() {}
15568};
15569Transition.propTypes = false ? {
15570 /**
15571 * A `function` child can be used instead of a React element. This function is
15572 * called with the current transition status (`'entering'`, `'entered'`,
15573 * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context
15574 * specific props to a component.
15575 *
15576 * ```jsx
15577 * <Transition in={this.state.in} timeout={150}>
15578 * {state => (
15579 * <MyComponent className={`fade fade-${state}`} />
15580 * )}
15581 * </Transition>
15582 * ```
15583 */
15584 children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,
15585
15586 /**
15587 * Show the component; triggers the enter or exit states
15588 */
15589 in: PropTypes.bool,
15590
15591 /**
15592 * By default the child component is mounted immediately along with
15593 * the parent `Transition` component. If you want to "lazy mount" the component on the
15594 * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay
15595 * mounted, even on "exited", unless you also specify `unmountOnExit`.
15596 */
15597 mountOnEnter: PropTypes.bool,
15598
15599 /**
15600 * By default the child component stays mounted after it reaches the `'exited'` state.
15601 * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.
15602 */
15603 unmountOnExit: PropTypes.bool,
15604
15605 /**
15606 * Normally a component is not transitioned if it is shown when the `<Transition>` component mounts.
15607 * If you want to transition on the first mount set `appear` to `true`, and the
15608 * component will transition in as soon as the `<Transition>` mounts.
15609 *
15610 * > Note: there are no specific "appear" states. `appear` only adds an additional `enter` transition.
15611 */
15612 appear: PropTypes.bool,
15613
15614 /**
15615 * Enable or disable enter transitions.
15616 */
15617 enter: PropTypes.bool,
15618
15619 /**
15620 * Enable or disable exit transitions.
15621 */
15622 exit: PropTypes.bool,
15623
15624 /**
15625 * The duration of the transition, in milliseconds.
15626 * Required unless `addEndListener` is provided.
15627 *
15628 * You may specify a single timeout for all transitions:
15629 *
15630 * ```jsx
15631 * timeout={500}
15632 * ```
15633 *
15634 * or individually:
15635 *
15636 * ```jsx
15637 * timeout={{
15638 * appear: 500,
15639 * enter: 300,
15640 * exit: 500,
15641 * }}
15642 * ```
15643 *
15644 * - `appear` defaults to the value of `enter`
15645 * - `enter` defaults to `0`
15646 * - `exit` defaults to `0`
15647 *
15648 * @type {number | { enter?: number, exit?: number, appear?: number }}
15649 */
15650 timeout: function timeout(props) {
15651 var pt = _PropTypes.timeoutsShape;
15652 if (!props.addEndListener) pt = pt.isRequired;
15653
15654 for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
15655 args[_key - 1] = arguments[_key];
15656 }
15657
15658 return pt.apply(void 0, [props].concat(args));
15659 },
15660
15661 /**
15662 * Add a custom transition end trigger. Called with the transitioning
15663 * DOM node and a `done` callback. Allows for more fine grained transition end
15664 * logic. **Note:** Timeouts are still used as a fallback if provided.
15665 *
15666 * ```jsx
15667 * addEndListener={(node, done) => {
15668 * // use the css transitionend event to mark the finish of a transition
15669 * node.addEventListener('transitionend', done, false);
15670 * }}
15671 * ```
15672 */
15673 addEndListener: PropTypes.func,
15674
15675 /**
15676 * Callback fired before the "entering" status is applied. An extra parameter
15677 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
15678 *
15679 * @type Function(node: HtmlElement, isAppearing: bool) -> void
15680 */
15681 onEnter: PropTypes.func,
15682
15683 /**
15684 * Callback fired after the "entering" status is applied. An extra parameter
15685 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
15686 *
15687 * @type Function(node: HtmlElement, isAppearing: bool)
15688 */
15689 onEntering: PropTypes.func,
15690
15691 /**
15692 * Callback fired after the "entered" status is applied. An extra parameter
15693 * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount
15694 *
15695 * @type Function(node: HtmlElement, isAppearing: bool) -> void
15696 */
15697 onEntered: PropTypes.func,
15698
15699 /**
15700 * Callback fired before the "exiting" status is applied.
15701 *
15702 * @type Function(node: HtmlElement) -> void
15703 */
15704 onExit: PropTypes.func,
15705
15706 /**
15707 * Callback fired after the "exiting" status is applied.
15708 *
15709 * @type Function(node: HtmlElement) -> void
15710 */
15711 onExiting: PropTypes.func,
15712
15713 /**
15714 * Callback fired after the "exited" status is applied.
15715 *
15716 * @type Function(node: HtmlElement) -> void
15717 */
15718 onExited: PropTypes.func // Name the function so it is clearer in the documentation
15719
15720} : {};
15721
15722function noop() {}
15723
15724Transition.defaultProps = {
15725 in: false,
15726 mountOnEnter: false,
15727 unmountOnExit: false,
15728 appear: false,
15729 enter: true,
15730 exit: true,
15731 onEnter: noop,
15732 onEntering: noop,
15733 onEntered: noop,
15734 onExit: noop,
15735 onExiting: noop,
15736 onExited: noop
15737};
15738Transition.UNMOUNTED = 0;
15739Transition.EXITED = 1;
15740Transition.ENTERING = 2;
15741Transition.ENTERED = 3;
15742Transition.EXITING = 4;
15743
15744var _default = (0, _reactLifecyclesCompat.polyfill)(Transition);
15745
15746exports.default = _default;
15747
15748/***/ }),
15749/* 134 */
15750/***/ (function(module, exports, __webpack_require__) {
15751
15752"use strict";
15753
15754
15755exports.__esModule = true;
15756exports.classNamesShape = exports.timeoutsShape = void 0;
15757
15758var _propTypes = _interopRequireDefault(__webpack_require__(5));
15759
15760function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15761
15762var timeoutsShape = false ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({
15763 enter: _propTypes.default.number,
15764 exit: _propTypes.default.number,
15765 appear: _propTypes.default.number
15766}).isRequired]) : null;
15767exports.timeoutsShape = timeoutsShape;
15768var classNamesShape = false ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({
15769 enter: _propTypes.default.string,
15770 exit: _propTypes.default.string,
15771 active: _propTypes.default.string
15772}), _propTypes.default.shape({
15773 enter: _propTypes.default.string,
15774 enterDone: _propTypes.default.string,
15775 enterActive: _propTypes.default.string,
15776 exit: _propTypes.default.string,
15777 exitDone: _propTypes.default.string,
15778 exitActive: _propTypes.default.string
15779})]) : null;
15780exports.classNamesShape = classNamesShape;
15781
15782/***/ }),
15783/* 135 */
15784/***/ (function(module, exports, __webpack_require__) {
15785
15786"use strict";
15787
15788
15789exports.__esModule = true;
15790exports.default = void 0;
15791
15792var _propTypes = _interopRequireDefault(__webpack_require__(5));
15793
15794var _react = _interopRequireDefault(__webpack_require__(0));
15795
15796var _reactLifecyclesCompat = __webpack_require__(10);
15797
15798var _ChildMapping = __webpack_require__(269);
15799
15800function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15801
15802function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
15803
15804function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
15805
15806function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
15807
15808function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
15809
15810var values = Object.values || function (obj) {
15811 return Object.keys(obj).map(function (k) {
15812 return obj[k];
15813 });
15814};
15815
15816var defaultProps = {
15817 component: 'div',
15818 childFactory: function childFactory(child) {
15819 return child;
15820 }
15821 /**
15822 * The `<TransitionGroup>` component manages a set of transition components
15823 * (`<Transition>` and `<CSSTransition>`) in a list. Like with the transition
15824 * components, `<TransitionGroup>` is a state machine for managing the mounting
15825 * and unmounting of components over time.
15826 *
15827 * Consider the example below. As items are removed or added to the TodoList the
15828 * `in` prop is toggled automatically by the `<TransitionGroup>`.
15829 *
15830 * Note that `<TransitionGroup>` does not define any animation behavior!
15831 * Exactly _how_ a list item animates is up to the individual transition
15832 * component. This means you can mix and match animations across different list
15833 * items.
15834 */
15835
15836};
15837
15838var TransitionGroup =
15839/*#__PURE__*/
15840function (_React$Component) {
15841 _inheritsLoose(TransitionGroup, _React$Component);
15842
15843 function TransitionGroup(props, context) {
15844 var _this;
15845
15846 _this = _React$Component.call(this, props, context) || this;
15847
15848 var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear
15849
15850
15851 _this.state = {
15852 handleExited: handleExited,
15853 firstRender: true
15854 };
15855 return _this;
15856 }
15857
15858 var _proto = TransitionGroup.prototype;
15859
15860 _proto.getChildContext = function getChildContext() {
15861 return {
15862 transitionGroup: {
15863 isMounting: !this.appeared
15864 }
15865 };
15866 };
15867
15868 _proto.componentDidMount = function componentDidMount() {
15869 this.appeared = true;
15870 this.mounted = true;
15871 };
15872
15873 _proto.componentWillUnmount = function componentWillUnmount() {
15874 this.mounted = false;
15875 };
15876
15877 TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {
15878 var prevChildMapping = _ref.children,
15879 handleExited = _ref.handleExited,
15880 firstRender = _ref.firstRender;
15881 return {
15882 children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),
15883 firstRender: false
15884 };
15885 };
15886
15887 _proto.handleExited = function handleExited(child, node) {
15888 var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);
15889 if (child.key in currentChildMapping) return;
15890
15891 if (child.props.onExited) {
15892 child.props.onExited(node);
15893 }
15894
15895 if (this.mounted) {
15896 this.setState(function (state) {
15897 var children = _extends({}, state.children);
15898
15899 delete children[child.key];
15900 return {
15901 children: children
15902 };
15903 });
15904 }
15905 };
15906
15907 _proto.render = function render() {
15908 var _this$props = this.props,
15909 Component = _this$props.component,
15910 childFactory = _this$props.childFactory,
15911 props = _objectWithoutPropertiesLoose(_this$props, ["component", "childFactory"]);
15912
15913 var children = values(this.state.children).map(childFactory);
15914 delete props.appear;
15915 delete props.enter;
15916 delete props.exit;
15917
15918 if (Component === null) {
15919 return children;
15920 }
15921
15922 return _react.default.createElement(Component, props, children);
15923 };
15924
15925 return TransitionGroup;
15926}(_react.default.Component);
15927
15928TransitionGroup.childContextTypes = {
15929 transitionGroup: _propTypes.default.object.isRequired
15930};
15931TransitionGroup.propTypes = false ? {
15932 /**
15933 * `<TransitionGroup>` renders a `<div>` by default. You can change this
15934 * behavior by providing a `component` prop.
15935 * If you use React v16+ and would like to avoid a wrapping `<div>` element
15936 * you can pass in `component={null}`. This is useful if the wrapping div
15937 * borks your css styles.
15938 */
15939 component: _propTypes.default.any,
15940
15941 /**
15942 * A set of `<Transition>` components, that are toggled `in` and out as they
15943 * leave. the `<TransitionGroup>` will inject specific transition props, so
15944 * remember to spread them through if you are wrapping the `<Transition>` as
15945 * with our `<Fade>` example.
15946 *
15947 * While this component is meant for multiple `Transition` or `CSSTransition`
15948 * children, sometimes you may want to have a single transition child with
15949 * content that you want to be transitioned out and in when you change it
15950 * (e.g. routes, images etc.) In that case you can change the `key` prop of
15951 * the transition child as you change its content, this will cause
15952 * `TransitionGroup` to transition the child out and back in.
15953 */
15954 children: _propTypes.default.node,
15955
15956 /**
15957 * A convenience prop that enables or disables appear animations
15958 * for all children. Note that specifying this will override any defaults set
15959 * on individual children Transitions.
15960 */
15961 appear: _propTypes.default.bool,
15962
15963 /**
15964 * A convenience prop that enables or disables enter animations
15965 * for all children. Note that specifying this will override any defaults set
15966 * on individual children Transitions.
15967 */
15968 enter: _propTypes.default.bool,
15969
15970 /**
15971 * A convenience prop that enables or disables exit animations
15972 * for all children. Note that specifying this will override any defaults set
15973 * on individual children Transitions.
15974 */
15975 exit: _propTypes.default.bool,
15976
15977 /**
15978 * You may need to apply reactive updates to a child as it is exiting.
15979 * This is generally done by using `cloneElement` however in the case of an exiting
15980 * child the element has already been removed and not accessible to the consumer.
15981 *
15982 * If you do need to update a child as it leaves you can provide a `childFactory`
15983 * to wrap every child, even the ones that are leaving.
15984 *
15985 * @type Function(child: ReactElement) -> ReactElement
15986 */
15987 childFactory: _propTypes.default.func
15988} : {};
15989TransitionGroup.defaultProps = defaultProps;
15990
15991var _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);
15992
15993exports.default = _default;
15994module.exports = exports["default"];
15995
15996/***/ }),
15997/* 136 */
15998/***/ (function(module, exports, __webpack_require__) {
15999
16000"use strict";
16001
16002
16003exports.__esModule = true;
16004
16005var _extends2 = __webpack_require__(1);
16006
16007var _extends3 = _interopRequireDefault(_extends2);
16008
16009var _classCallCheck2 = __webpack_require__(2);
16010
16011var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16012
16013var _possibleConstructorReturn2 = __webpack_require__(3);
16014
16015var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
16016
16017var _inherits2 = __webpack_require__(4);
16018
16019var _inherits3 = _interopRequireDefault(_inherits2);
16020
16021var _class, _temp;
16022
16023var _react = __webpack_require__(0);
16024
16025var _react2 = _interopRequireDefault(_react);
16026
16027var _reactDom = __webpack_require__(12);
16028
16029var _propTypes = __webpack_require__(5);
16030
16031var _propTypes2 = _interopRequireDefault(_propTypes);
16032
16033var _classnames3 = __webpack_require__(7);
16034
16035var _classnames4 = _interopRequireDefault(_classnames3);
16036
16037var _reactLifecyclesCompat = __webpack_require__(10);
16038
16039var _util = __webpack_require__(6);
16040
16041var _manager = __webpack_require__(276);
16042
16043var _manager2 = _interopRequireDefault(_manager);
16044
16045var _gateway = __webpack_require__(137);
16046
16047var _gateway2 = _interopRequireDefault(_gateway);
16048
16049var _position = __webpack_require__(138);
16050
16051var _position2 = _interopRequireDefault(_position);
16052
16053var _findNode = __webpack_require__(60);
16054
16055var _findNode2 = _interopRequireDefault(_findNode);
16056
16057function _interopRequireDefault(obj) {
16058 return obj && obj.__esModule ? obj : { default: obj };
16059}
16060
16061var saveLastFocusNode = _util.focus.saveLastFocusNode,
16062 getFocusNodeList = _util.focus.getFocusNodeList,
16063 backLastFocusNode = _util.focus.backLastFocusNode;
16064var makeChain = _util.func.makeChain,
16065 noop = _util.func.noop,
16066 bindCtx = _util.func.bindCtx;
16067
16068var getContainerNode = function getContainerNode(props) {
16069 var targetNode = (0, _findNode2.default)(props.target);
16070 return (0, _findNode2.default)(props.container, targetNode);
16071};
16072
16073var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];
16074var getStyleProperty = function getStyleProperty(node, name) {
16075 var style = window.getComputedStyle(node);
16076 var ret = '';
16077 for (var i = 0; i < prefixes.length; i++) {
16078 ret = style.getPropertyValue(prefixes[i] + name);
16079 if (ret) {
16080 break;
16081 }
16082 }
16083 return ret;
16084};
16085
16086// 存 containerNode 信息
16087var containerNodeList = [];
16088
16089/**
16090 * Overlay
16091 */
16092var Overlay = (_temp = _class = function (_Component) {
16093 (0, _inherits3.default)(Overlay, _Component);
16094
16095 function Overlay(props) {
16096 (0, _classCallCheck3.default)(this, Overlay);
16097
16098 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
16099
16100 _this.saveContentRef = function (ref) {
16101 _this.contentRef = ref;
16102 };
16103
16104 _this.saveGatewayRef = function (ref) {
16105 _this.gatewayRef = ref;
16106 };
16107
16108 _this.lastAlign = props.align;
16109
16110 bindCtx(_this, ['handlePosition', 'handleAnimateEnd', 'handleDocumentKeyDown', 'handleDocumentClick', 'handleMaskClick', 'beforeOpen', 'beforeClose']);
16111
16112 _this.state = {
16113 visible: false,
16114 status: 'none',
16115 animation: _this.getAnimation(props),
16116 willOpen: false,
16117 willClose: false
16118 };
16119
16120 _this.timeoutMap = {};
16121 return _this;
16122 }
16123
16124 Overlay.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
16125 var willOpen = !prevState.visible && nextProps.visible;
16126 var willClose = prevState.visible && !nextProps.visible;
16127
16128 var nextState = {
16129 willOpen: willOpen,
16130 willClose: willClose
16131 };
16132
16133 if (willOpen) {
16134 nextProps.beforeOpen && nextProps.beforeOpen();
16135 } else if (willClose) {
16136 nextProps.beforeClose && nextProps.beforeClose();
16137 }
16138
16139 if (nextProps.animation || nextProps.animation === false) {
16140 nextState.animation = nextProps.animation;
16141 }
16142
16143 if (nextProps.animation !== false && _util.support.animation) {
16144 if (willOpen) {
16145 nextState.visible = true;
16146 nextState.status = 'mounting';
16147 } else if (willClose) {
16148 // can not set visible=false directly, otherwise animation not work without dom
16149 // nextState.visible = false;
16150 nextState.status = 'leaving';
16151 }
16152 } else if ('visible' in nextProps && nextProps.visible !== prevState.visible) {
16153 nextState.visible = nextProps.visible;
16154 }
16155
16156 return nextState;
16157 };
16158
16159 Overlay.prototype.componentDidMount = function componentDidMount() {
16160 if (this.state.willOpen) {
16161 this.beforeOpen();
16162 } else if (this.state.willClose) {
16163 this.beforeClose();
16164 }
16165
16166 if (this.state.visible) {
16167 this.doAnimation(true, false);
16168 this._isMounted = true;
16169 }
16170
16171 this.addDocumentEvents();
16172
16173 _manager2.default.addOverlay(this);
16174 };
16175
16176 Overlay.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
16177 if (this.state.willOpen) {
16178 this.beforeOpen();
16179 } else if (this.state.willClose) {
16180 this.beforeClose();
16181 }
16182
16183 if (!this._isMounted && this.props.visible) {
16184 this._isMounted = true;
16185 }
16186
16187 if (this.props.align !== prevProps.align) {
16188 this.lastAlign = prevProps.align;
16189 }
16190
16191 var willOpen = !prevProps.visible && this.props.visible;
16192 var willClose = prevProps.visible && !this.props.visible;
16193
16194 (willOpen || willClose) && this.doAnimation(willOpen, willClose);
16195 };
16196
16197 Overlay.prototype.componentWillUnmount = function componentWillUnmount() {
16198 this._isDestroyed = true;
16199 this._isMounted = false;
16200 _manager2.default.removeOverlay(this);
16201 this.removeDocumentEvents();
16202 if (this.focusTimeout) {
16203 clearTimeout(this.focusTimeout);
16204 }
16205 if (this._animation) {
16206 this._animation.off();
16207 this._animation = null;
16208 }
16209 this.beforeClose();
16210 };
16211
16212 Overlay.prototype.doAnimation = function doAnimation(open, close) {
16213 var _this2 = this;
16214
16215 if (this.state.animation && _util.support.animation) {
16216 if (open) {
16217 this.onEntering();
16218 } else if (close) {
16219 this.onLeaving();
16220 }
16221 this.addAnimationEvents();
16222 } else {
16223 if (open) {
16224 // fix https://github.com/alibaba-fusion/next/issues/1901
16225 setTimeout(function () {
16226 _this2.props.onOpen();
16227 _util.dom.addClass(_this2.getWrapperNode(), 'opened');
16228 _manager2.default.addOverlay(_this2);
16229 _this2.props.afterOpen();
16230 });
16231 } else if (close) {
16232 this.props.onClose();
16233 _util.dom.removeClass(this.getWrapperNode(), 'opened');
16234 _manager2.default.removeOverlay(this);
16235 this.props.afterClose();
16236 }
16237 this.setFocusNode();
16238 }
16239 };
16240
16241 Overlay.prototype.getAnimation = function getAnimation(props) {
16242 if (props.animation === false) {
16243 return false;
16244 }
16245
16246 if (props.animation) {
16247 return props.animation;
16248 }
16249
16250 return this.getAnimationByAlign(props.align);
16251 };
16252
16253 Overlay.prototype.getAnimationByAlign = function getAnimationByAlign(align) {
16254 switch (align[0]) {
16255 case 't':
16256 return {
16257 // 为了防止有的用户 js升级了而css没升级,所以把两个动画都保留了。
16258 // 动画不会叠加,会替代,顺序根据 src/animate/main.scss 中的样式先后顺序遵循css覆盖原则
16259 // fadeInDownSmall fadeOutUpSmall 优先级更高
16260 in: 'expandInDown fadeInDownSmall',
16261 out: 'expandOutUp fadeOutUpSmall'
16262 };
16263 case 'b':
16264 return {
16265 in: 'fadeInUp',
16266 out: 'fadeOutDown'
16267 };
16268 default:
16269 return {
16270 in: 'expandInDown fadeInDownSmall',
16271 out: 'expandOutUp fadeOutUpSmall'
16272 };
16273 }
16274 };
16275
16276 Overlay.prototype.addAnimationEvents = function addAnimationEvents() {
16277 var _this3 = this;
16278
16279 setTimeout(function () {
16280 var node = _this3.getContentNode();
16281 if (node) {
16282 var id = (0, _util.guid)();
16283
16284 _this3._animation = _util.events.on(node, _util.support.animation.end, _this3.handleAnimateEnd.bind(_this3, id));
16285
16286 var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;
16287 var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;
16288 var time = animationDelay + animationDuration;
16289 if (time) {
16290 _this3.timeoutMap[id] = setTimeout(function () {
16291 _this3.handleAnimateEnd(id);
16292 }, time * 1000 + 200);
16293 }
16294 }
16295 });
16296 };
16297
16298 Overlay.prototype.handlePosition = function handlePosition(config) {
16299 var align = config.align.join(' ');
16300
16301 if (!('animation' in this.props) && this.props.needAdjust && this.lastAlign !== align) {
16302 this.setState({
16303 animation: this.getAnimationByAlign(align)
16304 });
16305 }
16306
16307 var status = this.state.status;
16308
16309 if (status === 'mounting') {
16310 this.setState({
16311 status: 'entering'
16312 });
16313 }
16314
16315 this.lastAlign = align;
16316 };
16317
16318 Overlay.prototype.handleAnimateEnd = function handleAnimateEnd(id) {
16319 if (this.timeoutMap[id]) {
16320 clearTimeout(this.timeoutMap[id]);
16321 }
16322 delete this.timeoutMap[id];
16323
16324 if (this._animation) {
16325 this._animation.off();
16326 this._animation = null;
16327 }
16328
16329 if (!this._isMounted) {
16330 return;
16331 }
16332
16333 if (this.state.status === 'leaving') {
16334 this.setState({
16335 visible: false,
16336 status: 'none'
16337 });
16338
16339 this.onLeaved();
16340 // dom结构首次出现 触发的是entering
16341 // dom结构已经存在(例如设置了cache),触发的是mounting
16342 } else if (this.state.status === 'entering' || this.state.status === 'mounting') {
16343 this.setState({
16344 status: 'none'
16345 });
16346
16347 this.onEntered();
16348 }
16349 };
16350
16351 Overlay.prototype.onEntering = function onEntering() {
16352 var _this4 = this;
16353
16354 if (this._isDestroyed) {
16355 return;
16356 }
16357
16358 // make sure overlay.ref has been called (eg: menu/popup-item called overlay.getInstance().getContentNode().)
16359 setTimeout(function () {
16360 var wrapperNode = _this4.getWrapperNode();
16361 _util.dom.addClass(wrapperNode, 'opened');
16362 _this4.props.onOpen();
16363 });
16364 };
16365
16366 Overlay.prototype.onLeaving = function onLeaving() {
16367 var wrapperNode = this.getWrapperNode();
16368 _util.dom.removeClass(wrapperNode, 'opened');
16369 this.props.onClose();
16370 };
16371
16372 Overlay.prototype.onEntered = function onEntered() {
16373 _manager2.default.addOverlay(this);
16374 this.setFocusNode();
16375 this.props.afterOpen();
16376 };
16377
16378 Overlay.prototype.onLeaved = function onLeaved() {
16379 _manager2.default.removeOverlay(this);
16380 this.setFocusNode();
16381 this.props.afterClose();
16382 };
16383
16384 Overlay.prototype.beforeOpen = function beforeOpen() {
16385 if (this.props.disableScroll) {
16386 var containerNode = getContainerNode(this.props) || document.body;
16387 var _containerNode$style = containerNode.style,
16388 overflow = _containerNode$style.overflow,
16389 paddingRight = _containerNode$style.paddingRight;
16390
16391 var cnInfo = containerNodeList.find(function (m) {
16392 return m.containerNode === containerNode;
16393 }) || {
16394 containerNode: containerNode,
16395 count: 0
16396 };
16397
16398 /**
16399 * container 节点初始状态已经是 overflow=hidden 则忽略
16400 * See {@link https://codesandbox.io/s/next-overlay-overflow-2-fulpq?file=/src/App.js}
16401 */
16402 if (cnInfo.count === 0 && overflow !== 'hidden') {
16403 var style = {
16404 overflow: 'hidden'
16405 };
16406
16407 cnInfo.overflow = overflow;
16408
16409 if (_util.dom.hasScroll(containerNode)) {
16410 cnInfo.paddingRight = paddingRight;
16411 style.paddingRight = _util.dom.getStyle(containerNode, 'paddingRight') + _util.dom.scrollbar().width + 'px';
16412 }
16413
16414 _util.dom.setStyle(containerNode, style);
16415 containerNodeList.push(cnInfo);
16416 cnInfo.count++;
16417 } else if (cnInfo.count) {
16418 cnInfo.count++;
16419 }
16420
16421 this._containerNode = containerNode;
16422 }
16423 };
16424
16425 Overlay.prototype.beforeClose = function beforeClose() {
16426 var _this5 = this;
16427
16428 if (this.props.disableScroll) {
16429 var idx = containerNodeList.findIndex(function (cn) {
16430 return cn.containerNode === _this5._containerNode;
16431 });
16432
16433 if (idx !== -1) {
16434 var cnInfo = containerNodeList[idx];
16435 var overflow = cnInfo.overflow,
16436 paddingRight = cnInfo.paddingRight;
16437
16438 // 最后一个 overlay 的时候再将样式重置回去
16439 // 此时 overflow 应该值在 beforeOpen 中设置的 hidden
16440
16441 if (cnInfo.count === 1 && this._containerNode && this._containerNode.style.overflow === 'hidden') {
16442 var style = {
16443 overflow: overflow
16444 };
16445
16446 if (paddingRight !== undefined) {
16447 style.paddingRight = paddingRight;
16448 }
16449
16450 _util.dom.setStyle(this._containerNode, style);
16451 }
16452
16453 cnInfo.count--;
16454
16455 if (cnInfo.count === 0) {
16456 containerNodeList.splice(idx, 1);
16457 }
16458 }
16459 this._containerNode = undefined;
16460 }
16461 };
16462
16463 Overlay.prototype.setFocusNode = function setFocusNode() {
16464 var _this6 = this;
16465
16466 if (!this.props.autoFocus) {
16467 return;
16468 }
16469
16470 if (this.state.visible && !this._hasFocused) {
16471 saveLastFocusNode();
16472 // 这个时候很可能上一个弹层的关闭事件还未触发,导致焦点已经回到触发的元素
16473 // 这里延时处理一下,延时的时间为 document.click 捕获触发的延时时间
16474 this.focusTimeout = setTimeout(function () {
16475 var node = _this6.getContentNode();
16476 if (node) {
16477 var focusNodeList = getFocusNodeList(node);
16478 if (focusNodeList.length) {
16479 focusNodeList[0].focus();
16480 }
16481 _this6._hasFocused = true;
16482 }
16483 }, 100);
16484 } else if (!this.state.visible && this._hasFocused) {
16485 backLastFocusNode();
16486 this._hasFocused = false;
16487 }
16488 };
16489
16490 Overlay.prototype.getContent = function getContent() {
16491 return this.contentRef;
16492 };
16493
16494 Overlay.prototype.getContentNode = function getContentNode() {
16495 try {
16496 return (0, _reactDom.findDOMNode)(this.contentRef);
16497 } catch (err) {
16498 return null;
16499 }
16500 };
16501
16502 Overlay.prototype.getWrapperNode = function getWrapperNode() {
16503 return this.gatewayRef ? this.gatewayRef.getChildNode() : null;
16504 };
16505
16506 /**
16507 * document global event
16508 */
16509
16510 Overlay.prototype.addDocumentEvents = function addDocumentEvents() {
16511 var useCapture = this.props.useCapture;
16512 // use capture phase listener to be compatible with react17
16513 // https://reactjs.org/blog/2020/08/10/react-v17-rc.html#fixing-potential-issues
16514
16515 if (this.props.canCloseByEsc) {
16516 this._keydownEvents = _util.events.on(document, 'keydown', this.handleDocumentKeyDown, useCapture);
16517 }
16518
16519 if (this.props.canCloseByOutSideClick) {
16520 this._clickEvents = _util.events.on(document, 'click', this.handleDocumentClick, useCapture);
16521 this._touchEvents = _util.events.on(document, 'touchend', this.handleDocumentClick, useCapture);
16522 }
16523 };
16524
16525 Overlay.prototype.removeDocumentEvents = function removeDocumentEvents() {
16526 var _this7 = this;
16527
16528 ['_keydownEvents', '_clickEvents', '_touchEvents'].forEach(function (event) {
16529 if (_this7[event]) {
16530 _this7[event].off();
16531 _this7[event] = null;
16532 }
16533 });
16534 };
16535
16536 Overlay.prototype.handleDocumentKeyDown = function handleDocumentKeyDown(e) {
16537 if (this.state.visible && e.keyCode === _util.KEYCODE.ESC && _manager2.default.isCurrentOverlay(this)) {
16538 this.props.onRequestClose('keyboard', e);
16539 }
16540 };
16541
16542 Overlay.prototype.isInShadowDOM = function isInShadowDOM(node) {
16543 return node.getRootNode ? node.getRootNode().nodeType === 11 : false;
16544 };
16545
16546 Overlay.prototype.getEventPath = function getEventPath(event) {
16547 // 参考 https://github.com/spring-media/react-shadow-dom-retarget-events/blob/master/index.js#L29
16548 return event.path || event.composedPath && event.composedPath() || this.composedPath(event.target);
16549 };
16550
16551 Overlay.prototype.composedPath = function composedPath(el) {
16552 var path = [];
16553 while (el) {
16554 path.push(el);
16555 if (el.tagName === 'HTML') {
16556 path.push(document);
16557 path.push(window);
16558 return path;
16559 }
16560 el = el.parentElement;
16561 }
16562 };
16563
16564 Overlay.prototype.matchInShadowDOM = function matchInShadowDOM(node, e) {
16565 if (this.isInShadowDOM(node)) {
16566 // Shadow DOM 环境中,触发点击事件,监听 document click 事件获得的事件源
16567 // 并非实际触发的 dom 节点,而是 Shadow DOM 的 host 节点
16568 // 进而会导致如 Select 组件的下拉弹层打开后立即关闭等问题
16569 // 因此额外增加 node 和 eventPath 的判断
16570 var eventPath = this.getEventPath(e);
16571 return node === eventPath[0] || node.contains(eventPath[0]);
16572 }
16573
16574 return false;
16575 };
16576
16577 Overlay.prototype.handleDocumentClick = function handleDocumentClick(e) {
16578 var _this8 = this;
16579
16580 if (this.state.visible) {
16581 var safeNode = this.props.safeNode;
16582
16583 var safeNodes = Array.isArray(safeNode) ? [].concat(safeNode) : [safeNode];
16584 safeNodes.unshift(function () {
16585 return _this8.getWrapperNode();
16586 });
16587
16588 for (var i = 0; i < safeNodes.length; i++) {
16589 var node = (0, _findNode2.default)(safeNodes[i], this.props);
16590 // HACK: 如果触发点击的节点是弹层内部的节点,并且在被点击后立即销毁,那么此时无法使用 node.contains(e.target)
16591 // 来判断此时点击的节点是否是弹层内部的节点,额外判断
16592 if (node && (node === e.target || node.contains(e.target) || this.matchInShadowDOM(node, e) || e.target !== document && !document.documentElement.contains(e.target))) {
16593 return;
16594 }
16595 }
16596
16597 this.props.onRequestClose('docClick', e);
16598 }
16599 };
16600
16601 Overlay.prototype.handleMaskClick = function handleMaskClick(e) {
16602 if (e.currentTarget === e.target && this.props.canCloseByMask) {
16603 this.props.onRequestClose('maskClick', e);
16604 }
16605 };
16606
16607 // 兼容过去的用法: this.popupRef.getInstance().overlay.getInstance().getContentNode()
16608 Overlay.prototype.getInstance = function getInstance() {
16609 return this;
16610 };
16611
16612 Overlay.prototype.render = function render() {
16613 var _props = this.props,
16614 prefix = _props.prefix,
16615 className = _props.className,
16616 style = _props.style,
16617 propChildren = _props.children,
16618 target = _props.target,
16619 align = _props.align,
16620 offset = _props.offset,
16621 container = _props.container,
16622 hasMask = _props.hasMask,
16623 needAdjust = _props.needAdjust,
16624 autoFit = _props.autoFit,
16625 beforePosition = _props.beforePosition,
16626 onPosition = _props.onPosition,
16627 wrapperStyle = _props.wrapperStyle,
16628 rtl = _props.rtl,
16629 propShouldUpdatePosition = _props.shouldUpdatePosition,
16630 cache = _props.cache,
16631 wrapperClassName = _props.wrapperClassName,
16632 onMaskMouseEnter = _props.onMaskMouseEnter,
16633 onMaskMouseLeave = _props.onMaskMouseLeave,
16634 maskClass = _props.maskClass,
16635 isChildrenInMask = _props.isChildrenInMask,
16636 pinFollowBaseElementWhenFixed = _props.pinFollowBaseElementWhenFixed;
16637 var _state = this.state,
16638 stateVisible = _state.visible,
16639 status = _state.status,
16640 animation = _state.animation;
16641
16642 var children = stateVisible || cache && this._isMounted ? propChildren : null;
16643 if (children) {
16644 var _classnames, _classnames2;
16645
16646 var child = _react.Children.only(children);
16647 // if chlild is a functional component wrap in a component to allow a ref to be set
16648 if (typeof child.type === 'function' && !(child.type.prototype instanceof _react.Component)) {
16649 child = _react2.default.createElement('div', { role: 'none' }, child);
16650 }
16651 var childClazz = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'overlay-inner'] = true, _classnames[animation.in] = status === 'entering' || status === 'mounting', _classnames[animation.out] = status === 'leaving', _classnames[child.props.className] = !!child.props.className, _classnames[className] = !!className, _classnames));
16652 if (typeof child.ref === 'string') {
16653 throw new Error('Can not set ref by string in Overlay, use function instead.');
16654 }
16655
16656 children = _react2.default.cloneElement(child, {
16657 className: childClazz,
16658 style: (0, _extends3.default)({}, child.props.style, style),
16659 ref: makeChain(this.saveContentRef, child.ref),
16660 'aria-hidden': !stateVisible && cache && this._isMounted,
16661 onClick: makeChain(this.props.onClick, child.props.onClick),
16662 onTouchEnd: makeChain(this.props.onTouchEnd, child.props.onTouchEnd)
16663 });
16664
16665 if (align) {
16666 var shouldUpdatePosition = status === 'leaving' ? false : propShouldUpdatePosition;
16667 children = _react2.default.createElement(_position2.default, {
16668 children: children,
16669 target: target,
16670 align: align,
16671 offset: offset,
16672 autoFit: autoFit,
16673 container: container,
16674 needAdjust: needAdjust,
16675 pinFollowBaseElementWhenFixed: pinFollowBaseElementWhenFixed,
16676 beforePosition: beforePosition,
16677 onPosition: makeChain(this.handlePosition, onPosition),
16678 shouldUpdatePosition: shouldUpdatePosition,
16679 rtl: rtl
16680 });
16681 }
16682
16683 var wrapperClazz = (0, _classnames4.default)([prefix + 'overlay-wrapper', wrapperClassName]);
16684 var newWrapperStyle = (0, _extends3.default)({}, {
16685 display: stateVisible ? '' : 'none'
16686 }, wrapperStyle);
16687
16688 var maskClazz = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'overlay-backdrop'] = true, _classnames2[maskClass] = !!maskClass, _classnames2));
16689
16690 children = _react2.default.createElement('div', { className: wrapperClazz, style: newWrapperStyle, dir: rtl ? 'rtl' : undefined }, hasMask ? _react2.default.createElement('div', {
16691 className: maskClazz,
16692 onClick: this.handleMaskClick,
16693 onMouseEnter: onMaskMouseEnter,
16694 onMouseLeave: onMaskMouseLeave,
16695 dir: rtl ? 'rtl' : undefined
16696 }, isChildrenInMask && children) : null, !isChildrenInMask && children);
16697 }
16698
16699 return _react2.default.createElement(_gateway2.default, (0, _extends3.default)({ container: container, target: target, children: children }, { ref: this.saveGatewayRef }));
16700 };
16701
16702 return Overlay;
16703}(_react.Component), _class.propTypes = {
16704 prefix: _propTypes2.default.string,
16705 pure: _propTypes2.default.bool,
16706 rtl: _propTypes2.default.bool,
16707 className: _propTypes2.default.string,
16708 style: _propTypes2.default.object,
16709 /**
16710 * 弹层内容
16711 */
16712 children: _propTypes2.default.any,
16713 /**
16714 * 是否显示弹层
16715 */
16716 visible: _propTypes2.default.bool,
16717 /**
16718 * 弹层请求关闭时触发事件的回调函数
16719 * @param {String} type 弹层关闭的来源
16720 * @param {Object} e DOM 事件
16721 */
16722 onRequestClose: _propTypes2.default.func,
16723 /**
16724 * 弹层定位的参照元素
16725 */
16726 target: _propTypes2.default.any,
16727 /**
16728 * 弹层相对于参照元素的定位, 详见开发指南的[定位部分](#定位)
16729 */
16730 align: _propTypes2.default.string,
16731 /**
16732 * 弹层相对于trigger的定位的微调, 接收数组[hoz, ver], 表示弹层在 left / top 上的增量
16733 * e.g. [100, 100] 表示往右(RTL 模式下是往左) 、下分布偏移100px
16734 */
16735 offset: _propTypes2.default.array,
16736 /**
16737 * 渲染组件的容器,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点
16738 */
16739 container: _propTypes2.default.any,
16740 /**
16741 * 是否显示遮罩
16742 */
16743 hasMask: _propTypes2.default.bool,
16744 /**
16745 * 是否支持 esc 按键关闭弹层
16746 */
16747 canCloseByEsc: _propTypes2.default.bool,
16748 /**
16749 * 点击弹层外的区域是否关闭弹层,不显示遮罩时生效
16750 */
16751 canCloseByOutSideClick: _propTypes2.default.bool,
16752 /**
16753 * 点击遮罩区域是否关闭弹层,显示遮罩时生效
16754 */
16755 canCloseByMask: _propTypes2.default.bool,
16756 /**
16757 * 弹层打开前触发事件的回调函数
16758 */
16759 beforeOpen: _propTypes2.default.func,
16760 /**
16761 * 弹层打开时触发事件的回调函数
16762 */
16763 onOpen: _propTypes2.default.func,
16764 /**
16765 * 弹层打开后触发事件的回调函数, 如果有动画,则在动画结束后触发
16766 */
16767 afterOpen: _propTypes2.default.func,
16768 /**
16769 * 弹层关闭前触发事件的回调函数
16770 */
16771 beforeClose: _propTypes2.default.func,
16772 /**
16773 * 弹层关闭时触发事件的回调函数
16774 */
16775 onClose: _propTypes2.default.func,
16776 /**
16777 * 弹层关闭后触发事件的回调函数, 如果有动画,则在动画结束后触发
16778 */
16779 afterClose: _propTypes2.default.func,
16780 /**
16781 * 弹层定位完成前触发的事件
16782 */
16783 beforePosition: _propTypes2.default.func,
16784 /**
16785 * 弹层定位完成时触发的事件
16786 * @param {Object} config 定位的参数
16787 * @param {Array} config.align 对齐方式,如 ['cc', 'cc'](如果开启 needAdjust,可能和预先设置的 align 不同)
16788 * @param {Number} config.top 距离视口顶部距离
16789 * @param {Number} config.left 距离视口左侧距离
16790 * @param {Object} node 定位参照的容器节点
16791 */
16792 onPosition: _propTypes2.default.func,
16793 shouldUpdatePosition: _propTypes2.default.bool,
16794 /**
16795 * 弹层打开时是否让其中的元素自动获取焦点
16796 */
16797 autoFocus: _propTypes2.default.bool,
16798 needAdjust: _propTypes2.default.bool,
16799 /**
16800 * 是否禁用页面滚动
16801 */
16802 disableScroll: _propTypes2.default.bool,
16803 /**
16804 * 是否在捕获阶段监听,适配 react 17 事件模型变更
16805 * @version 1.25
16806 */
16807 useCapture: _propTypes2.default.bool,
16808 /**
16809 * 隐藏时是否保留子节点
16810 */
16811 cache: _propTypes2.default.bool,
16812 /**
16813 * 安全节点,当点击 document 的时候,如果包含该节点则不会关闭弹层,如果是函数需要返回 ref,如果是字符串则是该 DOM 的 id,也可以直接传入 DOM 节点,或者以上值组成的数组
16814 */
16815 safeNode: _propTypes2.default.any,
16816 /**
16817 * 弹层的根节点的样式类
16818 */
16819 wrapperClassName: _propTypes2.default.string,
16820 /**
16821 * 弹层的根节点的内联样式
16822 */
16823 wrapperStyle: _propTypes2.default.object,
16824 /**
16825 * 配置动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画。 请参考 Animate 组件的文档获取可用的动画名
16826 * @default { in: 'expandInDown', out: 'expandOutUp' }
16827 */
16828 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
16829 onMaskMouseEnter: _propTypes2.default.func,
16830 onMaskMouseLeave: _propTypes2.default.func,
16831 onClick: _propTypes2.default.func,
16832 maskClass: _propTypes2.default.string,
16833 isChildrenInMask: _propTypes2.default.bool,
16834 // 当 pin 元素(一般是弹层)是 fixed 布局的时候,pin 元素是否要跟随 base 元素(一般是trigger)
16835 // 举例来说,dialog/drawer 这类组件弹层是不跟随trigger的,而 fixed 布局下的subNav是跟随trigger的
16836 pinFollowBaseElementWhenFixed: _propTypes2.default.bool,
16837 /**
16838 * 开启 v2 版本
16839 * @version 1.25
16840 */
16841 v2: _propTypes2.default.bool,
16842 /**
16843 * [v2] align 的数组形式,不能和 align 同时使用
16844 * @version 1.25
16845 */
16846 points: _propTypes2.default.array
16847}, _class.defaultProps = {
16848 prefix: 'next-',
16849 pure: false,
16850 visible: false,
16851 onRequestClose: noop,
16852 target: _position2.default.VIEWPORT,
16853 align: 'tl bl',
16854 offset: [0, 0],
16855 hasMask: false,
16856 canCloseByEsc: true,
16857 canCloseByOutSideClick: true,
16858 canCloseByMask: true,
16859 beforeOpen: noop,
16860 onOpen: noop,
16861 afterOpen: noop,
16862 beforeClose: noop,
16863 onClose: noop,
16864 afterClose: noop,
16865 beforePosition: noop,
16866 onPosition: noop,
16867 onMaskMouseEnter: noop,
16868 onMaskMouseLeave: noop,
16869 shouldUpdatePosition: false,
16870 autoFocus: false,
16871 needAdjust: true,
16872 disableScroll: false,
16873 cache: false,
16874 isChildrenInMask: false,
16875 onTouchEnd: function onTouchEnd(event) {
16876 event.stopPropagation();
16877 },
16878 onClick: function onClick(event) {
16879 return event.stopPropagation();
16880 },
16881 maskClass: '',
16882 useCapture: true
16883}, _temp);
16884Overlay.displayName = 'Overlay';
16885exports.default = (0, _reactLifecyclesCompat.polyfill)(Overlay);
16886module.exports = exports['default'];
16887
16888/***/ }),
16889/* 137 */
16890/***/ (function(module, exports, __webpack_require__) {
16891
16892"use strict";
16893
16894
16895exports.__esModule = true;
16896
16897var _classCallCheck2 = __webpack_require__(2);
16898
16899var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
16900
16901var _possibleConstructorReturn2 = __webpack_require__(3);
16902
16903var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
16904
16905var _inherits2 = __webpack_require__(4);
16906
16907var _inherits3 = _interopRequireDefault(_inherits2);
16908
16909var _class, _temp;
16910
16911var _react = __webpack_require__(0);
16912
16913var _react2 = _interopRequireDefault(_react);
16914
16915var _reactDom = __webpack_require__(12);
16916
16917var _propTypes = __webpack_require__(5);
16918
16919var _propTypes2 = _interopRequireDefault(_propTypes);
16920
16921var _reactLifecyclesCompat = __webpack_require__(10);
16922
16923var _util = __webpack_require__(6);
16924
16925var _findNode = __webpack_require__(60);
16926
16927var _findNode2 = _interopRequireDefault(_findNode);
16928
16929function _interopRequireDefault(obj) {
16930 return obj && obj.__esModule ? obj : { default: obj };
16931}
16932
16933var makeChain = _util.func.makeChain;
16934
16935var getContainerNode = function getContainerNode(props) {
16936 var targetNode = (0, _findNode2.default)(props.target);
16937 return (0, _findNode2.default)(props.container, targetNode);
16938};
16939
16940var Gateway = (_temp = _class = function (_Component) {
16941 (0, _inherits3.default)(Gateway, _Component);
16942
16943 function Gateway(props) {
16944 (0, _classCallCheck3.default)(this, Gateway);
16945
16946 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
16947
16948 _this.updateContainer = function () {
16949 var containerNode = getContainerNode(_this.props);
16950
16951 if (containerNode !== _this.state.containerNode) {
16952 // eslint-disable-next-line
16953 _this.setState({
16954 containerNode: containerNode
16955 });
16956 }
16957 };
16958
16959 _this.saveChildRef = function (ref) {
16960 _this.child = ref;
16961 };
16962
16963 _this.state = {
16964 containerNode: null
16965 };
16966 return _this;
16967 }
16968
16969 Gateway.prototype.componentDidMount = function componentDidMount() {
16970 this.updateContainer();
16971 };
16972
16973 Gateway.prototype.componentDidUpdate = function componentDidUpdate() {
16974 this.updateContainer();
16975 };
16976
16977 Gateway.prototype.getChildNode = function getChildNode() {
16978 try {
16979 return (0, _reactDom.findDOMNode)(this.child);
16980 } catch (err) {
16981 return null;
16982 }
16983 };
16984
16985 Gateway.prototype.render = function render() {
16986 var containerNode = this.state.containerNode;
16987
16988 if (!containerNode) {
16989 return null;
16990 }
16991
16992 var children = this.props.children;
16993
16994 var child = children ? _react.Children.only(children) : null;
16995 if (!child) {
16996 return null;
16997 }
16998
16999 if (typeof child.ref === 'string') {
17000 throw new Error('Can not set ref by string in Gateway, use function instead.');
17001 }
17002 child = _react2.default.cloneElement(child, {
17003 ref: makeChain(this.saveChildRef, child.ref)
17004 });
17005
17006 return (0, _reactDom.createPortal)(child, containerNode);
17007 };
17008
17009 return Gateway;
17010}(_react.Component), _class.propTypes = {
17011 children: _propTypes2.default.node,
17012 container: _propTypes2.default.any,
17013 target: _propTypes2.default.any
17014}, _class.defaultProps = {
17015 container: function container() {
17016 return document.body;
17017 }
17018}, _temp);
17019Gateway.displayName = 'Gateway';
17020exports.default = (0, _reactLifecyclesCompat.polyfill)(Gateway);
17021module.exports = exports['default'];
17022
17023/***/ }),
17024/* 138 */
17025/***/ (function(module, exports, __webpack_require__) {
17026
17027"use strict";
17028
17029
17030exports.__esModule = true;
17031exports.default = undefined;
17032
17033var _classCallCheck2 = __webpack_require__(2);
17034
17035var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
17036
17037var _possibleConstructorReturn2 = __webpack_require__(3);
17038
17039var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
17040
17041var _inherits2 = __webpack_require__(4);
17042
17043var _inherits3 = _interopRequireDefault(_inherits2);
17044
17045var _class, _temp;
17046
17047var _react = __webpack_require__(0);
17048
17049var _reactDom = __webpack_require__(12);
17050
17051var _propTypes = __webpack_require__(5);
17052
17053var _propTypes2 = _interopRequireDefault(_propTypes);
17054
17055var _resizeObserverPolyfill = __webpack_require__(58);
17056
17057var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);
17058
17059var _util = __webpack_require__(6);
17060
17061var _position = __webpack_require__(277);
17062
17063var _position2 = _interopRequireDefault(_position);
17064
17065var _findNode = __webpack_require__(60);
17066
17067var _findNode2 = _interopRequireDefault(_findNode);
17068
17069function _interopRequireDefault(obj) {
17070 return obj && obj.__esModule ? obj : { default: obj };
17071}
17072
17073var noop = _util.func.noop,
17074 bindCtx = _util.func.bindCtx;
17075var getStyle = _util.dom.getStyle;
17076
17077var place = _position2.default.place;
17078
17079var Position = (_temp = _class = function (_Component) {
17080 (0, _inherits3.default)(Position, _Component);
17081
17082 function Position(props) {
17083 (0, _classCallCheck3.default)(this, Position);
17084
17085 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
17086
17087 _this.observe = function () {
17088 var contentNode = _this.getContentNode();
17089 contentNode && _this.resizeObserver.observe(contentNode);
17090 };
17091
17092 _this.unobserve = function () {
17093 _this.resizeObserver.disconnect();
17094 };
17095
17096 bindCtx(_this, ['handleResize']);
17097
17098 _this.resizeObserver = new _resizeObserverPolyfill2.default(_this.handleResize);
17099 return _this;
17100 }
17101
17102 Position.prototype.componentDidMount = function componentDidMount() {
17103 this.setPosition();
17104
17105 if (this.props.needListenResize) {
17106 _util.events.on(window, 'resize', this.handleResize);
17107 this.observe();
17108 }
17109 };
17110
17111 Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
17112 var props = this.props;
17113
17114 if ('align' in props && props.align !== prevProps.align || props.shouldUpdatePosition) {
17115 this.shouldUpdatePosition = true;
17116 }
17117
17118 if (this.shouldUpdatePosition) {
17119 clearTimeout(this.resizeTimeout);
17120
17121 this.setPosition();
17122 this.shouldUpdatePosition = false;
17123 }
17124 };
17125
17126 Position.prototype.componentWillUnmount = function componentWillUnmount() {
17127 if (this.props.needListenResize) {
17128 _util.events.off(window, 'resize', this.handleResize);
17129 this.unobserve();
17130 }
17131
17132 clearTimeout(this.resizeTimeout);
17133 };
17134
17135 Position.prototype.setPosition = function setPosition() {
17136 var _props = this.props,
17137 align = _props.align,
17138 offset = _props.offset,
17139 beforePosition = _props.beforePosition,
17140 onPosition = _props.onPosition,
17141 needAdjust = _props.needAdjust,
17142 container = _props.container,
17143 rtl = _props.rtl,
17144 pinFollowBaseElementWhenFixed = _props.pinFollowBaseElementWhenFixed,
17145 autoFit = _props.autoFit;
17146
17147 beforePosition();
17148
17149 var contentNode = this.getContentNode();
17150 var targetNode = this.getTargetNode();
17151
17152 if (contentNode && targetNode) {
17153 var resultAlign = place({
17154 pinElement: contentNode,
17155 baseElement: targetNode,
17156 pinFollowBaseElementWhenFixed: pinFollowBaseElementWhenFixed,
17157 align: align,
17158 offset: offset,
17159 autoFit: autoFit,
17160 container: container,
17161 needAdjust: needAdjust,
17162 isRtl: rtl
17163 });
17164 var top = getStyle(contentNode, 'top');
17165 var left = getStyle(contentNode, 'left');
17166
17167 onPosition({
17168 align: resultAlign.split(' '),
17169 top: top,
17170 left: left
17171 }, contentNode);
17172 }
17173 };
17174
17175 Position.prototype.getContentNode = function getContentNode() {
17176 try {
17177 return (0, _reactDom.findDOMNode)(this);
17178 } catch (err) {
17179 return null;
17180 }
17181 };
17182
17183 Position.prototype.getTargetNode = function getTargetNode() {
17184 var target = this.props.target;
17185
17186 return target === _position2.default.VIEWPORT ? _position2.default.VIEWPORT : (0, _findNode2.default)(target, this.props);
17187 };
17188
17189 Position.prototype.handleResize = function handleResize() {
17190 var _this2 = this;
17191
17192 clearTimeout(this.resizeTimeout);
17193
17194 this.resizeTimeout = setTimeout(function () {
17195 _this2.setPosition();
17196 }, 200);
17197 };
17198
17199 Position.prototype.render = function render() {
17200 return _react.Children.only(this.props.children);
17201 };
17202
17203 return Position;
17204}(_react.Component), _class.VIEWPORT = _position2.default.VIEWPORT, _class.propTypes = {
17205 children: _propTypes2.default.node,
17206 target: _propTypes2.default.any,
17207 container: _propTypes2.default.any,
17208 align: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
17209 offset: _propTypes2.default.array,
17210 beforePosition: _propTypes2.default.func,
17211 onPosition: _propTypes2.default.func,
17212 needAdjust: _propTypes2.default.bool,
17213 autoFit: _propTypes2.default.bool,
17214 needListenResize: _propTypes2.default.bool,
17215 shouldUpdatePosition: _propTypes2.default.bool,
17216 rtl: _propTypes2.default.bool,
17217 pinFollowBaseElementWhenFixed: _propTypes2.default.bool
17218}, _class.defaultProps = {
17219 align: 'tl bl',
17220 offset: [0, 0],
17221 beforePosition: noop,
17222 onPosition: noop,
17223 needAdjust: true,
17224 autoFit: false,
17225 needListenResize: true,
17226 shouldUpdatePosition: false,
17227 rtl: false
17228}, _temp);
17229Position.displayName = 'Position';
17230exports.default = Position;
17231module.exports = exports['default'];
17232
17233/***/ }),
17234/* 139 */
17235/***/ (function(module, exports) {
17236
17237function _objectWithoutPropertiesLoose(source, excluded) {
17238 if (source == null) return {};
17239 var target = {};
17240 var sourceKeys = Object.keys(source);
17241 var key, i;
17242
17243 for (i = 0; i < sourceKeys.length; i++) {
17244 key = sourceKeys[i];
17245 if (excluded.indexOf(key) >= 0) continue;
17246 target[key] = source[key];
17247 }
17248
17249 return target;
17250}
17251
17252module.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
17253
17254/***/ }),
17255/* 140 */
17256/***/ (function(module, exports, __webpack_require__) {
17257
17258"use strict";
17259
17260
17261exports.__esModule = true;
17262
17263var _extends2 = __webpack_require__(1);
17264
17265var _extends3 = _interopRequireDefault(_extends2);
17266
17267exports.getDisabledCompatibleTrigger = getDisabledCompatibleTrigger;
17268
17269var _react = __webpack_require__(0);
17270
17271var _react2 = _interopRequireDefault(_react);
17272
17273function _interopRequireDefault(obj) {
17274 return obj && obj.__esModule ? obj : { default: obj };
17275}
17276
17277function getDisabledCompatibleTrigger(element) {
17278 if (element.type.displayName === 'Config(Button)' && element.props.disabled) {
17279 var displayStyle = element.props.style && element.props.style.display ? element.props.style.display : 'inline-block';
17280 var child = _react2.default.cloneElement(element, {
17281 style: (0, _extends3.default)({}, element.props.style, {
17282 pointerEvents: 'none'
17283 })
17284 });
17285 return (
17286 // eslint-disable-next-line
17287 _react2.default.createElement('span', { style: { display: displayStyle, cursor: 'not-allowed' } }, child)
17288 );
17289 }
17290 return element;
17291}
17292
17293/***/ }),
17294/* 141 */
17295/***/ (function(module, exports, __webpack_require__) {
17296
17297"use strict";
17298
17299
17300exports.__esModule = true;
17301
17302var _extends2 = __webpack_require__(1);
17303
17304var _extends3 = _interopRequireDefault(_extends2);
17305
17306var _classCallCheck2 = __webpack_require__(2);
17307
17308var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
17309
17310var _possibleConstructorReturn2 = __webpack_require__(3);
17311
17312var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
17313
17314var _inherits2 = __webpack_require__(4);
17315
17316var _inherits3 = _interopRequireDefault(_inherits2);
17317
17318var _typeof2 = __webpack_require__(14);
17319
17320var _typeof3 = _interopRequireDefault(_typeof2);
17321
17322var _class, _temp;
17323
17324var _react = __webpack_require__(0);
17325
17326var _react2 = _interopRequireDefault(_react);
17327
17328var _reactDom = __webpack_require__(12);
17329
17330var _propTypes = __webpack_require__(5);
17331
17332var _propTypes2 = _interopRequireDefault(_propTypes);
17333
17334var _classnames = __webpack_require__(7);
17335
17336var _classnames2 = _interopRequireDefault(_classnames);
17337
17338var _reactLifecyclesCompat = __webpack_require__(10);
17339
17340var _subMenu = __webpack_require__(142);
17341
17342var _subMenu2 = _interopRequireDefault(_subMenu);
17343
17344var _configProvider = __webpack_require__(9);
17345
17346var _configProvider2 = _interopRequireDefault(_configProvider);
17347
17348var _util = __webpack_require__(6);
17349
17350var _util2 = __webpack_require__(89);
17351
17352function _interopRequireDefault(obj) {
17353 return obj && obj.__esModule ? obj : { default: obj };
17354}
17355
17356var bindCtx = _util.func.bindCtx;
17357var pickOthers = _util.obj.pickOthers,
17358 isNil = _util.obj.isNil;
17359
17360var noop = function noop() {};
17361var MENUITEM_OVERFLOWED_CLASSNAME = 'menuitem-overflowed';
17362
17363var getIndicatorsItem = function getIndicatorsItem(items, isPlaceholder) {
17364 var _cx;
17365
17366 var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '';
17367 var renderMore = arguments[3];
17368
17369 var moreCls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-more'] = true, _cx));
17370
17371 var style = {};
17372 // keep placehold to get width
17373 if (isPlaceholder) {
17374 style.visibility = 'hidden';
17375 style.display = 'inline-block';
17376 // indicators which not in use, just display: none
17377 } else if (items && items.length === 0) {
17378 style.display = 'none';
17379 style.visibility = 'unset';
17380 }
17381
17382 if (renderMore && typeof renderMore === 'function') {
17383 var moreNode = renderMore(items);
17384 var renderMoreCls = (0, _classnames2.default)(moreCls, moreNode.props && moreNode.props.className);
17385
17386 return _react2.default.isValidElement(moreNode) ? _react2.default.cloneElement(moreNode, {
17387 style: style,
17388 className: renderMoreCls
17389 }) : moreNode;
17390 }
17391
17392 return _react2.default.createElement(_subMenu2.default, { label: '\xB7\xB7\xB7', noIcon: true, className: moreCls, style: style }, items);
17393};
17394
17395var addIndicators = function addIndicators(_ref) {
17396 var children = _ref.children,
17397 lastVisibleIndex = _ref.lastVisibleIndex,
17398 prefix = _ref.prefix,
17399 renderMore = _ref.renderMore;
17400
17401 var arr = [];
17402
17403 _react2.default.Children.forEach(children, function (child, index) {
17404 if (!child) {
17405 return;
17406 }
17407 var overflowedItems = [];
17408
17409 if (index > lastVisibleIndex) {
17410 child = _react2.default.cloneElement(child, {
17411 key: child.key || 'more-' + index,
17412 style: { display: 'none' },
17413 className: (child && child.className || '') + ' ' + MENUITEM_OVERFLOWED_CLASSNAME
17414 });
17415 }
17416
17417 if (index === lastVisibleIndex + 1) {
17418 overflowedItems = children.slice(lastVisibleIndex + 1).map(function (c, i) {
17419 return _react2.default.cloneElement(c, {
17420 key: c.key || 'more-' + index + '-' + i
17421 });
17422 });
17423 arr.push(getIndicatorsItem(overflowedItems, false, prefix, renderMore));
17424 }
17425
17426 arr.push(child);
17427 });
17428
17429 arr.push(getIndicatorsItem([], true, prefix, renderMore));
17430
17431 return arr;
17432};
17433
17434var getNewChildren = function getNewChildren(_ref2) {
17435 var children = _ref2.children,
17436 root = _ref2.root,
17437 mode = _ref2.mode,
17438 lastVisibleIndex = _ref2.lastVisibleIndex,
17439 hozInLine = _ref2.hozInLine,
17440 prefix = _ref2.prefix,
17441 renderMore = _ref2.renderMore;
17442
17443 var k2n = {};
17444 var p2n = {};
17445
17446 var arr = hozInLine ? addIndicators({
17447 children: children,
17448 lastVisibleIndex: lastVisibleIndex,
17449 prefix: prefix,
17450 renderMore: renderMore
17451 }) : children;
17452
17453 var loop = function loop(children, posPrefix) {
17454 var indexWrapper = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : { index: 0 };
17455 var inlineLevel = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;
17456
17457 var keyArray = [];
17458 return _react.Children.map(children, function (child) {
17459 if (child && (typeof child.type === 'function' ||
17460 // `React.forwardRef(render)` returns a forwarding
17461 // object that includes `render` method, and the specific
17462 // `child.type` will be an object instead of a class or
17463 // function.
17464 (0, _typeof3.default)(child.type) === 'object') && 'menuChildType' in child.type) {
17465 var newChild = void 0;
17466
17467 var pos = void 0;
17468 var props = { root: root };
17469
17470 if (['item', 'submenu', 'group'].indexOf(child.type.menuChildType) > -1) {
17471 pos = posPrefix + '-' + indexWrapper.index++;
17472 var key = typeof child.key === 'string' ? child.key : pos;
17473
17474 // filter out duplicate keys
17475 if (keyArray.indexOf(key) > -1) {
17476 return;
17477 }
17478
17479 keyArray.push(key);
17480
17481 var level = pos.split('-').length - 1;
17482 k2n[key] = p2n[pos] = {
17483 key: key,
17484 pos: pos,
17485 mode: child.props.mode,
17486 type: child.type.menuChildType,
17487 disabled: child.props.disabled,
17488 label: child.props.label || child.props.children
17489 };
17490
17491 props.level = level;
17492 props.inlineLevel = inlineLevel;
17493 props._key = key;
17494 props.groupIndent = child.type.menuChildType === 'group' ? 1 : 0;
17495 }
17496
17497 // paddingLeft(or paddingRight in rtl) only make sense in inline mode
17498 // parent know children's inlineLevel
17499 // if parent's mode is popup, then children's inlineLevel must be 1;
17500 // else inlineLevel should add 1
17501 var childLevel = (child.props.mode || mode) === 'popup' ? 1 : inlineLevel + 1;
17502
17503 switch (child.type.menuChildType) {
17504 case 'submenu':
17505 newChild = (0, _react.cloneElement)(child, props, loop(child.props.children, pos, undefined, childLevel));
17506 break;
17507 case 'group':
17508 newChild = (0, _react.cloneElement)(child, props, loop(child.props.children, posPrefix, indexWrapper, props.level));
17509 break;
17510 case 'item':
17511 case 'divider':
17512 newChild = (0, _react.cloneElement)(child, props);
17513 break;
17514 default:
17515 newChild = child;
17516 break;
17517 }
17518
17519 return newChild;
17520 }
17521
17522 return child;
17523 });
17524 };
17525
17526 var newChildren = loop(arr, '0');
17527
17528 return {
17529 newChildren: newChildren,
17530 _k2n: k2n,
17531 _p2n: p2n
17532 };
17533};
17534
17535/**
17536 * Menu
17537 */
17538var Menu = (_temp = _class = function (_Component) {
17539 (0, _inherits3.default)(Menu, _Component);
17540
17541 function Menu(props) {
17542 (0, _classCallCheck3.default)(this, Menu);
17543
17544 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
17545
17546 _this.getUpdateChildren = function () {
17547 var _this$state = _this.state,
17548 root = _this$state.root,
17549 lastVisibleIndex = _this$state.lastVisibleIndex;
17550
17551 return getNewChildren((0, _extends3.default)({
17552 root: root,
17553 lastVisibleIndex: lastVisibleIndex
17554 }, _this.props));
17555 };
17556
17557 _this.menuContentRef = function (ref) {
17558 _this.menuContent = ref;
17559 };
17560
17561 _this.menuHeaderRef = function (ref) {
17562 _this.menuHeader = ref;
17563 };
17564
17565 _this.menuFooterRef = function (ref) {
17566 _this.menuFooter = ref;
17567 };
17568
17569 var _this$props = _this.props,
17570 prefix = _this$props.prefix,
17571 children = _this$props.children,
17572 selectedKeys = _this$props.selectedKeys,
17573 defaultSelectedKeys = _this$props.defaultSelectedKeys,
17574 focusedKey = _this$props.focusedKey,
17575 focusable = _this$props.focusable,
17576 autoFocus = _this$props.autoFocus,
17577 hozInLine = _this$props.hozInLine,
17578 renderMore = _this$props.renderMore;
17579
17580 _this.state = {
17581 lastVisibleIndex: undefined
17582 };
17583
17584 var _getNewChildren = getNewChildren((0, _extends3.default)({
17585 root: _this
17586 }, _this.props)),
17587 newChildren = _getNewChildren.newChildren,
17588 _k2n = _getNewChildren._k2n,
17589 _p2n = _getNewChildren._p2n;
17590
17591 var tabbableKey = focusable ? (0, _util2.getFirstAvaliablelChildKey)('0', _p2n) : undefined;
17592
17593 _this.state = {
17594 root: _this,
17595 lastVisibleIndex: undefined,
17596 newChildren: newChildren,
17597 _k2n: _k2n,
17598 _p2n: _p2n,
17599 tabbableKey: tabbableKey,
17600 openKeys: _this.getInitOpenKeys(props, _k2n, _p2n),
17601 selectedKeys: (0, _util2.normalizeToArray)(selectedKeys || defaultSelectedKeys),
17602 focusedKey: !isNil(_this.props.focusedKey) ? focusedKey : focusable && autoFocus ? tabbableKey : null
17603 };
17604
17605 bindCtx(_this, ['handleOpen', 'handleSelect', 'handleItemClick', 'handleItemKeyDown', 'onBlur', 'adjustChildrenWidth']);
17606
17607 _this.popupNodes = [];
17608 return _this;
17609 }
17610
17611 Menu.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
17612 var state = {};
17613
17614 if ('openKeys' in nextProps) {
17615 state.openKeys = (0, _util2.normalizeToArray)(nextProps.openKeys);
17616 // 从展开状态变为收起状态,才需要清空openKeys
17617 } else if ('mode' in nextProps && nextProps.mode === 'popup' && prevState.lastMode === 'inline') {
17618 state.openKeys = [];
17619 }
17620
17621 if ('selectedKeys' in nextProps) {
17622 state.selectedKeys = (0, _util2.normalizeToArray)(nextProps.selectedKeys);
17623 }
17624 if ('focusedKey' in nextProps) {
17625 state.focusedKey = nextProps.focusedKey;
17626 }
17627
17628 state.lastMode = nextProps.mode;
17629
17630 var _getNewChildren2 = getNewChildren((0, _extends3.default)({
17631 root: prevState.root,
17632 lastVisibleIndex: prevState.lastVisibleIndex
17633 }, nextProps)),
17634 newChildren = _getNewChildren2.newChildren,
17635 _k2n = _getNewChildren2._k2n,
17636 _p2n = _getNewChildren2._p2n;
17637
17638 state.newChildren = newChildren;
17639 state._k2n = _k2n;
17640 state._p2n = _p2n;
17641
17642 if (nextProps.focusable) {
17643 if (prevState.tabbableKey in _k2n) {
17644 if (prevState.focusedKey) {
17645 state.tabbableKey = prevState.focusedKey;
17646 }
17647 } else {
17648 state.tabbableKey = (0, _util2.getFirstAvaliablelChildKey)('0', _p2n);
17649 }
17650 }
17651
17652 return state;
17653 };
17654
17655 Menu.prototype.componentDidMount = function componentDidMount() {
17656 this.menuNode = (0, _reactDom.findDOMNode)(this);
17657
17658 this.adjustChildrenWidth();
17659
17660 if (this.props.hozInLine) {
17661 _util.events.on(window, 'resize', this.adjustChildrenWidth);
17662 }
17663 };
17664
17665 Menu.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
17666 if (prevState.lastVisibleIndex !== this.state.lastVisibleIndex) {
17667 this.adjustChildrenWidth();
17668 }
17669 };
17670
17671 Menu.prototype.componentWillUnmount = function componentWillUnmount() {
17672 _util.events.off(window, 'resize', this.adjustChildrenWidth);
17673 };
17674
17675 Menu.prototype.adjustChildrenWidth = function adjustChildrenWidth() {
17676 var _props = this.props,
17677 direction = _props.direction,
17678 prefix = _props.prefix,
17679 header = _props.header,
17680 footer = _props.footer,
17681 hozInLine = _props.hozInLine;
17682
17683 if (direction !== 'hoz' || !hozInLine) {
17684 return;
17685 }
17686
17687 if (!this.menuNode && !this.menuContent) {
17688 return;
17689 }
17690
17691 var children = [],
17692 spaceWidth = void 0;
17693
17694 if (header || footer) {
17695 children = this.menuContent.children;
17696 spaceWidth = (0, _util2.getWidth)(this.menuNode) - (0, _util2.getWidth)(this.menuHeader) - (0, _util2.getWidth)(this.menuFooter);
17697 } else {
17698 children = this.menuNode.children;
17699 spaceWidth = (0, _util2.getWidth)(this.menuNode);
17700 }
17701
17702 if (children.length < 2) {
17703 return;
17704 }
17705
17706 var currentSumWidth = 0,
17707 lastVisibleIndex = -1;
17708
17709 var moreNode = '';
17710
17711 var menuItemNodes = [].slice.call(children).filter(function (node) {
17712 if (node.className.split(' ').indexOf(prefix + 'menu-more') < 0) {
17713 return true;
17714 } else {
17715 moreNode = node;
17716 }
17717 return false;
17718 });
17719
17720 var overflowedItems = menuItemNodes.filter(function (c) {
17721 return c.className.split(' ').indexOf(MENUITEM_OVERFLOWED_CLASSNAME) >= 0;
17722 });
17723
17724 overflowedItems.forEach(function (c) {
17725 _util.dom.setStyle(c, 'display', 'inline-block');
17726 });
17727
17728 _util.dom.setStyle(moreNode, 'display', 'inline-block');
17729 var moreWidth = (0, _util2.getWidth)(moreNode);
17730
17731 this.menuItemSizes = menuItemNodes.map(function (c) {
17732 return (0, _util2.getWidth)(c);
17733 });
17734 var totalLen = this.menuItemSizes.length;
17735
17736 overflowedItems.forEach(function (c) {
17737 _util.dom.setStyle(c, 'display', 'none');
17738 });
17739
17740 this.menuItemSizes.forEach(function (liWidth, i) {
17741 currentSumWidth += liWidth;
17742 if (i >= totalLen - 1 && currentSumWidth <= spaceWidth || currentSumWidth + moreWidth <= spaceWidth) {
17743 lastVisibleIndex++;
17744 }
17745 });
17746
17747 if (lastVisibleIndex >= totalLen - 1) {
17748 _util.dom.setStyle(moreNode, 'display', 'none');
17749 }
17750
17751 this.setState((0, _extends3.default)({
17752 lastVisibleIndex: lastVisibleIndex
17753 }, this.getUpdateChildren()));
17754 };
17755
17756 Menu.prototype.onBlur = function onBlur(e) {
17757 this.setState({
17758 focusedKey: undefined
17759 });
17760
17761 this.props.onBlur && this.props.onBlur(e);
17762 };
17763
17764 Menu.prototype.getInitOpenKeys = function getInitOpenKeys(props, _k2n, _p2n) {
17765 var initOpenKeys = void 0;
17766
17767 var openKeys = props.openKeys,
17768 defaultOpenKeys = props.defaultOpenKeys,
17769 defaultOpenAll = props.defaultOpenAll,
17770 mode = props.mode,
17771 openMode = props.openMode;
17772
17773 if (openKeys) {
17774 initOpenKeys = openKeys;
17775 } else if (defaultOpenAll && mode === 'inline' && openMode === 'multiple') {
17776 initOpenKeys = Object.keys(_k2n).filter(function (key) {
17777 return _k2n[key].type === 'submenu';
17778 });
17779 } else {
17780 initOpenKeys = defaultOpenKeys;
17781 }
17782
17783 return (0, _util2.normalizeToArray)(initOpenKeys);
17784 };
17785
17786 Menu.prototype.handleOpen = function handleOpen(key, open, triggerType, e) {
17787 var newOpenKeys = void 0;
17788
17789 var _props2 = this.props,
17790 mode = _props2.mode,
17791 openMode = _props2.openMode;
17792 var _state = this.state,
17793 openKeys = _state.openKeys,
17794 _k2n = _state._k2n;
17795
17796 var index = openKeys.indexOf(key);
17797 if (open && index === -1) {
17798 if (mode === 'inline') {
17799 if (openMode === 'single') {
17800 newOpenKeys = openKeys.filter(function (k) {
17801 return _k2n[k] && !(0, _util2.isSibling)(_k2n[key].pos, _k2n[k].pos);
17802 });
17803 newOpenKeys.push(key);
17804 } else {
17805 newOpenKeys = openKeys.concat(key);
17806 }
17807 } else {
17808 newOpenKeys = openKeys.filter(function (k) {
17809 return _k2n[k] && (0, _util2.isAncestor)(_k2n[key].pos, _k2n[k].pos);
17810 });
17811 newOpenKeys.push(key);
17812 }
17813 } else if (!open && index > -1) {
17814 if (mode === 'inline') {
17815 newOpenKeys = [].concat(openKeys.slice(0, index), openKeys.slice(index + 1));
17816 } else if (triggerType === 'docClick') {
17817 if (!this.popupNodes.concat(this.menuNode).some(function (node) {
17818 return node.contains(e.target);
17819 })) {
17820 newOpenKeys = [];
17821 }
17822 } else {
17823 newOpenKeys = openKeys.filter(function (k) {
17824 return k !== key && _k2n[k] && !(0, _util2.isAncestor)(_k2n[k].pos, _k2n[key].pos);
17825 });
17826 }
17827 }
17828
17829 if (newOpenKeys) {
17830 if (isNil(this.props.openKeys)) {
17831 this.setState((0, _extends3.default)({
17832 openKeys: newOpenKeys
17833 }, this.getUpdateChildren()));
17834 }
17835
17836 this.props.onOpen(newOpenKeys, {
17837 key: key,
17838 open: open
17839 });
17840 }
17841 };
17842
17843 Menu.prototype.getPath = function getPath(key, _k2n, _p2n) {
17844 var keyPath = [];
17845 var labelPath = [];
17846
17847 var pos = _k2n[key].pos;
17848 var nums = pos.split('-');
17849 for (var i = 1; i < nums.length - 1; i++) {
17850 var parentNums = nums.slice(0, i + 1);
17851 var parentPos = parentNums.join('-');
17852 var parent = _p2n[parentPos];
17853 keyPath.push(parent.key);
17854 labelPath.push(parent.label);
17855 }
17856
17857 return {
17858 keyPath: keyPath,
17859 labelPath: labelPath
17860 };
17861 };
17862
17863 Menu.prototype.handleSelect = function handleSelect(key, select, menuItem) {
17864 var _state2 = this.state,
17865 _k2n = _state2._k2n,
17866 _p2n = _state2._p2n;
17867
17868 var pos = _k2n[key].pos;
17869 var level = pos.split('-').length - 1;
17870 if (this.props.shallowSelect && level > 1) {
17871 return;
17872 }
17873
17874 var newSelectedKeys = void 0;
17875
17876 var selectMode = this.props.selectMode;
17877 var selectedKeys = this.state.selectedKeys;
17878
17879 var index = selectedKeys.indexOf(key);
17880 if (select && index === -1) {
17881 if (selectMode === 'single') {
17882 newSelectedKeys = [key];
17883 } else if (selectMode === 'multiple') {
17884 newSelectedKeys = selectedKeys.concat(key);
17885 }
17886 } else if (!select && index > -1 && selectMode === 'multiple') {
17887 newSelectedKeys = [].concat(selectedKeys.slice(0, index), selectedKeys.slice(index + 1));
17888 }
17889
17890 if (newSelectedKeys) {
17891 if (isNil(this.props.selectedKeys)) {
17892 this.setState({
17893 selectedKeys: newSelectedKeys
17894 });
17895 }
17896
17897 this.props.onSelect(newSelectedKeys, menuItem, (0, _extends3.default)({
17898 key: key,
17899 select: select,
17900 label: _k2n[key].label
17901 }, this.getPath(key, _k2n, _p2n)));
17902 }
17903 };
17904
17905 Menu.prototype.handleItemClick = function handleItemClick(key, item, e) {
17906 var _k2n = this.state._k2n;
17907
17908 if (this.props.focusable) {
17909 if (isNil(this.props.focusedKey)) {
17910 this.setState({
17911 focusedKey: key
17912 });
17913 }
17914
17915 this.props.onItemFocus(key, item, e);
17916 }
17917
17918 if (item.props.type === 'item') {
17919 if (item.props.parentMode === 'popup' && this.state.openKeys.length) {
17920 if (isNil(this.props.openKeys)) {
17921 this.setState({
17922 openKeys: []
17923 });
17924 }
17925
17926 this.props.onOpen([], {
17927 key: this.state.openKeys.sort(function (prevKey, nextKey) {
17928 return _k2n[nextKey].pos.split('-').length - _k2n[prevKey].pos.split('-').length;
17929 })[0],
17930 open: false
17931 });
17932 }
17933
17934 this.props.onItemClick(key, item, e);
17935 }
17936 };
17937
17938 Menu.prototype.getAvailableKey = function getAvailableKey(pos, prev) {
17939 var _p2n = this.state._p2n;
17940
17941 var ps = Object.keys(_p2n).filter(function (p) {
17942 return (0, _util2.isAvailablePos)(pos, p, _p2n);
17943 });
17944 if (ps.length > 1) {
17945 var index = ps.indexOf(pos);
17946 var targetIndex = void 0;
17947 if (prev) {
17948 targetIndex = index === 0 ? ps.length - 1 : index - 1;
17949 } else {
17950 targetIndex = index === ps.length - 1 ? 0 : index + 1;
17951 }
17952
17953 return _p2n[ps[targetIndex]].key;
17954 }
17955
17956 return null;
17957 };
17958
17959 Menu.prototype.getParentKey = function getParentKey(pos) {
17960 return this.state._p2n[pos.slice(0, pos.length - 2)].key;
17961 };
17962
17963 Menu.prototype.handleItemKeyDown = function handleItemKeyDown(key, type, item, e) {
17964 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.RIGHT, _util.KEYCODE.LEFT, _util.KEYCODE.ENTER, _util.KEYCODE.ESC, _util.KEYCODE.SPACE].indexOf(e.keyCode) > -1) {
17965 e.preventDefault();
17966 e.stopPropagation();
17967 }
17968
17969 var focusedKey = this.state.focusedKey;
17970 var _state3 = this.state,
17971 _p2n = _state3._p2n,
17972 _k2n = _state3._k2n;
17973 var direction = this.props.direction;
17974
17975 var pos = _k2n[key].pos;
17976 var level = pos.split('-').length - 1;
17977 switch (e.keyCode) {
17978 case _util.KEYCODE.UP:
17979 {
17980 var avaliableKey = this.getAvailableKey(pos, true);
17981 if (avaliableKey) {
17982 focusedKey = avaliableKey;
17983 }
17984 break;
17985 }
17986 case _util.KEYCODE.DOWN:
17987 {
17988 var _avaliableKey = void 0;
17989 if (direction === 'hoz' && level === 1 && type === 'submenu') {
17990 this.handleOpen(key, true);
17991 _avaliableKey = (0, _util2.getFirstAvaliablelChildKey)(pos, _p2n);
17992 } else {
17993 _avaliableKey = this.getAvailableKey(pos, false);
17994 }
17995 if (_avaliableKey) {
17996 focusedKey = _avaliableKey;
17997 }
17998 break;
17999 }
18000 case _util.KEYCODE.RIGHT:
18001 {
18002 var _avaliableKey2 = void 0;
18003 if (direction === 'hoz' && level === 1) {
18004 _avaliableKey2 = this.getAvailableKey(pos, false);
18005 } else if (type === 'submenu') {
18006 this.handleOpen(key, true);
18007 _avaliableKey2 = (0, _util2.getFirstAvaliablelChildKey)(pos, _p2n);
18008 }
18009 if (_avaliableKey2) {
18010 focusedKey = _avaliableKey2;
18011 }
18012 break;
18013 }
18014 case _util.KEYCODE.ENTER:
18015 {
18016 if (type === 'submenu') {
18017 this.handleOpen(key, true);
18018 var _avaliableKey3 = (0, _util2.getFirstAvaliablelChildKey)(pos, _p2n);
18019 if (_avaliableKey3) {
18020 focusedKey = _avaliableKey3;
18021 }
18022 }
18023 break;
18024 }
18025 case _util.KEYCODE.LEFT:
18026 {
18027 if (direction === 'hoz' && level === 1) {
18028 var _avaliableKey4 = this.getAvailableKey(pos, true);
18029 if (_avaliableKey4) {
18030 focusedKey = _avaliableKey4;
18031 }
18032 } else if (level > 1) {
18033 var parentKey = this.getParentKey(pos);
18034 this.handleOpen(parentKey, false);
18035 focusedKey = parentKey;
18036 }
18037 break;
18038 }
18039 case _util.KEYCODE.ESC:
18040 if (level > 1) {
18041 var _parentKey = this.getParentKey(pos);
18042 this.handleOpen(_parentKey, false);
18043 focusedKey = _parentKey;
18044 }
18045 break;
18046
18047 case _util.KEYCODE.TAB:
18048 focusedKey = null;
18049 break;
18050 default:
18051 break;
18052 }
18053
18054 if (focusedKey !== this.state.focusedKey) {
18055 if (isNil(this.props.focusedKey)) {
18056 this.setState({
18057 focusedKey: focusedKey
18058 });
18059 }
18060
18061 this.props.onItemKeyDown(focusedKey, item, e);
18062 this.props.onItemFocus(focusedKey, e);
18063 }
18064 };
18065
18066 Menu.prototype.render = function render() {
18067 var _cx2;
18068
18069 var _props3 = this.props,
18070 prefix = _props3.prefix,
18071 className = _props3.className,
18072 direction = _props3.direction,
18073 hozAlign = _props3.hozAlign,
18074 header = _props3.header,
18075 footer = _props3.footer,
18076 embeddable = _props3.embeddable,
18077 selectMode = _props3.selectMode,
18078 hozInLine = _props3.hozInLine,
18079 rtl = _props3.rtl,
18080 flatenContent = _props3.flatenContent;
18081 var newChildren = this.state.newChildren;
18082
18083 var others = pickOthers(Object.keys(Menu.propTypes), this.props);
18084
18085 var newClassName = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'menu'] = true, _cx2[prefix + 'ver'] = direction === 'ver', _cx2[prefix + 'hoz'] = direction === 'hoz', _cx2[prefix + 'menu-embeddable'] = embeddable, _cx2[prefix + 'menu-nowrap'] = hozInLine, _cx2[prefix + 'menu-selectable-' + selectMode] = selectMode, _cx2[className] = !!className, _cx2));
18086
18087 var role = direction === 'hoz' ? 'menubar' : 'menu';
18088 var ariaMultiselectable = void 0;
18089 if ('selectMode' in this.props) {
18090 role = 'listbox';
18091 ariaMultiselectable = !!(selectMode === 'multiple');
18092 }
18093
18094 var headerElement = header ? _react2.default.createElement('li', { className: prefix + 'menu-header', ref: this.menuHeaderRef }, header) : null;
18095 var itemsElement = !flatenContent && (header || footer) ? _react2.default.createElement('ul', { className: prefix + 'menu-content', ref: this.menuContentRef }, newChildren) : newChildren;
18096 var footerElement = footer ? _react2.default.createElement('li', { className: prefix + 'menu-footer', ref: this.menuFooterRef }, footer) : null;
18097 var shouldWrapItemsAndFooter = hozAlign === 'right' && !!header;
18098
18099 if (rtl) {
18100 others.dir = 'rtl';
18101 }
18102
18103 return _react2.default.createElement('ul', (0, _extends3.default)({
18104 role: role,
18105 onBlur: this.onBlur,
18106 className: newClassName,
18107 onKeyDown: this.handleEnter,
18108 'aria-multiselectable': ariaMultiselectable
18109 }, others), headerElement, shouldWrapItemsAndFooter ? _react2.default.createElement('div', { className: prefix + 'menu-hoz-right' }, itemsElement, footerElement) : null, !shouldWrapItemsAndFooter ? itemsElement : null, !shouldWrapItemsAndFooter ? footerElement : null);
18110 };
18111
18112 return Menu;
18113}(_react.Component), _class.isNextMenu = true, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
18114 prefix: _propTypes2.default.string,
18115 pure: _propTypes2.default.bool,
18116 rtl: _propTypes2.default.bool,
18117 className: _propTypes2.default.string,
18118 /**
18119 * 菜单项和子菜单
18120 */
18121 children: _propTypes2.default.node,
18122 /**
18123 * 点击菜单项触发的回调函数
18124 * @param {String} key 点击的菜单项的 key 值
18125 * @param {Object} item 点击的菜单项对象
18126 * @param {Object} event 点击的事件对象
18127 */
18128 onItemClick: _propTypes2.default.func,
18129 /**
18130 * 当前打开的子菜单的 key 值
18131 */
18132 openKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18133 /**
18134 * 初始打开的子菜单的 key 值
18135 */
18136 defaultOpenKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18137 /**
18138 * 初始展开所有的子菜单,只在 mode 设置为 'inline' 以及 openMode 设置为 'multiple' 下生效,优先级高于 defaultOpenKeys
18139 */
18140 defaultOpenAll: _propTypes2.default.bool,
18141 /**
18142 * 打开或关闭子菜单触发的回调函数
18143 * @param {Array} key 打开的所有子菜单的 key 值
18144 * @param {Object} extra 额外参数
18145 * @param {String} extra.key 当前操作子菜单的 key 值
18146 * @param {Boolean} extra.open 是否是打开
18147 */
18148 onOpen: _propTypes2.default.func,
18149 /**
18150 * 子菜单打开的模式
18151 */
18152 mode: _propTypes2.default.oneOf(['inline', 'popup']),
18153 /**
18154 * 子菜单打开的触发行为
18155 */
18156 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
18157 /**
18158 * 展开内连子菜单的模式,同时可以展开一个子菜单还是多个子菜单,该属性仅在 mode 为 inline 时生效
18159 */
18160 openMode: _propTypes2.default.oneOf(['single', 'multiple']),
18161 /**
18162 * 内连子菜单缩进距离
18163 */
18164 inlineIndent: _propTypes2.default.number,
18165 inlineArrowDirection: _propTypes2.default.oneOf(['down', 'right']),
18166 /**
18167 * 是否自动让弹层的宽度和菜单项保持一致,如果弹层的宽度比菜单项小则和菜单项保持一致,如果宽度大于菜单项则不做处理
18168 */
18169 popupAutoWidth: _propTypes2.default.bool,
18170 /**
18171 * 弹层的对齐方式
18172 */
18173 popupAlign: _propTypes2.default.oneOf(['follow', 'outside']),
18174 /**
18175 * 弹层自定义 props
18176 */
18177 popupProps: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
18178 /**
18179 * 弹出子菜单自定义 className
18180 */
18181 popupClassName: _propTypes2.default.string,
18182 /**
18183 * 弹出子菜单自定义 style
18184 */
18185 popupStyle: _propTypes2.default.object,
18186 /**
18187 * 当前选中菜单项的 key 值
18188 */
18189 selectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18190 /**
18191 * 初始选中菜单项的 key 值
18192 */
18193 defaultSelectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
18194 /**
18195 * 选中或取消选中菜单项触发的回调函数
18196 * @param {Array} selectedKeys 选中的所有菜单项的值
18197 * @param {Object} item 选中或取消选中的菜单项
18198 * @param {Object} extra 额外参数
18199 * @param {Boolean} extra.select 是否是选中
18200 * @param {Array} extra.key 菜单项的 key
18201 * @param {Object} extra.label 菜单项的文本
18202 * @param {Array} extra.keyPath 菜单项 key 的路径
18203 */
18204 onSelect: _propTypes2.default.func,
18205 /**
18206 * 选中模式,单选还是多选,默认无值,不可选
18207 */
18208 selectMode: _propTypes2.default.oneOf(['single', 'multiple']),
18209 /**
18210 * 是否只能选择第一层菜单项(不能选择子菜单中的菜单项)
18211 */
18212 shallowSelect: _propTypes2.default.bool,
18213 /**
18214 * 是否显示选中图标,如果设置为 false 需配合配置平台设置选中时的背景色以示区分
18215 */
18216 hasSelectedIcon: _propTypes2.default.bool,
18217 labelToggleChecked: _propTypes2.default.bool,
18218 /**
18219 * 是否将选中图标居右,仅当 hasSelectedIcon 为true 时生效。
18220 * 注意:SubMenu 上的选中图标一直居左,不受此API控制
18221 */
18222 isSelectIconRight: _propTypes2.default.bool,
18223 /**
18224 * 菜单第一层展示方向
18225 */
18226 direction: _propTypes2.default.oneOf(['ver', 'hoz']),
18227 /**
18228 * 横向菜单条 item 和 footer 的对齐方向,在 direction 设置为 'hoz' 并且 header 存在时生效
18229 */
18230 hozAlign: _propTypes2.default.oneOf(['left', 'right']),
18231 /**
18232 * 横向菜单模式下,是否维持在一行,即超出一行折叠成 SubMenu 显示, 仅在 direction='hoz' mode='popup' 时生效
18233 */
18234 hozInLine: _propTypes2.default.bool,
18235 renderMore: _propTypes2.default.func,
18236 /**
18237 * 自定义菜单头部
18238 */
18239 header: _propTypes2.default.node,
18240 /**
18241 * 自定义菜单尾部
18242 */
18243 footer: _propTypes2.default.node,
18244 /**
18245 * 是否自动获得焦点
18246 */
18247 autoFocus: _propTypes2.default.bool,
18248 /**
18249 * 当前获得焦点的子菜单或菜单项 key 值
18250 */
18251 focusedKey: _propTypes2.default.string,
18252 focusable: _propTypes2.default.bool,
18253 onItemFocus: _propTypes2.default.func,
18254 onBlur: _propTypes2.default.func,
18255 /**
18256 * 是否开启嵌入式模式,一般用于Layout的布局中,开启后没有默认背景、外层border、box-shadow,可以配合`<Menu style={{lineHeight: '100px'}}>` 自定义高度
18257 * @version 1.18
18258 */
18259 embeddable: _propTypes2.default.bool,
18260 onItemKeyDown: _propTypes2.default.func,
18261 expandAnimation: _propTypes2.default.bool,
18262 itemClassName: _propTypes2.default.string,
18263 /**
18264 * 可配置的icons,包括 select 等
18265 */
18266 icons: _propTypes2.default.object,
18267 // content 是否为单层模式,目前主要在有 header 或 footer 的时候有意义
18268 flatenContent: _propTypes2.default.bool
18269}), _class.defaultProps = {
18270 prefix: 'next-',
18271 pure: false,
18272 defaultOpenKeys: [],
18273 defaultOpenAll: false,
18274 onOpen: noop,
18275 mode: 'inline',
18276 triggerType: 'click',
18277 openMode: 'multiple',
18278 inlineIndent: 20,
18279 inlineArrowDirection: 'down',
18280 popupAutoWidth: false,
18281 popupAlign: 'follow',
18282 popupProps: {},
18283 defaultSelectedKeys: [],
18284 onSelect: noop,
18285 shallowSelect: false,
18286 hasSelectedIcon: true,
18287 isSelectIconRight: false,
18288 labelToggleChecked: true,
18289 direction: 'ver',
18290 hozAlign: 'left',
18291 hozInLine: false,
18292 autoFocus: false,
18293 focusable: true,
18294 embeddable: false,
18295 onItemFocus: noop,
18296 onItemKeyDown: noop,
18297 onItemClick: noop,
18298 expandAnimation: true,
18299 icons: {}
18300}, _temp);
18301Menu.displayName = 'Menu';
18302exports.default = (0, _reactLifecyclesCompat.polyfill)(Menu);
18303module.exports = exports['default'];
18304
18305/***/ }),
18306/* 142 */
18307/***/ (function(module, exports, __webpack_require__) {
18308
18309"use strict";
18310
18311
18312exports.__esModule = true;
18313exports.default = undefined;
18314
18315var _objectWithoutProperties2 = __webpack_require__(8);
18316
18317var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
18318
18319var _extends2 = __webpack_require__(1);
18320
18321var _extends3 = _interopRequireDefault(_extends2);
18322
18323var _typeof2 = __webpack_require__(14);
18324
18325var _typeof3 = _interopRequireDefault(_typeof2);
18326
18327var _classCallCheck2 = __webpack_require__(2);
18328
18329var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
18330
18331var _possibleConstructorReturn2 = __webpack_require__(3);
18332
18333var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
18334
18335var _inherits2 = __webpack_require__(4);
18336
18337var _inherits3 = _interopRequireDefault(_inherits2);
18338
18339var _class, _temp;
18340
18341var _react = __webpack_require__(0);
18342
18343var _react2 = _interopRequireDefault(_react);
18344
18345var _reactDom = __webpack_require__(12);
18346
18347var _propTypes = __webpack_require__(5);
18348
18349var _propTypes2 = _interopRequireDefault(_propTypes);
18350
18351var _classnames = __webpack_require__(7);
18352
18353var _classnames2 = _interopRequireDefault(_classnames);
18354
18355var _animate = __webpack_require__(20);
18356
18357var _animate2 = _interopRequireDefault(_animate);
18358
18359var _icon = __webpack_require__(11);
18360
18361var _icon2 = _interopRequireDefault(_icon);
18362
18363var _util = __webpack_require__(6);
18364
18365var _item = __webpack_require__(37);
18366
18367var _item2 = _interopRequireDefault(_item);
18368
18369var _selectableItem = __webpack_require__(88);
18370
18371var _selectableItem2 = _interopRequireDefault(_selectableItem);
18372
18373var _popupItem = __webpack_require__(143);
18374
18375var _popupItem2 = _interopRequireDefault(_popupItem);
18376
18377var _util2 = __webpack_require__(89);
18378
18379function _interopRequireDefault(obj) {
18380 return obj && obj.__esModule ? obj : { default: obj };
18381}
18382
18383var Expand = _animate2.default.Expand;
18384var bindCtx = _util.func.bindCtx;
18385
18386/**
18387 * Menu.SubMenu
18388 * @order 1
18389 */
18390
18391var SubMenu = (_temp = _class = function (_Component) {
18392 (0, _inherits3.default)(SubMenu, _Component);
18393
18394 function SubMenu(props) {
18395 (0, _classCallCheck3.default)(this, SubMenu);
18396
18397 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
18398
18399 bindCtx(_this, ['handleMouseEnter', 'handleMouseLeave', 'handleClick', 'handleOpen', 'afterLeave']);
18400 return _this;
18401 }
18402
18403 SubMenu.prototype.componentDidMount = function componentDidMount() {
18404 this.itemNode = (0, _reactDom.findDOMNode)(this);
18405 };
18406
18407 SubMenu.prototype.afterLeave = function afterLeave() {
18408 var _props = this.props,
18409 focused = _props.focused,
18410 root = _props.root;
18411 var focusable = root.props.focusable;
18412
18413 if (focusable && focused) {
18414 this.itemNode.focus();
18415 }
18416 };
18417
18418 SubMenu.prototype.getOpen = function getOpen() {
18419 var _props2 = this.props,
18420 _key = _props2._key,
18421 root = _props2.root;
18422 var openKeys = root.state.openKeys;
18423
18424 return openKeys.indexOf(_key) > -1;
18425 };
18426
18427 SubMenu.prototype.handleMouseEnter = function handleMouseEnter(e) {
18428 this.handleOpen(true);
18429
18430 this.props.onMouseEnter && this.props.onMouseEnter(e);
18431 };
18432
18433 SubMenu.prototype.handleMouseLeave = function handleMouseLeave(e) {
18434 this.handleOpen(false);
18435
18436 this.props.onMouseLeave && this.props.onMouseLeave(e);
18437 };
18438
18439 SubMenu.prototype.handleClick = function handleClick(e) {
18440 var _props3 = this.props,
18441 root = _props3.root,
18442 selectable = _props3.selectable;
18443 var selectMode = root.props.selectMode;
18444
18445 if (selectMode && selectable) {
18446 e.stopPropagation();
18447 }
18448
18449 var open = this.getOpen();
18450 this.handleOpen(!open);
18451 };
18452
18453 SubMenu.prototype.handleOpen = function handleOpen(open, triggerType, e) {
18454 var _props4 = this.props,
18455 _key = _props4._key,
18456 root = _props4.root;
18457
18458 root.handleOpen(_key, open, triggerType, e);
18459 };
18460
18461 SubMenu.prototype.passParentToChildren = function passParentToChildren(children) {
18462 var _this2 = this;
18463
18464 var _props5 = this.props,
18465 mode = _props5.mode,
18466 root = _props5.root;
18467
18468 return _react.Children.map(children, function (child) {
18469 // to fix https://github.com/alibaba-fusion/next/issues/952
18470 if (typeof child !== 'function' && (typeof child === 'undefined' ? 'undefined' : (0, _typeof3.default)(child)) !== 'object') {
18471 return child;
18472 }
18473
18474 return (0, _react.cloneElement)(child, {
18475 parent: _this2,
18476 parentMode: mode || root.props.mode
18477 });
18478 });
18479 };
18480
18481 SubMenu.prototype.renderInline = function renderInline() {
18482 var _cx, _cx2, _cx3, _cx4;
18483
18484 var _props6 = this.props,
18485 _key = _props6._key,
18486 level = _props6.level,
18487 inlineLevel = _props6.inlineLevel,
18488 root = _props6.root,
18489 className = _props6.className,
18490 selectableFromProps = _props6.selectable,
18491 label = _props6.label,
18492 children = _props6.children,
18493 noIcon = _props6.noIcon,
18494 subMenuContentClassName = _props6.subMenuContentClassName,
18495 propsTriggerType = _props6.triggerType,
18496 parentMode = _props6.parentMode;
18497 var _root$props = root.props,
18498 prefix = _root$props.prefix,
18499 selectMode = _root$props.selectMode,
18500 rootTriggerType = _root$props.triggerType,
18501 inlineArrowDirection = _root$props.inlineArrowDirection,
18502 expandAnimation = _root$props.expandAnimation,
18503 rtl = _root$props.rtl;
18504
18505 var triggerType = propsTriggerType || rootTriggerType;
18506 var open = this.getOpen();
18507
18508 var _root$state = root.state,
18509 selectedKeys = _root$state.selectedKeys,
18510 _k2n = _root$state._k2n;
18511
18512 var isChildSelected = (0, _util2.getChildSelected)({
18513 _key: _key,
18514 _k2n: _k2n,
18515 selectMode: selectMode,
18516 selectedKeys: selectedKeys
18517 });
18518
18519 var others = _util.obj.pickOthers(Object.keys(SubMenu.propTypes), this.props);
18520
18521 var liProps = {
18522 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-sub-menu-wrapper'] = true, _cx[className] = !!className, _cx))
18523 };
18524 var itemProps = {
18525 'aria-expanded': open,
18526 _key: _key,
18527 level: level,
18528 role: 'listitem',
18529 inlineLevel: inlineLevel,
18530 root: root,
18531 type: 'submenu',
18532 component: 'div',
18533 parentMode: parentMode,
18534 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'opened'] = open, _cx2[prefix + 'child-selected'] = isChildSelected, _cx2))
18535 };
18536
18537 if (typeof label === 'string') {
18538 itemProps.title = label;
18539 }
18540
18541 var arrorProps = {
18542 type: inlineArrowDirection === 'right' ? 'arrow-right' : 'arrow-down',
18543 className: (0, _classnames2.default)((_cx3 = {}, _cx3[prefix + 'menu-icon-arrow'] = true, _cx3[prefix + 'menu-icon-arrow-down'] = inlineArrowDirection === 'down', _cx3[prefix + 'menu-icon-arrow-right'] = inlineArrowDirection === 'right', _cx3[prefix + 'open'] = open, _cx3))
18544 };
18545
18546 var selectable = !!selectMode && selectableFromProps;
18547 var NewItem = selectable ? _selectableItem2.default : _item2.default;
18548
18549 if (triggerType === 'hover') {
18550 liProps.onMouseEnter = this.handleMouseEnter;
18551 liProps.onMouseLeave = this.handleMouseLeave;
18552 } else if (selectable) {
18553 arrorProps.onClick = this.handleClick;
18554 } else {
18555 itemProps.onClick = this.handleClick;
18556 }
18557
18558 var newSubMenuContentClassName = (0, _classnames2.default)((_cx4 = {}, _cx4[prefix + 'menu-sub-menu'] = true, _cx4[subMenuContentClassName] = !!subMenuContentClassName, _cx4));
18559
18560 var roleMenu = 'menu',
18561 roleItem = 'menuitem';
18562 if ('selectMode' in root.props) {
18563 roleMenu = 'listbox';
18564 roleItem = 'option';
18565 }
18566
18567 var subMenu = open ? _react2.default.createElement('ul', { role: roleMenu, dir: rtl ? 'rtl' : undefined, className: newSubMenuContentClassName }, this.passParentToChildren(children)) : null;
18568
18569 return _react2.default.createElement('li', (0, _extends3.default)({ role: roleItem }, others, liProps), _react2.default.createElement(NewItem, itemProps, _react2.default.createElement('span', { className: prefix + 'menu-item-text' }, label), noIcon ? null : _react2.default.createElement(_icon2.default, arrorProps)), expandAnimation ? _react2.default.createElement(Expand, { animationAppear: false, afterLeave: this.afterLeave }, subMenu) : subMenu);
18570 };
18571
18572 SubMenu.prototype.renderPopup = function renderPopup() {
18573 var _cx5;
18574
18575 var _props7 = this.props,
18576 children = _props7.children,
18577 subMenuContentClassName = _props7.subMenuContentClassName,
18578 noIcon = _props7.noIcon,
18579 others = (0, _objectWithoutProperties3.default)(_props7, ['children', 'subMenuContentClassName', 'noIcon']);
18580
18581 var root = this.props.root;
18582 var _root$props2 = root.props,
18583 prefix = _root$props2.prefix,
18584 popupClassName = _root$props2.popupClassName,
18585 popupStyle = _root$props2.popupStyle,
18586 rtl = _root$props2.rtl;
18587
18588 var newClassName = (0, _classnames2.default)((_cx5 = {}, _cx5[prefix + 'menu'] = true, _cx5[prefix + 'ver'] = true, _cx5[popupClassName] = !!popupClassName, _cx5[subMenuContentClassName] = !!subMenuContentClassName, _cx5));
18589
18590 others.rtl = rtl;
18591
18592 return _react2.default.createElement(_popupItem2.default, (0, _extends3.default)({}, others, { noIcon: noIcon, hasSubMenu: true }), _react2.default.createElement('ul', { role: 'menu', dir: rtl ? 'rtl' : undefined, className: newClassName, style: popupStyle }, this.passParentToChildren(children)));
18593 };
18594
18595 SubMenu.prototype.render = function render() {
18596 var _props8 = this.props,
18597 mode = _props8.mode,
18598 root = _props8.root;
18599
18600 var newMode = mode || root.props.mode;
18601
18602 return newMode === 'popup' ? this.renderPopup() : this.renderInline();
18603 };
18604
18605 return SubMenu;
18606}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
18607 _key: _propTypes2.default.string,
18608 root: _propTypes2.default.object,
18609 level: _propTypes2.default.number,
18610 inlineLevel: _propTypes2.default.number,
18611 groupIndent: _propTypes2.default.number,
18612 /**
18613 * 标签内容
18614 */
18615 label: _propTypes2.default.node,
18616 /**
18617 * 是否可选,该属性仅在设置 Menu 组件 selectMode 属性后生效
18618 */
18619 selectable: _propTypes2.default.bool,
18620 /**
18621 * 子菜单打开方式,如果设置会覆盖 Menu 上的同名属性
18622 * @default Menu 的 mode 属性值
18623 */
18624 mode: _propTypes2.default.oneOf(['inline', 'popup']),
18625 /**
18626 * 是否需要提示当前项可展开的 icon,默认是有的
18627 */
18628 noIcon: _propTypes2.default.bool,
18629 /**
18630 * 菜单项或下一级子菜单
18631 */
18632 children: _propTypes2.default.node,
18633 onMouseEnter: _propTypes2.default.func,
18634 onMouseLeave: _propTypes2.default.func,
18635 subMenuContentClassName: _propTypes2.default.string,
18636 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
18637 align: _propTypes2.default.oneOf(['outside', 'follow']),
18638 parentMode: _propTypes2.default.oneOf(['inline', 'popup']),
18639 parent: _propTypes2.default.any
18640}, _class.defaultProps = {
18641 groupIndent: 0,
18642 noIcon: false,
18643 selectable: false
18644}, _temp);
18645SubMenu.displayName = 'SubMenu';
18646exports.default = SubMenu;
18647module.exports = exports['default'];
18648
18649/***/ }),
18650/* 143 */
18651/***/ (function(module, exports, __webpack_require__) {
18652
18653"use strict";
18654
18655
18656exports.__esModule = true;
18657exports.default = undefined;
18658
18659var _objectWithoutProperties2 = __webpack_require__(8);
18660
18661var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
18662
18663var _extends2 = __webpack_require__(1);
18664
18665var _extends3 = _interopRequireDefault(_extends2);
18666
18667var _classCallCheck2 = __webpack_require__(2);
18668
18669var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
18670
18671var _possibleConstructorReturn2 = __webpack_require__(3);
18672
18673var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
18674
18675var _inherits2 = __webpack_require__(4);
18676
18677var _inherits3 = _interopRequireDefault(_inherits2);
18678
18679var _class, _temp;
18680
18681var _react = __webpack_require__(0);
18682
18683var _react2 = _interopRequireDefault(_react);
18684
18685var _reactDom = __webpack_require__(12);
18686
18687var _propTypes = __webpack_require__(5);
18688
18689var _propTypes2 = _interopRequireDefault(_propTypes);
18690
18691var _classnames = __webpack_require__(7);
18692
18693var _classnames2 = _interopRequireDefault(_classnames);
18694
18695var _icon = __webpack_require__(11);
18696
18697var _icon2 = _interopRequireDefault(_icon);
18698
18699var _overlay = __webpack_require__(15);
18700
18701var _overlay2 = _interopRequireDefault(_overlay);
18702
18703var _util = __webpack_require__(6);
18704
18705var _item = __webpack_require__(37);
18706
18707var _item2 = _interopRequireDefault(_item);
18708
18709var _selectableItem = __webpack_require__(88);
18710
18711var _selectableItem2 = _interopRequireDefault(_selectableItem);
18712
18713var _util2 = __webpack_require__(89);
18714
18715function _interopRequireDefault(obj) {
18716 return obj && obj.__esModule ? obj : { default: obj };
18717}
18718
18719var bindCtx = _util.func.bindCtx;
18720var setStyle = _util.dom.setStyle;
18721
18722var Popup = _overlay2.default.Popup;
18723
18724/**
18725 * Menu.PopupItem
18726 * @order 2
18727 */
18728var PopupItem = (_temp = _class = function (_Component) {
18729 (0, _inherits3.default)(PopupItem, _Component);
18730
18731 function PopupItem(props) {
18732 (0, _classCallCheck3.default)(this, PopupItem);
18733
18734 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
18735
18736 bindCtx(_this, ['handleOpen', 'handlePopupOpen', 'handlePopupClose', 'getPopup']);
18737 return _this;
18738 }
18739
18740 PopupItem.prototype.getPopup = function getPopup(ref) {
18741 this.popup = ref;
18742 };
18743
18744 PopupItem.prototype.getOpen = function getOpen() {
18745 var _props = this.props,
18746 _key = _props._key,
18747 root = _props.root;
18748 var openKeys = root.state.openKeys;
18749
18750 return openKeys.indexOf(_key) > -1;
18751 };
18752
18753 PopupItem.prototype.getPopupProps = function getPopupProps() {
18754 var popupProps = this.props.root.props.popupProps;
18755
18756 if (typeof popupProps === 'function') {
18757 popupProps = popupProps(this.props);
18758 }
18759 return popupProps;
18760 };
18761
18762 PopupItem.prototype.handleOpen = function handleOpen(open, triggerType, e) {
18763 var _props2 = this.props,
18764 _key = _props2._key,
18765 root = _props2.root;
18766
18767 root.handleOpen(_key, open, triggerType, e);
18768
18769 var popupProps = this.popupProps;
18770 popupProps.onVisibleChange && popupProps.onVisibleChange(open, triggerType, e);
18771 };
18772
18773 PopupItem.prototype.handlePopupOpen = function handlePopupOpen() {
18774 var _props3 = this.props,
18775 root = _props3.root,
18776 level = _props3.level,
18777 align = _props3.align,
18778 autoWidth = _props3.autoWidth;
18779 var _root$props = root.props,
18780 rootPopupAutoWidth = _root$props.popupAutoWidth,
18781 rootPopupAlign = _root$props.popupAlign,
18782 direction = _root$props.direction;
18783
18784 var popupAlign = align || rootPopupAlign;
18785 var popupAutoWidth = 'autoWidth' in this.props ? autoWidth : rootPopupAutoWidth;
18786 try {
18787 // avoid errors while dom removed and js executing
18788 var itemNode = (0, _reactDom.findDOMNode)(this);
18789 var menuNode = itemNode.parentNode;
18790 this.popupNode = this.popup.getInstance().overlay.getInstance().getContentNode();
18791 root.popupNodes.push(this.popupNode);
18792
18793 if (popupAutoWidth) {
18794 var targetNode = direction === 'hoz' && level === 1 ? itemNode : menuNode;
18795
18796 if (targetNode.offsetWidth > this.popupNode.offsetWidth) {
18797 setStyle(this.popupNode, 'width', targetNode.offsetWidth + 'px');
18798 }
18799 }
18800 if (popupAlign === 'outside' && !(direction === 'hoz' && level === 1)) {
18801 setStyle(this.popupNode, 'height', menuNode.offsetHeight + 'px');
18802 this.popupNode.firstElementChild && setStyle(this.popupNode.firstElementChild, 'overflow-y', 'auto');
18803 }
18804 // removeClass(this.popupNode, `${prefix}hide`);
18805
18806 var popupProps = this.popupProps;
18807 popupProps.onOpen && popupProps.onOpen();
18808 } catch (error) {
18809 return null;
18810 }
18811 };
18812
18813 PopupItem.prototype.handlePopupClose = function handlePopupClose() {
18814 var root = this.props.root;
18815
18816 var popupNodes = root.popupNodes;
18817 var index = popupNodes.indexOf(this.popupNode);
18818 index > -1 && popupNodes.splice(index, 1);
18819
18820 var popupProps = this.popupProps;
18821 popupProps.onClose && popupProps.onClose();
18822 };
18823
18824 PopupItem.prototype.renderItem = function renderItem(selectable, children, others) {
18825 var _cx;
18826
18827 var _props4 = this.props,
18828 _key = _props4._key,
18829 root = _props4.root,
18830 level = _props4.level,
18831 inlineLevel = _props4.inlineLevel,
18832 label = _props4.label,
18833 className = _props4.className;
18834 var _root$props2 = root.props,
18835 prefix = _root$props2.prefix,
18836 selectMode = _root$props2.selectMode;
18837
18838 var NewItem = selectable ? _selectableItem2.default : _item2.default;
18839 var open = this.getOpen();
18840
18841 var _root$state = root.state,
18842 selectedKeys = _root$state.selectedKeys,
18843 _k2n = _root$state._k2n;
18844
18845 var isChildSelected = (0, _util2.getChildSelected)({
18846 _key: _key,
18847 _k2n: _k2n,
18848 selectMode: selectMode,
18849 selectedKeys: selectedKeys
18850 });
18851
18852 var itemProps = {
18853 'aria-haspopup': true,
18854 'aria-expanded': open,
18855 _key: _key,
18856 root: root,
18857 level: level,
18858 inlineLevel: inlineLevel,
18859 type: 'submenu'
18860 };
18861
18862 itemProps.className = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'opened'] = open, _cx[prefix + 'child-selected'] = isChildSelected, _cx[className] = !!className, _cx));
18863
18864 return _react2.default.createElement(NewItem, (0, _extends3.default)({}, itemProps, others), _react2.default.createElement('span', { className: prefix + 'menu-item-text' }, label), children);
18865 };
18866
18867 PopupItem.prototype.renderPopup = function renderPopup(trigger, triggerType, positionProps, children) {
18868 var _this2 = this;
18869
18870 var _props5 = this.props,
18871 root = _props5.root,
18872 level = _props5.level,
18873 selectable = _props5.selectable,
18874 propCls = _props5.className;
18875 var direction = root.props.direction;
18876
18877 this.popupProps = this.getPopupProps();
18878 var open = this.getOpen();
18879
18880 if (direction === 'hoz' && level === 1 && selectable) {
18881 positionProps.target = function () {
18882 return (0, _reactDom.findDOMNode)(_this2);
18883 };
18884 }
18885
18886 var posCls = positionProps.className,
18887 otherPostion = (0, _objectWithoutProperties3.default)(positionProps, ['className']);
18888
18889 var className = (0, _classnames2.default)(propCls, posCls);
18890
18891 return _react2.default.createElement(Popup, (0, _extends3.default)({
18892 ref: this.getPopup
18893 }, otherPostion, this.popupProps, {
18894 canCloseByEsc: false,
18895 trigger: trigger,
18896 triggerType: triggerType,
18897 visible: open,
18898 pinFollowBaseElementWhenFixed: true,
18899 onVisibleChange: this.handleOpen,
18900 onOpen: this.handlePopupOpen,
18901 onClose: this.handlePopupClose
18902 }), _react2.default.createElement('div', { className: className }, children));
18903 };
18904
18905 PopupItem.prototype.render = function render() {
18906 var _this3 = this;
18907
18908 var _props6 = this.props,
18909 root = _props6.root,
18910 level = _props6.level,
18911 hasSubMenu = _props6.hasSubMenu,
18912 selectableFromProps = _props6.selectable,
18913 children = _props6.children,
18914 triggerType = _props6.triggerType,
18915 align = _props6.align,
18916 noIcon = _props6.noIcon,
18917 rtl = _props6.rtl;
18918
18919 var others = _util.obj.pickOthers(Object.keys(PopupItem.propTypes), this.props);
18920 var _root$props3 = root.props,
18921 prefix = _root$props3.prefix,
18922 selectMode = _root$props3.selectMode,
18923 direction = _root$props3.direction,
18924 rootPopupAlign = _root$props3.popupAlign,
18925 rootTriggerType = _root$props3.triggerType;
18926
18927 var popupAlign = align || rootPopupAlign;
18928 var newTriggerType = triggerType || (hasSubMenu ? rootTriggerType : 'hover');
18929 var newChildren = Array.isArray(children) ? children[0] : children;
18930 // let newChildren = Array.isArray(children) ? children[0] : children;
18931 // newChildren = cloneElement(newChildren, {
18932 // className: cx({
18933 // [`${prefix}menu-popup-content`]: true,
18934 // [newChildren.props.className]: !!newChildren.props.className,
18935 // [`${prefix}hide`]: popupAutoWidth || popupAlign === 'outside'
18936 // })
18937 // });
18938 var selectable = selectMode && selectableFromProps;
18939 var triggerIsIcon = selectable && newTriggerType === 'click';
18940 var open = this.getOpen();
18941
18942 var positionProps = {};
18943 var arrowProps = void 0;
18944
18945 if (direction === 'hoz' && level === 1) {
18946 var _cx2;
18947
18948 positionProps.align = 'tl bl';
18949 positionProps.className = prefix + 'menu-spacing-tb';
18950
18951 arrowProps = {
18952 type: 'arrow-down',
18953 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'menu-hoz-icon-arrow'] = true, _cx2[prefix + 'open'] = open, _cx2))
18954 };
18955 } else {
18956 if (popupAlign === 'outside') {
18957 positionProps.target = function () {
18958 return (0, _reactDom.findDOMNode)(root);
18959 };
18960 positionProps.align = 'tl tr';
18961
18962 positionProps.className = prefix + 'menu-spacing-lr ' + prefix + 'menu-outside';
18963 } else {
18964 if (triggerIsIcon) {
18965 positionProps.target = function () {
18966 return (0, _reactDom.findDOMNode)(_this3);
18967 };
18968 }
18969 positionProps.align = 'tl tr';
18970 positionProps.className = prefix + 'menu-spacing-lr';
18971 }
18972
18973 arrowProps = {
18974 type: 'arrow-right',
18975 className: prefix + 'menu-icon-arrow ' + prefix + 'menu-symbol-popupfold'
18976 };
18977 }
18978
18979 var arrow = _react2.default.createElement(_icon2.default, arrowProps);
18980 var trigger = triggerIsIcon ? arrow : this.renderItem(selectable, noIcon ? null : arrow, others);
18981 var popup = this.renderPopup(trigger, newTriggerType, positionProps, newChildren);
18982 return triggerIsIcon ? this.renderItem(selectable, popup, others) : popup;
18983 };
18984
18985 return PopupItem;
18986}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
18987 _key: _propTypes2.default.string,
18988 root: _propTypes2.default.object,
18989 level: _propTypes2.default.number,
18990 hasSubMenu: _propTypes2.default.bool,
18991 noIcon: _propTypes2.default.bool,
18992 rtl: _propTypes2.default.bool,
18993 selectable: _propTypes2.default.bool,
18994 /**
18995 * 标签内容
18996 */
18997 label: _propTypes2.default.node,
18998 /**
18999 * 自定义弹层内容
19000 */
19001 children: _propTypes2.default.node,
19002 className: _propTypes2.default.string,
19003 /**
19004 * 子菜单打开的触发行为
19005 */
19006 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
19007 align: _propTypes2.default.oneOf(['outside', 'follow']),
19008 autoWidth: _propTypes2.default.bool
19009}, _class.defaultProps = {
19010 selectable: false,
19011 noIcon: false
19012}, _temp);
19013PopupItem.displayName = 'PopupItem';
19014exports.default = PopupItem;
19015module.exports = exports['default'];
19016
19017/***/ }),
19018/* 144 */
19019/***/ (function(module, exports, __webpack_require__) {
19020
19021"use strict";
19022
19023
19024exports.__esModule = true;
19025exports.default = undefined;
19026
19027var _extends2 = __webpack_require__(1);
19028
19029var _extends3 = _interopRequireDefault(_extends2);
19030
19031var _classCallCheck2 = __webpack_require__(2);
19032
19033var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19034
19035var _possibleConstructorReturn2 = __webpack_require__(3);
19036
19037var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19038
19039var _inherits2 = __webpack_require__(4);
19040
19041var _inherits3 = _interopRequireDefault(_inherits2);
19042
19043var _class, _temp;
19044
19045var _react = __webpack_require__(0);
19046
19047var _react2 = _interopRequireDefault(_react);
19048
19049var _propTypes = __webpack_require__(5);
19050
19051var _propTypes2 = _interopRequireDefault(_propTypes);
19052
19053var _checkbox = __webpack_require__(49);
19054
19055var _checkbox2 = _interopRequireDefault(_checkbox);
19056
19057var _radio = __webpack_require__(50);
19058
19059var _radio2 = _interopRequireDefault(_radio);
19060
19061var _util = __webpack_require__(6);
19062
19063var _item = __webpack_require__(37);
19064
19065var _item2 = _interopRequireDefault(_item);
19066
19067function _interopRequireDefault(obj) {
19068 return obj && obj.__esModule ? obj : { default: obj };
19069}
19070
19071var noop = {};
19072var bindCtx = _util.func.bindCtx;
19073var pickOthers = _util.obj.pickOthers;
19074var CheckableItem = (_temp = _class = function (_Component) {
19075 (0, _inherits3.default)(CheckableItem, _Component);
19076
19077 function CheckableItem(props) {
19078 (0, _classCallCheck3.default)(this, CheckableItem);
19079
19080 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
19081
19082 bindCtx(_this, ['stopPropagation', 'handleKeyDown', 'handleClick']);
19083 _this.id = _util.htmlId.escapeForId('checkable-item-' + (props.id || props._key));
19084 return _this;
19085 }
19086
19087 CheckableItem.prototype.stopPropagation = function stopPropagation(e) {
19088 e.stopPropagation();
19089 };
19090
19091 CheckableItem.prototype.handleCheck = function handleCheck(e) {
19092 var _props = this.props,
19093 checkType = _props.checkType,
19094 checked = _props.checked,
19095 onChange = _props.onChange;
19096
19097 if (!(checkType === 'radio' && checked)) {
19098 onChange(!checked, e);
19099 }
19100 };
19101
19102 CheckableItem.prototype.handleKeyDown = function handleKeyDown(e) {
19103 if (e.keyCode === _util.KEYCODE.SPACE && !this.props.checkDisabled) {
19104 this.handleCheck(e);
19105 }
19106
19107 this.props.onKeyDown && this.props.onKeyDown(e);
19108 };
19109
19110 CheckableItem.prototype.handleClick = function handleClick(e) {
19111 this.handleCheck(e);
19112
19113 this.props.onClick && this.props.onClick(e);
19114 };
19115
19116 CheckableItem.prototype.renderCheck = function renderCheck() {
19117 var _props2 = this.props,
19118 root = _props2.root,
19119 checked = _props2.checked,
19120 indeterminate = _props2.indeterminate,
19121 disabled = _props2.disabled,
19122 checkType = _props2.checkType,
19123 checkDisabled = _props2.checkDisabled,
19124 onChange = _props2.onChange;
19125 var labelToggleChecked = root.props.labelToggleChecked;
19126
19127 var Check = checkType === 'radio' ? _radio2.default : _checkbox2.default;
19128
19129 var checkProps = {
19130 tabIndex: '-1',
19131 checked: checked,
19132 disabled: disabled || checkDisabled
19133 };
19134 if (checkType === 'checkbox') {
19135 checkProps.indeterminate = indeterminate;
19136 }
19137 if (!labelToggleChecked) {
19138 checkProps.onChange = onChange;
19139 checkProps.onClick = this.stopPropagation;
19140 }
19141
19142 return _react2.default.createElement(Check, (0, _extends3.default)({ 'aria-labelledby': this.id }, checkProps));
19143 };
19144
19145 CheckableItem.prototype.render = function render() {
19146 var _props3 = this.props,
19147 _key = _props3._key,
19148 root = _props3.root,
19149 checked = _props3.checked,
19150 disabled = _props3.disabled,
19151 onClick = _props3.onClick,
19152 helper = _props3.helper,
19153 children = _props3.children;
19154 var _root$props = root.props,
19155 prefix = _root$props.prefix,
19156 labelToggleChecked = _root$props.labelToggleChecked;
19157
19158 var others = pickOthers(Object.keys(CheckableItem.propTypes), this.props);
19159
19160 var newProps = (0, _extends3.default)({
19161 _key: _key,
19162 root: root,
19163 disabled: disabled,
19164 type: 'item',
19165 onClick: onClick,
19166 onKeyDown: this.handleKeyDown
19167 }, others);
19168 if (labelToggleChecked && !disabled) {
19169 newProps.onClick = this.handleClick;
19170 }
19171
19172 var title = void 0;
19173 if (typeof children === 'string') {
19174 title = children;
19175 }
19176
19177 return _react2.default.createElement(_item2.default, (0, _extends3.default)({ 'aria-checked': checked, title: title }, newProps), this.renderCheck(), _react2.default.createElement('span', { className: prefix + 'menu-item-text', id: this.id }, children), helper ? _react2.default.createElement('div', { className: prefix + 'menu-item-helper' }, helper) : null);
19178 };
19179
19180 return CheckableItem;
19181}(_react.Component), _class.propTypes = {
19182 _key: _propTypes2.default.string,
19183 root: _propTypes2.default.object,
19184 disabled: _propTypes2.default.bool,
19185 inlineIndent: _propTypes2.default.number,
19186 checked: _propTypes2.default.bool,
19187 indeterminate: _propTypes2.default.bool,
19188 onChange: _propTypes2.default.func,
19189 checkType: _propTypes2.default.oneOf(['checkbox', 'radio']),
19190 checkDisabled: _propTypes2.default.bool,
19191 helper: _propTypes2.default.node,
19192 children: _propTypes2.default.node,
19193 onKeyDown: _propTypes2.default.func,
19194 onClick: _propTypes2.default.func,
19195 id: _propTypes2.default.string
19196}, _class.defaultProps = {
19197 disabled: false,
19198 checked: false,
19199 indeterminate: false,
19200 checkType: 'checkbox',
19201 checkDisabled: false,
19202 onChange: noop
19203}, _temp);
19204CheckableItem.displayName = 'CheckableItem';
19205exports.default = CheckableItem;
19206module.exports = exports['default'];
19207
19208/***/ }),
19209/* 145 */
19210/***/ (function(module, exports, __webpack_require__) {
19211
19212"use strict";
19213
19214
19215exports.__esModule = true;
19216
19217var _extends2 = __webpack_require__(1);
19218
19219var _extends3 = _interopRequireDefault(_extends2);
19220
19221var _objectWithoutProperties2 = __webpack_require__(8);
19222
19223var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
19224
19225var _classCallCheck2 = __webpack_require__(2);
19226
19227var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19228
19229var _createClass2 = __webpack_require__(146);
19230
19231var _createClass3 = _interopRequireDefault(_createClass2);
19232
19233var _possibleConstructorReturn2 = __webpack_require__(3);
19234
19235var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19236
19237var _inherits2 = __webpack_require__(4);
19238
19239var _inherits3 = _interopRequireDefault(_inherits2);
19240
19241var _class, _temp;
19242
19243var _react = __webpack_require__(0);
19244
19245var _react2 = _interopRequireDefault(_react);
19246
19247var _propTypes = __webpack_require__(5);
19248
19249var _propTypes2 = _interopRequireDefault(_propTypes);
19250
19251var _classnames3 = __webpack_require__(7);
19252
19253var _classnames4 = _interopRequireDefault(_classnames3);
19254
19255var _reactLifecyclesCompat = __webpack_require__(10);
19256
19257var _mixinUiState = __webpack_require__(147);
19258
19259var _mixinUiState2 = _interopRequireDefault(_mixinUiState);
19260
19261var _configProvider = __webpack_require__(9);
19262
19263var _configProvider2 = _interopRequireDefault(_configProvider);
19264
19265var _icon = __webpack_require__(11);
19266
19267var _icon2 = _interopRequireDefault(_icon);
19268
19269var _withContext = __webpack_require__(291);
19270
19271var _withContext2 = _interopRequireDefault(_withContext);
19272
19273var _util = __webpack_require__(6);
19274
19275function _interopRequireDefault(obj) {
19276 return obj && obj.__esModule ? obj : { default: obj };
19277}
19278
19279var noop = _util.func.noop;
19280function isChecked(selectedValue, value) {
19281 return selectedValue.indexOf(value) > -1;
19282}
19283/**
19284 * Checkbox
19285 * @order 1
19286 */
19287var Checkbox = (_temp = _class = function (_UIState) {
19288 (0, _inherits3.default)(Checkbox, _UIState);
19289
19290 function Checkbox(props) {
19291 (0, _classCallCheck3.default)(this, Checkbox);
19292
19293 var _this = (0, _possibleConstructorReturn3.default)(this, _UIState.call(this, props));
19294
19295 var context = props.context;
19296
19297 var checked = void 0,
19298 indeterminate = void 0;
19299
19300 if ('checked' in props) {
19301 checked = props.checked;
19302 } else {
19303 checked = props.defaultChecked;
19304 }
19305
19306 if ('indeterminate' in props) {
19307 indeterminate = props.indeterminate;
19308 } else {
19309 indeterminate = props.defaultIndeterminate;
19310 }
19311 if (context.__group__) {
19312 checked = isChecked(context.selectedValue, props.value);
19313 }
19314 _this.state = {
19315 checked: checked,
19316 indeterminate: indeterminate
19317 };
19318
19319 _this.onChange = _this.onChange.bind(_this);
19320 return _this;
19321 }
19322
19323 Checkbox.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
19324 var nextContext = nextProps.context;
19325
19326 var state = {};
19327 if (nextContext.__group__) {
19328 if ('selectedValue' in nextContext) {
19329 state.checked = isChecked(nextContext.selectedValue, nextProps.value);
19330 }
19331 } else if ('checked' in nextProps) {
19332 state.checked = nextProps.checked;
19333 }
19334
19335 if ('indeterminate' in nextProps) {
19336 state.indeterminate = nextProps.indeterminate;
19337 }
19338
19339 return state;
19340 };
19341
19342 Checkbox.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
19343 var shallowEqual = _util.obj.shallowEqual;
19344
19345 return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState) || !shallowEqual(this.context, nextContext);
19346 };
19347
19348 Checkbox.prototype.onChange = function onChange(e) {
19349 var _props = this.props,
19350 context = _props.context,
19351 value = _props.value;
19352
19353 var checked = e.target.checked;
19354
19355 if (this.disabled) {
19356 return;
19357 }
19358 if (context.__group__) {
19359 context.onChange(value, e);
19360 } else {
19361 if (!('checked' in this.props)) {
19362 this.setState({
19363 checked: checked
19364 });
19365 }
19366
19367 if (!('indeterminate' in this.props)) {
19368 this.setState({
19369 indeterminate: false
19370 });
19371 }
19372 this.props.onChange(checked, e);
19373 }
19374 };
19375
19376 Checkbox.prototype.render = function render() {
19377 var _classnames, _classnames2;
19378
19379 /* eslint-disable no-unused-vars */
19380 var _props2 = this.props,
19381 id = _props2.id,
19382 className = _props2.className,
19383 children = _props2.children,
19384 style = _props2.style,
19385 label = _props2.label,
19386 onMouseEnter = _props2.onMouseEnter,
19387 onMouseLeave = _props2.onMouseLeave,
19388 rtl = _props2.rtl,
19389 isPreview = _props2.isPreview,
19390 renderPreview = _props2.renderPreview,
19391 context = _props2.context,
19392 value = _props2.value,
19393 name = _props2.name,
19394 otherProps = (0, _objectWithoutProperties3.default)(_props2, ['id', 'className', 'children', 'style', 'label', 'onMouseEnter', 'onMouseLeave', 'rtl', 'isPreview', 'renderPreview', 'context', 'value', 'name']);
19395
19396 var checked = !!this.state.checked;
19397 var disabled = this.disabled;
19398 var indeterminate = !!this.state.indeterminate;
19399 var prefix = context.prefix || this.props.prefix;
19400
19401 var others = _util.obj.pickOthers(Checkbox.propTypes, otherProps);
19402 var othersData = _util.obj.pickAttrsWith(others, 'data-');
19403 if (otherProps.title) {
19404 othersData.title = otherProps.title;
19405 }
19406
19407 var childInput = _react2.default.createElement('input', (0, _extends3.default)({}, _util.obj.pickOthers(Checkbox.propTypes, otherProps), {
19408 id: id,
19409 value: value,
19410 name: name,
19411 disabled: disabled,
19412 checked: checked,
19413 type: 'checkbox',
19414 onChange: this.onChange,
19415 'aria-checked': indeterminate ? 'mixed' : checked,
19416 className: prefix + 'checkbox-input'
19417 }));
19418
19419 // disable 无状态操作
19420 if (!disabled) {
19421 childInput = this.getStateElement(childInput);
19422 }
19423 var cls = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'checkbox-wrapper'] = true, _classnames[className] = !!className, _classnames.checked = checked, _classnames.disabled = disabled, _classnames.indeterminate = indeterminate, _classnames[this.getStateClassName()] = true, _classnames));
19424 var labelCls = prefix + 'checkbox-label';
19425 var type = indeterminate ? 'semi-select' : 'select';
19426
19427 if (isPreview) {
19428 var previewCls = (0, _classnames4.default)(className, prefix + 'form-preview');
19429 if ('renderPreview' in this.props) {
19430 return _react2.default.createElement('div', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : undefined }, othersData, { className: previewCls }), renderPreview(checked, this.props));
19431 }
19432
19433 return _react2.default.createElement('p', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : undefined }, othersData, { className: previewCls }), checked && (children || label || this.state.value));
19434 }
19435
19436 var iconCls = (0, _classnames4.default)((_classnames2 = {
19437 zoomIn: indeterminate
19438 }, _classnames2[prefix + 'checkbox-semi-select-icon'] = indeterminate, _classnames2[prefix + 'checkbox-select-icon'] = !indeterminate, _classnames2));
19439
19440 return _react2.default.createElement('label', (0, _extends3.default)({}, othersData, {
19441 className: cls,
19442 style: style,
19443 dir: rtl ? 'rtl' : undefined,
19444 onMouseEnter: onMouseEnter,
19445 onMouseLeave: onMouseLeave
19446 }), _react2.default.createElement('span', { className: prefix + 'checkbox' }, _react2.default.createElement('span', { className: prefix + 'checkbox-inner' }, _react2.default.createElement(_icon2.default, { type: type, size: 'xs', className: iconCls })), childInput), [label, children].map(function (item, i) {
19447 return [undefined, null].indexOf(item) === -1 ? _react2.default.createElement('span', { key: i, className: labelCls }, item) : null;
19448 }));
19449 };
19450
19451 (0, _createClass3.default)(Checkbox, [{
19452 key: 'disabled',
19453 get: function get() {
19454 var props = this.props;
19455 var context = props.context;
19456
19457 return props.disabled || 'disabled' in context && context.disabled;
19458 }
19459 }]);
19460 return Checkbox;
19461}(_mixinUiState2.default), _class.displayName = 'Checkbox', _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
19462 prefix: _propTypes2.default.string,
19463 rtl: _propTypes2.default.bool,
19464 /**
19465 * 自定义类名
19466 */
19467 className: _propTypes2.default.string,
19468 /**
19469 * checkbox id, 挂载在input上
19470 */
19471 id: _propTypes2.default.string,
19472 /**
19473 * 自定义内敛样式
19474 */
19475 style: _propTypes2.default.object,
19476 /**
19477 * 选中状态
19478 */
19479 checked: _propTypes2.default.bool,
19480 /**
19481 * 默认选中状态
19482 */
19483 defaultChecked: _propTypes2.default.bool,
19484 /**
19485 * 禁用
19486 */
19487 disabled: _propTypes2.default.bool,
19488 /**
19489 * 通过属性配置label,
19490 */
19491 label: _propTypes2.default.node,
19492 /**
19493 * Checkbox 的中间状态,只会影响到 Checkbox 的样式,并不影响其 checked 属性
19494 */
19495 indeterminate: _propTypes2.default.bool,
19496 /**
19497 * Checkbox 的默认中间态,只会影响到 Checkbox 的样式,并不影响其 checked 属性
19498 */
19499 defaultIndeterminate: _propTypes2.default.bool,
19500 /**
19501 * 状态变化时触发的事件
19502 * @param {Boolean} checked 是否选中
19503 * @param {Event} e Dom 事件对象
19504 */
19505 onChange: _propTypes2.default.func,
19506 /**
19507 * 鼠标进入enter事件
19508 * @param {Event} e Dom 事件对象
19509 */
19510 onMouseEnter: _propTypes2.default.func,
19511 /**
19512 * 鼠标离开Leave事件
19513 * @param {Event} e Dom 事件对象
19514 */
19515 onMouseLeave: _propTypes2.default.func,
19516 /**
19517 * checkbox 的value
19518 */
19519 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
19520 /**
19521 * name
19522 */
19523 name: _propTypes2.default.string,
19524 /**
19525 * 是否为预览态
19526 * @version 1.19
19527 */
19528 isPreview: _propTypes2.default.bool,
19529 /**
19530 * 预览态模式下渲染的内容
19531 * @param {Boolean} checked 是否选中
19532 * @param {Object} props 所有传入的参数
19533 * @returns {reactNode} Element 渲染内容
19534 * @version 1.19
19535 */
19536 renderPreview: _propTypes2.default.func
19537}), _class.defaultProps = {
19538 defaultChecked: false,
19539 defaultIndeterminate: false,
19540 onChange: noop,
19541 onMouseEnter: noop,
19542 onMouseLeave: noop,
19543 prefix: 'next-',
19544 isPreview: false
19545}, _temp);
19546exports.default = _configProvider2.default.config((0, _withContext2.default)((0, _reactLifecyclesCompat.polyfill)(Checkbox)));
19547module.exports = exports['default'];
19548
19549/***/ }),
19550/* 146 */
19551/***/ (function(module, exports, __webpack_require__) {
19552
19553"use strict";
19554
19555
19556exports.__esModule = true;
19557
19558var _defineProperty = __webpack_require__(288);
19559
19560var _defineProperty2 = _interopRequireDefault(_defineProperty);
19561
19562function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19563
19564exports.default = function () {
19565 function defineProperties(target, props) {
19566 for (var i = 0; i < props.length; i++) {
19567 var descriptor = props[i];
19568 descriptor.enumerable = descriptor.enumerable || false;
19569 descriptor.configurable = true;
19570 if ("value" in descriptor) descriptor.writable = true;
19571 (0, _defineProperty2.default)(target, descriptor.key, descriptor);
19572 }
19573 }
19574
19575 return function (Constructor, protoProps, staticProps) {
19576 if (protoProps) defineProperties(Constructor.prototype, protoProps);
19577 if (staticProps) defineProperties(Constructor, staticProps);
19578 return Constructor;
19579 };
19580}();
19581
19582/***/ }),
19583/* 147 */
19584/***/ (function(module, exports, __webpack_require__) {
19585
19586"use strict";
19587
19588
19589exports.__esModule = true;
19590
19591var _classCallCheck2 = __webpack_require__(2);
19592
19593var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19594
19595var _possibleConstructorReturn2 = __webpack_require__(3);
19596
19597var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19598
19599var _inherits2 = __webpack_require__(4);
19600
19601var _inherits3 = _interopRequireDefault(_inherits2);
19602
19603var _react = __webpack_require__(0);
19604
19605var _react2 = _interopRequireDefault(_react);
19606
19607var _classnames = __webpack_require__(7);
19608
19609var _classnames2 = _interopRequireDefault(_classnames);
19610
19611var _util = __webpack_require__(6);
19612
19613function _interopRequireDefault(obj) {
19614 return obj && obj.__esModule ? obj : { default: obj };
19615}
19616
19617var makeChain = _util.func.makeChain;
19618// UIState 为一些特殊元素的状态响应提供了标准的方式,
19619// 尤其适合CSS无法完全定制的控件,比如checkbox,radio等。
19620// 若组件 disable 则自行判断是否需要绑定状态管理。
19621// 注意:disable 不会触发事件,请使用resetUIState还原状态
19622/* eslint-disable react/prop-types */
19623
19624var UIState = function (_Component) {
19625 (0, _inherits3.default)(UIState, _Component);
19626
19627 function UIState(props) {
19628 (0, _classCallCheck3.default)(this, UIState);
19629
19630 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
19631
19632 _this.state = {};
19633 ['_onUIFocus', '_onUIBlur'].forEach(function (item) {
19634 _this[item] = _this[item].bind(_this);
19635 });
19636 return _this;
19637 }
19638 // base 事件绑定的元素
19639
19640
19641 UIState.prototype.getStateElement = function getStateElement(base) {
19642 var _props = this.props,
19643 onFocus = _props.onFocus,
19644 onBlur = _props.onBlur;
19645
19646 return _react2.default.cloneElement(base, {
19647 onFocus: makeChain(this._onUIFocus, onFocus),
19648 onBlur: makeChain(this._onUIBlur, onBlur)
19649 });
19650 };
19651 // 获取状态classname
19652
19653
19654 UIState.prototype.getStateClassName = function getStateClassName() {
19655 var focused = this.state.focused;
19656
19657 return (0, _classnames2.default)({
19658 focused: focused
19659 });
19660 };
19661 // 复原状态
19662
19663
19664 UIState.prototype.resetUIState = function resetUIState() {
19665 this.setState({
19666 focused: false
19667 });
19668 };
19669
19670 UIState.prototype._onUIFocus = function _onUIFocus() {
19671 this.setState({
19672 focused: true
19673 });
19674 };
19675
19676 UIState.prototype._onUIBlur = function _onUIBlur() {
19677 this.setState({
19678 focused: false
19679 });
19680 };
19681
19682 return UIState;
19683}(_react.Component);
19684
19685UIState.displayName = 'UIState';
19686exports.default = UIState;
19687module.exports = exports['default'];
19688
19689/***/ }),
19690/* 148 */
19691/***/ (function(module, exports, __webpack_require__) {
19692
19693"use strict";
19694
19695
19696exports.__esModule = true;
19697
19698var _extends2 = __webpack_require__(1);
19699
19700var _extends3 = _interopRequireDefault(_extends2);
19701
19702var _objectWithoutProperties2 = __webpack_require__(8);
19703
19704var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
19705
19706var _classCallCheck2 = __webpack_require__(2);
19707
19708var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
19709
19710var _createClass2 = __webpack_require__(146);
19711
19712var _createClass3 = _interopRequireDefault(_createClass2);
19713
19714var _possibleConstructorReturn2 = __webpack_require__(3);
19715
19716var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
19717
19718var _inherits2 = __webpack_require__(4);
19719
19720var _inherits3 = _interopRequireDefault(_inherits2);
19721
19722var _class, _temp;
19723
19724var _react = __webpack_require__(0);
19725
19726var _react2 = _interopRequireDefault(_react);
19727
19728var _propTypes = __webpack_require__(5);
19729
19730var _propTypes2 = _interopRequireDefault(_propTypes);
19731
19732var _classnames4 = __webpack_require__(7);
19733
19734var _classnames5 = _interopRequireDefault(_classnames4);
19735
19736var _reactLifecyclesCompat = __webpack_require__(10);
19737
19738var _mixinUiState = __webpack_require__(147);
19739
19740var _mixinUiState2 = _interopRequireDefault(_mixinUiState);
19741
19742var _configProvider = __webpack_require__(9);
19743
19744var _configProvider2 = _interopRequireDefault(_configProvider);
19745
19746var _withContext = __webpack_require__(293);
19747
19748var _withContext2 = _interopRequireDefault(_withContext);
19749
19750var _util = __webpack_require__(6);
19751
19752function _interopRequireDefault(obj) {
19753 return obj && obj.__esModule ? obj : { default: obj };
19754}
19755
19756var makeChain = _util.func.makeChain,
19757 noop = _util.func.noop;
19758/**
19759 * Radio
19760 * @order 1
19761 */
19762
19763var Radio = (_temp = _class = function (_UIState) {
19764 (0, _inherits3.default)(Radio, _UIState);
19765
19766 function Radio(props) {
19767 (0, _classCallCheck3.default)(this, Radio);
19768
19769 var _this = (0, _possibleConstructorReturn3.default)(this, _UIState.call(this, props));
19770
19771 var context = props.context;
19772
19773 var checked = void 0;
19774 if (context.__group__) {
19775 checked = context.selectedValue === props.value;
19776 } else if ('checked' in props) {
19777 checked = props.checked;
19778 } else {
19779 checked = props.defaultChecked;
19780 }
19781
19782 _this.state = { checked: checked };
19783
19784 _this.onChange = _this.onChange.bind(_this);
19785 return _this;
19786 }
19787
19788 Radio.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
19789 var nextContext = nextProps.context;
19790
19791 if (nextContext.__group__ && 'selectedValue' in nextContext) {
19792 return {
19793 checked: nextContext.selectedValue === nextProps.value
19794 };
19795 } else if ('checked' in nextProps) {
19796 return {
19797 checked: nextProps.checked
19798 };
19799 }
19800
19801 return null;
19802 };
19803
19804 Radio.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
19805 var shallowEqual = _util.obj.shallowEqual;
19806
19807 return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState) || !shallowEqual(this.context, nextContext);
19808 };
19809
19810 Radio.prototype.componentDidUpdate = function componentDidUpdate() {
19811 // when disabled, reset UIState
19812 if (this.disabled) {
19813 // only class has an impact, no effect on visual
19814 this.resetUIState();
19815 }
19816 };
19817
19818 Radio.prototype.onChange = function onChange(e) {
19819 var checked = e.target.checked;
19820 var _props = this.props,
19821 context = _props.context,
19822 value = _props.value;
19823
19824 if (context.__group__) {
19825 context.onChange(value, e);
19826 } else if (this.state.checked !== checked) {
19827 if (!('checked' in this.props)) {
19828 this.setState({
19829 checked: checked
19830 });
19831 }
19832 this.props.onChange(checked, e);
19833 }
19834 };
19835
19836 Radio.prototype.render = function render() {
19837 var _classnames, _classnames2, _classnames3;
19838
19839 /* eslint-disable no-unused-vars */
19840 var _props2 = this.props,
19841 id = _props2.id,
19842 className = _props2.className,
19843 children = _props2.children,
19844 style = _props2.style,
19845 label = _props2.label,
19846 onMouseEnter = _props2.onMouseEnter,
19847 onMouseLeave = _props2.onMouseLeave,
19848 tabIndex = _props2.tabIndex,
19849 rtl = _props2.rtl,
19850 name = _props2.name,
19851 isPreview = _props2.isPreview,
19852 renderPreview = _props2.renderPreview,
19853 value = _props2.value,
19854 context = _props2.context,
19855 otherProps = (0, _objectWithoutProperties3.default)(_props2, ['id', 'className', 'children', 'style', 'label', 'onMouseEnter', 'onMouseLeave', 'tabIndex', 'rtl', 'name', 'isPreview', 'renderPreview', 'value', 'context']);
19856
19857 var checked = !!this.state.checked;
19858 var disabled = this.disabled;
19859 var isButton = context.isButton;
19860 var prefix = context.prefix || this.props.prefix;
19861
19862 var others = _util.obj.pickOthers(Radio.propTypes, otherProps);
19863 var othersData = _util.obj.pickAttrsWith(others, 'data-');
19864
19865 if (isPreview) {
19866 var previewCls = (0, _classnames5.default)(className, prefix + 'form-preview');
19867
19868 if ('renderPreview' in this.props) {
19869 return _react2.default.createElement('div', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), renderPreview(checked, this.props));
19870 }
19871
19872 return _react2.default.createElement('p', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), checked && (children || label || value));
19873 }
19874
19875 var input = _react2.default.createElement('input', (0, _extends3.default)({}, _util.obj.pickOthers(othersData, others), {
19876 name: name,
19877 id: id,
19878 tabIndex: tabIndex,
19879 disabled: disabled,
19880 checked: checked,
19881 type: 'radio',
19882 onChange: this.onChange,
19883 'aria-checked': checked,
19884 className: prefix + 'radio-input'
19885 }));
19886
19887 // disabled do not hove focus state
19888 if (!disabled) {
19889 input = this.getStateElement(input);
19890 }
19891
19892 var cls = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'radio'] = true, _classnames.checked = checked, _classnames.disabled = disabled, _classnames[this.getStateClassName()] = true, _classnames));
19893 var clsInner = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'radio-inner'] = true, _classnames2.press = checked, _classnames2.unpress = !checked, _classnames2));
19894 var clsWrapper = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'radio-wrapper'] = true, _classnames3[className] = !!className, _classnames3.checked = checked, _classnames3.disabled = disabled, _classnames3[this.getStateClassName()] = true, _classnames3));
19895 var childrenCls = prefix + 'radio-label';
19896
19897 var radioComp = !isButton ? _react2.default.createElement('span', { className: cls }, _react2.default.createElement('span', { className: clsInner }), input) : _react2.default.createElement('span', { className: prefix + 'radio-single-input' }, input);
19898
19899 return _react2.default.createElement('label', (0, _extends3.default)({}, othersData, {
19900 dir: rtl ? 'rtl' : 'ltr',
19901 style: style,
19902 'aria-checked': checked,
19903 'aria-disabled': disabled,
19904 className: clsWrapper,
19905 onMouseEnter: disabled ? onMouseEnter : makeChain(this._onUIMouseEnter, onMouseEnter),
19906 onMouseLeave: disabled ? onMouseLeave : makeChain(this._onUIMouseLeave, onMouseLeave)
19907 }), radioComp, [children, label].map(function (d, i) {
19908 return d !== undefined ? _react2.default.createElement('span', { key: i, className: childrenCls }, d) : null;
19909 }));
19910 };
19911
19912 (0, _createClass3.default)(Radio, [{
19913 key: 'disabled',
19914 get: function get() {
19915 var props = this.props;
19916 var context = props.context;
19917
19918 var disabled = props.disabled || context.__group__ && 'disabled' in context && context.disabled;
19919
19920 return disabled;
19921 }
19922 }]);
19923 return Radio;
19924}(_mixinUiState2.default), _class.displayName = 'Radio', _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
19925 /**
19926 * 自定义类名
19927 */
19928 className: _propTypes2.default.string,
19929 /**
19930 * 组件input的id
19931 */
19932 id: _propTypes2.default.string,
19933 /**
19934 * 自定义内敛样式
19935 */
19936 style: _propTypes2.default.object,
19937 /**
19938 * 设置radio是否选中
19939 */
19940 checked: _propTypes2.default.bool,
19941 /**
19942 * 设置radio是否默认选中
19943 */
19944 defaultChecked: _propTypes2.default.bool,
19945 /**
19946 * 通过属性配置label
19947 */
19948 label: _propTypes2.default.node,
19949 /**
19950 * 状态变化时触发的事件
19951 * @param {Boolean} checked 是否选中
19952 * @param {Event} e Dom 事件对象
19953 */
19954 onChange: _propTypes2.default.func,
19955 /**
19956 * 鼠标进入enter事件
19957 * @param {Event} e Dom 事件对象
19958 */
19959 onMouseEnter: _propTypes2.default.func,
19960 /**
19961 * 鼠标离开事件
19962 * @param {Event} e Dom 事件对象
19963 */
19964 onMouseLeave: _propTypes2.default.func,
19965 /**
19966 * radio是否被禁用
19967 */
19968 disabled: _propTypes2.default.bool,
19969 /**
19970 * radio 的value
19971 */
19972 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
19973 /**
19974 * name
19975 */
19976 name: _propTypes2.default.string,
19977 /**
19978 * 是否为预览态
19979 */
19980 isPreview: _propTypes2.default.bool,
19981 /**
19982 * 预览态模式下渲染的内容
19983 * @param {Boolean} checked 是否选中
19984 * @param {Object} props 所有传入的参数
19985 * @returns {reactNode} Element 渲染内容
19986 */
19987 renderPreview: _propTypes2.default.func
19988}), _class.defaultProps = {
19989 onChange: noop,
19990 onMouseLeave: noop,
19991 onMouseEnter: noop,
19992 tabIndex: 0,
19993 prefix: 'next-',
19994 isPreview: false
19995}, _class.contextTypes = {
19996 onChange: _propTypes2.default.func,
19997 __group__: _propTypes2.default.bool,
19998 isButton: _propTypes2.default.bool,
19999 selectedValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
20000 disabled: _propTypes2.default.bool
20001}, _temp);
20002exports.default = _configProvider2.default.config((0, _withContext2.default)((0, _reactLifecyclesCompat.polyfill)(Radio)));
20003module.exports = exports['default'];
20004
20005/***/ }),
20006/* 149 */
20007/***/ (function(module, exports, __webpack_require__) {
20008
20009"use strict";
20010
20011
20012exports.__esModule = true;
20013
20014var _configProvider = __webpack_require__(9);
20015
20016var _configProvider2 = _interopRequireDefault(_configProvider);
20017
20018var _util = __webpack_require__(6);
20019
20020var _tag = __webpack_require__(90);
20021
20022var _tag2 = _interopRequireDefault(_tag);
20023
20024var _tagGroup = __webpack_require__(305);
20025
20026var _tagGroup2 = _interopRequireDefault(_tagGroup);
20027
20028var _selectable = __webpack_require__(306);
20029
20030var _selectable2 = _interopRequireDefault(_selectable);
20031
20032var _closeable = __webpack_require__(307);
20033
20034var _closeable2 = _interopRequireDefault(_closeable);
20035
20036function _interopRequireDefault(obj) {
20037 return obj && obj.__esModule ? obj : { default: obj };
20038}
20039
20040var ConfigTag = _configProvider2.default.config(_tag2.default, {
20041 transfrom: /* istanbul ignore next */function transfrom(props, deprecated) {
20042 var shape = props.shape,
20043 type = props.type;
20044
20045 if (shape === 'selectable') {
20046 deprecated('shape=selectable', 'Tag.Selectable', 'Tag');
20047 }
20048
20049 if (shape === 'deletable') {
20050 deprecated('shape=deletable', 'Tag.Closeable', 'Tag');
20051 }
20052
20053 if (shape === 'link') {
20054 deprecated('shape=link', '<Tag><a href="x">x</a></Tag>', 'Tag');
20055 }
20056
20057 if (shape === 'readonly' || shape === 'interactive') {
20058 _util.log.warning('Warning: [ shape=' + shape + ' ] is deprecated at [ Tag ]');
20059 }
20060
20061 if (type === 'secondary') {
20062 _util.log.warning('Warning: [ type=secondary ] is deprecated at [ Tag ]');
20063 }
20064
20065 ['count', 'marked', 'value', 'onChange'].forEach(function (key) {
20066 if (key in props) {
20067 _util.log.warning('Warning: [ ' + key + ' ] is deprecated at [ Tag ]');
20068 }
20069 });
20070
20071 if ('selected' in props || 'defaultSelected' in props) {
20072 _util.log.warning('Warning: [ selected|defaultSelected ] is deprecated at [ Tag ], use [ checked|defaultChecked ] at [ Tag.Selectable ] instead of it');
20073 }
20074
20075 if ('closed' in props) {
20076 _util.log.warning('Warning: [ closed ] is deprecated at [ Tag ], use [ onClose ] at [ Tag.Closeable ] instead of it');
20077 }
20078
20079 if ('onSelect' in props) {
20080 deprecated('onSelect', '<Tag.Selectable onChange/>', 'Tag');
20081 }
20082
20083 if ('afterClose' in props) {
20084 _util.log.warning('Warning: [ afterClose ] is deprecated at [ Tag ], use [ afterClose ] at [ Tag.Closeable ] instead of it');
20085 }
20086
20087 return props;
20088 }
20089});
20090
20091ConfigTag.Group = _configProvider2.default.config(_tagGroup2.default);
20092
20093ConfigTag.Selectable = _configProvider2.default.config(_selectable2.default);
20094
20095// 有的地方叫做 Closeable 有的地方用Closeable, 为了保持兼容 文档类出现 Closeable, Closeable可以继续用
20096ConfigTag.Closable = _configProvider2.default.config(_closeable2.default);
20097ConfigTag.Closeable = ConfigTag.Closable;
20098
20099exports.default = ConfigTag;
20100module.exports = exports['default'];
20101
20102/***/ }),
20103/* 150 */
20104/***/ (function(module, exports, __webpack_require__) {
20105
20106"use strict";
20107
20108
20109exports.__esModule = true;
20110exports.default = undefined;
20111
20112var _extends2 = __webpack_require__(1);
20113
20114var _extends3 = _interopRequireDefault(_extends2);
20115
20116var _classCallCheck2 = __webpack_require__(2);
20117
20118var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20119
20120var _possibleConstructorReturn2 = __webpack_require__(3);
20121
20122var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20123
20124var _inherits2 = __webpack_require__(4);
20125
20126var _inherits3 = _interopRequireDefault(_inherits2);
20127
20128var _class, _temp;
20129
20130var _react = __webpack_require__(0);
20131
20132var _react2 = _interopRequireDefault(_react);
20133
20134var _propTypes = __webpack_require__(5);
20135
20136var _propTypes2 = _interopRequireDefault(_propTypes);
20137
20138var _classnames = __webpack_require__(7);
20139
20140var _classnames2 = _interopRequireDefault(_classnames);
20141
20142var _icon = __webpack_require__(11);
20143
20144var _icon2 = _interopRequireDefault(_icon);
20145
20146var _util = __webpack_require__(6);
20147
20148var _base = __webpack_require__(151);
20149
20150var _base2 = _interopRequireDefault(_base);
20151
20152var _group = __webpack_require__(152);
20153
20154var _group2 = _interopRequireDefault(_group);
20155
20156function _interopRequireDefault(obj) {
20157 return obj && obj.__esModule ? obj : { default: obj };
20158}
20159
20160// preventDefault here can stop onBlur to keep focus state
20161function preventDefault(e) {
20162 e.preventDefault();
20163}
20164
20165/** Input */
20166var Input = (_temp = _class = function (_Base) {
20167 (0, _inherits3.default)(Input, _Base);
20168
20169 function Input(props) {
20170 (0, _classCallCheck3.default)(this, Input);
20171
20172 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
20173
20174 _this.handleKeyDown = function (e) {
20175 if (e.keyCode === 13) {
20176 _this.props.onPressEnter(e);
20177 }
20178
20179 _this.onKeyDown(e);
20180 };
20181
20182 _this.handleKeyDownFromClear = function (e) {
20183 if (e.keyCode === 13) {
20184 _this.onClear(e);
20185 }
20186 };
20187
20188 var value = void 0;
20189 if ('value' in props) {
20190 value = props.value;
20191 } else {
20192 value = props.defaultValue;
20193 }
20194
20195 _this.state = {
20196 value: typeof value === 'undefined' ? '' : value
20197 };
20198 return _this;
20199 }
20200
20201 // `Enter` was considered to be two chars in chrome , but one char in ie.
20202 // so we make all `Enter` to be two chars
20203
20204
20205 Input.prototype.getValueLength = function getValueLength(value) {
20206 var nv = '' + value;
20207 var strLen = this.props.getValueLength(nv);
20208 if (typeof strLen !== 'number') {
20209 strLen = nv.length;
20210 }
20211
20212 return strLen;
20213 };
20214
20215 Input.prototype.renderControl = function renderControl() {
20216 var _this2 = this;
20217
20218 var _props = this.props,
20219 hasClear = _props.hasClear,
20220 readOnly = _props.readOnly,
20221 state = _props.state,
20222 prefix = _props.prefix,
20223 hint = _props.hint,
20224 extra = _props.extra,
20225 locale = _props.locale,
20226 disabled = _props.disabled,
20227 hoverShowClear = _props.hoverShowClear;
20228
20229 var lenWrap = this.renderLength();
20230
20231 var stateWrap = null;
20232 if (state === 'success') {
20233 stateWrap = _react2.default.createElement(_icon2.default, { type: 'success-filling', className: prefix + 'input-success-icon' });
20234 } else if (state === 'loading') {
20235 stateWrap = _react2.default.createElement(_icon2.default, { type: 'loading', className: prefix + 'input-loading-icon' });
20236 } else if (state === 'warning') {
20237 stateWrap = _react2.default.createElement(_icon2.default, { type: 'warning', className: prefix + 'input-warning-icon' });
20238 }
20239
20240 var clearWrap = null;
20241 // showClear属性应该与disable属性为互斥状态
20242 var showClear = hasClear && !readOnly && !!('' + this.state.value) && !disabled;
20243
20244 if (hint || showClear) {
20245 var hintIcon = null;
20246 if (hint) {
20247 if (typeof hint === 'string') {
20248 hintIcon = _react2.default.createElement(_icon2.default, { type: hint, className: prefix + 'input-hint' });
20249 } else if ((0, _react.isValidElement)(hint)) {
20250 hintIcon = (0, _react.cloneElement)(hint, {
20251 className: (0, _classnames2.default)(hint.props.className, prefix + 'input-hint')
20252 });
20253 } else {
20254 hintIcon = hint;
20255 }
20256 } else {
20257 var _classNames;
20258
20259 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'input-hint'] = true, _classNames[prefix + 'input-clear-icon'] = true, _classNames[prefix + 'input-hover-show'] = hoverShowClear, _classNames));
20260 hintIcon = _react2.default.createElement(_icon2.default, {
20261 type: 'delete-filling',
20262 role: 'button',
20263 tabIndex: '0',
20264 className: cls,
20265 'aria-label': locale.clear,
20266 onClick: this.onClear.bind(this),
20267 onMouseDown: preventDefault,
20268 onKeyDown: this.handleKeyDownFromClear
20269 });
20270 }
20271
20272 clearWrap = _react2.default.createElement('span', { className: prefix + 'input-hint-wrap' }, hasClear && hint ? _react2.default.createElement(_icon2.default, {
20273 type: 'delete-filling',
20274 role: 'button',
20275 tabIndex: '0',
20276 className: prefix + 'input-clear ' + prefix + 'input-clear-icon',
20277 'aria-label': locale.clear,
20278 onClick: this.onClear.bind(this),
20279 onMouseDown: preventDefault,
20280 onKeyDown: this.handleKeyDownFromClear
20281 }) : null, hintIcon);
20282 }
20283
20284 if (state === 'loading') {
20285 clearWrap = null;
20286 }
20287
20288 return clearWrap || lenWrap || stateWrap || extra ? _react2.default.createElement('span', { onClick: function onClick() {
20289 return _this2.focus();
20290 }, className: prefix + 'input-control' }, clearWrap, lenWrap, stateWrap, extra) : null;
20291 };
20292
20293 Input.prototype.renderLabel = function renderLabel() {
20294 var _props2 = this.props,
20295 label = _props2.label,
20296 prefix = _props2.prefix,
20297 id = _props2.id;
20298
20299 return label ? _react2.default.createElement('label', { className: prefix + 'input-label', htmlFor: id }, label) : null;
20300 };
20301
20302 Input.prototype.renderInner = function renderInner(inner, cls) {
20303 return inner ? _react2.default.createElement('span', { className: cls }, inner) : null;
20304 };
20305
20306 Input.prototype.onClear = function onClear(e) {
20307 if (this.props.disabled) {
20308 return;
20309 }
20310
20311 // 非受控模式清空内部数据
20312 if (!('value' in this.props)) {
20313 this.setState({
20314 value: ''
20315 });
20316 }
20317 this.props.onChange('', e, 'clear');
20318 this.focus();
20319 };
20320
20321 Input.prototype.render = function render() {
20322 var _classNames2, _classNames3, _classNames4, _classNames5, _classNames6, _classNames7, _classNames8;
20323
20324 var _props3 = this.props,
20325 size = _props3.size,
20326 htmlType = _props3.htmlType,
20327 htmlSize = _props3.htmlSize,
20328 autoComplete = _props3.autoComplete,
20329 autoFocus = _props3.autoFocus,
20330 disabled = _props3.disabled,
20331 style = _props3.style,
20332 innerBefore = _props3.innerBefore,
20333 innerAfter = _props3.innerAfter,
20334 innerBeforeClassName = _props3.innerBeforeClassName,
20335 innerAfterClassName = _props3.innerAfterClassName,
20336 className = _props3.className,
20337 hasBorder = _props3.hasBorder,
20338 prefix = _props3.prefix,
20339 isPreview = _props3.isPreview,
20340 renderPreview = _props3.renderPreview,
20341 addonBefore = _props3.addonBefore,
20342 addonAfter = _props3.addonAfter,
20343 addonTextBefore = _props3.addonTextBefore,
20344 addonTextAfter = _props3.addonTextAfter,
20345 inputRender = _props3.inputRender,
20346 rtl = _props3.rtl,
20347 composition = _props3.composition;
20348
20349 var hasAddon = addonBefore || addonAfter || addonTextBefore || addonTextAfter;
20350 var cls = (0, _classnames2.default)(this.getClass(), (_classNames2 = {}, _classNames2['' + prefix + size] = true, _classNames2[prefix + 'hidden'] = this.props.htmlType === 'hidden', _classNames2[prefix + 'noborder'] = !hasBorder || this.props.htmlType === 'file', _classNames2[prefix + 'input-group-auto-width'] = hasAddon, _classNames2[prefix + 'disabled'] = disabled, _classNames2[className] = !!className && !hasAddon, _classNames2));
20351
20352 var innerCls = prefix + 'input-inner';
20353 var innerBeforeCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[innerCls] = true, _classNames3[prefix + 'before'] = true, _classNames3[innerBeforeClassName] = innerBeforeClassName, _classNames3));
20354 var innerAfterCls = (0, _classnames2.default)((_classNames4 = {}, _classNames4[innerCls] = true, _classNames4[prefix + 'after'] = true, _classNames4[prefix + 'input-inner-text'] = typeof innerAfter === 'string', _classNames4[innerAfterClassName] = innerAfterClassName, _classNames4));
20355 var previewCls = (0, _classnames2.default)((_classNames5 = {}, _classNames5[prefix + 'form-preview'] = true, _classNames5[className] = !!className, _classNames5));
20356
20357 var props = this.getProps();
20358 // custom data attributes are assigned to the top parent node
20359 // data-类自定义数据属性分配到顶层node节点
20360 var dataProps = _util.obj.pickAttrsWith(this.props, 'data-');
20361 // Custom props are transparently transmitted to the core input node by default
20362 // 自定义属性默认透传到核心node节点:input
20363 var others = _util.obj.pickOthers((0, _extends3.default)({}, dataProps, Input.propTypes), this.props);
20364
20365 if (isPreview) {
20366 var value = props.value;
20367 var label = this.props.label;
20368
20369 if (typeof renderPreview === 'function') {
20370 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
20371 }
20372 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), addonBefore || addonTextBefore, label, innerBefore, value, innerAfter, addonAfter || addonTextAfter);
20373 }
20374
20375 var compositionProps = {};
20376 if (composition) {
20377 compositionProps.onCompositionStart = this.handleCompositionStart;
20378 compositionProps.onCompositionEnd = this.handleCompositionEnd;
20379 }
20380
20381 var inputEl = _react2.default.createElement('input', (0, _extends3.default)({}, others, props, compositionProps, {
20382 height: '100%',
20383 type: htmlType,
20384 size: htmlSize,
20385 autoFocus: autoFocus,
20386 autoComplete: autoComplete,
20387 onKeyDown: this.handleKeyDown,
20388 ref: this.saveRef
20389 }));
20390
20391 var inputWrap = _react2.default.createElement('span', (0, _extends3.default)({}, dataProps, { dir: rtl ? 'rtl' : undefined, className: cls, style: hasAddon ? undefined : style }), this.renderLabel(), this.renderInner(innerBefore, innerBeforeCls), inputRender(inputEl), this.renderInner(innerAfter, innerAfterCls), this.renderControl());
20392
20393 var groupCls = (0, _classnames2.default)((_classNames6 = {}, _classNames6[prefix + 'input-group-text'] = true, _classNames6['' + prefix + size] = !!size, _classNames6[prefix + 'disabled'] = disabled, _classNames6));
20394
20395 var addonBeforeCls = (0, _classnames2.default)((_classNames7 = {}, _classNames7[groupCls] = addonTextBefore, _classNames7));
20396 var addonAfterCls = (0, _classnames2.default)((_classNames8 = {}, _classNames8[groupCls] = addonTextAfter, _classNames8));
20397
20398 if (hasAddon) {
20399 return _react2.default.createElement(_group2.default, (0, _extends3.default)({}, dataProps, {
20400 prefix: prefix,
20401 className: className,
20402 style: style,
20403 disabled: disabled,
20404 addonBefore: addonBefore || addonTextBefore,
20405 addonBeforeClassName: addonBeforeCls,
20406 addonAfter: addonAfter || addonTextAfter,
20407 addonAfterClassName: addonAfterCls
20408 }), inputWrap);
20409 }
20410
20411 return inputWrap;
20412 };
20413
20414 return Input;
20415}(_base2.default), _class.getDerivedStateFromProps = _base2.default.getDerivedStateFromProps, _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
20416 /**
20417 * label
20418 */
20419 label: _propTypes2.default.node,
20420 /**
20421 * 是否出现clear按钮
20422 */
20423 hasClear: _propTypes2.default.bool,
20424 /**
20425 * 是否有边框
20426 */
20427 hasBorder: _propTypes2.default.bool,
20428 /**
20429 * 状态
20430 * @enumdesc 错误, 校验中, 成功, 警告
20431 */
20432 state: _propTypes2.default.oneOf(['error', 'loading', 'success', 'warning']),
20433 /**
20434 * 按下回车的回调
20435 */
20436 onPressEnter: _propTypes2.default.func,
20437
20438 onClear: _propTypes2.default.func,
20439 /**
20440 * 原生type
20441 */
20442 htmlType: _propTypes2.default.string,
20443 htmlSize: _propTypes2.default.string,
20444 /**
20445 * 水印 (Icon的type类型,和hasClear占用一个地方)
20446 */
20447 hint: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
20448 /**
20449 * 文字前附加内容
20450 */
20451 innerBefore: _propTypes2.default.node,
20452 /**
20453 * 文字后附加内容
20454 */
20455 innerAfter: _propTypes2.default.node,
20456 /**
20457 * 输入框前附加内容
20458 */
20459 addonBefore: _propTypes2.default.node,
20460 /**
20461 * 输入框后附加内容
20462 */
20463 addonAfter: _propTypes2.default.node,
20464 /**
20465 * 输入框前附加文字
20466 */
20467 addonTextBefore: _propTypes2.default.node,
20468 /**
20469 * 输入框后附加文字
20470 */
20471 addonTextAfter: _propTypes2.default.node,
20472 /**
20473 * (原生input支持)
20474 */
20475 autoComplete: _propTypes2.default.string,
20476 /**
20477 * 自动聚焦(原生input支持)
20478 */
20479 autoFocus: _propTypes2.default.bool,
20480 inputRender: _propTypes2.default.func,
20481 extra: _propTypes2.default.node,
20482 innerBeforeClassName: _propTypes2.default.string,
20483 innerAfterClassName: _propTypes2.default.string,
20484 /**
20485 * 是否为预览态
20486 */
20487 isPreview: _propTypes2.default.bool,
20488 /**
20489 * 预览态模式下渲染的内容
20490 * @param {number} value 评分值
20491 */
20492 renderPreview: _propTypes2.default.func,
20493 /**
20494 * hover展示clear (配合 hasClear=true使用)
20495 * @version 1.24
20496 */
20497 hoverShowClear: _propTypes2.default.bool
20498}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
20499 autoComplete: 'off',
20500 hasBorder: true,
20501 isPreview: false,
20502 hoverShowClear: false,
20503 onPressEnter: _util.func.noop,
20504 inputRender: function inputRender(el) {
20505 return el;
20506 }
20507}), _temp);
20508exports.default = Input;
20509module.exports = exports['default'];
20510
20511/***/ }),
20512/* 151 */
20513/***/ (function(module, exports, __webpack_require__) {
20514
20515"use strict";
20516
20517
20518exports.__esModule = true;
20519
20520var _extends2 = __webpack_require__(1);
20521
20522var _extends3 = _interopRequireDefault(_extends2);
20523
20524var _classCallCheck2 = __webpack_require__(2);
20525
20526var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20527
20528var _possibleConstructorReturn2 = __webpack_require__(3);
20529
20530var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20531
20532var _inherits2 = __webpack_require__(4);
20533
20534var _inherits3 = _interopRequireDefault(_inherits2);
20535
20536var _class, _temp2;
20537
20538var _react = __webpack_require__(0);
20539
20540var _react2 = _interopRequireDefault(_react);
20541
20542var _propTypes = __webpack_require__(5);
20543
20544var _propTypes2 = _interopRequireDefault(_propTypes);
20545
20546var _classnames = __webpack_require__(7);
20547
20548var _classnames2 = _interopRequireDefault(_classnames);
20549
20550var _reactLifecyclesCompat = __webpack_require__(10);
20551
20552var _configProvider = __webpack_require__(9);
20553
20554var _configProvider2 = _interopRequireDefault(_configProvider);
20555
20556var _util = __webpack_require__(6);
20557
20558var _zhCn = __webpack_require__(13);
20559
20560var _zhCn2 = _interopRequireDefault(_zhCn);
20561
20562function _interopRequireDefault(obj) {
20563 return obj && obj.__esModule ? obj : { default: obj };
20564}
20565
20566var Base = (_temp2 = _class = function (_React$Component) {
20567 (0, _inherits3.default)(Base, _React$Component);
20568
20569 function Base() {
20570 var _temp, _this, _ret;
20571
20572 (0, _classCallCheck3.default)(this, Base);
20573
20574 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
20575 args[_key] = arguments[_key];
20576 }
20577
20578 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleCompositionStart = function (e) {
20579 _this.setState({
20580 composition: true
20581 });
20582 _this.props.onCompositionStart(e);
20583 }, _this.handleCompositionEnd = function (e) {
20584 _this.setState({
20585 composition: false
20586 });
20587 _this.props.onCompositionEnd(e);
20588
20589 var value = e.target.value;
20590 _this.props.onChange(value, e);
20591 }, _this.saveRef = function (input) {
20592 _this.inputRef = input;
20593 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
20594 }
20595
20596 Base.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
20597 if ('value' in nextProps && nextProps.value !== prevState.value && !prevState.composition) {
20598 var value = nextProps.value;
20599 return {
20600 value: value === undefined || value === null ? '' : value
20601 };
20602 }
20603
20604 return null;
20605 };
20606
20607 Base.prototype.ieHack = function ieHack(value) {
20608 return value;
20609 };
20610
20611 Base.prototype.onChange = function onChange(e) {
20612 if ('stopPropagation' in e) {
20613 e.stopPropagation();
20614 } else if ('cancelBubble' in e) {
20615 e.cancelBubble();
20616 }
20617
20618 var value = e.target.value;
20619
20620 if (this.props.trim) {
20621 value = value.trim();
20622 }
20623
20624 value = this.ieHack(value);
20625
20626 // not controlled
20627 if (!('value' in this.props) || this.state.composition) {
20628 this.setState({
20629 value: value
20630 });
20631 }
20632
20633 if (this.state.composition) {
20634 return;
20635 }
20636
20637 // Number('') = 0
20638 if (value && this.props.htmlType === 'number') {
20639 value = Number(value);
20640 }
20641
20642 this.props.onChange(value, e);
20643 };
20644
20645 Base.prototype.onKeyDown = function onKeyDown(e) {
20646 var value = e.target.value;
20647 var maxLength = this.props.maxLength;
20648
20649 var len = maxLength > 0 && value ? this.getValueLength(value) : 0;
20650 var opts = {};
20651
20652 // has enable trim and has input whitespace
20653 if (this.props.trim && e.keyCode === 32) {
20654 opts.beTrimed = true;
20655 }
20656
20657 // has defined maxLength and has over max length and has not input backspace and delete
20658 if (maxLength > 0 && (len > maxLength + 1 || (len === maxLength || len === maxLength + 1) && e.keyCode !== 8 && e.keyCode !== 46)) {
20659 opts.overMaxLength = true;
20660 }
20661
20662 this.props.onKeyDown(e, opts);
20663 };
20664
20665 Base.prototype.onFocus = function onFocus(e) {
20666 this.setState({
20667 focus: true
20668 });
20669 this.props.onFocus(e);
20670 };
20671
20672 Base.prototype.onBlur = function onBlur(e) {
20673 this.setState({
20674 focus: false
20675 });
20676 this.props.onBlur(e);
20677 };
20678
20679 Base.prototype.renderLength = function renderLength() {
20680 var _classNames;
20681
20682 var _props = this.props,
20683 maxLength = _props.maxLength,
20684 showLimitHint = _props.showLimitHint,
20685 prefix = _props.prefix,
20686 rtl = _props.rtl;
20687
20688 var len = maxLength > 0 && this.state.value ? this.getValueLength(this.state.value) : 0;
20689
20690 var classesLenWrap = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'input-len'] = true, _classNames[prefix + 'error'] = len > maxLength, _classNames));
20691
20692 var content = rtl ? maxLength + '/' + len : len + '/' + maxLength;
20693
20694 return maxLength && showLimitHint ? _react2.default.createElement('span', { className: classesLenWrap }, content) : null;
20695 };
20696
20697 Base.prototype.renderControl = function renderControl() {
20698 var _this2 = this;
20699
20700 var lenWrap = this.renderLength();
20701
20702 return lenWrap ? _react2.default.createElement('span', { onClick: function onClick() {
20703 return _this2.focus();
20704 }, className: this.props.prefix + 'input-control' }, lenWrap) : null;
20705 };
20706
20707 Base.prototype.getClass = function getClass() {
20708 var _classNames2;
20709
20710 var _props2 = this.props,
20711 disabled = _props2.disabled,
20712 state = _props2.state,
20713 prefix = _props2.prefix;
20714
20715 return (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'input'] = true, _classNames2[prefix + 'disabled'] = !!disabled, _classNames2[prefix + 'error'] = state === 'error', _classNames2[prefix + 'warning'] = state === 'warning', _classNames2[prefix + 'focus'] = this.state.focus, _classNames2));
20716 };
20717
20718 Base.prototype.getProps = function getProps() {
20719 var _props3 = this.props,
20720 placeholder = _props3.placeholder,
20721 inputStyle = _props3.inputStyle,
20722 disabled = _props3.disabled,
20723 readOnly = _props3.readOnly,
20724 cutString = _props3.cutString,
20725 maxLength = _props3.maxLength,
20726 name = _props3.name,
20727 onCompositionStart = _props3.onCompositionStart,
20728 onCompositionEnd = _props3.onCompositionEnd;
20729
20730 var props = {
20731 style: inputStyle,
20732 placeholder: placeholder,
20733 disabled: disabled,
20734 readOnly: readOnly,
20735 name: name,
20736 maxLength: cutString ? maxLength : undefined,
20737 value: this.state.value,
20738 onChange: this.onChange.bind(this),
20739 onBlur: this.onBlur.bind(this),
20740 onFocus: this.onFocus.bind(this),
20741 onCompositionStart: onCompositionStart,
20742 onCompositionEnd: onCompositionEnd
20743 };
20744
20745 // fix accessibility:auto process status of aria disabled
20746 if (disabled) {
20747 props['aria-disabled'] = disabled;
20748 }
20749
20750 return props;
20751 };
20752
20753 Base.prototype.getInputNode = function getInputNode() {
20754 return this.inputRef;
20755 };
20756
20757 Base.prototype.focus = function focus(start, end) {
20758 this.inputRef.focus();
20759 if (typeof start === 'number') {
20760 this.inputRef.selectionStart = start;
20761 }
20762 if (typeof end === 'number') {
20763 this.inputRef.selectionEnd = end;
20764 }
20765 };
20766
20767 return Base;
20768}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
20769 /**
20770 * 当前值
20771 */
20772 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
20773 /**
20774 * 初始化值
20775 */
20776 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
20777 /**
20778 * 发生改变的时候触发的回调
20779 * @param {String} value 数据
20780 * @param {Event} e DOM事件对象
20781 */
20782 onChange: _propTypes2.default.func,
20783 /**
20784 * 键盘按下的时候触发的回调
20785 * @param {Event} e DOM事件对象
20786 * @param {Object} opts 可扩展的附加信息:<br> - opts.overMaxLength: {Boolean} 已超出最大长度<br> - opts.beTrimed: {Boolean} 输入的空格被清理
20787 */
20788 onKeyDown: _propTypes2.default.func,
20789 /**
20790 * 禁用状态
20791 */
20792 disabled: _propTypes2.default.bool,
20793 /**
20794 * 最大长度
20795 */
20796 maxLength: _propTypes2.default.number,
20797 /**
20798 * 是否展现最大长度样式(旧版本为 hasLimitHint,目前仍兼容旧用法,将在2.x直接废弃)
20799 */
20800 showLimitHint: _propTypes2.default.bool,
20801 /**
20802 * 当设置了maxLength时,是否截断超出字符串
20803 */
20804 cutString: _propTypes2.default.bool,
20805 /**
20806 * 只读
20807 */
20808 readOnly: _propTypes2.default.bool,
20809 /**
20810 * onChange返回会自动去除头尾空字符
20811 */
20812 trim: _propTypes2.default.bool,
20813 /**
20814 * 输入提示
20815 */
20816 placeholder: _propTypes2.default.string,
20817 /**
20818 * 获取焦点时候触发的回调
20819 * @param {Event} e DOM事件对象
20820 */
20821 onFocus: _propTypes2.default.func,
20822 /**
20823 * 失去焦点时候触发的回调
20824 * @param {Event} e DOM事件对象
20825 */
20826 onBlur: _propTypes2.default.func,
20827 /**
20828 * 自定义字符串计算长度方式
20829 * @param {String} value 数据
20830 * @returns {Number} 自定义长度
20831 */
20832 getValueLength: _propTypes2.default.func,
20833 inputStyle: _propTypes2.default.object,
20834 /**
20835 * 自定义class
20836 */
20837 className: _propTypes2.default.string,
20838 /**
20839 * 自定义内联样式
20840 */
20841 style: _propTypes2.default.object,
20842 /**
20843 * 原生type
20844 */
20845 htmlType: _propTypes2.default.string,
20846 /**
20847 * name
20848 */
20849 name: _propTypes2.default.string,
20850 rtl: _propTypes2.default.bool,
20851 state: _propTypes2.default.oneOf(['error', 'loading', 'success', 'warning']),
20852 locale: _propTypes2.default.object,
20853 /**
20854 * 是否为预览态
20855 */
20856 isPreview: _propTypes2.default.bool,
20857 /**
20858 * 预览态模式下渲染的内容
20859 * @param {number} value 评分值
20860 */
20861 renderPreview: _propTypes2.default.func,
20862 /**
20863 * 尺寸
20864 * @enumdesc 小, 中, 大
20865 */
20866 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
20867 /**
20868 * 开启后会过滤输入法中间字母状态,文字输入完成后才会触发 onChange
20869 * @version 1.23
20870 */
20871 composition: _propTypes2.default.bool,
20872 onCompositionStart: _propTypes2.default.func,
20873 onCompositionEnd: _propTypes2.default.func
20874}), _class.defaultProps = {
20875 disabled: false,
20876 prefix: 'next-',
20877 size: 'medium',
20878 maxLength: null,
20879 showLimitHint: false,
20880 cutString: true,
20881 readOnly: false,
20882 isPreview: false,
20883 trim: false,
20884 composition: false,
20885 onFocus: _util.func.noop,
20886 onBlur: _util.func.noop,
20887 onChange: _util.func.noop,
20888 onKeyDown: _util.func.noop,
20889 getValueLength: _util.func.noop,
20890 onCompositionStart: _util.func.noop,
20891 onCompositionEnd: _util.func.noop,
20892 locale: _zhCn2.default.Input
20893}, _temp2);
20894Base.displayName = 'Base';
20895exports.default = (0, _reactLifecyclesCompat.polyfill)(Base);
20896module.exports = exports['default'];
20897
20898/***/ }),
20899/* 152 */
20900/***/ (function(module, exports, __webpack_require__) {
20901
20902"use strict";
20903
20904
20905exports.__esModule = true;
20906
20907var _extends2 = __webpack_require__(1);
20908
20909var _extends3 = _interopRequireDefault(_extends2);
20910
20911var _objectWithoutProperties2 = __webpack_require__(8);
20912
20913var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
20914
20915var _classCallCheck2 = __webpack_require__(2);
20916
20917var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
20918
20919var _possibleConstructorReturn2 = __webpack_require__(3);
20920
20921var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
20922
20923var _inherits2 = __webpack_require__(4);
20924
20925var _inherits3 = _interopRequireDefault(_inherits2);
20926
20927var _class, _temp;
20928
20929var _react = __webpack_require__(0);
20930
20931var _react2 = _interopRequireDefault(_react);
20932
20933var _propTypes = __webpack_require__(5);
20934
20935var _propTypes2 = _interopRequireDefault(_propTypes);
20936
20937var _classnames = __webpack_require__(7);
20938
20939var _classnames2 = _interopRequireDefault(_classnames);
20940
20941var _configProvider = __webpack_require__(9);
20942
20943var _configProvider2 = _interopRequireDefault(_configProvider);
20944
20945function _interopRequireDefault(obj) {
20946 return obj && obj.__esModule ? obj : { default: obj };
20947}
20948
20949/**
20950 * Input.Group
20951 */
20952var Group = (_temp = _class = function (_React$Component) {
20953 (0, _inherits3.default)(Group, _React$Component);
20954
20955 function Group() {
20956 (0, _classCallCheck3.default)(this, Group);
20957 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
20958 }
20959
20960 Group.prototype.render = function render() {
20961 var _classNames, _classNames2, _classNames3;
20962
20963 var _props = this.props,
20964 className = _props.className,
20965 style = _props.style,
20966 children = _props.children,
20967 prefix = _props.prefix,
20968 addonBefore = _props.addonBefore,
20969 addonAfter = _props.addonAfter,
20970 addonBeforeClassName = _props.addonBeforeClassName,
20971 addonAfterClassName = _props.addonAfterClassName,
20972 rtl = _props.rtl,
20973 disabled = _props.disabled,
20974 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'style', 'children', 'prefix', 'addonBefore', 'addonAfter', 'addonBeforeClassName', 'addonAfterClassName', 'rtl', 'disabled']);
20975
20976 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'input-group'] = true, _classNames[prefix + 'disabled'] = disabled, _classNames[className] = !!className, _classNames));
20977
20978 var addonCls = prefix + 'input-group-addon';
20979 var beforeCls = (0, _classnames2.default)(addonCls, (_classNames2 = {}, _classNames2[prefix + 'before'] = true, _classNames2[addonBeforeClassName] = addonBeforeClassName, _classNames2));
20980 var afterCls = (0, _classnames2.default)(addonCls, (_classNames3 = {}, _classNames3[prefix + 'after'] = true, _classNames3[addonAfterClassName] = addonAfterClassName, _classNames3));
20981
20982 var before = addonBefore ? _react2.default.createElement('span', { className: beforeCls }, addonBefore) : null;
20983
20984 var after = addonAfter ? _react2.default.createElement('span', { className: afterCls }, addonAfter) : null;
20985
20986 return _react2.default.createElement('span', (0, _extends3.default)({}, others, { disabled: disabled, dir: rtl ? 'rtl' : undefined, className: cls, style: style }), before, children, after);
20987 };
20988
20989 return Group;
20990}(_react2.default.Component), _class.propTypes = {
20991 /**
20992 * 样式前缀
20993 */
20994 prefix: _propTypes2.default.string,
20995 className: _propTypes2.default.string,
20996 style: _propTypes2.default.object,
20997 children: _propTypes2.default.node,
20998 /**
20999 * 输入框前附加内容
21000 */
21001 addonBefore: _propTypes2.default.node,
21002 /**
21003 * 输入框前附加内容css
21004 */
21005 addonBeforeClassName: _propTypes2.default.string,
21006 /**
21007 * 输入框后附加内容
21008 */
21009 addonAfter: _propTypes2.default.node,
21010 /**
21011 * 输入框后额外css
21012 */
21013 addonAfterClassName: _propTypes2.default.string,
21014 /**
21015 * rtl
21016 */
21017 rtl: _propTypes2.default.bool
21018}, _class.defaultProps = {
21019 prefix: 'next-'
21020}, _temp);
21021Group.displayName = 'Group';
21022exports.default = _configProvider2.default.config(Group);
21023module.exports = exports['default'];
21024
21025/***/ }),
21026/* 153 */
21027/***/ (function(module, exports, __webpack_require__) {
21028
21029"use strict";
21030
21031
21032exports.__esModule = true;
21033exports.default = undefined;
21034
21035var _extends2 = __webpack_require__(1);
21036
21037var _extends3 = _interopRequireDefault(_extends2);
21038
21039var _classCallCheck2 = __webpack_require__(2);
21040
21041var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
21042
21043var _possibleConstructorReturn2 = __webpack_require__(3);
21044
21045var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21046
21047var _inherits2 = __webpack_require__(4);
21048
21049var _inherits3 = _interopRequireDefault(_inherits2);
21050
21051var _class, _temp;
21052
21053var _react = __webpack_require__(0);
21054
21055var _react2 = _interopRequireDefault(_react);
21056
21057var _reactDom = __webpack_require__(12);
21058
21059var _propTypes = __webpack_require__(5);
21060
21061var _propTypes2 = _interopRequireDefault(_propTypes);
21062
21063var _classnames = __webpack_require__(7);
21064
21065var _classnames2 = _interopRequireDefault(_classnames);
21066
21067var _util = __webpack_require__(6);
21068
21069var _menu = __webpack_require__(16);
21070
21071var _menu2 = _interopRequireDefault(_menu);
21072
21073var _overlay = __webpack_require__(15);
21074
21075var _overlay2 = _interopRequireDefault(_overlay);
21076
21077var _input = __webpack_require__(18);
21078
21079var _input2 = _interopRequireDefault(_input);
21080
21081var _zhCn = __webpack_require__(13);
21082
21083var _zhCn2 = _interopRequireDefault(_zhCn);
21084
21085var _dataStore = __webpack_require__(310);
21086
21087var _dataStore2 = _interopRequireDefault(_dataStore);
21088
21089var _virtualList = __webpack_require__(51);
21090
21091var _virtualList2 = _interopRequireDefault(_virtualList);
21092
21093var _util2 = __webpack_require__(62);
21094
21095function _interopRequireDefault(obj) {
21096 return obj && obj.__esModule ? obj : { default: obj };
21097}
21098
21099var Popup = _overlay2.default.Popup;
21100var MenuItem = _menu2.default.Item,
21101 MenuGroup = _menu2.default.Group;
21102var noop = _util.func.noop,
21103 bindCtx = _util.func.bindCtx,
21104 makeChain = _util.func.makeChain;
21105
21106function preventDefault(e) {
21107 e.preventDefault();
21108}
21109
21110var Base = (_temp = _class = function (_React$Component) {
21111 (0, _inherits3.default)(Base, _React$Component);
21112
21113 function Base(props) {
21114 (0, _classCallCheck3.default)(this, Base);
21115
21116 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
21117
21118 _this.handleMouseDown = function (e) {
21119 if (!_this.props.popupAutoFocus) {
21120 preventDefault(e);
21121 }
21122 };
21123
21124 _this.saveSelectRef = function (ref) {
21125 _this.selectDOM = (0, _reactDom.findDOMNode)(ref);
21126 };
21127
21128 _this.saveInputRef = function (ref) {
21129 if (ref && ref.getInstance()) {
21130 _this.inputRef = ref.getInstance();
21131 }
21132 };
21133
21134 _this.savePopupRef = function (ref) {
21135 _this.popupRef = ref;
21136 };
21137
21138 _this.dataStore = new _dataStore2.default({
21139 filter: props.filter,
21140 filterLocal: props.filterLocal,
21141 showDataSourceChildren: props.showDataSourceChildren
21142 });
21143
21144 var mode = props.mode;
21145
21146 var value = 'value' in props ? props.value : props.defaultValue;
21147
21148 // 多选情况下做 value 数组订正
21149 if (props.mode !== 'single' && value && !Array.isArray(value)) {
21150 value = [value];
21151 }
21152
21153 _this.state = {
21154 dataStore: _this.dataStore,
21155 value: value,
21156 visible: 'visible' in props ? props.visible : props.defaultVisible,
21157 dataSource: _this.setDataSource(_this.props),
21158 width: 100,
21159 // highlightKey应为String 多选初始化只赋值受控highlightKey/defaultHighlightKey
21160 highlightKey: 'highlightKey' in props ? props.highlightKey : props.mode === 'single' ? props.value || props.defaultHighlightKey || props.defaultValue : props.defaultHighlightKey,
21161 srReader: ''
21162 };
21163
21164 bindCtx(_this, ['handleMenuBodyClick', 'handleVisibleChange', 'focusInput', 'beforeOpen', 'beforeClose', 'afterClose', 'handleResize']);
21165 return _this;
21166 }
21167
21168 Base.prototype.componentDidMount = function componentDidMount() {
21169 var _this2 = this;
21170
21171 // overlay 还没有完成 mount,所以需要滞后同步宽度
21172 setTimeout(function () {
21173 return _this2.syncWidth();
21174 }, 0);
21175
21176 _util.events.on(window, 'resize', this.handleResize);
21177 };
21178
21179 Base.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
21180 if (prevProps.label !== this.props.label || prevState.value !== this.state.value) {
21181 this.syncWidth();
21182 }
21183 };
21184
21185 Base.prototype.componentWillUnmount = function componentWillUnmount() {
21186 _util.events.off(window, 'resize', this.handleResize);
21187 clearTimeout(this.resizeTimeout);
21188 };
21189
21190 /**
21191 * Calculate and set width of popup menu
21192 * @protected
21193 */
21194
21195 Base.prototype.syncWidth = function syncWidth() {
21196 var _this3 = this;
21197
21198 var _props2 = this.props,
21199 popupStyle = _props2.popupStyle,
21200 popupProps = _props2.popupProps;
21201
21202 if (popupStyle && 'width' in popupStyle || popupProps && popupProps.style && 'width' in popupProps.style) {
21203 return;
21204 }
21205
21206 var width = _util.dom.getStyle(this.selectDOM, 'width');
21207 if (width && this.width !== width) {
21208 this.width = width;
21209
21210 if (this.popupRef && this.shouldAutoWidth()) {
21211 // overy 的 node 节点可能没有挂载完成,所以这里需要异步
21212 setTimeout(function () {
21213 if (_this3.popupRef) {
21214 _util.dom.setStyle(_this3.popupRef, 'width', _this3.width);
21215 return;
21216 }
21217 }, 0);
21218 }
21219 }
21220 };
21221
21222 Base.prototype.handleResize = function handleResize() {
21223 var _this4 = this;
21224
21225 clearTimeout(this.resizeTimeout);
21226 if (this.state.visible) {
21227 this.resizeTimeout = setTimeout(function () {
21228 _this4.syncWidth();
21229 }, 200);
21230 }
21231 };
21232
21233 /**
21234 * Get structured dataSource, for cache
21235 * @protected
21236 * @param {Object} [props=this.props]
21237 * @return {Array}
21238 */
21239
21240 Base.prototype.setDataSource = function setDataSource(props) {
21241 var dataSource = props.dataSource,
21242 children = props.children;
21243
21244 // children is higher priority then dataSource
21245
21246 if (_react.Children.count(children)) {
21247 return this.dataStore.updateByDS(children, true);
21248 } else if (Array.isArray(dataSource)) {
21249 return this.dataStore.updateByDS(dataSource, false);
21250 }
21251 return [];
21252 };
21253
21254 /**
21255 * Set popup visible
21256 * @protected
21257 * @param {boolean} visible
21258 * @param {string} type trigger type
21259 */
21260
21261 Base.prototype.setVisible = function setVisible(visible, type) {
21262 // disabled 状态下只允许关闭不允许打开
21263 if (this.props.disabled && visible || this.state.visible === visible) {
21264 return;
21265 }
21266
21267 if (!('visible' in this.props)) {
21268 this.setState({
21269 visible: visible
21270 });
21271 }
21272
21273 this.props.onVisibleChange(visible, type);
21274 };
21275
21276 Base.prototype.setFirstHightLightKeyForMenu = function setFirstHightLightKeyForMenu(searchValue) {
21277 // 判断value/highlightKey解决受控后,默认高亮第一个元素问题。(当搜索值时,搜索后应执行默认选择第一个元素)
21278 var highlightKey = this.state.highlightKey;
21279
21280 if (!this.props.autoHighlightFirstItem) {
21281 return;
21282 }
21283
21284 // 设置高亮 item key
21285 if (this.dataStore.getMenuDS().length && this.dataStore.getEnableDS().length && (!highlightKey || searchValue)) {
21286 var _highlightKey = '' + this.dataStore.getEnableDS()[0].value;
21287 this.setState({
21288 highlightKey: _highlightKey
21289 });
21290 this.props.onToggleHighlightItem(_highlightKey, 'autoFirstItem');
21291 }
21292
21293 // 当有搜索值且搜索条件与dataSource不匹配时(搜索条件不满足不会出现可选择的列表,所以高亮key应为null)
21294 if (searchValue && !this.dataStore.getEnableDS().length) {
21295 this.setState({
21296 highlightKey: null
21297 });
21298 this.props.onToggleHighlightItem(null, 'highlightKeyToNull');
21299 }
21300 };
21301
21302 Base.prototype.handleChange = function handleChange(value) {
21303 var _props3;
21304
21305 // 非受控模式清空内部数据
21306 if (!('value' in this.props)) {
21307 this.setState({
21308 value: value
21309 });
21310 }
21311
21312 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
21313 args[_key - 1] = arguments[_key];
21314 }
21315
21316 (_props3 = this.props).onChange.apply(_props3, [value].concat(args));
21317 };
21318
21319 /**
21320 * Handle Menu body click
21321 * @param {Event} e click event
21322 */
21323
21324 Base.prototype.handleMenuBodyClick = function handleMenuBodyClick(e) {
21325 if (!this.props.popupAutoFocus) {
21326 this.focusInput(e);
21327 }
21328 };
21329
21330 /**
21331 * Toggle highlight MenuItem
21332 * @private
21333 * @param {number} dir -1: up, 1: down
21334 */
21335
21336 Base.prototype.toggleHighlightItem = function toggleHighlightItem(dir) {
21337 if (!this.state.visible) {
21338 this.setVisible(true, 'enter');
21339 return;
21340 }
21341
21342 var maxCount = this.dataStore.getEnableDS().length;
21343 // When there is no enabled item
21344 if (!maxCount) {
21345 return false;
21346 }
21347
21348 var highlightKey = this.state.highlightKey;
21349
21350 var highlightIndex = -1;
21351
21352 // find previous highlight index
21353 highlightKey !== null && this.dataStore.getEnableDS().some(function (item, index) {
21354 if ('' + item.value === highlightKey) {
21355 highlightIndex = index;
21356 }
21357 return highlightIndex > -1;
21358 });
21359
21360 // toggle highlight index
21361 highlightIndex += dir;
21362 if (highlightIndex < 0) {
21363 highlightIndex = maxCount - 1;
21364 }
21365 if (highlightIndex >= maxCount) {
21366 highlightIndex = 0;
21367 }
21368
21369 // get highlight key
21370 var highlightItem = this.dataStore.getEnableDS()[highlightIndex];
21371 highlightKey = highlightItem ? '' + highlightItem.value : null;
21372
21373 this.setState({ highlightKey: highlightKey, srReader: highlightItem.label });
21374
21375 this.scrollMenuIntoView();
21376
21377 return highlightItem;
21378 };
21379
21380 // scroll into focus item
21381
21382
21383 Base.prototype.scrollMenuIntoView = function scrollMenuIntoView() {
21384 var _this5 = this;
21385
21386 var prefix = this.props.prefix;
21387
21388 clearTimeout(this.highlightTimer);
21389 this.highlightTimer = setTimeout(function () {
21390 try {
21391 var menuNode = (0, _reactDom.findDOMNode)(_this5.menuRef);
21392 var itemNode = menuNode.querySelector('.' + prefix + 'select-menu-item.' + prefix + 'focused');
21393 itemNode && itemNode.scrollIntoViewIfNeeded && itemNode.scrollIntoViewIfNeeded();
21394 } catch (ex) {
21395 // I don't care...
21396 }
21397 });
21398 };
21399
21400 /**
21401 * render popup menu header
21402 * @abstract
21403 */
21404
21405 Base.prototype.renderMenuHeader = function renderMenuHeader() {
21406 var menuProps = this.props.menuProps;
21407
21408 if (menuProps && 'header' in menuProps) {
21409 return menuProps.header;
21410 }
21411
21412 return null;
21413 };
21414
21415 Base.prototype.handleSelect = function handleSelect() {};
21416
21417 /**
21418 * 防止 onBlur/onFocus 抖动
21419 */
21420
21421 /**
21422 * render popup children
21423 * @protected
21424 * @param {object} props
21425 */
21426 Base.prototype.renderMenu = function renderMenu() {
21427 var _classNames,
21428 _this6 = this;
21429
21430 var _props4 = this.props,
21431 prefix = _props4.prefix,
21432 mode = _props4.mode,
21433 locale = _props4.locale,
21434 notFoundContent = _props4.notFoundContent,
21435 useVirtual = _props4.useVirtual,
21436 menuProps = _props4.menuProps;
21437 var _state = this.state,
21438 dataSource = _state.dataSource,
21439 highlightKey = _state.highlightKey;
21440
21441 var value = this.state.value;
21442 var selectedKeys = void 0;
21443
21444 if ((0, _util2.isNull)(value) || value.length === 0 || this.isAutoComplete) {
21445 selectedKeys = [];
21446 } else if ((0, _util2.isSingle)(mode)) {
21447 selectedKeys = [(0, _util2.valueToSelectKey)(value)];
21448 } else {
21449 selectedKeys = [].concat(value).map(function (n) {
21450 return (0, _util2.valueToSelectKey)(n);
21451 });
21452 }
21453
21454 var children = this.renderMenuItem(dataSource);
21455
21456 var menuClassName = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'select-menu'] = true, _classNames[prefix + 'select-menu-empty'] = !children || !children.length, _classNames));
21457
21458 if (!children || !children.length) {
21459 children = _react2.default.createElement('span', { className: prefix + 'select-menu-empty-content' }, notFoundContent || locale.notFoundContent);
21460 }
21461
21462 var customProps = (0, _extends3.default)({}, menuProps, {
21463 children: children,
21464 role: 'listbox',
21465 selectedKeys: selectedKeys,
21466 focusedKey: highlightKey,
21467 focusable: false,
21468 selectMode: (0, _util2.isSingle)(mode) ? 'single' : 'multiple',
21469 onSelect: this.handleMenuSelect,
21470 onItemClick: this.handleItemClick,
21471 header: this.renderMenuHeader(),
21472 onClick: this.handleMenuBodyClick,
21473 onMouseDown: this.handleMouseDown,
21474 className: menuClassName
21475 });
21476 var menuStyle = this.shouldAutoWidth() ? { width: '100%' } : { minWidth: this.width };
21477
21478 return useVirtual && children.length > 10 ? _react2.default.createElement('div', { className: prefix + 'select-menu-wrapper', style: (0, _extends3.default)({ position: 'relative' }, menuStyle) }, _react2.default.createElement(_virtualList2.default, {
21479 itemsRenderer: function itemsRenderer(items, _ref) {
21480 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({
21481 ref: function ref(c) {
21482 _ref(c);
21483 _this6.menuRef = c;
21484 },
21485 flatenContent: true
21486 }, customProps), items);
21487 }
21488 }, children)) : _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, customProps, { style: menuStyle }));
21489 };
21490
21491 /**
21492 * render menu item
21493 * @protected
21494 * @param {Array} dataSource
21495 */
21496
21497 Base.prototype.renderMenuItem = function renderMenuItem(dataSource) {
21498 var _this7 = this;
21499
21500 var _props5 = this.props,
21501 prefix = _props5.prefix,
21502 itemRender = _props5.itemRender,
21503 showDataSourceChildren = _props5.showDataSourceChildren;
21504 // If it has.
21505
21506 var searchKey = void 0;
21507 if (this.isAutoComplete) {
21508 // In AutoComplete, value is the searchKey
21509 searchKey = this.state.value;
21510 } else {
21511 searchKey = this.state.searchValue;
21512 }
21513
21514 return dataSource.map(function (item, index) {
21515 if (!item) {
21516 return null;
21517 }
21518 if (Array.isArray(item.children) && showDataSourceChildren) {
21519 return _react2.default.createElement(MenuGroup, { key: index, label: item.label }, _this7.renderMenuItem(item.children));
21520 } else {
21521 var itemProps = {
21522 role: 'option',
21523 key: item.value,
21524 className: prefix + 'select-menu-item',
21525 disabled: item.disabled
21526 };
21527
21528 if ('title' in item) {
21529 itemProps.title = item.title;
21530 }
21531
21532 return _react2.default.createElement(MenuItem, itemProps, itemRender(item, searchKey));
21533 }
21534 });
21535 };
21536
21537 /**
21538 * 点击 arrow 或 label 的时候焦点切到 input 中
21539 * @override
21540 */
21541 Base.prototype.focusInput = function focusInput() {
21542 this.inputRef.focus();
21543 };
21544
21545 Base.prototype.focus = function focus() {
21546 var _inputRef;
21547
21548 (_inputRef = this.inputRef).focus.apply(_inputRef, arguments);
21549 };
21550
21551 Base.prototype.beforeOpen = function beforeOpen() {
21552 if (this.props.mode === 'single') {
21553 this.setFirstHightLightKeyForMenu();
21554 }
21555 this.syncWidth();
21556 };
21557
21558 Base.prototype.beforeClose = function beforeClose() {};
21559
21560 Base.prototype.afterClose = function afterClose() {};
21561
21562 Base.prototype.shouldAutoWidth = function shouldAutoWidth() {
21563 if (this.props.popupComponent) {
21564 return false;
21565 }
21566
21567 return this.props.autoWidth;
21568 };
21569
21570 Base.prototype.render = function render(props) {
21571 var _classNames2;
21572
21573 var prefix = props.prefix,
21574 mode = props.mode,
21575 popupProps = props.popupProps,
21576 popupContainer = props.popupContainer,
21577 popupClassName = props.popupClassName,
21578 popupStyle = props.popupStyle,
21579 popupContent = props.popupContent,
21580 canCloseByTrigger = props.canCloseByTrigger,
21581 followTrigger = props.followTrigger,
21582 cache = props.cache,
21583 popupComponent = props.popupComponent,
21584 isPreview = props.isPreview,
21585 renderPreview = props.renderPreview,
21586 style = props.style,
21587 className = props.className;
21588
21589 var cls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'select-auto-complete-menu'] = !popupContent && this.isAutoComplete, _classNames2[prefix + 'select-' + mode + '-menu'] = !popupContent && !!mode, _classNames2), popupClassName || popupProps.className);
21590
21591 if (isPreview) {
21592 if (this.isAutoComplete) {
21593 return _react2.default.createElement(_input2.default, {
21594 style: style,
21595 className: className,
21596 isPreview: isPreview,
21597 renderPreview: renderPreview,
21598 value: this.state.value
21599 });
21600 } else {
21601 var value = this.state.value;
21602 var valueDS = this.state.value;
21603
21604 if (!this.useDetailValue()) {
21605 if (value === this.valueDataSource.value) {
21606 valueDS = this.valueDataSource.valueDS;
21607 } else {
21608 valueDS = (0, _util2.getValueDataSource)(value, this.valueDataSource.mapValueDS, this.dataStore.getMapDS()).valueDS;
21609 }
21610 }
21611
21612 if (typeof renderPreview === 'function') {
21613 var _classNames3;
21614
21615 var previewCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'form-preview'] = true, _classNames3[className] = !!className, _classNames3));
21616 return _react2.default.createElement('div', { style: style, className: previewCls }, renderPreview(valueDS, this.props));
21617 } else {
21618 var fillProps = this.props.fillProps;
21619
21620 if (mode === 'single') {
21621 return _react2.default.createElement(_input2.default, {
21622 style: style,
21623 className: className,
21624 isPreview: isPreview,
21625 value: valueDS ? fillProps ? valueDS[fillProps] : valueDS.label : ''
21626 });
21627 } else {
21628 return _react2.default.createElement(_input2.default, {
21629 style: style,
21630 className: className,
21631 isPreview: isPreview,
21632 value: (valueDS || []).map(function (i) {
21633 return i.label;
21634 }).join(', ')
21635 });
21636 }
21637 }
21638 }
21639 }
21640
21641 var _props = (0, _extends3.default)({
21642 triggerType: 'click',
21643 autoFocus: !!this.props.popupAutoFocus,
21644 cache: cache
21645 }, popupProps, {
21646 //beforeOpen node not mount, afterOpen too slow.
21647 // from display:none to block, we may need to recompute width
21648 beforeOpen: makeChain(this.beforeOpen, popupProps.beforeOpen),
21649 beforeClose: makeChain(this.beforeClose, popupProps.beforeClose),
21650 afterClose: makeChain(this.afterClose, popupProps.afterClose),
21651 canCloseByTrigger: canCloseByTrigger,
21652 followTrigger: followTrigger,
21653 visible: this.state.visible,
21654 onVisibleChange: this.handleVisibleChange,
21655 shouldUpdatePosition: true,
21656 container: popupContainer || popupProps.container,
21657 className: cls,
21658 style: popupStyle || popupProps.style
21659 });
21660
21661 if (popupProps.v2) {
21662 delete _props.shouldUpdatePosition;
21663 }
21664
21665 var Tag = popupComponent ? popupComponent : Popup;
21666
21667 return _react2.default.createElement(Tag, (0, _extends3.default)({}, _props, { trigger: this.renderSelect() }), popupContent ? _react2.default.createElement('div', {
21668 className: prefix + 'select-popup-wrap',
21669 style: this.shouldAutoWidth() ? { width: this.width } : {},
21670 ref: this.savePopupRef
21671 }, popupContent) : _react2.default.createElement('div', {
21672 className: prefix + 'select-spacing-tb',
21673 style: this.shouldAutoWidth() ? { width: this.width } : {},
21674 ref: this.savePopupRef
21675 }, this.renderMenu()));
21676 };
21677
21678 return Base;
21679}(_react2.default.Component), _class.propTypes = {
21680 prefix: _propTypes2.default.string,
21681 /**
21682 * 选择器尺寸
21683 */
21684 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
21685 // 当前值,用于受控模式
21686 value: _propTypes2.default.any, // to be override
21687 // 初始化的默认值
21688 defaultValue: _propTypes2.default.any, // to be override
21689 /**
21690 * 没有值的时候的占位符
21691 */
21692 placeholder: _propTypes2.default.string,
21693 /**
21694 * 下拉菜单是否与选择器对齐
21695 */
21696 autoWidth: _propTypes2.default.bool,
21697 /**
21698 * 自定义内联 label
21699 */
21700 label: _propTypes2.default.node,
21701 /**
21702 * 是否有清除按钮(单选模式有效)
21703 */
21704 hasClear: _propTypes2.default.bool,
21705 /**
21706 * 校验状态
21707 */
21708 state: _propTypes2.default.oneOf(['error', 'loading', 'success', 'warning']),
21709 /**
21710 * 是否只读,只读模式下可以展开弹层但不能选
21711 */
21712 readOnly: _propTypes2.default.bool,
21713 /**
21714 * 是否禁用选择器
21715 */
21716 disabled: _propTypes2.default.bool,
21717 /**
21718 * 当前弹层是否显示
21719 */
21720 visible: _propTypes2.default.bool,
21721 /**
21722 * 弹层初始化是否显示
21723 */
21724 defaultVisible: _propTypes2.default.bool,
21725 /**
21726 * 弹层显示或隐藏时触发的回调
21727 * @param {Boolean} visible 弹层是否显示
21728 * @param {String} type 触发弹层显示或隐藏的来源 fromContent 表示由Dropdown内容触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
21729 */
21730 onVisibleChange: _propTypes2.default.func,
21731 /**
21732 * 弹层挂载的容器节点
21733 */
21734 popupContainer: _propTypes2.default.any,
21735 /**
21736 * 弹层的 className
21737 */
21738 popupClassName: _propTypes2.default.any,
21739 /**
21740 * 弹层的内联样式
21741 */
21742 popupStyle: _propTypes2.default.object,
21743 /**
21744 * 添加到弹层上的属性
21745 */
21746 popupProps: _propTypes2.default.object,
21747 /**
21748 * 是否跟随滚动
21749 */
21750 followTrigger: _propTypes2.default.bool,
21751 /**
21752 * 自定义弹层的内容
21753 */
21754 popupContent: _propTypes2.default.node,
21755 /**
21756 * 添加到菜单上的属性
21757 * @version 1.18
21758 */
21759 menuProps: _propTypes2.default.object,
21760 /**
21761 * 是否使用本地过滤,在数据源为远程的时候需要关闭此项
21762 */
21763 filterLocal: _propTypes2.default.bool,
21764 /**
21765 * 本地过滤方法,返回一个 Boolean 值确定是否保留
21766 * @param {String} key 搜索关键字
21767 * @param {Object} item 渲染节点的item
21768 * @return {Boolean} 是否匹配
21769 */
21770 filter: _propTypes2.default.func,
21771 /**
21772 * 默认高亮的 key,不要和 autoHighlightFirstItem 同时使用
21773 */
21774 defaultHighlightKey: _propTypes2.default.string,
21775 /**
21776 * 高亮 key,不要和 autoHighlightFirstItem 同时使用,用于受控模式
21777 */
21778 highlightKey: _propTypes2.default.string,
21779 /**
21780 * 键盘上下键切换菜单高亮选项的回调
21781 */
21782 onToggleHighlightItem: _propTypes2.default.func,
21783 /**
21784 * 自动高亮第一个元素
21785 */
21786 autoHighlightFirstItem: _propTypes2.default.bool,
21787 /**
21788 * 是否开启虚拟滚动模式
21789 */
21790 useVirtual: _propTypes2.default.bool,
21791 // 自定义类名
21792 className: _propTypes2.default.any,
21793 children: _propTypes2.default.any,
21794 dataSource: _propTypes2.default.array,
21795 itemRender: _propTypes2.default.func,
21796 mode: _propTypes2.default.string,
21797 notFoundContent: _propTypes2.default.node,
21798 locale: _propTypes2.default.object,
21799 rtl: _propTypes2.default.bool,
21800 popupComponent: _propTypes2.default.any,
21801 /**
21802 * 是否为预览态
21803 */
21804 isPreview: _propTypes2.default.bool,
21805 /**
21806 * 预览态模式下渲染的内容
21807 * @param {number} value 评分值
21808 */
21809 renderPreview: _propTypes2.default.func,
21810 showDataSourceChildren: _propTypes2.default.bool
21811}, _class.defaultProps = {
21812 prefix: 'next-',
21813 size: 'medium',
21814 autoWidth: true,
21815 onChange: noop,
21816 onVisibleChange: noop,
21817 onToggleHighlightItem: noop,
21818 popupProps: {},
21819 filterLocal: true,
21820 filter: _util2.filter,
21821 itemRender: function itemRender(item) {
21822 return item.label || item.value;
21823 },
21824 locale: _zhCn2.default.Select,
21825 autoHighlightFirstItem: true,
21826 showDataSourceChildren: true,
21827 defaultHighlightKey: null
21828}, _temp);
21829Base.displayName = 'Base';
21830exports.default = Base;
21831module.exports = exports['default'];
21832
21833/***/ }),
21834/* 154 */
21835/***/ (function(module, exports, __webpack_require__) {
21836
21837"use strict";
21838
21839
21840exports.__esModule = true;
21841exports.default = undefined;
21842
21843var _extends2 = __webpack_require__(1);
21844
21845var _extends3 = _interopRequireDefault(_extends2);
21846
21847var _objectWithoutProperties2 = __webpack_require__(8);
21848
21849var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
21850
21851var _classCallCheck2 = __webpack_require__(2);
21852
21853var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
21854
21855var _possibleConstructorReturn2 = __webpack_require__(3);
21856
21857var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21858
21859var _inherits2 = __webpack_require__(4);
21860
21861var _inherits3 = _interopRequireDefault(_inherits2);
21862
21863var _class, _temp2; /* istanbul ignore file */
21864
21865var _react = __webpack_require__(0);
21866
21867var _react2 = _interopRequireDefault(_react);
21868
21869var _propTypes = __webpack_require__(5);
21870
21871var _propTypes2 = _interopRequireDefault(_propTypes);
21872
21873var _reactDom = __webpack_require__(12);
21874
21875var _menu = __webpack_require__(16);
21876
21877var _menu2 = _interopRequireDefault(_menu);
21878
21879function _interopRequireDefault(obj) {
21880 return obj && obj.__esModule ? obj : { default: obj };
21881}
21882
21883var SelectMenu = (_temp2 = _class = function (_Component) {
21884 (0, _inherits3.default)(SelectMenu, _Component);
21885
21886 function SelectMenu() {
21887 var _temp, _this, _ret;
21888
21889 (0, _classCallCheck3.default)(this, SelectMenu);
21890
21891 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
21892 args[_key] = arguments[_key];
21893 }
21894
21895 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.saveRef = function (ref) {
21896 _this.menuEl = ref;
21897 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
21898 }
21899
21900 SelectMenu.prototype.componentDidMount = function componentDidMount() {
21901 this.scrollToSelectedItem();
21902 };
21903
21904 SelectMenu.prototype.scrollToSelectedItem = function scrollToSelectedItem() {
21905 var _props = this.props,
21906 prefix = _props.prefix,
21907 dataSource = _props.dataSource,
21908 value = _props.value;
21909
21910 var selectedIndex = dataSource.findIndex(function (item) {
21911 return item.value === value;
21912 });
21913
21914 if (selectedIndex === -1) {
21915 return;
21916 }
21917
21918 var itemSelector = '.' + prefix + 'menu-item';
21919 var menu = (0, _reactDom.findDOMNode)(this.menuEl);
21920 var targetItem = menu.querySelectorAll(itemSelector)[selectedIndex];
21921 if (targetItem) {
21922 menu.scrollTop = targetItem.offsetTop - Math.floor((menu.clientHeight / targetItem.clientHeight - 1) / 2) * targetItem.clientHeight;
21923 }
21924 };
21925
21926 SelectMenu.prototype.render = function render() {
21927 var _props2 = this.props,
21928 prefix = _props2.prefix,
21929 dataSource = _props2.dataSource,
21930 onChange = _props2.onChange,
21931 value = _props2.value,
21932 className = _props2.className,
21933 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'dataSource', 'onChange', 'value', 'className']);
21934
21935 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, others, {
21936 ref: this.saveRef,
21937 selectMode: 'single',
21938 selectedKeys: [String(value)],
21939 onSelect: function onSelect(selectKeys) {
21940 return onChange(Number(selectKeys[0]));
21941 },
21942 role: 'listbox',
21943 className: prefix + 'calendar-panel-menu ' + className
21944 }), dataSource.map(function (_ref) {
21945 var label = _ref.label,
21946 value = _ref.value;
21947 return _react2.default.createElement(_menu2.default.Item, { key: value }, label);
21948 }));
21949 };
21950
21951 return SelectMenu;
21952}(_react.Component), _class.isNextMenu = true, _class.propTypes = {
21953 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
21954 value: _propTypes2.default.number,
21955 prefix: _propTypes2.default.string,
21956 onChange: _propTypes2.default.func,
21957 children: _propTypes2.default.node
21958}, _temp2);
21959SelectMenu.displayName = 'SelectMenu';
21960exports.default = SelectMenu;
21961module.exports = exports['default'];
21962
21963/***/ }),
21964/* 155 */
21965/***/ (function(module, exports, __webpack_require__) {
21966
21967"use strict";
21968
21969
21970exports.__esModule = true;
21971
21972var _classCallCheck2 = __webpack_require__(2);
21973
21974var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
21975
21976var _possibleConstructorReturn2 = __webpack_require__(3);
21977
21978var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
21979
21980var _inherits2 = __webpack_require__(4);
21981
21982var _inherits3 = _interopRequireDefault(_inherits2);
21983
21984var _react = __webpack_require__(0);
21985
21986var _react2 = _interopRequireDefault(_react);
21987
21988var _icon = __webpack_require__(11);
21989
21990var _icon2 = _interopRequireDefault(_icon);
21991
21992function _interopRequireDefault(obj) {
21993 return obj && obj.__esModule ? obj : { default: obj };
21994}
21995
21996var MonthPanelHeader = function (_React$PureComponent) {
21997 (0, _inherits3.default)(MonthPanelHeader, _React$PureComponent);
21998
21999 function MonthPanelHeader() {
22000 (0, _classCallCheck3.default)(this, MonthPanelHeader);
22001 return (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.apply(this, arguments));
22002 }
22003
22004 MonthPanelHeader.prototype.render = function render() {
22005 var _props = this.props,
22006 prefix = _props.prefix,
22007 visibleMonth = _props.visibleMonth,
22008 locale = _props.locale,
22009 changeMode = _props.changeMode,
22010 goPrevYear = _props.goPrevYear,
22011 goNextYear = _props.goNextYear;
22012
22013 var yearLabel = visibleMonth.year();
22014 var btnCls = prefix + 'calendar-btn';
22015
22016 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
22017 role: 'button',
22018 type: 'button',
22019 title: locale.prevYear,
22020 className: btnCls + ' ' + btnCls + '-prev-year',
22021 onClick: goPrevYear
22022 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-left', className: prefix + 'calendar-symbol-prev-super' })), _react2.default.createElement('div', { className: prefix + 'calendar-panel-header-full' }, _react2.default.createElement('button', {
22023 role: 'button',
22024 type: 'button',
22025 title: yearLabel,
22026 className: '' + btnCls,
22027 onClick: function onClick() {
22028 return changeMode('year');
22029 }
22030 }, yearLabel)), _react2.default.createElement('button', {
22031 role: 'button',
22032 type: 'button',
22033 title: locale.nextYear,
22034 className: btnCls + ' ' + btnCls + '-next-year',
22035 onClick: goNextYear
22036 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
22037 };
22038
22039 return MonthPanelHeader;
22040}(_react2.default.PureComponent);
22041
22042exports.default = MonthPanelHeader;
22043module.exports = exports['default'];
22044
22045/***/ }),
22046/* 156 */
22047/***/ (function(module, exports, __webpack_require__) {
22048
22049"use strict";
22050
22051
22052exports.__esModule = true;
22053
22054var _classCallCheck2 = __webpack_require__(2);
22055
22056var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22057
22058var _possibleConstructorReturn2 = __webpack_require__(3);
22059
22060var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22061
22062var _inherits2 = __webpack_require__(4);
22063
22064var _inherits3 = _interopRequireDefault(_inherits2);
22065
22066var _react = __webpack_require__(0);
22067
22068var _react2 = _interopRequireDefault(_react);
22069
22070var _icon = __webpack_require__(11);
22071
22072var _icon2 = _interopRequireDefault(_icon);
22073
22074function _interopRequireDefault(obj) {
22075 return obj && obj.__esModule ? obj : { default: obj };
22076}
22077
22078var YearPanelHeader = function (_React$PureComponent) {
22079 (0, _inherits3.default)(YearPanelHeader, _React$PureComponent);
22080
22081 function YearPanelHeader() {
22082 var _temp, _this, _ret;
22083
22084 (0, _classCallCheck3.default)(this, YearPanelHeader);
22085
22086 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
22087 args[_key] = arguments[_key];
22088 }
22089
22090 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.getDecadeLabel = function (date) {
22091 var year = date.year();
22092 var start = parseInt(year / 10, 10) * 10;
22093 var end = start + 9;
22094 return start + '-' + end;
22095 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
22096 }
22097
22098 YearPanelHeader.prototype.render = function render() {
22099 var _props = this.props,
22100 prefix = _props.prefix,
22101 visibleMonth = _props.visibleMonth,
22102 locale = _props.locale,
22103 goPrevDecade = _props.goPrevDecade,
22104 goNextDecade = _props.goNextDecade;
22105
22106 var decadeLable = this.getDecadeLabel(visibleMonth);
22107 var btnCls = prefix + 'calendar-btn';
22108
22109 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
22110 role: 'button',
22111 type: 'button',
22112 title: locale.prevDecade,
22113 className: btnCls + ' ' + btnCls + '-prev-decade',
22114 onClick: goPrevDecade
22115 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-left', className: prefix + 'calendar-symbol-prev-super' })), _react2.default.createElement('div', { className: prefix + 'calendar-panel-header-full' }, _react2.default.createElement('button', { role: 'button', type: 'button', title: decadeLable, className: btnCls }, decadeLable)), _react2.default.createElement('button', {
22116 role: 'button',
22117 type: 'button',
22118 title: locale.nextDecade,
22119 className: btnCls + ' ' + btnCls + '-next-decade',
22120 onClick: goNextDecade
22121 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
22122 };
22123
22124 return YearPanelHeader;
22125}(_react2.default.PureComponent);
22126
22127exports.default = YearPanelHeader;
22128module.exports = exports['default'];
22129
22130/***/ }),
22131/* 157 */
22132/***/ (function(module, exports, __webpack_require__) {
22133
22134"use strict";
22135
22136
22137exports.__esModule = true;
22138
22139var _extends2 = __webpack_require__(1);
22140
22141var _extends3 = _interopRequireDefault(_extends2);
22142
22143var _classCallCheck2 = __webpack_require__(2);
22144
22145var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22146
22147var _possibleConstructorReturn2 = __webpack_require__(3);
22148
22149var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22150
22151var _inherits2 = __webpack_require__(4);
22152
22153var _inherits3 = _interopRequireDefault(_inherits2);
22154
22155var _react = __webpack_require__(0);
22156
22157var _react2 = _interopRequireDefault(_react);
22158
22159var _classnames = __webpack_require__(7);
22160
22161var _classnames2 = _interopRequireDefault(_classnames);
22162
22163var _dateTableHead = __webpack_require__(316);
22164
22165var _dateTableHead2 = _interopRequireDefault(_dateTableHead);
22166
22167var _utils = __webpack_require__(22);
22168
22169function _interopRequireDefault(obj) {
22170 return obj && obj.__esModule ? obj : { default: obj };
22171}
22172
22173function isSameDay(a, b) {
22174 return a && b && a.isSame(b, 'day');
22175}
22176
22177function isRangeDate(date, startDate, endDate) {
22178 return date.format('L') !== startDate.format('L') && date.format('L') !== endDate.format('L') && date.valueOf() > startDate.valueOf() && date.valueOf() < endDate.valueOf();
22179}
22180
22181function isLastMonthDate(date, target) {
22182 if (date.year() < target.year()) {
22183 return 1;
22184 }
22185 return date.year() === target.year() && date.month() < target.month();
22186}
22187
22188function isNextMonthDate(date, target) {
22189 if (date.year() > target.year()) {
22190 return 1;
22191 }
22192 return date.year() === target.year() && date.month() > target.month();
22193}
22194
22195var DateTable = function (_PureComponent) {
22196 (0, _inherits3.default)(DateTable, _PureComponent);
22197
22198 function DateTable() {
22199 (0, _classCallCheck3.default)(this, DateTable);
22200 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
22201 }
22202
22203 DateTable.prototype.render = function render() {
22204 var _props = this.props,
22205 prefix = _props.prefix,
22206 visibleMonth = _props.visibleMonth,
22207 showOtherMonth = _props.showOtherMonth,
22208 endValue = _props.endValue,
22209 format = _props.format,
22210 today = _props.today,
22211 momentLocale = _props.momentLocale,
22212 dateCellRender = _props.dateCellRender,
22213 disabledDate = _props.disabledDate,
22214 onSelectDate = _props.onSelectDate;
22215
22216 var startValue = this.props.startValue || this.props.value;
22217
22218 var firstDayOfMonth = visibleMonth.clone().startOf('month'); // 该月的 1 号
22219 var firstDayOfMonthInWeek = firstDayOfMonth.day(); // 星期几
22220
22221 var firstDayOfWeek = momentLocale.firstDayOfWeek();
22222
22223 var datesOfLastMonthCount = (firstDayOfMonthInWeek + _utils.DAYS_OF_WEEK - firstDayOfWeek) % _utils.DAYS_OF_WEEK;
22224
22225 var lastMonthDate = firstDayOfMonth.clone();
22226 lastMonthDate.add(0 - datesOfLastMonthCount, 'days');
22227
22228 var counter = 0;
22229 var currentDate = void 0;
22230 var dateList = [];
22231 for (var i = 0; i < _utils.CALENDAR_TABLE_ROW_COUNT; i++) {
22232 for (var j = 0; j < _utils.CALENDAR_TABLE_COL_COUNT; j++) {
22233 currentDate = lastMonthDate;
22234 if (counter) {
22235 currentDate = currentDate.clone();
22236 currentDate.add(counter, 'days');
22237 }
22238 dateList.push(currentDate);
22239 counter++;
22240 }
22241 }
22242 counter = 0; // reset counter
22243 var monthElements = [];
22244 for (var _i = 0; _i < _utils.CALENDAR_TABLE_ROW_COUNT; _i++) {
22245 var weekElements = [];
22246 var firstDayOfWeekInCurrentMonth = true;
22247 var lastDayOfWeekInCurrentMonth = true;
22248 for (var _j = 0; _j < _utils.CALENDAR_TABLE_COL_COUNT; _j++) {
22249 var _classNames;
22250
22251 currentDate = dateList[counter];
22252 if (_j === 0) {
22253 // currentDate 的month 是否等于当前月 firstDayOfMonth
22254 firstDayOfWeekInCurrentMonth = currentDate.format('M') === firstDayOfMonth.format('M');
22255 }
22256 if (_j === _utils.CALENDAR_TABLE_COL_COUNT - 1) {
22257 // currentDate 的month 是否等于当前月 firstDayOfMonth
22258 lastDayOfWeekInCurrentMonth = currentDate.format('M') === firstDayOfMonth.format('M');
22259 }
22260 var isLastMonth = isLastMonthDate(currentDate, visibleMonth);
22261 var isNextMonth = isNextMonthDate(currentDate, visibleMonth);
22262 var isCurrentMonth = !isLastMonth && !isNextMonth;
22263
22264 var isDisabled = (0, _utils.isDisabledDate)(currentDate, disabledDate, 'date');
22265 var isToday = !isDisabled && isSameDay(currentDate, today) && isCurrentMonth;
22266 var isSelected = !isDisabled && (isSameDay(currentDate, startValue) || isSameDay(currentDate, endValue)) && isCurrentMonth;
22267 var isInRange = !isDisabled && startValue && endValue && isRangeDate(currentDate, startValue, endValue) && isCurrentMonth;
22268
22269 var cellContent = !showOtherMonth && !isCurrentMonth ? null : dateCellRender(currentDate);
22270
22271 var elementCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'calendar-cell'] = true, _classNames[prefix + 'calendar-cell-prev-month'] = isLastMonth, _classNames[prefix + 'calendar-cell-next-month'] = isNextMonth, _classNames[prefix + 'calendar-cell-current'] = isToday, _classNames[prefix + 'inrange'] = isInRange, _classNames[prefix + 'selected'] = isSelected, _classNames[prefix + 'disabled'] = cellContent && isDisabled, _classNames));
22272
22273 weekElements.push(_react2.default.createElement('td', {
22274 key: counter,
22275 title: currentDate.format(format),
22276 onClick: isDisabled ? undefined : onSelectDate.bind(null, currentDate),
22277 className: elementCls,
22278 role: 'cell',
22279 'aria-disabled': isDisabled ? 'true' : 'false',
22280 'aria-selected': isSelected ? 'true' : 'false'
22281 }, _react2.default.createElement('div', { className: prefix + 'calendar-date' }, cellContent)));
22282 counter++;
22283 }
22284
22285 if (!showOtherMonth && !lastDayOfWeekInCurrentMonth && !firstDayOfWeekInCurrentMonth) {
22286 break;
22287 }
22288
22289 monthElements.push(_react2.default.createElement('tr', { key: _i, role: 'row' }, weekElements));
22290 }
22291
22292 return _react2.default.createElement('table', { className: prefix + 'calendar-table', role: 'grid' }, _react2.default.createElement(_dateTableHead2.default, (0, _extends3.default)({}, this.props, { momentLocale: momentLocale })), _react2.default.createElement('tbody', { className: prefix + 'calendar-tbody', role: 'rowgroup' }, monthElements));
22293 };
22294
22295 return DateTable;
22296}(_react.PureComponent);
22297
22298exports.default = DateTable;
22299module.exports = exports['default'];
22300
22301/***/ }),
22302/* 158 */
22303/***/ (function(module, exports, __webpack_require__) {
22304
22305"use strict";
22306
22307
22308exports.__esModule = true;
22309
22310var _classCallCheck2 = __webpack_require__(2);
22311
22312var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22313
22314var _possibleConstructorReturn2 = __webpack_require__(3);
22315
22316var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22317
22318var _inherits2 = __webpack_require__(4);
22319
22320var _inherits3 = _interopRequireDefault(_inherits2);
22321
22322var _react = __webpack_require__(0);
22323
22324var _react2 = _interopRequireDefault(_react);
22325
22326var _classnames2 = __webpack_require__(7);
22327
22328var _classnames3 = _interopRequireDefault(_classnames2);
22329
22330var _utils = __webpack_require__(22);
22331
22332function _interopRequireDefault(obj) {
22333 return obj && obj.__esModule ? obj : { default: obj };
22334}
22335
22336function isSameMonth(currentDate, selectedDate) {
22337 return selectedDate && currentDate.year() === selectedDate.year() && currentDate.month() === selectedDate.month();
22338}
22339
22340var MonthTable = function (_PureComponent) {
22341 (0, _inherits3.default)(MonthTable, _PureComponent);
22342
22343 function MonthTable() {
22344 (0, _classCallCheck3.default)(this, MonthTable);
22345 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
22346 }
22347
22348 MonthTable.prototype.onMonthCellClick = function onMonthCellClick(date) {
22349 this.props.onSelectMonth(date, 'date');
22350 };
22351
22352 MonthTable.prototype.render = function render() {
22353 var _props = this.props,
22354 prefix = _props.prefix,
22355 value = _props.value,
22356 visibleMonth = _props.visibleMonth,
22357 disabledDate = _props.disabledDate,
22358 today = _props.today,
22359 momentLocale = _props.momentLocale,
22360 monthCellRender = _props.monthCellRender;
22361
22362 var monthLocale = momentLocale.monthsShort();
22363
22364 var counter = 0;
22365 var monthList = [];
22366 for (var i = 0; i < _utils.MONTH_TABLE_ROW_COUNT; i++) {
22367 var rowList = [];
22368 for (var j = 0; j < _utils.MONTH_TABLE_COL_COUNT; j++) {
22369 var _classnames;
22370
22371 var monthDate = visibleMonth.clone().month(counter);
22372 var isDisabled = (0, _utils.isDisabledDate)(monthDate, disabledDate, 'month');
22373 var isSelected = isSameMonth(monthDate, value);
22374 var isThisMonth = isSameMonth(monthDate, today);
22375 var elementCls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'calendar-cell'] = true, _classnames[prefix + 'calendar-cell-current'] = isThisMonth, _classnames[prefix + 'selected'] = isSelected, _classnames[prefix + 'disabled'] = isDisabled, _classnames));
22376 var localedMonth = monthLocale[counter];
22377 var monthCellContent = monthCellRender ? monthCellRender(monthDate) : localedMonth;
22378 rowList.push(_react2.default.createElement('td', {
22379 key: counter,
22380 title: localedMonth,
22381 onClick: isDisabled ? undefined : this.onMonthCellClick.bind(this, monthDate),
22382 className: elementCls,
22383 role: 'cell',
22384 'aria-disabled': isDisabled ? 'true' : 'false',
22385 'aria-selected': isSelected ? 'true' : 'false'
22386 }, _react2.default.createElement('div', { className: prefix + 'calendar-month' }, monthCellContent)));
22387 counter++;
22388 }
22389 monthList.push(_react2.default.createElement('tr', { key: i, role: 'row' }, rowList));
22390 }
22391
22392 return _react2.default.createElement('table', { className: prefix + 'calendar-table', role: 'grid' }, _react2.default.createElement('tbody', { className: prefix + 'calendar-tbody', role: 'rowgroup' }, monthList));
22393 };
22394
22395 return MonthTable;
22396}(_react.PureComponent);
22397
22398exports.default = MonthTable;
22399module.exports = exports['default'];
22400
22401/***/ }),
22402/* 159 */
22403/***/ (function(module, exports, __webpack_require__) {
22404
22405"use strict";
22406
22407
22408exports.__esModule = true;
22409
22410var _classCallCheck2 = __webpack_require__(2);
22411
22412var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22413
22414var _possibleConstructorReturn2 = __webpack_require__(3);
22415
22416var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22417
22418var _inherits2 = __webpack_require__(4);
22419
22420var _inherits3 = _interopRequireDefault(_inherits2);
22421
22422var _react = __webpack_require__(0);
22423
22424var _react2 = _interopRequireDefault(_react);
22425
22426var _classnames2 = __webpack_require__(7);
22427
22428var _classnames3 = _interopRequireDefault(_classnames2);
22429
22430var _icon = __webpack_require__(11);
22431
22432var _icon2 = _interopRequireDefault(_icon);
22433
22434var _utils = __webpack_require__(22);
22435
22436function _interopRequireDefault(obj) {
22437 return obj && obj.__esModule ? obj : { default: obj };
22438}
22439
22440var YearTable = function (_React$PureComponent) {
22441 (0, _inherits3.default)(YearTable, _React$PureComponent);
22442
22443 function YearTable() {
22444 (0, _classCallCheck3.default)(this, YearTable);
22445 return (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.apply(this, arguments));
22446 }
22447
22448 YearTable.prototype.onYearCellClick = function onYearCellClick(date) {
22449 this.props.onSelectYear(date, 'month');
22450 };
22451
22452 YearTable.prototype.render = function render() {
22453 var _props = this.props,
22454 prefix = _props.prefix,
22455 value = _props.value,
22456 today = _props.today,
22457 visibleMonth = _props.visibleMonth,
22458 locale = _props.locale,
22459 disabledDate = _props.disabledDate,
22460 goPrevDecade = _props.goPrevDecade,
22461 goNextDecade = _props.goNextDecade,
22462 yearCellRender = _props.yearCellRender;
22463
22464 var currentYear = today.year();
22465 var selectedYear = value ? value.year() : null;
22466 var visibleYear = visibleMonth.year();
22467 var startYear = Math.floor(visibleYear / 10) * 10;
22468
22469 var yearElements = [];
22470 var counter = 0;
22471
22472 var lastRowIndex = _utils.YEAR_TABLE_ROW_COUNT - 1;
22473 var lastColIndex = _utils.YEAR_TABLE_COL_COUNT - 1;
22474
22475 for (var i = 0; i < _utils.YEAR_TABLE_ROW_COUNT; i++) {
22476 var rowElements = [];
22477 for (var j = 0; j < _utils.YEAR_TABLE_COL_COUNT; j++) {
22478 var _classnames;
22479
22480 var content = void 0;
22481 var year = void 0;
22482 var isDisabled = false;
22483 var onClick = void 0;
22484 var title = void 0;
22485
22486 if (i === 0 && j === 0) {
22487 title = locale.prevDecade;
22488 onClick = goPrevDecade;
22489 content = _react2.default.createElement(_icon2.default, { type: 'arrow-left', size: 'xs' });
22490 } else if (i === lastRowIndex && j === lastColIndex) {
22491 title = locale.nextDecade;
22492 onClick = goNextDecade;
22493 content = _react2.default.createElement(_icon2.default, { type: 'arrow-right', size: 'xs' });
22494 } else {
22495 year = startYear + counter++;
22496 title = year;
22497 var yearDate = visibleMonth.clone().year(year);
22498 isDisabled = (0, _utils.isDisabledDate)(yearDate, disabledDate, 'year');
22499
22500 !isDisabled && (onClick = this.onYearCellClick.bind(this, yearDate));
22501
22502 content = yearCellRender ? yearCellRender(yearDate) : year;
22503 }
22504
22505 var isSelected = year === selectedYear;
22506
22507 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'calendar-cell'] = true, _classnames[prefix + 'calendar-cell-current'] = year === currentYear, _classnames[prefix + 'selected'] = isSelected, _classnames[prefix + 'disabled'] = isDisabled, _classnames));
22508
22509 rowElements.push(_react2.default.createElement('td', { key: i + '-' + j, className: classNames, role: 'cell' }, _react2.default.createElement('div', {
22510 className: prefix + 'calendar-year',
22511 onClick: onClick,
22512 title: title,
22513 'aria-disabled': isDisabled ? 'true' : 'false',
22514 'aria-selected': isSelected ? 'true' : 'false'
22515 }, content)));
22516 }
22517 yearElements.push(_react2.default.createElement('tr', { key: i, role: 'row' }, rowElements));
22518 }
22519 return _react2.default.createElement('table', { className: prefix + 'calendar-table', role: 'grid' }, _react2.default.createElement('tbody', { className: prefix + 'calendar-tbody', role: 'rowgroup' }, yearElements));
22520 };
22521
22522 return YearTable;
22523}(_react2.default.PureComponent);
22524
22525exports.default = YearTable;
22526module.exports = exports['default'];
22527
22528/***/ }),
22529/* 160 */
22530/***/ (function(module, exports, __webpack_require__) {
22531
22532"use strict";
22533
22534
22535exports.__esModule = true;
22536
22537var _extends2 = __webpack_require__(1);
22538
22539var _extends3 = _interopRequireDefault(_extends2);
22540
22541var _objectWithoutProperties2 = __webpack_require__(8);
22542
22543var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
22544
22545var _classCallCheck2 = __webpack_require__(2);
22546
22547var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22548
22549var _possibleConstructorReturn2 = __webpack_require__(3);
22550
22551var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22552
22553var _inherits2 = __webpack_require__(4);
22554
22555var _inherits3 = _interopRequireDefault(_inherits2);
22556
22557var _class, _temp;
22558
22559var _react = __webpack_require__(0);
22560
22561var _react2 = _interopRequireDefault(_react);
22562
22563var _propTypes = __webpack_require__(5);
22564
22565var _propTypes2 = _interopRequireDefault(_propTypes);
22566
22567var _reactLifecyclesCompat = __webpack_require__(10);
22568
22569var _classnames2 = __webpack_require__(7);
22570
22571var _classnames3 = _interopRequireDefault(_classnames2);
22572
22573var _moment = __webpack_require__(19);
22574
22575var _moment2 = _interopRequireDefault(_moment);
22576
22577var _configProvider = __webpack_require__(9);
22578
22579var _configProvider2 = _interopRequireDefault(_configProvider);
22580
22581var _zhCn = __webpack_require__(13);
22582
22583var _zhCn2 = _interopRequireDefault(_zhCn);
22584
22585var _util = __webpack_require__(6);
22586
22587var _rangePanelHeader = __webpack_require__(317);
22588
22589var _rangePanelHeader2 = _interopRequireDefault(_rangePanelHeader);
22590
22591var _monthPanelHeader = __webpack_require__(155);
22592
22593var _monthPanelHeader2 = _interopRequireDefault(_monthPanelHeader);
22594
22595var _yearPanelHeader = __webpack_require__(156);
22596
22597var _yearPanelHeader2 = _interopRequireDefault(_yearPanelHeader);
22598
22599var _dateTable = __webpack_require__(157);
22600
22601var _dateTable2 = _interopRequireDefault(_dateTable);
22602
22603var _monthTable = __webpack_require__(158);
22604
22605var _monthTable2 = _interopRequireDefault(_monthTable);
22606
22607var _yearTable = __webpack_require__(159);
22608
22609var _yearTable2 = _interopRequireDefault(_yearTable);
22610
22611var _utils = __webpack_require__(22);
22612
22613function _interopRequireDefault(obj) {
22614 return obj && obj.__esModule ? obj : { default: obj };
22615}
22616
22617var RangeCalendar = (_temp = _class = function (_React$Component) {
22618 (0, _inherits3.default)(RangeCalendar, _React$Component);
22619
22620 function RangeCalendar(props, context) {
22621 (0, _classCallCheck3.default)(this, RangeCalendar);
22622
22623 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
22624
22625 _this.onSelectCell = function (date, nextMode) {
22626 if (_this.state.mode === _utils.CALENDAR_MODE_DATE) {
22627 _this.props.onSelect(date);
22628 } else {
22629 _this.changeVisibleMonth(date, 'cellClick');
22630 }
22631
22632 _this.changeMode(nextMode);
22633 };
22634
22635 _this.changeMode = function (mode, activePanel) {
22636 var _this$state = _this.state,
22637 lastMode = _this$state.lastMode,
22638 lastPanelType = _this$state.lastPanelType;
22639
22640 var state = {
22641 lastMode: mode,
22642 // rangePicker的panel下,选 year -> month ,从当前函数的activePanel传来的数据已经拿不到 start end panel的状态了,需要根据 lastMode 来判断
22643 lastPanelType: lastMode === 'year' ? lastPanelType : activePanel
22644 };
22645 if (typeof mode === 'string' && mode !== _this.state.mode) {
22646 state.mode = mode;
22647 }
22648 if (activePanel && activePanel !== _this.state.activePanel) {
22649 state.activePanel = activePanel;
22650 }
22651
22652 _this.setState(state);
22653 };
22654
22655 _this.changeVisibleMonth = function (date, reason) {
22656 var lastPanelType = _this.state.lastPanelType;
22657
22658 if (!(0, _utils.isSameYearMonth)(date, _this.state.startVisibleMonth)) {
22659 var startVisibleMonth = lastPanelType === 'end' ? date.clone().add(-1, 'month') : date;
22660 _this.setState({ startVisibleMonth: startVisibleMonth });
22661 _this.props.onVisibleMonthChange(startVisibleMonth, reason);
22662 }
22663 };
22664
22665 _this.changeVisibleMonthByOffset = function (offset, type) {
22666 var offsetDate = _this.state.startVisibleMonth.clone().add(offset, type);
22667 _this.changeVisibleMonth(offsetDate, 'buttonClick');
22668 };
22669
22670 _this.goPrevDecade = function () {
22671 _this.changeVisibleMonthByOffset(-10, 'years');
22672 };
22673
22674 _this.goNextDecade = function () {
22675 _this.changeVisibleMonthByOffset(10, 'years');
22676 };
22677
22678 _this.goPrevYear = function () {
22679 _this.changeVisibleMonthByOffset(-1, 'years');
22680 };
22681
22682 _this.goNextYear = function () {
22683 _this.changeVisibleMonthByOffset(1, 'years');
22684 };
22685
22686 _this.goPrevMonth = function () {
22687 _this.changeVisibleMonthByOffset(-1, 'months');
22688 };
22689
22690 _this.goNextMonth = function () {
22691 _this.changeVisibleMonthByOffset(1, 'months');
22692 };
22693
22694 var startValue = (0, _utils.formatDateValue)(props.startValue || props.defaultStartValue);
22695 var endValue = (0, _utils.formatDateValue)(props.endValue || props.defaultEndValue);
22696 var visibleMonth = (0, _utils.getVisibleMonth)(props.defaultVisibleMonth, startValue);
22697
22698 _this.state = {
22699 startValue: startValue,
22700 endValue: endValue,
22701 mode: props.mode,
22702 prevMode: props.mode,
22703 startVisibleMonth: visibleMonth,
22704 activePanel: undefined,
22705 lastMode: undefined,
22706 lastPanelType: 'start' // enum, 包括 start end
22707 };
22708 _this.today = (0, _moment2.default)();
22709 return _this;
22710 }
22711
22712 RangeCalendar.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
22713 var st = {};
22714 if ('startValue' in props) {
22715 var startValue = (0, _utils.formatDateValue)(props.startValue);
22716 st.startValue = startValue;
22717 if (startValue && !startValue.isSame(state.startValue, 'day')) {
22718 st.startVisibleMonth = startValue;
22719 }
22720 }
22721
22722 if ('endValue' in props) {
22723 st.endValue = (0, _utils.formatDateValue)(props.endValue);
22724 }
22725
22726 if ('mode' in props && state.prevMode !== props.mode) {
22727 st.prevMode = props.mode;
22728 st.mode = props.mode;
22729 }
22730
22731 return st;
22732 };
22733
22734 /**
22735 * 根据日期偏移量设置当前展示的月份
22736 * @param {Number} offset 日期偏移量
22737 * @param {String} type 日期偏移类型 days, months, years
22738 */
22739
22740 RangeCalendar.prototype.render = function render() {
22741 var _classnames;
22742
22743 var _props = this.props,
22744 prefix = _props.prefix,
22745 rtl = _props.rtl,
22746 dateCellRender = _props.dateCellRender,
22747 monthCellRender = _props.monthCellRender,
22748 yearCellRender = _props.yearCellRender,
22749 className = _props.className,
22750 format = _props.format,
22751 locale = _props.locale,
22752 showOtherMonth = _props.showOtherMonth,
22753 disabledDate = _props.disabledDate,
22754 disableChangeMode = _props.disableChangeMode,
22755 yearRange = _props.yearRange,
22756 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'dateCellRender', 'monthCellRender', 'yearCellRender', 'className', 'format', 'locale', 'showOtherMonth', 'disabledDate', 'disableChangeMode', 'yearRange']);
22757 var _state = this.state,
22758 startValue = _state.startValue,
22759 endValue = _state.endValue,
22760 mode = _state.mode,
22761 startVisibleMonth = _state.startVisibleMonth,
22762 activePanel = _state.activePanel;
22763
22764 // reset moment locale
22765
22766 if (locale.momentLocale) {
22767 startValue && startValue.locale(locale.momentLocale);
22768 endValue && endValue.locale(locale.momentLocale);
22769 startVisibleMonth.locale(locale.momentLocale);
22770 }
22771
22772 if (rtl) {
22773 others.dir = 'rtl';
22774 }
22775 var localeData = (0, _utils.getLocaleData)(locale.format || {}, startVisibleMonth.localeData());
22776
22777 var endVisibleMonth = startVisibleMonth.clone().add(1, 'months');
22778
22779 var headerProps = {
22780 prefix: prefix,
22781 rtl: rtl,
22782 mode: mode,
22783 locale: locale,
22784 momentLocale: localeData,
22785 startVisibleMonth: startVisibleMonth,
22786 endVisibleMonth: endVisibleMonth,
22787 changeVisibleMonth: this.changeVisibleMonth,
22788 changeMode: this.changeMode,
22789 yearRange: yearRange,
22790 disableChangeMode: disableChangeMode
22791 };
22792
22793 var tableProps = {
22794 prefix: prefix,
22795 value: startValue,
22796 startValue: startValue,
22797 endValue: endValue,
22798 mode: mode,
22799 locale: locale,
22800 momentLocale: localeData,
22801 showOtherMonth: showOtherMonth,
22802 today: this.today,
22803 disabledDate: disabledDate,
22804 dateCellRender: dateCellRender,
22805 monthCellRender: monthCellRender,
22806 yearCellRender: yearCellRender,
22807 changeMode: this.changeMode,
22808 changeVisibleMonth: this.changeVisibleMonth
22809 };
22810
22811 var visibleMonths = {
22812 start: startVisibleMonth,
22813 end: endVisibleMonth
22814 };
22815
22816 var visibleMonth = visibleMonths[activePanel];
22817
22818 var header = void 0;
22819 var table = void 0;
22820
22821 switch (mode) {
22822 case _utils.CALENDAR_MODE_DATE:
22823 {
22824 table = [_react2.default.createElement('div', { className: prefix + 'calendar-body-left', key: 'left-panel' }, _react2.default.createElement(_dateTable2.default, (0, _extends3.default)({
22825 format: format
22826 }, tableProps, {
22827 visibleMonth: startVisibleMonth,
22828 onSelectDate: this.onSelectCell
22829 }))), _react2.default.createElement('div', { className: prefix + 'calendar-body-right', key: 'right-panel' }, _react2.default.createElement(_dateTable2.default, (0, _extends3.default)({
22830 format: format
22831 }, tableProps, {
22832 visibleMonth: endVisibleMonth,
22833 onSelectDate: this.onSelectCell
22834 })))];
22835 header = _react2.default.createElement(_rangePanelHeader2.default, (0, _extends3.default)({}, headerProps, {
22836 goPrevYear: this.goPrevYear,
22837 goPrevMonth: this.goPrevMonth,
22838 goNextYear: this.goNextYear,
22839 goNextMonth: this.goNextMonth
22840 }));
22841 break;
22842 }
22843 case _utils.CALENDAR_MODE_MONTH:
22844 {
22845 table = _react2.default.createElement(_monthTable2.default, (0, _extends3.default)({}, tableProps, { visibleMonth: visibleMonth, onSelectMonth: this.onSelectCell }));
22846 header = _react2.default.createElement(_monthPanelHeader2.default, (0, _extends3.default)({}, headerProps, {
22847 visibleMonth: visibleMonth,
22848 goPrevYear: this.goPrevYear,
22849 goNextYear: this.goNextYear
22850 }));
22851 break;
22852 }
22853 case _utils.CALENDAR_MODE_YEAR:
22854 {
22855 table = _react2.default.createElement(_yearTable2.default, (0, _extends3.default)({}, tableProps, {
22856 rtl: rtl,
22857 visibleMonth: visibleMonth,
22858 onSelectYear: this.onSelectCell,
22859 goPrevDecade: this.goPrevDecade,
22860 goNextDecade: this.goNextDecade
22861 }));
22862 header = _react2.default.createElement(_yearPanelHeader2.default, (0, _extends3.default)({}, headerProps, {
22863 visibleMonth: visibleMonth,
22864 goPrevDecade: this.goPrevDecade,
22865 goNextDecade: this.goNextDecade
22866 }));
22867 break;
22868 }
22869 }
22870
22871 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'calendar'] = true, _classnames[prefix + 'calendar-range'] = true, _classnames), className);
22872
22873 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(RangeCalendar.propTypes, others), { className: classNames }), header, _react2.default.createElement('div', { className: prefix + 'calendar-body' }, table));
22874 };
22875
22876 return RangeCalendar;
22877}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
22878 /**
22879 * 样式前缀
22880 */
22881 prefix: _propTypes2.default.string,
22882 rtl: _propTypes2.default.bool,
22883 /**
22884 * 默认的开始日期
22885 */
22886 defaultStartValue: _utils.checkMomentObj,
22887 /**
22888 * 默认的结束日期
22889 */
22890 defaultEndValue: _utils.checkMomentObj,
22891 /**
22892 * 开始日期(moment 对象)
22893 */
22894 startValue: _utils.checkMomentObj,
22895 /**
22896 * 结束日期(moment 对象)
22897 */
22898 endValue: _utils.checkMomentObj,
22899 // 面板模式
22900 mode: _propTypes2.default.oneOf(_utils.CALENDAR_MODES),
22901 // 禁用更改面板模式,采用 dropdown 的方式切换显示日期 (暂不正式对外透出)
22902 disableChangeMode: _propTypes2.default.bool,
22903 // 日期值的格式(用于日期title显示的格式)
22904 format: _propTypes2.default.string,
22905 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
22906 /**
22907 * 是否显示非本月的日期
22908 */
22909 showOtherMonth: _propTypes2.default.bool,
22910 /**
22911 * 模板展示的月份(起始月份)
22912 */
22913 defaultVisibleMonth: _propTypes2.default.func,
22914 /**
22915 * 展现的月份变化时的回调
22916 * @param {Object} value 显示的月份 (moment 对象)
22917 * @param {String} reason 触发月份改变原因
22918 */
22919 onVisibleMonthChange: _propTypes2.default.func,
22920 /**
22921 * 不可选择的日期
22922 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
22923 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
22924 * @returns {Boolean}
22925 */
22926 disabledDate: _propTypes2.default.func,
22927 /**
22928 * 选择日期单元格时的回调
22929 * @param {Object} value 对应的日期值 (moment 对象)
22930 */
22931 onSelect: _propTypes2.default.func,
22932 /**
22933 * 自定义日期单元格渲染
22934 */
22935 dateCellRender: _propTypes2.default.func,
22936 /**
22937 * 自定义月份渲染函数
22938 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
22939 * @returns {ReactNode}
22940 */
22941 monthCellRender: _propTypes2.default.func,
22942 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
22943 locale: _propTypes2.default.object,
22944 className: _propTypes2.default.string
22945}), _class.defaultProps = {
22946 prefix: 'next-',
22947 rtl: false,
22948 mode: _utils.CALENDAR_MODE_DATE,
22949 disableChangeMode: false,
22950 format: 'YYYY-MM-DD',
22951 dateCellRender: function dateCellRender(value) {
22952 return value.date();
22953 },
22954 onSelect: _util.func.noop,
22955 onVisibleMonthChange: _util.func.noop,
22956 locale: _zhCn2.default.Calendar,
22957 showOtherMonth: false
22958}, _temp);
22959RangeCalendar.displayName = 'RangeCalendar';
22960exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(RangeCalendar), {
22961 componentName: 'Calendar'
22962});
22963module.exports = exports['default'];
22964
22965/***/ }),
22966/* 161 */
22967/***/ (function(module, exports, __webpack_require__) {
22968
22969"use strict";
22970
22971
22972exports.__esModule = true;
22973
22974var _classCallCheck2 = __webpack_require__(2);
22975
22976var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
22977
22978var _possibleConstructorReturn2 = __webpack_require__(3);
22979
22980var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
22981
22982var _inherits2 = __webpack_require__(4);
22983
22984var _inherits3 = _interopRequireDefault(_inherits2);
22985
22986var _class, _temp;
22987
22988var _react = __webpack_require__(0);
22989
22990var _react2 = _interopRequireDefault(_react);
22991
22992var _propTypes = __webpack_require__(5);
22993
22994var _propTypes2 = _interopRequireDefault(_propTypes);
22995
22996var _classnames = __webpack_require__(7);
22997
22998var _classnames2 = _interopRequireDefault(_classnames);
22999
23000var _configProvider = __webpack_require__(9);
23001
23002var _configProvider2 = _interopRequireDefault(_configProvider);
23003
23004function _interopRequireDefault(obj) {
23005 return obj && obj.__esModule ? obj : { default: obj };
23006}
23007
23008/**
23009 * Card.BulletHeader
23010 * @order 2
23011 */
23012var CardBulletHeader = (_temp = _class = function (_Component) {
23013 (0, _inherits3.default)(CardBulletHeader, _Component);
23014
23015 function CardBulletHeader() {
23016 (0, _classCallCheck3.default)(this, CardBulletHeader);
23017 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
23018 }
23019
23020 CardBulletHeader.prototype.render = function render() {
23021 var _classNames;
23022
23023 var _props = this.props,
23024 prefix = _props.prefix,
23025 title = _props.title,
23026 subTitle = _props.subTitle,
23027 extra = _props.extra,
23028 showTitleBullet = _props.showTitleBullet;
23029
23030 if (!title) return null;
23031
23032 var headCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'card-head'] = true, _classNames[prefix + 'card-head-show-bullet'] = showTitleBullet, _classNames));
23033
23034 var headExtra = extra ? _react2.default.createElement('div', { className: prefix + 'card-extra' }, extra) : null;
23035
23036 return _react2.default.createElement('div', { className: headCls }, _react2.default.createElement('div', { className: prefix + 'card-head-main' }, _react2.default.createElement('div', { className: prefix + 'card-title' }, title, subTitle ? _react2.default.createElement('span', { className: prefix + 'card-subtitle' }, subTitle) : null), headExtra));
23037 };
23038
23039 return CardBulletHeader;
23040}(_react.Component), _class.propTypes = {
23041 prefix: _propTypes2.default.string,
23042 /**
23043 * 卡片的标题
23044 */
23045 title: _propTypes2.default.node,
23046 /**
23047 * 卡片的副标题
23048 */
23049 subTitle: _propTypes2.default.node,
23050 /**
23051 * 是否显示标题的项目符号
23052 */
23053 showTitleBullet: _propTypes2.default.bool,
23054 /**
23055 * 标题区域的用户自定义内容
23056 */
23057 extra: _propTypes2.default.node
23058}, _class.defaultProps = {
23059 prefix: 'next-',
23060 showTitleBullet: true
23061}, _temp);
23062CardBulletHeader.displayName = 'CardBulletHeader';
23063exports.default = _configProvider2.default.config(CardBulletHeader, {
23064 componentName: 'Card'
23065});
23066module.exports = exports['default'];
23067
23068/***/ }),
23069/* 162 */
23070/***/ (function(module, exports, __webpack_require__) {
23071
23072"use strict";
23073
23074
23075exports.__esModule = true;
23076
23077var _classCallCheck2 = __webpack_require__(2);
23078
23079var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23080
23081var _possibleConstructorReturn2 = __webpack_require__(3);
23082
23083var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23084
23085var _inherits2 = __webpack_require__(4);
23086
23087var _inherits3 = _interopRequireDefault(_inherits2);
23088
23089var _class, _temp;
23090
23091var _react = __webpack_require__(0);
23092
23093var _react2 = _interopRequireDefault(_react);
23094
23095var _reactDom = __webpack_require__(12);
23096
23097var _reactDom2 = _interopRequireDefault(_reactDom);
23098
23099var _propTypes = __webpack_require__(5);
23100
23101var _propTypes2 = _interopRequireDefault(_propTypes);
23102
23103var _icon = __webpack_require__(11);
23104
23105var _icon2 = _interopRequireDefault(_icon);
23106
23107var _button = __webpack_require__(17);
23108
23109var _button2 = _interopRequireDefault(_button);
23110
23111var _configProvider = __webpack_require__(9);
23112
23113var _configProvider2 = _interopRequireDefault(_configProvider);
23114
23115var _zhCn = __webpack_require__(13);
23116
23117var _zhCn2 = _interopRequireDefault(_zhCn);
23118
23119function _interopRequireDefault(obj) {
23120 return obj && obj.__esModule ? obj : { default: obj };
23121}
23122
23123/**
23124 * Card.CollapseContent
23125 * @order 3
23126 */
23127var CardCollapseContent = (_temp = _class = function (_Component) {
23128 (0, _inherits3.default)(CardCollapseContent, _Component);
23129
23130 function CardCollapseContent(props, context) {
23131 (0, _classCallCheck3.default)(this, CardCollapseContent);
23132
23133 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
23134
23135 _this.handleToggle = function () {
23136 _this.setState(function (prevState) {
23137 return {
23138 expand: !prevState.expand
23139 };
23140 });
23141 };
23142
23143 _this._contentRefHandler = function (ref) {
23144 _this.content = ref;
23145 };
23146
23147 _this.saveFooter = function (ref) {
23148 _this.footer = ref;
23149 };
23150
23151 _this.state = {
23152 needMore: false,
23153 expand: false,
23154 contentHeight: 'auto'
23155 };
23156 return _this;
23157 }
23158
23159 CardCollapseContent.prototype.componentDidMount = function componentDidMount() {
23160 this._setNeedMore();
23161 this._setContentHeight();
23162 };
23163
23164 CardCollapseContent.prototype.componentDidUpdate = function componentDidUpdate() {
23165 this._setContentHeight();
23166 };
23167
23168 // 是否展示 More 按钮
23169 CardCollapseContent.prototype._setNeedMore = function _setNeedMore() {
23170 var contentHeight = this.props.contentHeight;
23171
23172 var childrenHeight = this._getNodeChildrenHeight(this.content);
23173 this.setState({
23174 needMore: contentHeight !== 'auto' && childrenHeight > contentHeight
23175 });
23176 };
23177
23178 // 设置 Body 的高度
23179
23180
23181 CardCollapseContent.prototype._setContentHeight = function _setContentHeight() {
23182 if (this.props.contentHeight === 'auto') {
23183 this.content.style.height = 'auto';
23184 return;
23185 }
23186
23187 if (this.state.expand) {
23188 var childrenHeight = this._getNodeChildrenHeight(this.content);
23189 this.content.style.height = childrenHeight + 'px'; // get the real height
23190 } else {
23191 var el = _reactDom2.default.findDOMNode(this.footer);
23192 var height = this.props.contentHeight;
23193
23194 if (el) {
23195 height = height - el.getBoundingClientRect().height;
23196 }
23197
23198 this.content.style.height = height + 'px';
23199 }
23200 };
23201
23202 CardCollapseContent.prototype._getNodeChildrenHeight = function _getNodeChildrenHeight(node) {
23203 if (!node) {
23204 return 0;
23205 }
23206
23207 var contentChildNodes = node.childNodes;
23208 var length = contentChildNodes.length;
23209
23210 if (!length) {
23211 return 0;
23212 }
23213
23214 var lastNode = contentChildNodes[length - 1];
23215
23216 return lastNode.offsetTop + lastNode.offsetHeight;
23217 };
23218
23219 CardCollapseContent.prototype.render = function render() {
23220 var _props = this.props,
23221 prefix = _props.prefix,
23222 children = _props.children,
23223 locale = _props.locale;
23224 var _state = this.state,
23225 needMore = _state.needMore,
23226 expand = _state.expand;
23227
23228 return _react2.default.createElement('div', { className: prefix + 'card-body' }, _react2.default.createElement('div', { className: prefix + 'card-content', ref: this._contentRefHandler }, children), needMore ? _react2.default.createElement('div', { className: prefix + 'card-footer', ref: this.saveFooter, onClick: this.handleToggle }, _react2.default.createElement(_button2.default, { text: true, type: 'primary' }, expand ? locale.fold : locale.expand, _react2.default.createElement(_icon2.default, { type: 'arrow-down', className: expand ? 'expand' : '' }))) : null);
23229 };
23230
23231 return CardCollapseContent;
23232}(_react.Component), _class.propTypes = {
23233 prefix: _propTypes2.default.string,
23234 /**
23235 * 内容区域的固定高度
23236 */
23237 contentHeight: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
23238 locale: _propTypes2.default.object,
23239 children: _propTypes2.default.node
23240}, _class.defaultProps = {
23241 prefix: 'next-',
23242 contentHeight: 120,
23243 locale: _zhCn2.default.Card
23244}, _temp);
23245CardCollapseContent.displayName = 'CardCollapseContent';
23246exports.default = _configProvider2.default.config(CardCollapseContent, {
23247 componentName: 'Card'
23248});
23249module.exports = exports['default'];
23250
23251/***/ }),
23252/* 163 */
23253/***/ (function(module, exports, __webpack_require__) {
23254
23255"use strict";
23256
23257
23258exports.__esModule = true;
23259
23260var _extends2 = __webpack_require__(1);
23261
23262var _extends3 = _interopRequireDefault(_extends2);
23263
23264var _objectWithoutProperties2 = __webpack_require__(8);
23265
23266var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
23267
23268var _classCallCheck2 = __webpack_require__(2);
23269
23270var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23271
23272var _possibleConstructorReturn2 = __webpack_require__(3);
23273
23274var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23275
23276var _inherits2 = __webpack_require__(4);
23277
23278var _inherits3 = _interopRequireDefault(_inherits2);
23279
23280var _class, _temp;
23281
23282var _react = __webpack_require__(0);
23283
23284var _react2 = _interopRequireDefault(_react);
23285
23286var _propTypes = __webpack_require__(5);
23287
23288var _propTypes2 = _interopRequireDefault(_propTypes);
23289
23290var _classnames = __webpack_require__(7);
23291
23292var _classnames2 = _interopRequireDefault(_classnames);
23293
23294var _configProvider = __webpack_require__(9);
23295
23296var _configProvider2 = _interopRequireDefault(_configProvider);
23297
23298var _util = __webpack_require__(6);
23299
23300function _interopRequireDefault(obj) {
23301 return obj && obj.__esModule ? obj : { default: obj };
23302}
23303
23304var warning = _util.log.warning;
23305
23306var MEDIA_COMPONENTS = ['video', 'audio', 'picture', 'iframe', 'img'];
23307
23308/**
23309 * Card.Media
23310 * @order 1
23311 */
23312var CardMedia = (_temp = _class = function (_Component) {
23313 (0, _inherits3.default)(CardMedia, _Component);
23314
23315 function CardMedia() {
23316 (0, _classCallCheck3.default)(this, CardMedia);
23317 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
23318 }
23319
23320 CardMedia.prototype.render = function render() {
23321 var _props = this.props,
23322 prefix = _props.prefix,
23323 style = _props.style,
23324 className = _props.className,
23325 Component = _props.component,
23326 image = _props.image,
23327 src = _props.src,
23328 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'style', 'className', 'component', 'image', 'src']);
23329
23330 if (!('children' in others || Boolean(image || src))) {
23331 warning('either `children`, `image` or `src` prop must be specified.');
23332 }
23333
23334 var isMediaComponent = MEDIA_COMPONENTS.indexOf(Component) !== -1;
23335 var composedStyle = !isMediaComponent && image ? (0, _extends3.default)({ backgroundImage: 'url("' + image + '")' }, style) : style;
23336
23337 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
23338 style: composedStyle,
23339 className: (0, _classnames2.default)(prefix + 'card-media', className),
23340 src: isMediaComponent ? image || src : undefined
23341 }));
23342 };
23343
23344 return CardMedia;
23345}(_react.Component), _class.propTypes = {
23346 prefix: _propTypes2.default.string,
23347 /**
23348 * 设置标签类型
23349 */
23350 component: _propTypes2.default.elementType,
23351 /**
23352 * 背景图片地址
23353 */
23354 image: _propTypes2.default.string,
23355 /**
23356 * 媒体源文件地址
23357 */
23358 src: _propTypes2.default.string,
23359 style: _propTypes2.default.object,
23360 className: _propTypes2.default.string
23361}, _class.defaultProps = {
23362 prefix: 'next-',
23363 component: 'div',
23364 style: {}
23365}, _temp);
23366CardMedia.displayName = 'CardMedia';
23367exports.default = _configProvider2.default.config(CardMedia);
23368module.exports = exports['default'];
23369
23370/***/ }),
23371/* 164 */
23372/***/ (function(module, exports, __webpack_require__) {
23373
23374"use strict";
23375
23376
23377exports.__esModule = true;
23378
23379var _extends2 = __webpack_require__(1);
23380
23381var _extends3 = _interopRequireDefault(_extends2);
23382
23383var _objectWithoutProperties2 = __webpack_require__(8);
23384
23385var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
23386
23387var _classCallCheck2 = __webpack_require__(2);
23388
23389var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
23390
23391var _possibleConstructorReturn2 = __webpack_require__(3);
23392
23393var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
23394
23395var _inherits2 = __webpack_require__(4);
23396
23397var _inherits3 = _interopRequireDefault(_inherits2);
23398
23399var _class, _temp;
23400
23401var _react = __webpack_require__(0);
23402
23403var _react2 = _interopRequireDefault(_react);
23404
23405var _propTypes = __webpack_require__(5);
23406
23407var _propTypes2 = _interopRequireDefault(_propTypes);
23408
23409var _classnames = __webpack_require__(7);
23410
23411var _classnames2 = _interopRequireDefault(_classnames);
23412
23413var _configProvider = __webpack_require__(9);
23414
23415var _configProvider2 = _interopRequireDefault(_configProvider);
23416
23417function _interopRequireDefault(obj) {
23418 return obj && obj.__esModule ? obj : { default: obj };
23419}
23420
23421/**
23422 * Card.Actions
23423 * @order 5
23424 */
23425var CardActions = (_temp = _class = function (_Component) {
23426 (0, _inherits3.default)(CardActions, _Component);
23427
23428 function CardActions() {
23429 (0, _classCallCheck3.default)(this, CardActions);
23430 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
23431 }
23432
23433 CardActions.prototype.render = function render() {
23434 var _props = this.props,
23435 prefix = _props.prefix,
23436 Component = _props.component,
23437 className = _props.className,
23438 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'component', 'className']);
23439
23440 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
23441 className: (0, _classnames2.default)(prefix + 'card-actions', className)
23442 }));
23443 };
23444
23445 return CardActions;
23446}(_react.Component), _class.propTypes = {
23447 prefix: _propTypes2.default.string,
23448 /**
23449 * 设置标签类型
23450 */
23451 component: _propTypes2.default.elementType,
23452 className: _propTypes2.default.string
23453}, _class.defaultProps = {
23454 prefix: 'next-',
23455 component: 'div'
23456}, _temp);
23457CardActions.displayName = 'CardActions';
23458exports.default = _configProvider2.default.config(CardActions);
23459module.exports = exports['default'];
23460
23461/***/ }),
23462/* 165 */
23463/***/ (function(module, exports, __webpack_require__) {
23464
23465"use strict";
23466
23467
23468exports.__esModule = true;
23469
23470var _extends2 = __webpack_require__(1);
23471
23472var _extends3 = _interopRequireDefault(_extends2);
23473
23474var _objectWithoutProperties2 = __webpack_require__(8);
23475
23476var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
23477
23478var _configProvider = __webpack_require__(9);
23479
23480var _configProvider2 = _interopRequireDefault(_configProvider);
23481
23482var _cascader = __webpack_require__(323);
23483
23484var _cascader2 = _interopRequireDefault(_cascader);
23485
23486function _interopRequireDefault(obj) {
23487 return obj && obj.__esModule ? obj : { default: obj };
23488}
23489
23490exports.default = _configProvider2.default.config(_cascader2.default, {
23491 transform: /* istanbul ignore next */function transform(props, deprecated) {
23492 if ('expandTrigger' in props) {
23493 deprecated('expandTrigger', 'expandTriggerType', 'Cascader');
23494 var _props = props,
23495 expandTrigger = _props.expandTrigger,
23496 others = (0, _objectWithoutProperties3.default)(_props, ['expandTrigger']);
23497
23498 props = (0, _extends3.default)({ expandTriggerType: expandTrigger }, others);
23499 }
23500
23501 if ('showItemCount' in props) {
23502 deprecated('showItemCount', 'listStyle | listClassName', 'Cascader');
23503 }
23504 if ('labelWidth' in props) {
23505 deprecated('labelWidth', 'listStyle | listClassName', 'Cascader');
23506 }
23507
23508 return props;
23509 },
23510 exportNames: ['setFocusValue']
23511});
23512module.exports = exports['default'];
23513
23514/***/ }),
23515/* 166 */
23516/***/ (function(module, exports, __webpack_require__) {
23517
23518/* WEBPACK VAR INJECTION */(function(global, module) {/**
23519 * lodash (Custom Build) <https://lodash.com/>
23520 * Build: `lodash modularize exports="npm" -o ./`
23521 * Copyright jQuery Foundation and other contributors <https://jquery.org/>
23522 * Released under MIT license <https://lodash.com/license>
23523 * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
23524 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
23525 */
23526
23527/** Used as the size to enable large array optimizations. */
23528var LARGE_ARRAY_SIZE = 200;
23529
23530/** Used to stand-in for `undefined` hash values. */
23531var HASH_UNDEFINED = '__lodash_hash_undefined__';
23532
23533/** Used as references for various `Number` constants. */
23534var MAX_SAFE_INTEGER = 9007199254740991;
23535
23536/** `Object#toString` result references. */
23537var argsTag = '[object Arguments]',
23538 arrayTag = '[object Array]',
23539 boolTag = '[object Boolean]',
23540 dateTag = '[object Date]',
23541 errorTag = '[object Error]',
23542 funcTag = '[object Function]',
23543 genTag = '[object GeneratorFunction]',
23544 mapTag = '[object Map]',
23545 numberTag = '[object Number]',
23546 objectTag = '[object Object]',
23547 promiseTag = '[object Promise]',
23548 regexpTag = '[object RegExp]',
23549 setTag = '[object Set]',
23550 stringTag = '[object String]',
23551 symbolTag = '[object Symbol]',
23552 weakMapTag = '[object WeakMap]';
23553
23554var arrayBufferTag = '[object ArrayBuffer]',
23555 dataViewTag = '[object DataView]',
23556 float32Tag = '[object Float32Array]',
23557 float64Tag = '[object Float64Array]',
23558 int8Tag = '[object Int8Array]',
23559 int16Tag = '[object Int16Array]',
23560 int32Tag = '[object Int32Array]',
23561 uint8Tag = '[object Uint8Array]',
23562 uint8ClampedTag = '[object Uint8ClampedArray]',
23563 uint16Tag = '[object Uint16Array]',
23564 uint32Tag = '[object Uint32Array]';
23565
23566/**
23567 * Used to match `RegExp`
23568 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).
23569 */
23570var reRegExpChar = /[\\^$.*+?()[\]{}|]/g;
23571
23572/** Used to match `RegExp` flags from their coerced string values. */
23573var reFlags = /\w*$/;
23574
23575/** Used to detect host constructors (Safari). */
23576var reIsHostCtor = /^\[object .+?Constructor\]$/;
23577
23578/** Used to detect unsigned integer values. */
23579var reIsUint = /^(?:0|[1-9]\d*)$/;
23580
23581/** Used to identify `toStringTag` values supported by `_.clone`. */
23582var cloneableTags = {};
23583cloneableTags[argsTag] = cloneableTags[arrayTag] =
23584cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =
23585cloneableTags[boolTag] = cloneableTags[dateTag] =
23586cloneableTags[float32Tag] = cloneableTags[float64Tag] =
23587cloneableTags[int8Tag] = cloneableTags[int16Tag] =
23588cloneableTags[int32Tag] = cloneableTags[mapTag] =
23589cloneableTags[numberTag] = cloneableTags[objectTag] =
23590cloneableTags[regexpTag] = cloneableTags[setTag] =
23591cloneableTags[stringTag] = cloneableTags[symbolTag] =
23592cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =
23593cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;
23594cloneableTags[errorTag] = cloneableTags[funcTag] =
23595cloneableTags[weakMapTag] = false;
23596
23597/** Detect free variable `global` from Node.js. */
23598var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;
23599
23600/** Detect free variable `self`. */
23601var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
23602
23603/** Used as a reference to the global object. */
23604var root = freeGlobal || freeSelf || Function('return this')();
23605
23606/** Detect free variable `exports`. */
23607var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;
23608
23609/** Detect free variable `module`. */
23610var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;
23611
23612/** Detect the popular CommonJS extension `module.exports`. */
23613var moduleExports = freeModule && freeModule.exports === freeExports;
23614
23615/**
23616 * Adds the key-value `pair` to `map`.
23617 *
23618 * @private
23619 * @param {Object} map The map to modify.
23620 * @param {Array} pair The key-value pair to add.
23621 * @returns {Object} Returns `map`.
23622 */
23623function addMapEntry(map, pair) {
23624 // Don't return `map.set` because it's not chainable in IE 11.
23625 map.set(pair[0], pair[1]);
23626 return map;
23627}
23628
23629/**
23630 * Adds `value` to `set`.
23631 *
23632 * @private
23633 * @param {Object} set The set to modify.
23634 * @param {*} value The value to add.
23635 * @returns {Object} Returns `set`.
23636 */
23637function addSetEntry(set, value) {
23638 // Don't return `set.add` because it's not chainable in IE 11.
23639 set.add(value);
23640 return set;
23641}
23642
23643/**
23644 * A specialized version of `_.forEach` for arrays without support for
23645 * iteratee shorthands.
23646 *
23647 * @private
23648 * @param {Array} [array] The array to iterate over.
23649 * @param {Function} iteratee The function invoked per iteration.
23650 * @returns {Array} Returns `array`.
23651 */
23652function arrayEach(array, iteratee) {
23653 var index = -1,
23654 length = array ? array.length : 0;
23655
23656 while (++index < length) {
23657 if (iteratee(array[index], index, array) === false) {
23658 break;
23659 }
23660 }
23661 return array;
23662}
23663
23664/**
23665 * Appends the elements of `values` to `array`.
23666 *
23667 * @private
23668 * @param {Array} array The array to modify.
23669 * @param {Array} values The values to append.
23670 * @returns {Array} Returns `array`.
23671 */
23672function arrayPush(array, values) {
23673 var index = -1,
23674 length = values.length,
23675 offset = array.length;
23676
23677 while (++index < length) {
23678 array[offset + index] = values[index];
23679 }
23680 return array;
23681}
23682
23683/**
23684 * A specialized version of `_.reduce` for arrays without support for
23685 * iteratee shorthands.
23686 *
23687 * @private
23688 * @param {Array} [array] The array to iterate over.
23689 * @param {Function} iteratee The function invoked per iteration.
23690 * @param {*} [accumulator] The initial value.
23691 * @param {boolean} [initAccum] Specify using the first element of `array` as
23692 * the initial value.
23693 * @returns {*} Returns the accumulated value.
23694 */
23695function arrayReduce(array, iteratee, accumulator, initAccum) {
23696 var index = -1,
23697 length = array ? array.length : 0;
23698
23699 if (initAccum && length) {
23700 accumulator = array[++index];
23701 }
23702 while (++index < length) {
23703 accumulator = iteratee(accumulator, array[index], index, array);
23704 }
23705 return accumulator;
23706}
23707
23708/**
23709 * The base implementation of `_.times` without support for iteratee shorthands
23710 * or max array length checks.
23711 *
23712 * @private
23713 * @param {number} n The number of times to invoke `iteratee`.
23714 * @param {Function} iteratee The function invoked per iteration.
23715 * @returns {Array} Returns the array of results.
23716 */
23717function baseTimes(n, iteratee) {
23718 var index = -1,
23719 result = Array(n);
23720
23721 while (++index < n) {
23722 result[index] = iteratee(index);
23723 }
23724 return result;
23725}
23726
23727/**
23728 * Gets the value at `key` of `object`.
23729 *
23730 * @private
23731 * @param {Object} [object] The object to query.
23732 * @param {string} key The key of the property to get.
23733 * @returns {*} Returns the property value.
23734 */
23735function getValue(object, key) {
23736 return object == null ? undefined : object[key];
23737}
23738
23739/**
23740 * Checks if `value` is a host object in IE < 9.
23741 *
23742 * @private
23743 * @param {*} value The value to check.
23744 * @returns {boolean} Returns `true` if `value` is a host object, else `false`.
23745 */
23746function isHostObject(value) {
23747 // Many host objects are `Object` objects that can coerce to strings
23748 // despite having improperly defined `toString` methods.
23749 var result = false;
23750 if (value != null && typeof value.toString != 'function') {
23751 try {
23752 result = !!(value + '');
23753 } catch (e) {}
23754 }
23755 return result;
23756}
23757
23758/**
23759 * Converts `map` to its key-value pairs.
23760 *
23761 * @private
23762 * @param {Object} map The map to convert.
23763 * @returns {Array} Returns the key-value pairs.
23764 */
23765function mapToArray(map) {
23766 var index = -1,
23767 result = Array(map.size);
23768
23769 map.forEach(function(value, key) {
23770 result[++index] = [key, value];
23771 });
23772 return result;
23773}
23774
23775/**
23776 * Creates a unary function that invokes `func` with its argument transformed.
23777 *
23778 * @private
23779 * @param {Function} func The function to wrap.
23780 * @param {Function} transform The argument transform.
23781 * @returns {Function} Returns the new function.
23782 */
23783function overArg(func, transform) {
23784 return function(arg) {
23785 return func(transform(arg));
23786 };
23787}
23788
23789/**
23790 * Converts `set` to an array of its values.
23791 *
23792 * @private
23793 * @param {Object} set The set to convert.
23794 * @returns {Array} Returns the values.
23795 */
23796function setToArray(set) {
23797 var index = -1,
23798 result = Array(set.size);
23799
23800 set.forEach(function(value) {
23801 result[++index] = value;
23802 });
23803 return result;
23804}
23805
23806/** Used for built-in method references. */
23807var arrayProto = Array.prototype,
23808 funcProto = Function.prototype,
23809 objectProto = Object.prototype;
23810
23811/** Used to detect overreaching core-js shims. */
23812var coreJsData = root['__core-js_shared__'];
23813
23814/** Used to detect methods masquerading as native. */
23815var maskSrcKey = (function() {
23816 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');
23817 return uid ? ('Symbol(src)_1.' + uid) : '';
23818}());
23819
23820/** Used to resolve the decompiled source of functions. */
23821var funcToString = funcProto.toString;
23822
23823/** Used to check objects for own properties. */
23824var hasOwnProperty = objectProto.hasOwnProperty;
23825
23826/**
23827 * Used to resolve the
23828 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
23829 * of values.
23830 */
23831var objectToString = objectProto.toString;
23832
23833/** Used to detect if a method is native. */
23834var reIsNative = RegExp('^' +
23835 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&')
23836 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
23837);
23838
23839/** Built-in value references. */
23840var Buffer = moduleExports ? root.Buffer : undefined,
23841 Symbol = root.Symbol,
23842 Uint8Array = root.Uint8Array,
23843 getPrototype = overArg(Object.getPrototypeOf, Object),
23844 objectCreate = Object.create,
23845 propertyIsEnumerable = objectProto.propertyIsEnumerable,
23846 splice = arrayProto.splice;
23847
23848/* Built-in method references for those with the same name as other `lodash` methods. */
23849var nativeGetSymbols = Object.getOwnPropertySymbols,
23850 nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,
23851 nativeKeys = overArg(Object.keys, Object);
23852
23853/* Built-in method references that are verified to be native. */
23854var DataView = getNative(root, 'DataView'),
23855 Map = getNative(root, 'Map'),
23856 Promise = getNative(root, 'Promise'),
23857 Set = getNative(root, 'Set'),
23858 WeakMap = getNative(root, 'WeakMap'),
23859 nativeCreate = getNative(Object, 'create');
23860
23861/** Used to detect maps, sets, and weakmaps. */
23862var dataViewCtorString = toSource(DataView),
23863 mapCtorString = toSource(Map),
23864 promiseCtorString = toSource(Promise),
23865 setCtorString = toSource(Set),
23866 weakMapCtorString = toSource(WeakMap);
23867
23868/** Used to convert symbols to primitives and strings. */
23869var symbolProto = Symbol ? Symbol.prototype : undefined,
23870 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;
23871
23872/**
23873 * Creates a hash object.
23874 *
23875 * @private
23876 * @constructor
23877 * @param {Array} [entries] The key-value pairs to cache.
23878 */
23879function Hash(entries) {
23880 var index = -1,
23881 length = entries ? entries.length : 0;
23882
23883 this.clear();
23884 while (++index < length) {
23885 var entry = entries[index];
23886 this.set(entry[0], entry[1]);
23887 }
23888}
23889
23890/**
23891 * Removes all key-value entries from the hash.
23892 *
23893 * @private
23894 * @name clear
23895 * @memberOf Hash
23896 */
23897function hashClear() {
23898 this.__data__ = nativeCreate ? nativeCreate(null) : {};
23899}
23900
23901/**
23902 * Removes `key` and its value from the hash.
23903 *
23904 * @private
23905 * @name delete
23906 * @memberOf Hash
23907 * @param {Object} hash The hash to modify.
23908 * @param {string} key The key of the value to remove.
23909 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
23910 */
23911function hashDelete(key) {
23912 return this.has(key) && delete this.__data__[key];
23913}
23914
23915/**
23916 * Gets the hash value for `key`.
23917 *
23918 * @private
23919 * @name get
23920 * @memberOf Hash
23921 * @param {string} key The key of the value to get.
23922 * @returns {*} Returns the entry value.
23923 */
23924function hashGet(key) {
23925 var data = this.__data__;
23926 if (nativeCreate) {
23927 var result = data[key];
23928 return result === HASH_UNDEFINED ? undefined : result;
23929 }
23930 return hasOwnProperty.call(data, key) ? data[key] : undefined;
23931}
23932
23933/**
23934 * Checks if a hash value for `key` exists.
23935 *
23936 * @private
23937 * @name has
23938 * @memberOf Hash
23939 * @param {string} key The key of the entry to check.
23940 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
23941 */
23942function hashHas(key) {
23943 var data = this.__data__;
23944 return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);
23945}
23946
23947/**
23948 * Sets the hash `key` to `value`.
23949 *
23950 * @private
23951 * @name set
23952 * @memberOf Hash
23953 * @param {string} key The key of the value to set.
23954 * @param {*} value The value to set.
23955 * @returns {Object} Returns the hash instance.
23956 */
23957function hashSet(key, value) {
23958 var data = this.__data__;
23959 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;
23960 return this;
23961}
23962
23963// Add methods to `Hash`.
23964Hash.prototype.clear = hashClear;
23965Hash.prototype['delete'] = hashDelete;
23966Hash.prototype.get = hashGet;
23967Hash.prototype.has = hashHas;
23968Hash.prototype.set = hashSet;
23969
23970/**
23971 * Creates an list cache object.
23972 *
23973 * @private
23974 * @constructor
23975 * @param {Array} [entries] The key-value pairs to cache.
23976 */
23977function ListCache(entries) {
23978 var index = -1,
23979 length = entries ? entries.length : 0;
23980
23981 this.clear();
23982 while (++index < length) {
23983 var entry = entries[index];
23984 this.set(entry[0], entry[1]);
23985 }
23986}
23987
23988/**
23989 * Removes all key-value entries from the list cache.
23990 *
23991 * @private
23992 * @name clear
23993 * @memberOf ListCache
23994 */
23995function listCacheClear() {
23996 this.__data__ = [];
23997}
23998
23999/**
24000 * Removes `key` and its value from the list cache.
24001 *
24002 * @private
24003 * @name delete
24004 * @memberOf ListCache
24005 * @param {string} key The key of the value to remove.
24006 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
24007 */
24008function listCacheDelete(key) {
24009 var data = this.__data__,
24010 index = assocIndexOf(data, key);
24011
24012 if (index < 0) {
24013 return false;
24014 }
24015 var lastIndex = data.length - 1;
24016 if (index == lastIndex) {
24017 data.pop();
24018 } else {
24019 splice.call(data, index, 1);
24020 }
24021 return true;
24022}
24023
24024/**
24025 * Gets the list cache value for `key`.
24026 *
24027 * @private
24028 * @name get
24029 * @memberOf ListCache
24030 * @param {string} key The key of the value to get.
24031 * @returns {*} Returns the entry value.
24032 */
24033function listCacheGet(key) {
24034 var data = this.__data__,
24035 index = assocIndexOf(data, key);
24036
24037 return index < 0 ? undefined : data[index][1];
24038}
24039
24040/**
24041 * Checks if a list cache value for `key` exists.
24042 *
24043 * @private
24044 * @name has
24045 * @memberOf ListCache
24046 * @param {string} key The key of the entry to check.
24047 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
24048 */
24049function listCacheHas(key) {
24050 return assocIndexOf(this.__data__, key) > -1;
24051}
24052
24053/**
24054 * Sets the list cache `key` to `value`.
24055 *
24056 * @private
24057 * @name set
24058 * @memberOf ListCache
24059 * @param {string} key The key of the value to set.
24060 * @param {*} value The value to set.
24061 * @returns {Object} Returns the list cache instance.
24062 */
24063function listCacheSet(key, value) {
24064 var data = this.__data__,
24065 index = assocIndexOf(data, key);
24066
24067 if (index < 0) {
24068 data.push([key, value]);
24069 } else {
24070 data[index][1] = value;
24071 }
24072 return this;
24073}
24074
24075// Add methods to `ListCache`.
24076ListCache.prototype.clear = listCacheClear;
24077ListCache.prototype['delete'] = listCacheDelete;
24078ListCache.prototype.get = listCacheGet;
24079ListCache.prototype.has = listCacheHas;
24080ListCache.prototype.set = listCacheSet;
24081
24082/**
24083 * Creates a map cache object to store key-value pairs.
24084 *
24085 * @private
24086 * @constructor
24087 * @param {Array} [entries] The key-value pairs to cache.
24088 */
24089function MapCache(entries) {
24090 var index = -1,
24091 length = entries ? entries.length : 0;
24092
24093 this.clear();
24094 while (++index < length) {
24095 var entry = entries[index];
24096 this.set(entry[0], entry[1]);
24097 }
24098}
24099
24100/**
24101 * Removes all key-value entries from the map.
24102 *
24103 * @private
24104 * @name clear
24105 * @memberOf MapCache
24106 */
24107function mapCacheClear() {
24108 this.__data__ = {
24109 'hash': new Hash,
24110 'map': new (Map || ListCache),
24111 'string': new Hash
24112 };
24113}
24114
24115/**
24116 * Removes `key` and its value from the map.
24117 *
24118 * @private
24119 * @name delete
24120 * @memberOf MapCache
24121 * @param {string} key The key of the value to remove.
24122 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
24123 */
24124function mapCacheDelete(key) {
24125 return getMapData(this, key)['delete'](key);
24126}
24127
24128/**
24129 * Gets the map value for `key`.
24130 *
24131 * @private
24132 * @name get
24133 * @memberOf MapCache
24134 * @param {string} key The key of the value to get.
24135 * @returns {*} Returns the entry value.
24136 */
24137function mapCacheGet(key) {
24138 return getMapData(this, key).get(key);
24139}
24140
24141/**
24142 * Checks if a map value for `key` exists.
24143 *
24144 * @private
24145 * @name has
24146 * @memberOf MapCache
24147 * @param {string} key The key of the entry to check.
24148 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
24149 */
24150function mapCacheHas(key) {
24151 return getMapData(this, key).has(key);
24152}
24153
24154/**
24155 * Sets the map `key` to `value`.
24156 *
24157 * @private
24158 * @name set
24159 * @memberOf MapCache
24160 * @param {string} key The key of the value to set.
24161 * @param {*} value The value to set.
24162 * @returns {Object} Returns the map cache instance.
24163 */
24164function mapCacheSet(key, value) {
24165 getMapData(this, key).set(key, value);
24166 return this;
24167}
24168
24169// Add methods to `MapCache`.
24170MapCache.prototype.clear = mapCacheClear;
24171MapCache.prototype['delete'] = mapCacheDelete;
24172MapCache.prototype.get = mapCacheGet;
24173MapCache.prototype.has = mapCacheHas;
24174MapCache.prototype.set = mapCacheSet;
24175
24176/**
24177 * Creates a stack cache object to store key-value pairs.
24178 *
24179 * @private
24180 * @constructor
24181 * @param {Array} [entries] The key-value pairs to cache.
24182 */
24183function Stack(entries) {
24184 this.__data__ = new ListCache(entries);
24185}
24186
24187/**
24188 * Removes all key-value entries from the stack.
24189 *
24190 * @private
24191 * @name clear
24192 * @memberOf Stack
24193 */
24194function stackClear() {
24195 this.__data__ = new ListCache;
24196}
24197
24198/**
24199 * Removes `key` and its value from the stack.
24200 *
24201 * @private
24202 * @name delete
24203 * @memberOf Stack
24204 * @param {string} key The key of the value to remove.
24205 * @returns {boolean} Returns `true` if the entry was removed, else `false`.
24206 */
24207function stackDelete(key) {
24208 return this.__data__['delete'](key);
24209}
24210
24211/**
24212 * Gets the stack value for `key`.
24213 *
24214 * @private
24215 * @name get
24216 * @memberOf Stack
24217 * @param {string} key The key of the value to get.
24218 * @returns {*} Returns the entry value.
24219 */
24220function stackGet(key) {
24221 return this.__data__.get(key);
24222}
24223
24224/**
24225 * Checks if a stack value for `key` exists.
24226 *
24227 * @private
24228 * @name has
24229 * @memberOf Stack
24230 * @param {string} key The key of the entry to check.
24231 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.
24232 */
24233function stackHas(key) {
24234 return this.__data__.has(key);
24235}
24236
24237/**
24238 * Sets the stack `key` to `value`.
24239 *
24240 * @private
24241 * @name set
24242 * @memberOf Stack
24243 * @param {string} key The key of the value to set.
24244 * @param {*} value The value to set.
24245 * @returns {Object} Returns the stack cache instance.
24246 */
24247function stackSet(key, value) {
24248 var cache = this.__data__;
24249 if (cache instanceof ListCache) {
24250 var pairs = cache.__data__;
24251 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {
24252 pairs.push([key, value]);
24253 return this;
24254 }
24255 cache = this.__data__ = new MapCache(pairs);
24256 }
24257 cache.set(key, value);
24258 return this;
24259}
24260
24261// Add methods to `Stack`.
24262Stack.prototype.clear = stackClear;
24263Stack.prototype['delete'] = stackDelete;
24264Stack.prototype.get = stackGet;
24265Stack.prototype.has = stackHas;
24266Stack.prototype.set = stackSet;
24267
24268/**
24269 * Creates an array of the enumerable property names of the array-like `value`.
24270 *
24271 * @private
24272 * @param {*} value The value to query.
24273 * @param {boolean} inherited Specify returning inherited property names.
24274 * @returns {Array} Returns the array of property names.
24275 */
24276function arrayLikeKeys(value, inherited) {
24277 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
24278 // Safari 9 makes `arguments.length` enumerable in strict mode.
24279 var result = (isArray(value) || isArguments(value))
24280 ? baseTimes(value.length, String)
24281 : [];
24282
24283 var length = result.length,
24284 skipIndexes = !!length;
24285
24286 for (var key in value) {
24287 if ((inherited || hasOwnProperty.call(value, key)) &&
24288 !(skipIndexes && (key == 'length' || isIndex(key, length)))) {
24289 result.push(key);
24290 }
24291 }
24292 return result;
24293}
24294
24295/**
24296 * Assigns `value` to `key` of `object` if the existing value is not equivalent
24297 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
24298 * for equality comparisons.
24299 *
24300 * @private
24301 * @param {Object} object The object to modify.
24302 * @param {string} key The key of the property to assign.
24303 * @param {*} value The value to assign.
24304 */
24305function assignValue(object, key, value) {
24306 var objValue = object[key];
24307 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||
24308 (value === undefined && !(key in object))) {
24309 object[key] = value;
24310 }
24311}
24312
24313/**
24314 * Gets the index at which the `key` is found in `array` of key-value pairs.
24315 *
24316 * @private
24317 * @param {Array} array The array to inspect.
24318 * @param {*} key The key to search for.
24319 * @returns {number} Returns the index of the matched value, else `-1`.
24320 */
24321function assocIndexOf(array, key) {
24322 var length = array.length;
24323 while (length--) {
24324 if (eq(array[length][0], key)) {
24325 return length;
24326 }
24327 }
24328 return -1;
24329}
24330
24331/**
24332 * The base implementation of `_.assign` without support for multiple sources
24333 * or `customizer` functions.
24334 *
24335 * @private
24336 * @param {Object} object The destination object.
24337 * @param {Object} source The source object.
24338 * @returns {Object} Returns `object`.
24339 */
24340function baseAssign(object, source) {
24341 return object && copyObject(source, keys(source), object);
24342}
24343
24344/**
24345 * The base implementation of `_.clone` and `_.cloneDeep` which tracks
24346 * traversed objects.
24347 *
24348 * @private
24349 * @param {*} value The value to clone.
24350 * @param {boolean} [isDeep] Specify a deep clone.
24351 * @param {boolean} [isFull] Specify a clone including symbols.
24352 * @param {Function} [customizer] The function to customize cloning.
24353 * @param {string} [key] The key of `value`.
24354 * @param {Object} [object] The parent object of `value`.
24355 * @param {Object} [stack] Tracks traversed objects and their clone counterparts.
24356 * @returns {*} Returns the cloned value.
24357 */
24358function baseClone(value, isDeep, isFull, customizer, key, object, stack) {
24359 var result;
24360 if (customizer) {
24361 result = object ? customizer(value, key, object, stack) : customizer(value);
24362 }
24363 if (result !== undefined) {
24364 return result;
24365 }
24366 if (!isObject(value)) {
24367 return value;
24368 }
24369 var isArr = isArray(value);
24370 if (isArr) {
24371 result = initCloneArray(value);
24372 if (!isDeep) {
24373 return copyArray(value, result);
24374 }
24375 } else {
24376 var tag = getTag(value),
24377 isFunc = tag == funcTag || tag == genTag;
24378
24379 if (isBuffer(value)) {
24380 return cloneBuffer(value, isDeep);
24381 }
24382 if (tag == objectTag || tag == argsTag || (isFunc && !object)) {
24383 if (isHostObject(value)) {
24384 return object ? value : {};
24385 }
24386 result = initCloneObject(isFunc ? {} : value);
24387 if (!isDeep) {
24388 return copySymbols(value, baseAssign(result, value));
24389 }
24390 } else {
24391 if (!cloneableTags[tag]) {
24392 return object ? value : {};
24393 }
24394 result = initCloneByTag(value, tag, baseClone, isDeep);
24395 }
24396 }
24397 // Check for circular references and return its corresponding clone.
24398 stack || (stack = new Stack);
24399 var stacked = stack.get(value);
24400 if (stacked) {
24401 return stacked;
24402 }
24403 stack.set(value, result);
24404
24405 if (!isArr) {
24406 var props = isFull ? getAllKeys(value) : keys(value);
24407 }
24408 arrayEach(props || value, function(subValue, key) {
24409 if (props) {
24410 key = subValue;
24411 subValue = value[key];
24412 }
24413 // Recursively populate clone (susceptible to call stack limits).
24414 assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));
24415 });
24416 return result;
24417}
24418
24419/**
24420 * The base implementation of `_.create` without support for assigning
24421 * properties to the created object.
24422 *
24423 * @private
24424 * @param {Object} prototype The object to inherit from.
24425 * @returns {Object} Returns the new object.
24426 */
24427function baseCreate(proto) {
24428 return isObject(proto) ? objectCreate(proto) : {};
24429}
24430
24431/**
24432 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses
24433 * `keysFunc` and `symbolsFunc` to get the enumerable property names and
24434 * symbols of `object`.
24435 *
24436 * @private
24437 * @param {Object} object The object to query.
24438 * @param {Function} keysFunc The function to get the keys of `object`.
24439 * @param {Function} symbolsFunc The function to get the symbols of `object`.
24440 * @returns {Array} Returns the array of property names and symbols.
24441 */
24442function baseGetAllKeys(object, keysFunc, symbolsFunc) {
24443 var result = keysFunc(object);
24444 return isArray(object) ? result : arrayPush(result, symbolsFunc(object));
24445}
24446
24447/**
24448 * The base implementation of `getTag`.
24449 *
24450 * @private
24451 * @param {*} value The value to query.
24452 * @returns {string} Returns the `toStringTag`.
24453 */
24454function baseGetTag(value) {
24455 return objectToString.call(value);
24456}
24457
24458/**
24459 * The base implementation of `_.isNative` without bad shim checks.
24460 *
24461 * @private
24462 * @param {*} value The value to check.
24463 * @returns {boolean} Returns `true` if `value` is a native function,
24464 * else `false`.
24465 */
24466function baseIsNative(value) {
24467 if (!isObject(value) || isMasked(value)) {
24468 return false;
24469 }
24470 var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;
24471 return pattern.test(toSource(value));
24472}
24473
24474/**
24475 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.
24476 *
24477 * @private
24478 * @param {Object} object The object to query.
24479 * @returns {Array} Returns the array of property names.
24480 */
24481function baseKeys(object) {
24482 if (!isPrototype(object)) {
24483 return nativeKeys(object);
24484 }
24485 var result = [];
24486 for (var key in Object(object)) {
24487 if (hasOwnProperty.call(object, key) && key != 'constructor') {
24488 result.push(key);
24489 }
24490 }
24491 return result;
24492}
24493
24494/**
24495 * Creates a clone of `buffer`.
24496 *
24497 * @private
24498 * @param {Buffer} buffer The buffer to clone.
24499 * @param {boolean} [isDeep] Specify a deep clone.
24500 * @returns {Buffer} Returns the cloned buffer.
24501 */
24502function cloneBuffer(buffer, isDeep) {
24503 if (isDeep) {
24504 return buffer.slice();
24505 }
24506 var result = new buffer.constructor(buffer.length);
24507 buffer.copy(result);
24508 return result;
24509}
24510
24511/**
24512 * Creates a clone of `arrayBuffer`.
24513 *
24514 * @private
24515 * @param {ArrayBuffer} arrayBuffer The array buffer to clone.
24516 * @returns {ArrayBuffer} Returns the cloned array buffer.
24517 */
24518function cloneArrayBuffer(arrayBuffer) {
24519 var result = new arrayBuffer.constructor(arrayBuffer.byteLength);
24520 new Uint8Array(result).set(new Uint8Array(arrayBuffer));
24521 return result;
24522}
24523
24524/**
24525 * Creates a clone of `dataView`.
24526 *
24527 * @private
24528 * @param {Object} dataView The data view to clone.
24529 * @param {boolean} [isDeep] Specify a deep clone.
24530 * @returns {Object} Returns the cloned data view.
24531 */
24532function cloneDataView(dataView, isDeep) {
24533 var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;
24534 return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);
24535}
24536
24537/**
24538 * Creates a clone of `map`.
24539 *
24540 * @private
24541 * @param {Object} map The map to clone.
24542 * @param {Function} cloneFunc The function to clone values.
24543 * @param {boolean} [isDeep] Specify a deep clone.
24544 * @returns {Object} Returns the cloned map.
24545 */
24546function cloneMap(map, isDeep, cloneFunc) {
24547 var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);
24548 return arrayReduce(array, addMapEntry, new map.constructor);
24549}
24550
24551/**
24552 * Creates a clone of `regexp`.
24553 *
24554 * @private
24555 * @param {Object} regexp The regexp to clone.
24556 * @returns {Object} Returns the cloned regexp.
24557 */
24558function cloneRegExp(regexp) {
24559 var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));
24560 result.lastIndex = regexp.lastIndex;
24561 return result;
24562}
24563
24564/**
24565 * Creates a clone of `set`.
24566 *
24567 * @private
24568 * @param {Object} set The set to clone.
24569 * @param {Function} cloneFunc The function to clone values.
24570 * @param {boolean} [isDeep] Specify a deep clone.
24571 * @returns {Object} Returns the cloned set.
24572 */
24573function cloneSet(set, isDeep, cloneFunc) {
24574 var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);
24575 return arrayReduce(array, addSetEntry, new set.constructor);
24576}
24577
24578/**
24579 * Creates a clone of the `symbol` object.
24580 *
24581 * @private
24582 * @param {Object} symbol The symbol object to clone.
24583 * @returns {Object} Returns the cloned symbol object.
24584 */
24585function cloneSymbol(symbol) {
24586 return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};
24587}
24588
24589/**
24590 * Creates a clone of `typedArray`.
24591 *
24592 * @private
24593 * @param {Object} typedArray The typed array to clone.
24594 * @param {boolean} [isDeep] Specify a deep clone.
24595 * @returns {Object} Returns the cloned typed array.
24596 */
24597function cloneTypedArray(typedArray, isDeep) {
24598 var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;
24599 return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);
24600}
24601
24602/**
24603 * Copies the values of `source` to `array`.
24604 *
24605 * @private
24606 * @param {Array} source The array to copy values from.
24607 * @param {Array} [array=[]] The array to copy values to.
24608 * @returns {Array} Returns `array`.
24609 */
24610function copyArray(source, array) {
24611 var index = -1,
24612 length = source.length;
24613
24614 array || (array = Array(length));
24615 while (++index < length) {
24616 array[index] = source[index];
24617 }
24618 return array;
24619}
24620
24621/**
24622 * Copies properties of `source` to `object`.
24623 *
24624 * @private
24625 * @param {Object} source The object to copy properties from.
24626 * @param {Array} props The property identifiers to copy.
24627 * @param {Object} [object={}] The object to copy properties to.
24628 * @param {Function} [customizer] The function to customize copied values.
24629 * @returns {Object} Returns `object`.
24630 */
24631function copyObject(source, props, object, customizer) {
24632 object || (object = {});
24633
24634 var index = -1,
24635 length = props.length;
24636
24637 while (++index < length) {
24638 var key = props[index];
24639
24640 var newValue = customizer
24641 ? customizer(object[key], source[key], key, object, source)
24642 : undefined;
24643
24644 assignValue(object, key, newValue === undefined ? source[key] : newValue);
24645 }
24646 return object;
24647}
24648
24649/**
24650 * Copies own symbol properties of `source` to `object`.
24651 *
24652 * @private
24653 * @param {Object} source The object to copy symbols from.
24654 * @param {Object} [object={}] The object to copy symbols to.
24655 * @returns {Object} Returns `object`.
24656 */
24657function copySymbols(source, object) {
24658 return copyObject(source, getSymbols(source), object);
24659}
24660
24661/**
24662 * Creates an array of own enumerable property names and symbols of `object`.
24663 *
24664 * @private
24665 * @param {Object} object The object to query.
24666 * @returns {Array} Returns the array of property names and symbols.
24667 */
24668function getAllKeys(object) {
24669 return baseGetAllKeys(object, keys, getSymbols);
24670}
24671
24672/**
24673 * Gets the data for `map`.
24674 *
24675 * @private
24676 * @param {Object} map The map to query.
24677 * @param {string} key The reference key.
24678 * @returns {*} Returns the map data.
24679 */
24680function getMapData(map, key) {
24681 var data = map.__data__;
24682 return isKeyable(key)
24683 ? data[typeof key == 'string' ? 'string' : 'hash']
24684 : data.map;
24685}
24686
24687/**
24688 * Gets the native function at `key` of `object`.
24689 *
24690 * @private
24691 * @param {Object} object The object to query.
24692 * @param {string} key The key of the method to get.
24693 * @returns {*} Returns the function if it's native, else `undefined`.
24694 */
24695function getNative(object, key) {
24696 var value = getValue(object, key);
24697 return baseIsNative(value) ? value : undefined;
24698}
24699
24700/**
24701 * Creates an array of the own enumerable symbol properties of `object`.
24702 *
24703 * @private
24704 * @param {Object} object The object to query.
24705 * @returns {Array} Returns the array of symbols.
24706 */
24707var getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;
24708
24709/**
24710 * Gets the `toStringTag` of `value`.
24711 *
24712 * @private
24713 * @param {*} value The value to query.
24714 * @returns {string} Returns the `toStringTag`.
24715 */
24716var getTag = baseGetTag;
24717
24718// Fallback for data views, maps, sets, and weak maps in IE 11,
24719// for data views in Edge < 14, and promises in Node.js.
24720if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||
24721 (Map && getTag(new Map) != mapTag) ||
24722 (Promise && getTag(Promise.resolve()) != promiseTag) ||
24723 (Set && getTag(new Set) != setTag) ||
24724 (WeakMap && getTag(new WeakMap) != weakMapTag)) {
24725 getTag = function(value) {
24726 var result = objectToString.call(value),
24727 Ctor = result == objectTag ? value.constructor : undefined,
24728 ctorString = Ctor ? toSource(Ctor) : undefined;
24729
24730 if (ctorString) {
24731 switch (ctorString) {
24732 case dataViewCtorString: return dataViewTag;
24733 case mapCtorString: return mapTag;
24734 case promiseCtorString: return promiseTag;
24735 case setCtorString: return setTag;
24736 case weakMapCtorString: return weakMapTag;
24737 }
24738 }
24739 return result;
24740 };
24741}
24742
24743/**
24744 * Initializes an array clone.
24745 *
24746 * @private
24747 * @param {Array} array The array to clone.
24748 * @returns {Array} Returns the initialized clone.
24749 */
24750function initCloneArray(array) {
24751 var length = array.length,
24752 result = array.constructor(length);
24753
24754 // Add properties assigned by `RegExp#exec`.
24755 if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {
24756 result.index = array.index;
24757 result.input = array.input;
24758 }
24759 return result;
24760}
24761
24762/**
24763 * Initializes an object clone.
24764 *
24765 * @private
24766 * @param {Object} object The object to clone.
24767 * @returns {Object} Returns the initialized clone.
24768 */
24769function initCloneObject(object) {
24770 return (typeof object.constructor == 'function' && !isPrototype(object))
24771 ? baseCreate(getPrototype(object))
24772 : {};
24773}
24774
24775/**
24776 * Initializes an object clone based on its `toStringTag`.
24777 *
24778 * **Note:** This function only supports cloning values with tags of
24779 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
24780 *
24781 * @private
24782 * @param {Object} object The object to clone.
24783 * @param {string} tag The `toStringTag` of the object to clone.
24784 * @param {Function} cloneFunc The function to clone values.
24785 * @param {boolean} [isDeep] Specify a deep clone.
24786 * @returns {Object} Returns the initialized clone.
24787 */
24788function initCloneByTag(object, tag, cloneFunc, isDeep) {
24789 var Ctor = object.constructor;
24790 switch (tag) {
24791 case arrayBufferTag:
24792 return cloneArrayBuffer(object);
24793
24794 case boolTag:
24795 case dateTag:
24796 return new Ctor(+object);
24797
24798 case dataViewTag:
24799 return cloneDataView(object, isDeep);
24800
24801 case float32Tag: case float64Tag:
24802 case int8Tag: case int16Tag: case int32Tag:
24803 case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:
24804 return cloneTypedArray(object, isDeep);
24805
24806 case mapTag:
24807 return cloneMap(object, isDeep, cloneFunc);
24808
24809 case numberTag:
24810 case stringTag:
24811 return new Ctor(object);
24812
24813 case regexpTag:
24814 return cloneRegExp(object);
24815
24816 case setTag:
24817 return cloneSet(object, isDeep, cloneFunc);
24818
24819 case symbolTag:
24820 return cloneSymbol(object);
24821 }
24822}
24823
24824/**
24825 * Checks if `value` is a valid array-like index.
24826 *
24827 * @private
24828 * @param {*} value The value to check.
24829 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
24830 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
24831 */
24832function isIndex(value, length) {
24833 length = length == null ? MAX_SAFE_INTEGER : length;
24834 return !!length &&
24835 (typeof value == 'number' || reIsUint.test(value)) &&
24836 (value > -1 && value % 1 == 0 && value < length);
24837}
24838
24839/**
24840 * Checks if `value` is suitable for use as unique object key.
24841 *
24842 * @private
24843 * @param {*} value The value to check.
24844 * @returns {boolean} Returns `true` if `value` is suitable, else `false`.
24845 */
24846function isKeyable(value) {
24847 var type = typeof value;
24848 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')
24849 ? (value !== '__proto__')
24850 : (value === null);
24851}
24852
24853/**
24854 * Checks if `func` has its source masked.
24855 *
24856 * @private
24857 * @param {Function} func The function to check.
24858 * @returns {boolean} Returns `true` if `func` is masked, else `false`.
24859 */
24860function isMasked(func) {
24861 return !!maskSrcKey && (maskSrcKey in func);
24862}
24863
24864/**
24865 * Checks if `value` is likely a prototype object.
24866 *
24867 * @private
24868 * @param {*} value The value to check.
24869 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.
24870 */
24871function isPrototype(value) {
24872 var Ctor = value && value.constructor,
24873 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;
24874
24875 return value === proto;
24876}
24877
24878/**
24879 * Converts `func` to its source code.
24880 *
24881 * @private
24882 * @param {Function} func The function to process.
24883 * @returns {string} Returns the source code.
24884 */
24885function toSource(func) {
24886 if (func != null) {
24887 try {
24888 return funcToString.call(func);
24889 } catch (e) {}
24890 try {
24891 return (func + '');
24892 } catch (e) {}
24893 }
24894 return '';
24895}
24896
24897/**
24898 * This method is like `_.clone` except that it recursively clones `value`.
24899 *
24900 * @static
24901 * @memberOf _
24902 * @since 1.0.0
24903 * @category Lang
24904 * @param {*} value The value to recursively clone.
24905 * @returns {*} Returns the deep cloned value.
24906 * @see _.clone
24907 * @example
24908 *
24909 * var objects = [{ 'a': 1 }, { 'b': 2 }];
24910 *
24911 * var deep = _.cloneDeep(objects);
24912 * console.log(deep[0] === objects[0]);
24913 * // => false
24914 */
24915function cloneDeep(value) {
24916 return baseClone(value, true, true);
24917}
24918
24919/**
24920 * Performs a
24921 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)
24922 * comparison between two values to determine if they are equivalent.
24923 *
24924 * @static
24925 * @memberOf _
24926 * @since 4.0.0
24927 * @category Lang
24928 * @param {*} value The value to compare.
24929 * @param {*} other The other value to compare.
24930 * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
24931 * @example
24932 *
24933 * var object = { 'a': 1 };
24934 * var other = { 'a': 1 };
24935 *
24936 * _.eq(object, object);
24937 * // => true
24938 *
24939 * _.eq(object, other);
24940 * // => false
24941 *
24942 * _.eq('a', 'a');
24943 * // => true
24944 *
24945 * _.eq('a', Object('a'));
24946 * // => false
24947 *
24948 * _.eq(NaN, NaN);
24949 * // => true
24950 */
24951function eq(value, other) {
24952 return value === other || (value !== value && other !== other);
24953}
24954
24955/**
24956 * Checks if `value` is likely an `arguments` object.
24957 *
24958 * @static
24959 * @memberOf _
24960 * @since 0.1.0
24961 * @category Lang
24962 * @param {*} value The value to check.
24963 * @returns {boolean} Returns `true` if `value` is an `arguments` object,
24964 * else `false`.
24965 * @example
24966 *
24967 * _.isArguments(function() { return arguments; }());
24968 * // => true
24969 *
24970 * _.isArguments([1, 2, 3]);
24971 * // => false
24972 */
24973function isArguments(value) {
24974 // Safari 8.1 makes `arguments.callee` enumerable in strict mode.
24975 return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&
24976 (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);
24977}
24978
24979/**
24980 * Checks if `value` is classified as an `Array` object.
24981 *
24982 * @static
24983 * @memberOf _
24984 * @since 0.1.0
24985 * @category Lang
24986 * @param {*} value The value to check.
24987 * @returns {boolean} Returns `true` if `value` is an array, else `false`.
24988 * @example
24989 *
24990 * _.isArray([1, 2, 3]);
24991 * // => true
24992 *
24993 * _.isArray(document.body.children);
24994 * // => false
24995 *
24996 * _.isArray('abc');
24997 * // => false
24998 *
24999 * _.isArray(_.noop);
25000 * // => false
25001 */
25002var isArray = Array.isArray;
25003
25004/**
25005 * Checks if `value` is array-like. A value is considered array-like if it's
25006 * not a function and has a `value.length` that's an integer greater than or
25007 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.
25008 *
25009 * @static
25010 * @memberOf _
25011 * @since 4.0.0
25012 * @category Lang
25013 * @param {*} value The value to check.
25014 * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
25015 * @example
25016 *
25017 * _.isArrayLike([1, 2, 3]);
25018 * // => true
25019 *
25020 * _.isArrayLike(document.body.children);
25021 * // => true
25022 *
25023 * _.isArrayLike('abc');
25024 * // => true
25025 *
25026 * _.isArrayLike(_.noop);
25027 * // => false
25028 */
25029function isArrayLike(value) {
25030 return value != null && isLength(value.length) && !isFunction(value);
25031}
25032
25033/**
25034 * This method is like `_.isArrayLike` except that it also checks if `value`
25035 * is an object.
25036 *
25037 * @static
25038 * @memberOf _
25039 * @since 4.0.0
25040 * @category Lang
25041 * @param {*} value The value to check.
25042 * @returns {boolean} Returns `true` if `value` is an array-like object,
25043 * else `false`.
25044 * @example
25045 *
25046 * _.isArrayLikeObject([1, 2, 3]);
25047 * // => true
25048 *
25049 * _.isArrayLikeObject(document.body.children);
25050 * // => true
25051 *
25052 * _.isArrayLikeObject('abc');
25053 * // => false
25054 *
25055 * _.isArrayLikeObject(_.noop);
25056 * // => false
25057 */
25058function isArrayLikeObject(value) {
25059 return isObjectLike(value) && isArrayLike(value);
25060}
25061
25062/**
25063 * Checks if `value` is a buffer.
25064 *
25065 * @static
25066 * @memberOf _
25067 * @since 4.3.0
25068 * @category Lang
25069 * @param {*} value The value to check.
25070 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.
25071 * @example
25072 *
25073 * _.isBuffer(new Buffer(2));
25074 * // => true
25075 *
25076 * _.isBuffer(new Uint8Array(2));
25077 * // => false
25078 */
25079var isBuffer = nativeIsBuffer || stubFalse;
25080
25081/**
25082 * Checks if `value` is classified as a `Function` object.
25083 *
25084 * @static
25085 * @memberOf _
25086 * @since 0.1.0
25087 * @category Lang
25088 * @param {*} value The value to check.
25089 * @returns {boolean} Returns `true` if `value` is a function, else `false`.
25090 * @example
25091 *
25092 * _.isFunction(_);
25093 * // => true
25094 *
25095 * _.isFunction(/abc/);
25096 * // => false
25097 */
25098function isFunction(value) {
25099 // The use of `Object#toString` avoids issues with the `typeof` operator
25100 // in Safari 8-9 which returns 'object' for typed array and other constructors.
25101 var tag = isObject(value) ? objectToString.call(value) : '';
25102 return tag == funcTag || tag == genTag;
25103}
25104
25105/**
25106 * Checks if `value` is a valid array-like length.
25107 *
25108 * **Note:** This method is loosely based on
25109 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).
25110 *
25111 * @static
25112 * @memberOf _
25113 * @since 4.0.0
25114 * @category Lang
25115 * @param {*} value The value to check.
25116 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
25117 * @example
25118 *
25119 * _.isLength(3);
25120 * // => true
25121 *
25122 * _.isLength(Number.MIN_VALUE);
25123 * // => false
25124 *
25125 * _.isLength(Infinity);
25126 * // => false
25127 *
25128 * _.isLength('3');
25129 * // => false
25130 */
25131function isLength(value) {
25132 return typeof value == 'number' &&
25133 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
25134}
25135
25136/**
25137 * Checks if `value` is the
25138 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
25139 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
25140 *
25141 * @static
25142 * @memberOf _
25143 * @since 0.1.0
25144 * @category Lang
25145 * @param {*} value The value to check.
25146 * @returns {boolean} Returns `true` if `value` is an object, else `false`.
25147 * @example
25148 *
25149 * _.isObject({});
25150 * // => true
25151 *
25152 * _.isObject([1, 2, 3]);
25153 * // => true
25154 *
25155 * _.isObject(_.noop);
25156 * // => true
25157 *
25158 * _.isObject(null);
25159 * // => false
25160 */
25161function isObject(value) {
25162 var type = typeof value;
25163 return !!value && (type == 'object' || type == 'function');
25164}
25165
25166/**
25167 * Checks if `value` is object-like. A value is object-like if it's not `null`
25168 * and has a `typeof` result of "object".
25169 *
25170 * @static
25171 * @memberOf _
25172 * @since 4.0.0
25173 * @category Lang
25174 * @param {*} value The value to check.
25175 * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
25176 * @example
25177 *
25178 * _.isObjectLike({});
25179 * // => true
25180 *
25181 * _.isObjectLike([1, 2, 3]);
25182 * // => true
25183 *
25184 * _.isObjectLike(_.noop);
25185 * // => false
25186 *
25187 * _.isObjectLike(null);
25188 * // => false
25189 */
25190function isObjectLike(value) {
25191 return !!value && typeof value == 'object';
25192}
25193
25194/**
25195 * Creates an array of the own enumerable property names of `object`.
25196 *
25197 * **Note:** Non-object values are coerced to objects. See the
25198 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)
25199 * for more details.
25200 *
25201 * @static
25202 * @since 0.1.0
25203 * @memberOf _
25204 * @category Object
25205 * @param {Object} object The object to query.
25206 * @returns {Array} Returns the array of property names.
25207 * @example
25208 *
25209 * function Foo() {
25210 * this.a = 1;
25211 * this.b = 2;
25212 * }
25213 *
25214 * Foo.prototype.c = 3;
25215 *
25216 * _.keys(new Foo);
25217 * // => ['a', 'b'] (iteration order is not guaranteed)
25218 *
25219 * _.keys('hi');
25220 * // => ['0', '1']
25221 */
25222function keys(object) {
25223 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);
25224}
25225
25226/**
25227 * This method returns a new empty array.
25228 *
25229 * @static
25230 * @memberOf _
25231 * @since 4.13.0
25232 * @category Util
25233 * @returns {Array} Returns the new empty array.
25234 * @example
25235 *
25236 * var arrays = _.times(2, _.stubArray);
25237 *
25238 * console.log(arrays);
25239 * // => [[], []]
25240 *
25241 * console.log(arrays[0] === arrays[1]);
25242 * // => false
25243 */
25244function stubArray() {
25245 return [];
25246}
25247
25248/**
25249 * This method returns `false`.
25250 *
25251 * @static
25252 * @memberOf _
25253 * @since 4.13.0
25254 * @category Util
25255 * @returns {boolean} Returns `false`.
25256 * @example
25257 *
25258 * _.times(2, _.stubFalse);
25259 * // => [false, false]
25260 */
25261function stubFalse() {
25262 return false;
25263}
25264
25265module.exports = cloneDeep;
25266
25267/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(122), __webpack_require__(324)(module)))
25268
25269/***/ }),
25270/* 167 */
25271/***/ (function(module, exports, __webpack_require__) {
25272
25273"use strict";
25274
25275
25276exports.__esModule = true;
25277
25278var _extends2 = __webpack_require__(1);
25279
25280var _extends3 = _interopRequireDefault(_extends2);
25281
25282var _objectWithoutProperties2 = __webpack_require__(8);
25283
25284var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
25285
25286var _classCallCheck2 = __webpack_require__(2);
25287
25288var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
25289
25290var _possibleConstructorReturn2 = __webpack_require__(3);
25291
25292var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
25293
25294var _inherits2 = __webpack_require__(4);
25295
25296var _inherits3 = _interopRequireDefault(_inherits2);
25297
25298var _class, _temp2;
25299
25300var _react = __webpack_require__(0);
25301
25302var _react2 = _interopRequireDefault(_react);
25303
25304var _propTypes = __webpack_require__(5);
25305
25306var _propTypes2 = _interopRequireDefault(_propTypes);
25307
25308var _classnames = __webpack_require__(7);
25309
25310var _classnames2 = _interopRequireDefault(_classnames);
25311
25312var _configProvider = __webpack_require__(9);
25313
25314var _configProvider2 = _interopRequireDefault(_configProvider);
25315
25316var _icon = __webpack_require__(11);
25317
25318var _icon2 = _interopRequireDefault(_icon);
25319
25320var _util = __webpack_require__(6);
25321
25322function _interopRequireDefault(obj) {
25323 return obj && obj.__esModule ? obj : { default: obj };
25324}
25325
25326/** Collapse.Panel */
25327var Panel = (_temp2 = _class = function (_React$Component) {
25328 (0, _inherits3.default)(Panel, _React$Component);
25329
25330 function Panel() {
25331 var _temp, _this, _ret;
25332
25333 (0, _classCallCheck3.default)(this, Panel);
25334
25335 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
25336 args[_key] = arguments[_key];
25337 }
25338
25339 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onKeyDown = function (e) {
25340 var keyCode = e.keyCode;
25341
25342 if (keyCode === _util.KEYCODE.SPACE) {
25343 var onClick = _this.props.onClick;
25344
25345 e.preventDefault();
25346 onClick && onClick(e);
25347 }
25348 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
25349 } //
25350
25351 Panel.prototype.render = function render() {
25352 var _classNames, _classNames2;
25353
25354 var _props = this.props,
25355 title = _props.title,
25356 children = _props.children,
25357 className = _props.className,
25358 isExpanded = _props.isExpanded,
25359 disabled = _props.disabled,
25360 style = _props.style,
25361 prefix = _props.prefix,
25362 onClick = _props.onClick,
25363 id = _props.id,
25364 others = (0, _objectWithoutProperties3.default)(_props, ['title', 'children', 'className', 'isExpanded', 'disabled', 'style', 'prefix', 'onClick', 'id']);
25365
25366 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'collapse-panel'] = true, _classNames[prefix + 'collapse-panel-hidden'] = !isExpanded, _classNames[prefix + 'collapse-panel-expanded'] = isExpanded, _classNames[prefix + 'collapse-panel-disabled'] = disabled, _classNames[className] = className, _classNames));
25367
25368 var iconCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'collapse-panel-icon'] = true, _classNames2[prefix + 'collapse-panel-icon-expanded'] = isExpanded, _classNames2));
25369
25370 // 为了无障碍 需要添加两个id
25371 var headingId = id ? id + '-heading' : undefined;
25372 var regionId = id ? id + '-region' : undefined;
25373 return _react2.default.createElement('div', (0, _extends3.default)({ className: cls, style: style, id: id }, others), _react2.default.createElement('div', {
25374 id: headingId,
25375 className: prefix + 'collapse-panel-title',
25376 onClick: onClick,
25377 onKeyDown: this.onKeyDown,
25378 tabIndex: '0',
25379 'aria-disabled': disabled,
25380 'aria-expanded': isExpanded,
25381 'aria-controls': regionId,
25382 role: 'button'
25383 }, _react2.default.createElement(_icon2.default, {
25384 type: 'arrow-right',
25385 className: iconCls,
25386 'aria-hidden': 'true'
25387 }), title), _react2.default.createElement('div', {
25388 className: prefix + 'collapse-panel-content',
25389 role: 'region',
25390 id: regionId
25391 }, children));
25392 };
25393
25394 return Panel;
25395}(_react2.default.Component), _class.propTypes = {
25396 /**
25397 * 样式类名的品牌前缀
25398 */
25399 prefix: _propTypes2.default.string,
25400 /**
25401 * 子组件接受行内样式
25402 */
25403 style: _propTypes2.default.object,
25404 children: _propTypes2.default.any,
25405 isExpanded: _propTypes2.default.bool,
25406 /**
25407 * 是否禁止用户操作
25408 */
25409 disabled: _propTypes2.default.bool,
25410 /**
25411 * 标题
25412 */
25413 title: _propTypes2.default.node,
25414 /**
25415 * 扩展class
25416 */
25417 className: _propTypes2.default.string,
25418 onClick: _propTypes2.default.func,
25419 id: _propTypes2.default.string
25420}, _class.defaultProps = {
25421 prefix: 'next-',
25422 isExpanded: false,
25423 onClick: _util.func.noop
25424}, _class.isNextPanel = true, _temp2);
25425Panel.displayName = 'Panel';
25426exports.default = _configProvider2.default.config(Panel);
25427module.exports = exports['default'];
25428
25429/***/ }),
25430/* 168 */
25431/***/ (function(module, exports, __webpack_require__) {
25432
25433"use strict";
25434
25435
25436exports.__esModule = true;
25437
25438var _extends2 = __webpack_require__(1);
25439
25440var _extends3 = _interopRequireDefault(_extends2);
25441
25442var _classCallCheck2 = __webpack_require__(2);
25443
25444var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
25445
25446var _possibleConstructorReturn2 = __webpack_require__(3);
25447
25448var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
25449
25450var _inherits2 = __webpack_require__(4);
25451
25452var _inherits3 = _interopRequireDefault(_inherits2);
25453
25454var _class, _temp2;
25455
25456var _react = __webpack_require__(0);
25457
25458var _react2 = _interopRequireDefault(_react);
25459
25460var _moment = __webpack_require__(19);
25461
25462var _moment2 = _interopRequireDefault(_moment);
25463
25464var _button = __webpack_require__(17);
25465
25466var _button2 = _interopRequireDefault(_button);
25467
25468var _util = __webpack_require__(6);
25469
25470var _util2 = __webpack_require__(30);
25471
25472function _interopRequireDefault(obj) {
25473 return obj && obj.__esModule ? obj : { default: obj };
25474}
25475
25476var PanelFooter = (_temp2 = _class = function (_React$PureComponent) {
25477 (0, _inherits3.default)(PanelFooter, _React$PureComponent);
25478
25479 function PanelFooter() {
25480 var _temp, _this, _ret;
25481
25482 (0, _classCallCheck3.default)(this, PanelFooter);
25483
25484 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
25485 args[_key] = arguments[_key];
25486 }
25487
25488 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.changePanel = function () {
25489 var _PANEL$DATE$PANEL$TIM;
25490
25491 var targetPanel = (_PANEL$DATE$PANEL$TIM = {}, _PANEL$DATE$PANEL$TIM[_util2.PANEL.DATE] = _util2.PANEL.TIME, _PANEL$DATE$PANEL$TIM[_util2.PANEL.TIME] = _util2.PANEL.DATE, _PANEL$DATE$PANEL$TIM)[_this.props.panel];
25492 _this.props.onPanelChange(targetPanel);
25493 }, _this.createRanges = function (ranges) {
25494 if (!ranges || ranges.length === 0) return null;
25495 var _this$props = _this.props,
25496 onOk = _this$props.onOk,
25497 prefix = _this$props.prefix;
25498
25499 return _react2.default.createElement('div', { className: prefix + 'date-picker-panel-tools' }, ranges.map(function (_ref) {
25500 var label = _ref.label,
25501 _ref$value = _ref.value,
25502 value = _ref$value === undefined ? [] : _ref$value,
25503 onChange = _ref.onChange;
25504
25505 var handleClick = function handleClick() {
25506 var momentValue = value.map(function (v) {
25507 return (0, _moment2.default)(v);
25508 });
25509
25510 onChange(momentValue);
25511 onOk(momentValue);
25512 };
25513 return _react2.default.createElement(_button2.default, {
25514 key: label,
25515 text: true,
25516 size: 'small',
25517 type: 'primary',
25518 onClick: handleClick
25519 }, label);
25520 }));
25521 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
25522 }
25523
25524 PanelFooter.prototype.render = function render() {
25525 var _PANEL$DATE$PANEL$TIM2;
25526
25527 var _props = this.props,
25528 prefix = _props.prefix,
25529 locale = _props.locale,
25530 panel = _props.panel,
25531 value = _props.value,
25532 ranges = _props.ranges,
25533 disabledOk = _props.disabledOk,
25534 onPanelChange = _props.onPanelChange,
25535 onOk = _props.onOk;
25536
25537 var panelBtnLabel = (_PANEL$DATE$PANEL$TIM2 = {}, _PANEL$DATE$PANEL$TIM2[_util2.PANEL.DATE] = locale.selectTime, _PANEL$DATE$PANEL$TIM2[_util2.PANEL.TIME] = locale.selectDate, _PANEL$DATE$PANEL$TIM2)[panel];
25538
25539 var sharedBtnProps = {
25540 size: 'small',
25541 type: 'primary',
25542 disabled: !value
25543 };
25544 var onClick = function onClick() {
25545 return onOk();
25546 };
25547
25548 return _react2.default.createElement('div', { className: prefix + 'date-picker-panel-footer' }, this.createRanges(ranges), onPanelChange ? _react2.default.createElement(_button2.default, (0, _extends3.default)({}, sharedBtnProps, { text: true, onClick: this.changePanel }), panelBtnLabel) : null, _react2.default.createElement(_button2.default, (0, _extends3.default)({}, sharedBtnProps, {
25549 disabled: disabledOk || !value,
25550 onClick: onClick
25551 }), locale.ok));
25552 };
25553
25554 return PanelFooter;
25555}(_react2.default.PureComponent), _class.defaultProps = {
25556 // onPanelChange: func.noop,
25557 onOk: _util.func.noop
25558}, _temp2);
25559exports.default = PanelFooter;
25560module.exports = exports['default'];
25561
25562/***/ }),
25563/* 169 */
25564/***/ (function(module, exports, __webpack_require__) {
25565
25566"use strict";
25567
25568
25569exports.__esModule = true;
25570exports.default = undefined;
25571
25572var _objectWithoutProperties2 = __webpack_require__(8);
25573
25574var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
25575
25576var _extends2 = __webpack_require__(1);
25577
25578var _extends3 = _interopRequireDefault(_extends2);
25579
25580var _classCallCheck2 = __webpack_require__(2);
25581
25582var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
25583
25584var _possibleConstructorReturn2 = __webpack_require__(3);
25585
25586var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
25587
25588var _inherits2 = __webpack_require__(4);
25589
25590var _inherits3 = _interopRequireDefault(_inherits2);
25591
25592var _class, _temp;
25593
25594var _react = __webpack_require__(0);
25595
25596var _react2 = _interopRequireDefault(_react);
25597
25598var _propTypes = __webpack_require__(5);
25599
25600var _propTypes2 = _interopRequireDefault(_propTypes);
25601
25602var _overlay = __webpack_require__(15);
25603
25604var _overlay2 = _interopRequireDefault(_overlay);
25605
25606var _zhCn = __webpack_require__(13);
25607
25608var _zhCn2 = _interopRequireDefault(_zhCn);
25609
25610var _util = __webpack_require__(6);
25611
25612var _inner = __webpack_require__(93);
25613
25614var _inner2 = _interopRequireDefault(_inner);
25615
25616function _interopRequireDefault(obj) {
25617 return obj && obj.__esModule ? obj : { default: obj };
25618}
25619
25620var noop = function noop() {};
25621var limitTabRange = _util.focus.limitTabRange;
25622var bindCtx = _util.func.bindCtx;
25623var pickOthers = _util.obj.pickOthers;
25624var getStyle = _util.dom.getStyle,
25625 setStyle = _util.dom.setStyle;
25626
25627// [fix issue #1609](https://github.com/alibaba-fusion/next/issues/1609)
25628// https://stackoverflow.com/questions/19717907/getcomputedstyle-reporting-different-heights-between-chrome-safari-firefox-and-i
25629
25630function _getSize(dom, name) {
25631 var boxSizing = getStyle(dom, 'boxSizing');
25632
25633 if (_util.env.ieVersion && ['width', 'height'].indexOf(name) !== -1 && boxSizing === 'border-box') {
25634 return parseFloat(dom.getBoundingClientRect()[name].toFixed(1));
25635 } else {
25636 return getStyle(dom, name);
25637 }
25638}
25639
25640/**
25641 * Dialog
25642 */
25643var Dialog = (_temp = _class = function (_Component) {
25644 (0, _inherits3.default)(Dialog, _Component);
25645
25646 function Dialog(props, context) {
25647 (0, _classCallCheck3.default)(this, Dialog);
25648
25649 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
25650
25651 bindCtx(_this, ['onKeyDown', 'beforePosition', 'adjustPosition', 'getOverlayRef']);
25652 return _this;
25653 }
25654
25655 Dialog.prototype.componentDidMount = function componentDidMount() {
25656 _util.events.on(document, 'keydown', this.onKeyDown);
25657 if (!this.useCSSToPosition()) {
25658 this.adjustPosition();
25659 }
25660 };
25661
25662 Dialog.prototype.componentWillUnmount = function componentWillUnmount() {
25663 _util.events.off(document, 'keydown', this.onKeyDown);
25664 };
25665
25666 Dialog.prototype.useCSSToPosition = function useCSSToPosition() {
25667 var _props = this.props,
25668 align = _props.align,
25669 isFullScreen = _props.isFullScreen;
25670
25671 return align === 'cc cc' && isFullScreen;
25672 };
25673
25674 Dialog.prototype.onKeyDown = function onKeyDown(e) {
25675 var node = this.getInnerNode();
25676 if (node) {
25677 limitTabRange(node, e);
25678 }
25679 };
25680
25681 Dialog.prototype.beforePosition = function beforePosition() {
25682 if (this.props.visible && this.overlay) {
25683 var inner = this.getInner();
25684 if (inner) {
25685 var node = this.getInnerNode();
25686 if (this._lastDialogHeight !== _getSize(node, 'height')) {
25687 this.revertSize(inner.bodyNode);
25688 }
25689 }
25690 }
25691 };
25692
25693 Dialog.prototype.adjustPosition = function adjustPosition() {
25694 if (this.props.visible && this.overlay) {
25695 var inner = this.getInner();
25696 if (inner) {
25697 var node = this.getInnerNode();
25698
25699 var top = getStyle(node, 'top');
25700 var minMargin = this.props.minMargin;
25701 if (top < minMargin) {
25702 top = minMargin;
25703 setStyle(node, 'top', minMargin + 'px');
25704 }
25705
25706 var height = _getSize(node, 'height');
25707 var viewportHeight = window.innerHeight || document.documentElement.clientHeight;
25708
25709 if (viewportHeight < height + top * 2 - 1 || // 分辨率和精确度的原因 高度计算的时候 可能会有1px内的偏差
25710 this.props.height) {
25711 this.adjustSize(inner, node, Math.min(height, viewportHeight - top * 2));
25712 } else {
25713 this.revertSize(inner.bodyNode);
25714 }
25715
25716 this._lastDialogHeight = height;
25717 }
25718 }
25719 };
25720
25721 Dialog.prototype.adjustSize = function adjustSize(inner, node, expectHeight) {
25722 var headerNode = inner.headerNode,
25723 bodyNode = inner.bodyNode,
25724 footerNode = inner.footerNode;
25725
25726 var _map = [headerNode, footerNode].map(function (node) {
25727 return node ? _getSize(node, 'height') : 0;
25728 }),
25729 headerHeight = _map[0],
25730 footerHeight = _map[1];
25731
25732 var padding = ['padding-top', 'padding-bottom'].reduce(function (sum, attr) {
25733 return sum + getStyle(node, attr);
25734 }, 0);
25735
25736 var maxBodyHeight = expectHeight - headerHeight - footerHeight - padding;
25737
25738 if (maxBodyHeight < 0) {
25739 maxBodyHeight = 1;
25740 }
25741
25742 if (bodyNode) {
25743 this.dialogBodyStyleMaxHeight = bodyNode.style.maxHeight;
25744 this.dialogBodyStyleOverflowY = bodyNode.style.overflowY;
25745
25746 setStyle(bodyNode, {
25747 'max-height': maxBodyHeight + 'px',
25748 'overflow-y': 'auto'
25749 });
25750 }
25751 };
25752
25753 Dialog.prototype.revertSize = function revertSize(bodyNode) {
25754 setStyle(bodyNode, {
25755 'max-height': this.dialogBodyStyleMaxHeight,
25756 'overflow-y': this.dialogBodyStyleOverflowY
25757 });
25758 };
25759
25760 Dialog.prototype.mapcloseableToConfig = function mapcloseableToConfig(closeable) {
25761 return ['esc', 'close', 'mask'].reduce(function (ret, option) {
25762 var key = option.charAt(0).toUpperCase() + option.substr(1);
25763 var value = typeof closeable === 'boolean' ? closeable : closeable.split(',').indexOf(option) > -1;
25764
25765 if (option === 'esc' || option === 'mask') {
25766 ret['canCloseBy' + key] = value;
25767 } else {
25768 ret['canCloseBy' + key + 'Click'] = value;
25769 }
25770
25771 return ret;
25772 }, {});
25773 };
25774
25775 Dialog.prototype.getOverlayRef = function getOverlayRef(ref) {
25776 this.overlay = ref;
25777 };
25778
25779 Dialog.prototype.getInner = function getInner() {
25780 return this.overlay.getInstance().getContent();
25781 };
25782
25783 Dialog.prototype.getInnerNode = function getInnerNode() {
25784 return this.overlay.getInstance().getContentNode();
25785 };
25786
25787 Dialog.prototype.renderInner = function renderInner(closeable) {
25788 var _props2 = this.props,
25789 prefix = _props2.prefix,
25790 className = _props2.className,
25791 title = _props2.title,
25792 children = _props2.children,
25793 footer = _props2.footer,
25794 footerAlign = _props2.footerAlign,
25795 footerActions = _props2.footerActions,
25796 onOk = _props2.onOk,
25797 onCancel = _props2.onCancel,
25798 okProps = _props2.okProps,
25799 cancelProps = _props2.cancelProps,
25800 onClose = _props2.onClose,
25801 locale = _props2.locale,
25802 visible = _props2.visible,
25803 rtl = _props2.rtl,
25804 height = _props2.height;
25805
25806 var others = pickOthers(Object.keys(Dialog.propTypes), this.props);
25807
25808 return _react2.default.createElement(_inner2.default, (0, _extends3.default)({
25809 prefix: prefix,
25810 className: className,
25811 title: title,
25812 footer: footer,
25813 footerAlign: footerAlign,
25814 footerActions: footerActions,
25815 onOk: visible ? onOk : noop,
25816 onCancel: visible ? onCancel : noop,
25817 okProps: okProps,
25818 cancelProps: cancelProps,
25819 locale: locale,
25820 closeable: closeable,
25821 rtl: rtl,
25822 onClose: onClose.bind(this, 'closeClick'),
25823 height: height
25824 }, others), children);
25825 };
25826
25827 Dialog.prototype.render = function render() {
25828 var _props3 = this.props,
25829 prefix = _props3.prefix,
25830 visible = _props3.visible,
25831 hasMask = _props3.hasMask,
25832 animation = _props3.animation,
25833 autoFocus = _props3.autoFocus,
25834 closeable = _props3.closeable,
25835 closeMode = _props3.closeMode,
25836 onClose = _props3.onClose,
25837 afterClose = _props3.afterClose,
25838 shouldUpdatePosition = _props3.shouldUpdatePosition,
25839 align = _props3.align,
25840 popupContainer = _props3.popupContainer,
25841 cache = _props3.cache,
25842 overlayProps = _props3.overlayProps,
25843 rtl = _props3.rtl;
25844
25845 var useCSS = this.useCSSToPosition();
25846 var newCloseable = 'closeMode' in this.props ? Array.isArray(closeMode) ? closeMode.join(',') : closeMode : closeable;
25847
25848 var _mapcloseableToConfig = this.mapcloseableToConfig(newCloseable),
25849 canCloseByCloseClick = _mapcloseableToConfig.canCloseByCloseClick,
25850 closeConfig = (0, _objectWithoutProperties3.default)(_mapcloseableToConfig, ['canCloseByCloseClick']);
25851
25852 var newOverlayProps = (0, _extends3.default)({
25853 disableScroll: true,
25854 container: popupContainer,
25855 cache: cache
25856 }, overlayProps, {
25857 prefix: prefix,
25858 visible: visible,
25859 animation: animation,
25860 hasMask: hasMask,
25861 autoFocus: autoFocus,
25862 afterClose: afterClose
25863 }, closeConfig, {
25864 canCloseByOutSideClick: false,
25865 align: useCSS ? false : align,
25866 onRequestClose: onClose,
25867 needAdjust: false,
25868 ref: this.getOverlayRef,
25869 rtl: rtl,
25870 maskClass: useCSS ? prefix + 'dialog-container' : '',
25871 isChildrenInMask: useCSS && hasMask
25872 });
25873 if (!useCSS) {
25874 newOverlayProps.beforePosition = this.beforePosition;
25875 newOverlayProps.onPosition = this.adjustPosition;
25876 newOverlayProps.shouldUpdatePosition = shouldUpdatePosition;
25877 }
25878
25879 var inner = this.renderInner(canCloseByCloseClick);
25880
25881 // useCSS && hasMask : isFullScreen 并且 有mask的模式下,为了解决 next-overlay-backdrop 覆盖mask,使得点击mask关闭页面的功能不生效的问题,需要开启 Overlay 的 isChildrenInMask 功能,并且把 next-dialog-container 放到 next-overlay-backdrop上
25882 // useCSS && !hasMask : isFullScreen 并且 没有mask的情况下,需要关闭 isChildrenInMask 功能,以防止children不渲染
25883 // 其他模式下维持 mask 与 children 同级的关系
25884 return _react2.default.createElement(_overlay2.default, newOverlayProps, useCSS && !hasMask ? _react2.default.createElement('div', { className: prefix + 'dialog-container', dir: rtl ? 'rtl' : undefined }, inner) : inner);
25885 };
25886
25887 return Dialog;
25888}(_react.Component), _class.propTypes = {
25889 prefix: _propTypes2.default.string,
25890 pure: _propTypes2.default.bool,
25891 rtl: _propTypes2.default.bool,
25892 className: _propTypes2.default.string,
25893 /**
25894 * 是否显示
25895 */
25896 visible: _propTypes2.default.bool,
25897 /**
25898 * 标题
25899 */
25900 title: _propTypes2.default.node,
25901 /**
25902 * 内容
25903 */
25904 children: _propTypes2.default.node,
25905 /**
25906 * 底部内容,设置为 false,则不进行显示
25907 * @default [<Button type="primary">确定</Button>, <Button>取消</Button>]
25908 */
25909 footer: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
25910 /**
25911 * 底部按钮的对齐方式
25912 */
25913 footerAlign: _propTypes2.default.oneOf(['left', 'center', 'right']),
25914 /**
25915 * 指定确定按钮和取消按钮是否存在以及如何排列,<br><br>**可选值**:
25916 * ['ok', 'cancel'](确认取消按钮同时存在,确认按钮在左)
25917 * ['cancel', 'ok'](确认取消按钮同时存在,确认按钮在右)
25918 * ['ok'](只存在确认按钮)
25919 * ['cancel'](只存在取消按钮)
25920 */
25921 footerActions: _propTypes2.default.array,
25922 /**
25923 * 在点击确定按钮时触发的回调函数
25924 * @param {Object} event 点击事件对象
25925 */
25926 onOk: _propTypes2.default.func,
25927 /**
25928 * 在点击取消/关闭按钮时触发的回调函数
25929 * @param {Object} event 点击事件对象, event.triggerType=esc|closeIcon 可区分点击来源
25930 */
25931 onCancel: _propTypes2.default.func,
25932 /**
25933 * 应用于确定按钮的属性对象
25934 */
25935 okProps: _propTypes2.default.object,
25936 /**
25937 * 应用于取消按钮的属性对象
25938 */
25939 cancelProps: _propTypes2.default.object,
25940 /**
25941 * [推荐]1.21.x 支持控制对话框关闭的方式,值可以为字符串或者数组,其中字符串、数组均为以下值的枚举:
25942 * **close** 表示点击关闭按钮可以关闭对话框
25943 * **mask** 表示点击遮罩区域可以关闭对话框
25944 * **esc** 表示按下 esc 键可以关闭对话框
25945 * 如 'close' 或 ['close','esc','mask'], []
25946 * @version 1.21
25947 */
25948 closeMode: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.oneOf(['close', 'mask', 'esc'])), _propTypes2.default.oneOf(['close', 'mask', 'esc'])]),
25949 /**
25950 * 隐藏时是否保留子节点,不销毁 (低版本通过 overlayProps 实现)
25951 * @version 1.23
25952 */
25953 cache: _propTypes2.default.bool,
25954 /**
25955 * 对话框关闭后触发的回调函数, 如果有动画,则在动画结束后触发
25956 */
25957 afterClose: _propTypes2.default.func,
25958 /**
25959 * 是否显示遮罩
25960 */
25961 hasMask: _propTypes2.default.bool,
25962 /**
25963 * 显示隐藏时动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画。 请参考 Animate 组件的文档获取可用的动画名
25964 * @default { in: 'expandInDown', out: 'expandOutUp' }
25965 */
25966 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
25967 /**
25968 * 对话框弹出时是否自动获得焦点
25969 */
25970 autoFocus: _propTypes2.default.bool,
25971 /**
25972 * [v2废弃] 透传到弹层组件的属性对象
25973 */
25974 overlayProps: _propTypes2.default.object,
25975 /**
25976 * 自定义国际化文案对象
25977 * @property {String} ok 确认按钮文案
25978 * @property {String} cancel 取消按钮文案
25979 */
25980 locale: _propTypes2.default.object,
25981 // Do not remove this, it's for <ConfigProvider popupContainer={} />
25982 // see https://github.com/alibaba-fusion/next/issues/1508
25983 /**
25984 * 自定义弹窗挂载位置
25985 */
25986 popupContainer: _propTypes2.default.any,
25987 /**
25988 * 对话框的高度样式属性
25989 */
25990 height: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
25991 /**
25992 * 开启 v2 版本弹窗
25993 */
25994 v2: _propTypes2.default.bool,
25995 /**
25996 * [v2] 弹窗宽度
25997 * @version 1.25
25998 */
25999 width: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
26000 /**
26001 * [v2] 弹窗上边距。默认 100,设置 centered=true 后默认 40
26002 * @version 1.25
26003 */
26004 top: _propTypes2.default.number,
26005 /**
26006 * [v2] 弹窗下边距
26007 * @version 1.25
26008 */
26009 bottom: _propTypes2.default.number,
26010 /**
26011 * [v2] 定制关闭按钮 icon
26012 * @version 1.25
26013 */
26014 closeIcon: _propTypes2.default.node,
26015 /**
26016 * [v2] 弹窗居中对齐
26017 * @version 1.25
26018 */
26019 centered: _propTypes2.default.bool,
26020 /**
26021 * [v2] 对话框高度超过浏览器视口高度时,对话框是否展示滚动条。关闭此功后对话框会随高度撑开页面
26022 * @version 1.25
26023 */
26024 overflowScroll: _propTypes2.default.bool,
26025 /**
26026 * [废弃]同closeMode, 控制对话框关闭的方式,值可以为字符串或者布尔值,其中字符串是由以下值组成:
26027 * **close** 表示点击关闭按钮可以关闭对话框
26028 * **mask** 表示点击遮罩区域可以关闭对话框
26029 * **esc** 表示按下 esc 键可以关闭对话框
26030 * 如 'close' 或 'close,esc,mask'
26031 * 如果设置为 true,则以上关闭方式全部生效
26032 * 如果设置为 false,则以上关闭方式全部失效
26033 */
26034 closeable: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
26035 /**
26036 * 点击对话框关闭按钮时触发的回调函数
26037 * @param {String} trigger 关闭触发行为的描述字符串
26038 * @param {Object} event 关闭时事件对象
26039 */
26040 onClose: _propTypes2.default.func,
26041 /**
26042 * [v2废弃] 对话框对齐方式, 具体见Overlay文档
26043 */
26044 align: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
26045 /**
26046 * [v2废弃] 是否撑开页面。 v2 改用 overflowScroll
26047 */
26048 isFullScreen: _propTypes2.default.bool,
26049 /**
26050 * [v2废弃] 是否在对话框重新渲染时及时更新对话框位置,一般用于对话框高度变化后依然能保证原来的对齐方式
26051 */
26052 shouldUpdatePosition: _propTypes2.default.bool,
26053 /**
26054 * [v2废弃] 对话框距离浏览器顶部和底部的最小间距,align 被设置为 'cc cc' 并且 isFullScreen 被设置为 true 时不生效
26055 */
26056 minMargin: _propTypes2.default.number
26057}, _class.defaultProps = {
26058 prefix: 'next-',
26059 pure: false,
26060 visible: false,
26061 footerAlign: 'right',
26062 footerActions: ['ok', 'cancel'],
26063 onOk: noop,
26064 onCancel: noop,
26065 cache: false,
26066 okProps: {},
26067 cancelProps: {},
26068 closeable: 'esc,close',
26069 onClose: noop,
26070 afterClose: noop,
26071 centered: false,
26072 hasMask: true,
26073 animation: {
26074 in: 'fadeInUp',
26075 out: 'fadeOutUp'
26076 },
26077 autoFocus: false,
26078 align: 'cc cc',
26079 isFullScreen: false,
26080 overflowScroll: true,
26081 shouldUpdatePosition: false,
26082 minMargin: 40,
26083 bottom: 40,
26084 overlayProps: {},
26085 locale: _zhCn2.default.Dialog
26086}, _temp);
26087Dialog.displayName = 'Dialog';
26088exports.default = Dialog;
26089module.exports = exports['default'];
26090
26091/***/ }),
26092/* 170 */
26093/***/ (function(module, exports, __webpack_require__) {
26094
26095"use strict";
26096
26097
26098exports.__esModule = true;
26099
26100var _extends2 = __webpack_require__(1);
26101
26102var _extends3 = _interopRequireDefault(_extends2);
26103
26104var _objectWithoutProperties2 = __webpack_require__(8);
26105
26106var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
26107
26108var _react = __webpack_require__(0);
26109
26110var _react2 = _interopRequireDefault(_react);
26111
26112var _reactDom = __webpack_require__(12);
26113
26114var _reactDom2 = _interopRequireDefault(_reactDom);
26115
26116var _classnames = __webpack_require__(7);
26117
26118var _classnames2 = _interopRequireDefault(_classnames);
26119
26120var _overlay = __webpack_require__(85);
26121
26122var _overlay2 = _interopRequireDefault(_overlay);
26123
26124var _inner = __webpack_require__(93);
26125
26126var _inner2 = _interopRequireDefault(_inner);
26127
26128var _animate = __webpack_require__(20);
26129
26130var _animate2 = _interopRequireDefault(_animate);
26131
26132var _zhCn = __webpack_require__(13);
26133
26134var _zhCn2 = _interopRequireDefault(_zhCn);
26135
26136var _util = __webpack_require__(6);
26137
26138var _scrollLocker = __webpack_require__(340);
26139
26140var _scrollLocker2 = _interopRequireDefault(_scrollLocker);
26141
26142function _interopRequireDefault(obj) {
26143 return obj && obj.__esModule ? obj : { default: obj };
26144}
26145
26146var OverlayContext = _overlay2.default.OverlayContext; /* istanbul ignore file */
26147
26148var noop = _util.func.noop;
26149
26150var Dialog = function Dialog(props) {
26151 var _classNames, _classNames2, _classNames3;
26152
26153 if (!_react.useState || !_react.useRef || !_react.useEffect) {
26154 _util.log.warning('need react version > 16.8.0');
26155 return null;
26156 }
26157
26158 var _props$prefix = props.prefix,
26159 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
26160 _props$afterClose = props.afterClose,
26161 afterClose = _props$afterClose === undefined ? noop : _props$afterClose,
26162 _props$hasMask = props.hasMask,
26163 hasMask = _props$hasMask === undefined ? true : _props$hasMask,
26164 _props$autoFocus = props.autoFocus,
26165 autoFocus = _props$autoFocus === undefined ? false : _props$autoFocus,
26166 className = props.className,
26167 title = props.title,
26168 children = props.children,
26169 footer = props.footer,
26170 footerAlign = props.footerAlign,
26171 footerActions = props.footerActions,
26172 _props$onOk = props.onOk,
26173 onOk = _props$onOk === undefined ? noop : _props$onOk,
26174 onCancel = props.onCancel,
26175 okProps = props.okProps,
26176 cancelProps = props.cancelProps,
26177 _props$locale = props.locale,
26178 locale = _props$locale === undefined ? _zhCn2.default.Dialog : _props$locale,
26179 rtl = props.rtl,
26180 pvisible = props.visible,
26181 _props$closeMode = props.closeMode,
26182 closeMode = _props$closeMode === undefined ? ['close', 'esc'] : _props$closeMode,
26183 closeIcon = props.closeIcon,
26184 _props$animation = props.animation,
26185 animation = _props$animation === undefined ? { in: 'fadeInUp', out: 'fadeOutUp' } : _props$animation,
26186 cache = props.cache,
26187 wrapperStyle = props.wrapperStyle,
26188 _props$popupContainer = props.popupContainer,
26189 popupContainer = _props$popupContainer === undefined ? document.body : _props$popupContainer,
26190 dialogRender = props.dialogRender,
26191 centered = props.centered,
26192 _props$top = props.top,
26193 top = _props$top === undefined ? centered ? 40 : 100 : _props$top,
26194 _props$bottom = props.bottom,
26195 bottom = _props$bottom === undefined ? 40 : _props$bottom,
26196 _props$width = props.width,
26197 width = _props$width === undefined ? 520 : _props$width,
26198 height = props.height,
26199 isFullScreen = props.isFullScreen,
26200 _props$overflowScroll = props.overflowScroll,
26201 overflowScroll = _props$overflowScroll === undefined ? !isFullScreen : _props$overflowScroll,
26202 minMargin = props.minMargin,
26203 onClose = props.onClose,
26204 style = props.style,
26205 others = (0, _objectWithoutProperties3.default)(props, ['prefix', 'afterClose', 'hasMask', 'autoFocus', 'className', 'title', 'children', 'footer', 'footerAlign', 'footerActions', 'onOk', 'onCancel', 'okProps', 'cancelProps', 'locale', 'rtl', 'visible', 'closeMode', 'closeIcon', 'animation', 'cache', 'wrapperStyle', 'popupContainer', 'dialogRender', 'centered', 'top', 'bottom', 'width', 'height', 'isFullScreen', 'overflowScroll', 'minMargin', 'onClose', 'style']);
26206
26207 if ('isFullScreen' in props) {
26208 _util.log.deprecated('isFullScreen', 'overflowScroll', 'Dialog v2');
26209 }
26210 if ('minMargin' in props) {
26211 _util.log.deprecated('minMargin', 'top/bottom', 'Dialog v2');
26212 }
26213
26214 var _useState = (0, _react.useState)(pvisible || false),
26215 firstVisible = _useState[0],
26216 setFirst = _useState[1];
26217
26218 var _useState2 = (0, _react.useState)(pvisible),
26219 visible = _useState2[0],
26220 setVisible = _useState2[1];
26221
26222 var getContainer = typeof popupContainer === 'string' ? function () {
26223 return document.getElementById(popupContainer);
26224 } : typeof popupContainer !== 'function' ? function () {
26225 return popupContainer;
26226 } : popupContainer;
26227
26228 var _useState3 = (0, _react.useState)(getContainer()),
26229 container = _useState3[0],
26230 setContainer = _useState3[1];
26231
26232 var dialogRef = (0, _react.useRef)(null);
26233 var wrapperRef = (0, _react.useRef)(null);
26234 var lastFocus = (0, _react.useRef)(null);
26235 var locker = (0, _react.useRef)(null);
26236
26237 var _useState4 = (0, _react.useState)((0, _util.guid)()),
26238 uuid = _useState4[0];
26239
26240 var _useContext = (0, _react.useContext)(OverlayContext),
26241 setVisibleOverlayToParent = _useContext.setVisibleOverlayToParent,
26242 otherContext = (0, _objectWithoutProperties3.default)(_useContext, ['setVisibleOverlayToParent']);
26243
26244 var childIDMap = (0, _react.useRef)(new Map());
26245 var isAnimationEnd = (0, _react.useRef)(false);
26246
26247 var _useState5 = (0, _react.useState)(),
26248 forceUpdate = _useState5[1];
26249
26250 var markAnimationEnd = function markAnimationEnd(state) {
26251 isAnimationEnd.current = state;
26252 forceUpdate({});
26253 };
26254
26255 var canCloseByEsc = false;
26256 var canCloseByMask = false;
26257 var closeable = false;
26258
26259 var closeModeArray = Array.isArray(closeMode) ? closeMode : [closeMode];
26260 closeModeArray.forEach(function (mode) {
26261 switch (mode) {
26262 case 'esc':
26263 canCloseByEsc = true;
26264 break;
26265 case 'mask':
26266 canCloseByMask = true;
26267 break;
26268 case 'close':
26269 closeable = true;
26270 break;
26271 }
26272 });
26273
26274 // visible 受控
26275 (0, _react.useEffect)(function () {
26276 if ('visible' in props) {
26277 setVisible(pvisible);
26278 }
26279 }, [pvisible]);
26280
26281 // 打开遮罩后 document.body 滚动处理
26282 (0, _react.useEffect)(function () {
26283 if (visible && hasMask) {
26284 var _style = {
26285 overflow: 'hidden'
26286 };
26287
26288 if (_util.dom.hasScroll(document.body)) {
26289 var scrollWidth = _util.dom.scrollbar().width;
26290 if (scrollWidth) {
26291 _style.paddingRight = _util.dom.getStyle(document.body, 'paddingRight') + _util.dom.scrollbar().width + 'px';
26292 }
26293 }
26294 locker.current = _scrollLocker2.default.lock(document.body, _style);
26295 }
26296 }, [visible && hasMask]);
26297
26298 var handleClose = function handleClose(targetType, e) {
26299 setVisibleOverlayToParent(uuid, null);
26300 typeof onClose === 'function' && onClose(targetType, e);
26301 };
26302
26303 var keydownEvent = function keydownEvent(e) {
26304 if (e.keyCode === 27 && canCloseByEsc && !childIDMap.current.size) {
26305 handleClose('esc', e);
26306 }
26307 };
26308
26309 // esc 键盘事件处理
26310 (0, _react.useEffect)(function () {
26311 if (visible && canCloseByEsc) {
26312 document.body.addEventListener('keydown', keydownEvent, false);
26313 return function () {
26314 document.body.removeEventListener('keydown', keydownEvent, false);
26315 };
26316 }
26317 }, [visible && canCloseByEsc]);
26318
26319 // 优化: 第一次加载并且 visible=false 的情况不挂载弹窗
26320 (0, _react.useEffect)(function () {
26321 !firstVisible && visible && setFirst(true);
26322 }, [visible]);
26323
26324 // container 异步加载情况
26325 (0, _react.useEffect)(function () {
26326 if (!container) {
26327 setTimeout(function () {
26328 setContainer(getContainer());
26329 });
26330 }
26331 }, [container]);
26332
26333 var handleExited = function handleExited() {
26334 if (!isAnimationEnd.current) {
26335 markAnimationEnd(true);
26336 _util.dom.setStyle(wrapperRef.current, 'display', 'none');
26337 _scrollLocker2.default.unlock(document.body, locker.current);
26338
26339 if (autoFocus && lastFocus.current) {
26340 try {
26341 lastFocus.current.focus();
26342 } finally {
26343 // ignore ...
26344 }
26345 lastFocus.current = null;
26346 }
26347 afterClose();
26348 }
26349 };
26350
26351 (0, _react.useEffect)(function () {
26352 return function () {
26353 handleExited();
26354 };
26355 }, []);
26356
26357 if (firstVisible === false || !container) {
26358 return null;
26359 }
26360
26361 if (!visible && !cache && isAnimationEnd.current) {
26362 return null;
26363 }
26364
26365 var handleCancel = function handleCancel(e) {
26366 if (typeof onCancel === 'function') {
26367 onCancel(e);
26368 } else {
26369 handleClose('cancelBtn', e);
26370 }
26371 };
26372
26373 var handleMaskClick = function handleMaskClick(e) {
26374 if (!canCloseByMask) {
26375 return;
26376 }
26377
26378 if (e.type === 'click' && dialogRef.current) {
26379 var dialogNode = _reactDom2.default.findDOMNode(dialogRef.current);
26380 if (dialogNode && dialogNode.contains(e.target)) {
26381 return;
26382 }
26383 }
26384
26385 handleClose('maskClick', e);
26386 };
26387
26388 var handleEnter = function handleEnter() {
26389 markAnimationEnd(false);
26390 _util.dom.setStyle(wrapperRef.current, 'display', '');
26391 };
26392 var handleEntered = function handleEntered() {
26393 if (autoFocus && dialogRef.current && dialogRef.current.bodyNode) {
26394 var focusableNodes = _util.focus.getFocusNodeList(dialogRef.current.bodyNode);
26395 if (focusableNodes.length > 0 && focusableNodes[0]) {
26396 lastFocus.current = document.activeElement;
26397 focusableNodes[0].focus();
26398 }
26399 }
26400 setVisibleOverlayToParent(uuid, wrapperRef.current);
26401 };
26402
26403 var wrapperCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'overlay-wrapper'] = true, _classNames.opened = visible, _classNames));
26404 var dialogCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'dialog-v2'] = true, _classNames2[className] = !!className, _classNames2));
26405
26406 var topStyle = {};
26407 if (centered) {
26408 // 兼容 minMargin
26409 if (!top && !bottom && minMargin) {
26410 topStyle.marginTop = minMargin;
26411 topStyle.marginBottom = minMargin;
26412 } else {
26413 top && (topStyle.marginTop = top);
26414 bottom && (topStyle.marginBottom = bottom);
26415 }
26416 } else {
26417 top && (topStyle.top = top);
26418 bottom && (topStyle.paddingBottom = bottom);
26419 }
26420
26421 var maxHeight = void 0;
26422 if (overflowScroll) {
26423 maxHeight = 'calc(100vh - ' + (top + bottom) + 'px)';
26424 }
26425
26426 var timeout = {
26427 appear: 300,
26428 enter: 300,
26429 exit: 250
26430 };
26431
26432 var inner = _react2.default.createElement(_animate2.default.OverlayAnimate, {
26433 visible: visible,
26434 animation: animation,
26435 timeout: timeout,
26436 onEnter: handleEnter,
26437 onEntered: handleEntered,
26438 onExited: handleExited
26439 }, _react2.default.createElement(_inner2.default, (0, _extends3.default)({}, others, {
26440 style: centered ? (0, _extends3.default)({}, topStyle, style) : style,
26441 v2: true,
26442 ref: dialogRef,
26443 prefix: prefix,
26444 className: dialogCls,
26445 title: title,
26446 footer: footer,
26447 footerAlign: footerAlign,
26448 footerActions: footerActions,
26449 onOk: visible ? onOk : noop,
26450 onCancel: visible ? handleCancel : noop,
26451 okProps: okProps,
26452 cancelProps: cancelProps,
26453 locale: locale,
26454 closeable: closeable,
26455 rtl: rtl,
26456 onClose: function onClose() {
26457 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
26458 args[_key] = arguments[_key];
26459 }
26460
26461 return handleClose.apply(undefined, ['closeClick'].concat(args));
26462 },
26463 closeIcon: closeIcon,
26464 height: height,
26465 maxHeight: maxHeight,
26466 width: width
26467 }), children));
26468
26469 if (typeof dialogRender === 'function') {
26470 inner = dialogRender(inner);
26471 }
26472
26473 var innerWrapperCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'overlay-inner'] = true, _classNames3[prefix + 'dialog-wrapper'] = true, _classNames3[prefix + 'dialog-centered'] = centered, _classNames3));
26474
26475 var getVisibleOverlayFromChild = function getVisibleOverlayFromChild(id, node) {
26476 if (node) {
26477 childIDMap.current.set(id, node);
26478 } else {
26479 childIDMap.current.delete(id);
26480 }
26481 // 让父级也感知
26482 setVisibleOverlayToParent(id, node);
26483 };
26484
26485 return _react2.default.createElement(OverlayContext.Provider, {
26486 value: (0, _extends3.default)({}, otherContext, {
26487 setVisibleOverlayToParent: getVisibleOverlayFromChild
26488 })
26489 }, _reactDom2.default.createPortal(_react2.default.createElement('div', { className: wrapperCls, style: wrapperStyle, ref: wrapperRef }, hasMask ? _react2.default.createElement(_animate2.default.OverlayAnimate, {
26490 visible: visible,
26491 animation: animation ? { in: 'fadeIn', out: 'fadeOut' } : false,
26492 timeout: timeout,
26493 unmountOnExit: true
26494 }, _react2.default.createElement('div', { className: prefix + 'overlay-backdrop' })) : null, _react2.default.createElement('div', { className: innerWrapperCls, onClick: handleMaskClick }, centered ? inner : _react2.default.createElement('div', { style: topStyle, className: prefix + 'dialog-inner-wrapper' }, inner))), container));
26495};
26496
26497exports.default = Dialog;
26498module.exports = exports['default'];
26499
26500/***/ }),
26501/* 171 */
26502/***/ (function(module, exports, __webpack_require__) {
26503
26504"use strict";
26505
26506
26507exports.__esModule = true;
26508exports.default = undefined;
26509
26510var _extends2 = __webpack_require__(1);
26511
26512var _extends3 = _interopRequireDefault(_extends2);
26513
26514var _classCallCheck2 = __webpack_require__(2);
26515
26516var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
26517
26518var _possibleConstructorReturn2 = __webpack_require__(3);
26519
26520var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26521
26522var _inherits2 = __webpack_require__(4);
26523
26524var _inherits3 = _interopRequireDefault(_inherits2);
26525
26526var _class, _temp;
26527
26528var _react = __webpack_require__(0);
26529
26530var _react2 = _interopRequireDefault(_react);
26531
26532var _propTypes = __webpack_require__(5);
26533
26534var _propTypes2 = _interopRequireDefault(_propTypes);
26535
26536var _classnames = __webpack_require__(7);
26537
26538var _classnames2 = _interopRequireDefault(_classnames);
26539
26540var _icon = __webpack_require__(11);
26541
26542var _icon2 = _interopRequireDefault(_icon);
26543
26544var _zhCn = __webpack_require__(13);
26545
26546var _zhCn2 = _interopRequireDefault(_zhCn);
26547
26548var _util = __webpack_require__(6);
26549
26550function _interopRequireDefault(obj) {
26551 return obj && obj.__esModule ? obj : { default: obj };
26552}
26553
26554var noop = function noop() {};
26555var pickOthers = _util.obj.pickOthers;
26556var Inner = (_temp = _class = function (_Component) {
26557 (0, _inherits3.default)(Inner, _Component);
26558
26559 function Inner() {
26560 (0, _classCallCheck3.default)(this, Inner);
26561 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
26562 }
26563
26564 Inner.prototype.renderHeader = function renderHeader() {
26565 var _cx;
26566
26567 var _props = this.props,
26568 prefix = _props.prefix,
26569 title = _props.title,
26570 headerStyle = _props.headerStyle;
26571
26572 var closeLink = this.renderCloseLink();
26573 var headerCls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'drawer-header'] = true, _cx[prefix + 'drawer-no-title'] = !title, _cx));
26574
26575 return _react2.default.createElement('div', {
26576 className: headerCls,
26577 style: headerStyle,
26578 role: 'heading',
26579 'aria-level': '1'
26580 }, title, closeLink);
26581 };
26582
26583 Inner.prototype.renderBody = function renderBody() {
26584 var _props2 = this.props,
26585 prefix = _props2.prefix,
26586 children = _props2.children,
26587 bodyStyle = _props2.bodyStyle;
26588
26589 if (children) {
26590 return _react2.default.createElement('div', { className: prefix + 'drawer-body', style: bodyStyle }, children);
26591 }
26592 return null;
26593 };
26594
26595 Inner.prototype.renderCloseLink = function renderCloseLink() {
26596 var _props3 = this.props,
26597 prefix = _props3.prefix,
26598 closeable = _props3.closeable,
26599 onClose = _props3.onClose,
26600 locale = _props3.locale;
26601
26602 if (closeable) {
26603 return _react2.default.createElement('a', {
26604 role: 'button',
26605 'aria-label': locale.close,
26606 className: prefix + 'drawer-close',
26607 onClick: onClose
26608 }, _react2.default.createElement(_icon2.default, {
26609 className: prefix + 'drawer-close-icon',
26610 type: 'close'
26611 }));
26612 }
26613
26614 return null;
26615 };
26616
26617 Inner.prototype.render = function render() {
26618 var _cx2;
26619
26620 var _props4 = this.props,
26621 prefix = _props4.prefix,
26622 className = _props4.className,
26623 closeable = _props4.closeable,
26624 placement = _props4.placement,
26625 role = _props4.role,
26626 rtl = _props4.rtl;
26627
26628 var others = pickOthers(Object.keys(Inner.propTypes), this.props);
26629 var newClassName = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'drawer'] = true, _cx2[prefix + 'drawer-' + placement] = true, _cx2[prefix + 'closeable'] = closeable, _cx2[className] = !!className, _cx2));
26630
26631 var ariaProps = {
26632 role: role,
26633 'aria-modal': 'true'
26634 };
26635
26636 var header = this.renderHeader();
26637 var body = this.renderBody();
26638
26639 return _react2.default.createElement('div', (0, _extends3.default)({}, ariaProps, {
26640 className: newClassName
26641 }, others, {
26642 dir: rtl ? 'rtl' : undefined
26643 }), _react2.default.createElement('div', { style: { height: '100%', overflow: 'auto' } }, header, body));
26644 };
26645
26646 return Inner;
26647}(_react.Component), _class.propTypes = {
26648 prefix: _propTypes2.default.string,
26649 className: _propTypes2.default.string,
26650 closeable: _propTypes2.default.bool,
26651 role: _propTypes2.default.string,
26652 title: _propTypes2.default.node,
26653 placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),
26654 rtl: _propTypes2.default.bool,
26655 onClose: _propTypes2.default.func,
26656 locale: _propTypes2.default.object,
26657 headerStyle: _propTypes2.default.object,
26658 bodyStyle: _propTypes2.default.object,
26659 afterClose: _propTypes2.default.func,
26660 beforeOpen: _propTypes2.default.func,
26661 beforeClose: _propTypes2.default.func,
26662 cache: _propTypes2.default.bool,
26663 shouldUpdatePosition: _propTypes2.default.bool
26664}, _class.defaultProps = {
26665 prefix: 'next-',
26666 closeable: true,
26667 role: 'dialog',
26668 onClose: noop,
26669 locale: _zhCn2.default.Drawer
26670}, _temp);
26671Inner.displayName = 'Inner';
26672exports.default = Inner;
26673module.exports = exports['default'];
26674
26675/***/ }),
26676/* 172 */
26677/***/ (function(module, exports, __webpack_require__) {
26678
26679"use strict";
26680
26681
26682exports.__esModule = true;
26683
26684var _extends2 = __webpack_require__(1);
26685
26686var _extends3 = _interopRequireDefault(_extends2);
26687
26688var _classCallCheck2 = __webpack_require__(2);
26689
26690var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
26691
26692var _possibleConstructorReturn2 = __webpack_require__(3);
26693
26694var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26695
26696var _inherits2 = __webpack_require__(4);
26697
26698var _inherits3 = _interopRequireDefault(_inherits2);
26699
26700var _react = __webpack_require__(0);
26701
26702var _field = __webpack_require__(346);
26703
26704var _field2 = _interopRequireDefault(_field);
26705
26706var _util = __webpack_require__(6);
26707
26708var _utils = __webpack_require__(365);
26709
26710function _interopRequireDefault(obj) {
26711 return obj && obj.__esModule ? obj : { default: obj };
26712}
26713
26714var NextField = function (_Field) {
26715 (0, _inherits3.default)(NextField, _Field);
26716
26717 NextField.useField = function useField() {
26718 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26719
26720 if (!_react.useState || !_react.useMemo) {
26721 _util.log.warning('need react version > 16.8.0');
26722 return;
26723 }
26724 return this.getUseField({ useMemo: _react.useMemo, useState: _react.useState })(options);
26725 };
26726
26727 function NextField(com) {
26728 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
26729 (0, _classCallCheck3.default)(this, NextField);
26730
26731 var newOptions = (0, _extends3.default)({}, options, {
26732 afterValidateRerender: _utils.scrollToFirstError,
26733 processErrorMessage: _utils.cloneAndAddKey
26734 });
26735
26736 var _this = (0, _possibleConstructorReturn3.default)(this, _Field.call(this, com, newOptions));
26737
26738 _this.validate = _this.validate.bind(_this);
26739 return _this;
26740 }
26741
26742 NextField.prototype.validate = function validate(ns, cb) {
26743 this.validateCallback(ns, cb);
26744 };
26745
26746 NextField.prototype.reset = function reset(ns) {
26747 var backToDefault = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
26748
26749 if (ns === true) {
26750 _util.log.deprecated('reset(true)', 'resetToDefault()', 'Field');
26751 this.resetToDefault();
26752 } else if (backToDefault === true) {
26753 _util.log.deprecated('reset(ns,true)', 'resetToDefault(ns)', 'Field');
26754 this.resetToDefault(ns);
26755 } else {
26756 this._reset(ns, false);
26757 }
26758 };
26759
26760 return NextField;
26761}(_field2.default);
26762
26763exports.default = NextField;
26764module.exports = exports['default'];
26765
26766/***/ }),
26767/* 173 */
26768/***/ (function(module, exports) {
26769
26770function _classCallCheck(instance, Constructor) {
26771 if (!(instance instanceof Constructor)) {
26772 throw new TypeError("Cannot call a class as a function");
26773 }
26774}
26775
26776module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
26777
26778/***/ }),
26779/* 174 */
26780/***/ (function(module, exports) {
26781
26782function _defineProperties(target, props) {
26783 for (var i = 0; i < props.length; i++) {
26784 var descriptor = props[i];
26785 descriptor.enumerable = descriptor.enumerable || false;
26786 descriptor.configurable = true;
26787 if ("value" in descriptor) descriptor.writable = true;
26788 Object.defineProperty(target, descriptor.key, descriptor);
26789 }
26790}
26791
26792function _createClass(Constructor, protoProps, staticProps) {
26793 if (protoProps) _defineProperties(Constructor.prototype, protoProps);
26794 if (staticProps) _defineProperties(Constructor, staticProps);
26795 Object.defineProperty(Constructor, "prototype", {
26796 writable: false
26797 });
26798 return Constructor;
26799}
26800
26801module.exports = _createClass, module.exports.__esModule = true, module.exports["default"] = module.exports;
26802
26803/***/ }),
26804/* 175 */
26805/***/ (function(module, exports, __webpack_require__) {
26806
26807"use strict";
26808
26809
26810exports.__esModule = true;
26811
26812var _classCallCheck2 = __webpack_require__(2);
26813
26814var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
26815
26816var _possibleConstructorReturn2 = __webpack_require__(3);
26817
26818var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
26819
26820var _inherits2 = __webpack_require__(4);
26821
26822var _inherits3 = _interopRequireDefault(_inherits2);
26823
26824var _extends2 = __webpack_require__(1);
26825
26826var _extends3 = _interopRequireDefault(_extends2);
26827
26828var _typeof2 = __webpack_require__(14);
26829
26830var _typeof3 = _interopRequireDefault(_typeof2);
26831
26832var _class, _temp;
26833
26834var _react = __webpack_require__(0);
26835
26836var _react2 = _interopRequireDefault(_react);
26837
26838var _propTypes = __webpack_require__(5);
26839
26840var _propTypes2 = _interopRequireDefault(_propTypes);
26841
26842var _classnames = __webpack_require__(7);
26843
26844var _classnames2 = _interopRequireDefault(_classnames);
26845
26846var _configProvider = __webpack_require__(9);
26847
26848var _configProvider2 = _interopRequireDefault(_configProvider);
26849
26850var _util = __webpack_require__(6);
26851
26852var _createStyle = __webpack_require__(176);
26853
26854var _createStyle2 = _interopRequireDefault(_createStyle);
26855
26856function _interopRequireDefault(obj) {
26857 return obj && obj.__esModule ? obj : { default: obj };
26858}
26859
26860var pickOthers = _util.obj.pickOthers;
26861
26862var createChildren = function createChildren(children, _ref) {
26863 var spacing = _ref.spacing,
26864 direction = _ref.direction,
26865 wrap = _ref.wrap,
26866 device = _ref.device;
26867
26868 var array = _react2.default.Children.toArray(children);
26869 if (!children) {
26870 return null;
26871 }
26872
26873 return array.map(function (child, index) {
26874 var spacingMargin = {};
26875
26876 spacingMargin = (0, _createStyle.getChildMargin)(spacing);
26877
26878 if (!wrap) {
26879 // 不折行
26880 var isNone = [index === 0, index === array.length - 1];
26881 var props = direction === 'row' ? ['marginLeft', 'marginRight'] : ['marginTop', 'marginBottom'];
26882
26883 ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'].forEach(function (prop) {
26884 if (prop in spacingMargin && props.indexOf(prop) === -1) {
26885 spacingMargin[prop] = 0;
26886 }
26887
26888 props.forEach(function (key, i) {
26889 if (key in spacingMargin && isNone[i]) {
26890 spacingMargin[key] = 0;
26891 }
26892 });
26893 });
26894 }
26895
26896 if (_react2.default.isValidElement(child)) {
26897 var propsMargin = child.props.margin;
26898
26899 var childPropsMargin = (0, _createStyle.getMargin)(propsMargin);
26900 var gridProps = {};
26901
26902 if (['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'responsive_grid') {
26903 gridProps = (0, _createStyle2.default)((0, _extends3.default)({ display: 'grid' }, child.props));
26904 }
26905
26906 return _react2.default.cloneElement(child, {
26907 style: (0, _extends3.default)({}, spacingMargin, childPropsMargin, gridProps, child.props.style || {})
26908 });
26909 }
26910
26911 return child;
26912 });
26913};
26914
26915var getStyle = function getStyle() {
26916 var style = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
26917 var props = arguments[1];
26918
26919 return (0, _extends3.default)({}, (0, _createStyle2.default)((0, _extends3.default)({ display: 'flex' }, props)), style);
26920};
26921
26922var getOuterStyle = function getOuterStyle(style, styleProps) {
26923 var sheet = getStyle(style, styleProps);
26924
26925 return (0, _createStyle.filterOuterStyle)(sheet);
26926};
26927
26928var getHelperStyle = function getHelperStyle(style, styleProps) {
26929 var sheet = getStyle(style, styleProps);
26930
26931 return (0, _createStyle.filterHelperStyle)((0, _extends3.default)({}, sheet, (0, _createStyle.getSpacingHelperMargin)(styleProps.spacing)));
26932};
26933
26934var getInnerStyle = function getInnerStyle(style, styleProps) {
26935 var sheet = getStyle(style, styleProps);
26936
26937 return (0, _createStyle.filterInnerStyle)(sheet);
26938};
26939
26940/**
26941 * Box
26942 */
26943var Box = (_temp = _class = function (_Component) {
26944 (0, _inherits3.default)(Box, _Component);
26945
26946 function Box() {
26947 (0, _classCallCheck3.default)(this, Box);
26948 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
26949 }
26950
26951 Box.prototype.render = function render() {
26952 var _cx;
26953
26954 var _props = this.props,
26955 prefix = _props.prefix,
26956 direction = _props.direction,
26957 justify = _props.justify,
26958 align = _props.align,
26959 wrap = _props.wrap,
26960 flex = _props.flex,
26961 spacing = _props.spacing,
26962 padding = _props.padding,
26963 margin = _props.margin,
26964 style = _props.style,
26965 className = _props.className,
26966 children = _props.children,
26967 device = _props.device,
26968 component = _props.component;
26969
26970 var styleProps = {
26971 direction: direction,
26972 justify: justify,
26973 align: align,
26974 wrap: wrap,
26975 flex: flex,
26976 spacing: spacing,
26977 padding: padding,
26978 margin: margin
26979 };
26980 var View = component;
26981 var others = pickOthers(Object.keys(Box.propTypes), this.props);
26982 var styleSheet = getStyle(style, styleProps);
26983
26984 var boxs = createChildren(children, {
26985 spacing: spacing,
26986 direction: direction,
26987 wrap: wrap,
26988 device: device
26989 });
26990
26991 var cls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'box'] = true, _cx), className);
26992 if (wrap && spacing) {
26993 var outerStyle = getOuterStyle(style, styleProps);
26994 var helperStyle = getHelperStyle(style, styleProps);
26995 var innerStyle = getInnerStyle(style, styleProps);
26996
26997 return _react2.default.createElement(View, (0, _extends3.default)({ style: outerStyle, className: cls }, others), _react2.default.createElement('div', { style: helperStyle }, _react2.default.createElement('div', { style: innerStyle, className: prefix + 'box' }, boxs)));
26998 }
26999
27000 return _react2.default.createElement(View, (0, _extends3.default)({ style: styleSheet, className: cls }, others), boxs);
27001 };
27002
27003 return Box;
27004}(_react.Component), _class.propTypes = {
27005 prefix: _propTypes2.default.string,
27006 style: _propTypes2.default.object,
27007 className: _propTypes2.default.any,
27008 /**
27009 * 布局属性
27010 */
27011 flex: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])), _propTypes2.default.number]),
27012 /**
27013 * 布局方向,默认为 column ,一个元素占据一整行
27014 * @default column
27015 */
27016 direction: _propTypes2.default.oneOf(['row', 'column', 'row-reverse']),
27017 /**
27018 * 是否折行 支持IE11+
27019 */
27020 wrap: _propTypes2.default.bool,
27021 /**
27022 * 元素之间的间距 [bottom&top, right&left]
27023 */
27024 spacing: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
27025 /**
27026 * 设置 margin [bottom&top, right&left]
27027 */
27028 margin: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
27029 /**
27030 * 设置 padding [bottom&top, right&left]
27031 */
27032 padding: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number]),
27033 /**
27034 * 沿着主轴方向,子元素们的排布关系 (兼容性同 justify-content )
27035 */
27036 justify: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'space-between', 'space-around']),
27037 /**
27038 * 垂直主轴方向,子元素们的排布关系 (兼容性同 align-items )
27039 */
27040 align: _propTypes2.default.oneOf(['flex-start', 'center', 'flex-end', 'baseline', 'stretch']),
27041 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
27042 /**
27043 * 定制标签名, 例如section等
27044 */
27045 component: _propTypes2.default.string
27046}, _class.defaultProps = {
27047 prefix: 'next-',
27048 direction: 'column',
27049 wrap: false,
27050 component: 'div'
27051}, _temp);
27052Box.displayName = 'Box';
27053exports.default = _configProvider2.default.config(Box);
27054module.exports = exports['default'];
27055
27056/***/ }),
27057/* 176 */
27058/***/ (function(module, exports, __webpack_require__) {
27059
27060"use strict";
27061
27062
27063exports.__esModule = true;
27064exports.getGridChildProps = exports.filterHelperStyle = exports.filterOuterStyle = exports.filterInnerStyle = exports.getSpacingHelperMargin = exports.getSpacingMargin = exports.getChildMargin = exports.getMargin = undefined;
27065
27066var _typeof2 = __webpack_require__(14);
27067
27068var _typeof3 = _interopRequireDefault(_typeof2);
27069
27070var _extends2 = __webpack_require__(1);
27071
27072var _extends3 = _interopRequireDefault(_extends2);
27073
27074var _util = __webpack_require__(368);
27075
27076var _util2 = __webpack_require__(6);
27077
27078function _interopRequireDefault(obj) {
27079 return obj && obj.__esModule ? obj : { default: obj };
27080}
27081
27082// import { prefix } from 'inline-style-prefixer';
27083var ieVersion = _util2.env.ieVersion;
27084
27085var getPadding = function getPadding(padding) {
27086 if (!Array.isArray(padding)) {
27087 return {
27088 padding: padding
27089 };
27090 }
27091
27092 var attrs = ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'];
27093 var paddings = {};
27094 var value = void 0;
27095
27096 attrs.forEach(function (attr, index) {
27097 switch (padding.length) {
27098 case 1:
27099 value = padding[0] || 0;
27100 break;
27101 case 2:
27102 value = padding[index] || padding[index - 2] || 0;
27103 break;
27104 case 3:
27105 value = index === 2 ? padding[2] : padding[index] || padding[index - 2] || 0;
27106 break;
27107 case 4:
27108 default:
27109 value = padding[index] || 0;
27110 break;
27111 }
27112 paddings[attr] = value;
27113 });
27114
27115 return paddings;
27116};
27117
27118var getMargin = function getMargin(size) {
27119 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { isNegative: false, half: false },
27120 isNegative = _ref.isNegative,
27121 half = _ref.half;
27122
27123 if (!size) {
27124 return {};
27125 }
27126 var attrs = ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'];
27127 var margins = {};
27128 var param = 1 * (isNegative ? -1 : 1) * (half ? 0.5 : 1);
27129 var value = void 0;
27130
27131 attrs.forEach(function (attr, index) {
27132 if (!Array.isArray(size)) {
27133 value = param * size;
27134 } else {
27135 switch (size.length) {
27136 case 1:
27137 value = param * (size[0] || 0);
27138 break;
27139 case 2:
27140 value = param * (size[index] || size[index - 2] || 0);
27141 break;
27142 case 3:
27143 value = param * (index === 2 ? size[2] : size[index] || size[index - 2] || 0);
27144 break;
27145 case 4:
27146 default:
27147 value = param * (size[index] || 0);
27148 break;
27149 }
27150 }
27151
27152 margins[attr] = value;
27153 });
27154
27155 return margins;
27156};
27157
27158var getChildMargin = function getChildMargin(spacing) {
27159 return getMargin(spacing, { half: true });
27160};
27161
27162var getSpacingMargin = function getSpacingMargin(spacing) {
27163 return getMargin(spacing, { half: true });
27164};
27165
27166var getSpacingHelperMargin = function getSpacingHelperMargin(spacing) {
27167 return getMargin(spacing, { isNegative: true, half: true });
27168};
27169
27170var getFlexs = function getFlexs(flex) {
27171 if (!Array.isArray(flex)) {
27172 return {
27173 flex: flex
27174 };
27175 }
27176
27177 var attrs = ['flexGrow', 'flexShrink', 'flexBasis'];
27178 var flexs = {};
27179
27180 flex.forEach(function (val, index) {
27181 flexs[attrs[index]] = val;
27182 });
27183
27184 return flexs;
27185};
27186
27187var getGridGap = function getGridGap(gap) {
27188 if (!Array.isArray(gap)) {
27189 return {
27190 gap: gap
27191 };
27192 }
27193
27194 var attrs = ['rowGap', 'columnGap'];
27195 var gaps = {};
27196
27197 gap.forEach(function (val, index) {
27198 gaps[attrs[index]] = val;
27199 });
27200
27201 return gaps;
27202};
27203
27204var getTemplateCount = function getTemplateCount(counts) {
27205 if (!isNaN(counts) || typeof counts === 'string') {
27206 return 'repeat(' + counts + ', minmax(0,1fr))';
27207 }
27208
27209 return counts;
27210};
27211
27212// const outerProps = ['alignSelf', 'flexGrow', 'flexShrink', 'flexBasis', 'backgroundColor', 'boxShadow', 'borderRadius', 'borderWidth', 'borderStyle', 'borderColor', 'padding', 'paddingTop', 'paddingLeft', 'paddingRight', 'paddingBottom'];
27213
27214var helperProps = ['margin', 'marginTop', 'marginLeft', 'marginRight', 'marginBottom'];
27215
27216var innerProps = ['flexDirection', 'flexWrap',
27217// 'justifyContent',
27218'alignContent', 'alignItems', 'display'];
27219
27220var filterOuterStyle = function filterOuterStyle(style) {
27221 var props = {};
27222
27223 [].concat(innerProps).forEach(function (key) {
27224 props[key] = style[key];
27225 });
27226
27227 return (0, _util.filterUndefinedValue)((0, _util.stripObject)(style, props));
27228};
27229
27230var filterHelperStyle = function filterHelperStyle(style) {
27231 var props = {};
27232 helperProps.forEach(function (key) {
27233 props[key] = style[key];
27234 });
27235
27236 return (0, _util.filterUndefinedValue)((0, _extends3.default)({}, props, {
27237 overflow: 'hidden'
27238 }));
27239};
27240
27241var filterInnerStyle = function filterInnerStyle(style) {
27242 var props = {};
27243
27244 innerProps.forEach(function (key) {
27245 props[key] = style[key];
27246 });
27247
27248 return (0, _util.filterUndefinedValue)(props);
27249};
27250
27251var getGridChildProps = function getGridChildProps(props, device, gap) {
27252 var _props$row = props.row,
27253 row = _props$row === undefined ? 'initial' : _props$row,
27254 _props$col = props.col,
27255 col = _props$col === undefined ? 'initial' : _props$col,
27256 _props$rowSpan = props.rowSpan,
27257 rowSpan = _props$rowSpan === undefined ? 1 : _props$rowSpan,
27258 _props$colSpan = props.colSpan,
27259 colSpan = _props$colSpan === undefined ? 1 : _props$colSpan;
27260
27261 var totalSpan = 12;
27262 var newColSpan = (typeof colSpan === 'undefined' ? 'undefined' : (0, _typeof3.default)(colSpan)) === 'object' && 'desktop' in colSpan ? colSpan.desktop : colSpan;
27263
27264 ['tablet', 'phone'].forEach(function (deviceKey) {
27265 if (deviceKey === device) {
27266 if ((typeof colSpan === 'undefined' ? 'undefined' : (0, _typeof3.default)(colSpan)) === 'object' && device in colSpan) {
27267 newColSpan = colSpan[device];
27268 } else {
27269 switch (deviceKey) {
27270 case 'tablet':
27271 totalSpan = 8;
27272 newColSpan = colSpan > 5 ? 8 : colSpan > 2 ? 4 : 2;
27273 break;
27274 case 'phone':
27275 totalSpan = 4;
27276 newColSpan = colSpan > 2 ? 4 : 2;
27277 break;
27278 }
27279 }
27280 }
27281 });
27282
27283 var gapLeft = gap;
27284 if (Array.isArray(gap)) {
27285 gapLeft = gap[1];
27286 }
27287
27288 var ieChildFix = ieVersion && !(rowSpan === 1 && colSpan === 1) ? {
27289 display: 'inline-block',
27290 width: gapLeft ? 'calc(' + newColSpan / totalSpan * 100 + '% - ' + gapLeft + 'px)' : newColSpan / totalSpan * 100 + '%'
27291 } : {};
27292
27293 return (0, _util.filterUndefinedValue)((0, _extends3.default)({
27294 gridRowStart: row,
27295 gridRowEnd: 'span ' + rowSpan,
27296 gridColumnStart: col,
27297 gridColumnEnd: 'span ' + newColSpan
27298 }, ieChildFix));
27299};
27300
27301var getBoxChildProps = function getBoxChildProps(props) {
27302 var alignSelf = props.alignSelf,
27303 flex = props.flex;
27304
27305 return (0, _util.filterUndefinedValue)((0, _extends3.default)({
27306 alignSelf: alignSelf
27307 }, getFlexs(flex)));
27308};
27309
27310exports.default = function (_ref2) {
27311 var device = _ref2.device,
27312 display = _ref2.display,
27313 gap = _ref2.gap,
27314 direction = _ref2.direction,
27315 dense = _ref2.dense,
27316 rowSpan = _ref2.rowSpan,
27317 colSpan = _ref2.colSpan,
27318 row = _ref2.row,
27319 col = _ref2.col,
27320 rows = _ref2.rows,
27321 columns = _ref2.columns,
27322 justify = _ref2.justify,
27323 align = _ref2.align,
27324 alignSelf = _ref2.alignSelf,
27325 wrap = _ref2.wrap,
27326 flex = _ref2.flex,
27327 padding = _ref2.padding,
27328 margin = _ref2.margin;
27329
27330 var style = (0, _extends3.default)({}, getPadding(padding));
27331
27332 var deviceColumns = 'auto';
27333
27334 switch (device) {
27335 case 'phone':
27336 deviceColumns = 4;
27337 break;
27338 case 'tablet':
27339 deviceColumns = 8;
27340 break;
27341 case 'desktop':
27342 deviceColumns = 12;
27343 break;
27344 default:
27345 break;
27346 }
27347 var newColumns = !isNaN(columns) || typeof columns === 'string' ? columns : deviceColumns;
27348
27349 switch (display) {
27350 case 'grid':
27351 style = (0, _extends3.default)({}, getGridGap(gap), {
27352 gridTemplateRows: getTemplateCount(rows),
27353 gridTemplateColumns: getTemplateCount(newColumns),
27354 gridAutoFlow: '' + (direction || '') + (dense && ' dense')
27355 }, getGridChildProps({
27356 row: row,
27357 rowSpan: rowSpan,
27358 col: col,
27359 colSpan: colSpan
27360 // justifySelf,
27361 // alignSelf,
27362 }, device), style);
27363 break;
27364 case 'flex':
27365 style = (0, _extends3.default)({
27366 // parent
27367 msFlexDirection: direction,
27368 flexDirection: direction,
27369 msFlexWrap: wrap ? 'wrap' : 'none',
27370 flexWrap: wrap ? 'wrap' : 'nowrap',
27371 msFlexPack: justify,
27372 justifyContent: justify,
27373 msFlexAlign: align,
27374 alignItems: align
27375 }, getMargin(margin), getBoxChildProps({
27376 alignSelf: alignSelf,
27377 flex: flex
27378 }), style);
27379 break;
27380 default:
27381 break;
27382 }
27383
27384 // return prefix(style);
27385 return (0, _util.filterUndefinedValue)(style);
27386};
27387
27388exports.getMargin = getMargin;
27389exports.getChildMargin = getChildMargin;
27390exports.getSpacingMargin = getSpacingMargin;
27391exports.getSpacingHelperMargin = getSpacingHelperMargin;
27392exports.filterInnerStyle = filterInnerStyle;
27393exports.filterOuterStyle = filterOuterStyle;
27394exports.filterHelperStyle = filterHelperStyle;
27395exports.getGridChildProps = getGridChildProps;
27396
27397/***/ }),
27398/* 177 */
27399/***/ (function(module, exports, __webpack_require__) {
27400
27401"use strict";
27402
27403
27404exports.__esModule = true;
27405
27406var _extends2 = __webpack_require__(1);
27407
27408var _extends3 = _interopRequireDefault(_extends2);
27409
27410var _objectWithoutProperties2 = __webpack_require__(8);
27411
27412var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
27413
27414var _configProvider = __webpack_require__(9);
27415
27416var _configProvider2 = _interopRequireDefault(_configProvider);
27417
27418var _row = __webpack_require__(371);
27419
27420var _row2 = _interopRequireDefault(_row);
27421
27422var _col = __webpack_require__(372);
27423
27424var _col2 = _interopRequireDefault(_col);
27425
27426function _interopRequireDefault(obj) {
27427 return obj && obj.__esModule ? obj : { default: obj };
27428}
27429
27430var Grid = {
27431 Row: _configProvider2.default.config(_row2.default, {
27432 transform: /* istanbul ignore next */function transform(props, deprecated) {
27433 if ('type' in props) {
27434 deprecated('type', 'fixed | wrap | gutter', 'Row');
27435
27436 var _props = props,
27437 type = _props.type,
27438 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
27439
27440 var types = Array.isArray(type) ? type : [type];
27441 var fixed = void 0;
27442 if (types.indexOf('fixed') > -1) {
27443 fixed = true;
27444 }
27445 var wrap = void 0;
27446 if (types.indexOf('wrap') > -1) {
27447 wrap = true;
27448 }
27449 props = (0, _extends3.default)({ fixed: fixed, wrap: wrap }, others);
27450 }
27451
27452 return props;
27453 }
27454 }),
27455 Col: _configProvider2.default.config(_col2.default)
27456};
27457
27458exports.default = Grid;
27459module.exports = exports['default'];
27460
27461/***/ }),
27462/* 178 */
27463/***/ (function(module, exports, __webpack_require__) {
27464
27465"use strict";
27466
27467
27468exports.__esModule = true;
27469
27470var _extends2 = __webpack_require__(1);
27471
27472var _extends3 = _interopRequireDefault(_extends2);
27473
27474var _objectWithoutProperties2 = __webpack_require__(8);
27475
27476var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
27477
27478var _classCallCheck2 = __webpack_require__(2);
27479
27480var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
27481
27482var _possibleConstructorReturn2 = __webpack_require__(3);
27483
27484var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
27485
27486var _inherits2 = __webpack_require__(4);
27487
27488var _inherits3 = _interopRequireDefault(_inherits2);
27489
27490var _class, _temp2;
27491
27492var _react = __webpack_require__(0);
27493
27494var _react2 = _interopRequireDefault(_react);
27495
27496var _propTypes = __webpack_require__(5);
27497
27498var _propTypes2 = _interopRequireDefault(_propTypes);
27499
27500var _classnames = __webpack_require__(7);
27501
27502var _classnames2 = _interopRequireDefault(_classnames);
27503
27504var _configProvider = __webpack_require__(9);
27505
27506var _configProvider2 = _interopRequireDefault(_configProvider);
27507
27508function _interopRequireDefault(obj) {
27509 return obj && obj.__esModule ? obj : { default: obj };
27510}
27511
27512/**
27513 * Form.Error
27514 * @description 自定义错误展示
27515 * @order 4
27516 */
27517var Error = (_temp2 = _class = function (_React$Component) {
27518 (0, _inherits3.default)(Error, _React$Component);
27519
27520 function Error() {
27521 var _temp, _this, _ret;
27522
27523 (0, _classCallCheck3.default)(this, Error);
27524
27525 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
27526 args[_key] = arguments[_key];
27527 }
27528
27529 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.itemRender = function (errors) {
27530 return errors.length ? errors : null;
27531 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
27532 }
27533
27534 Error.prototype.render = function render() {
27535 var _classNames;
27536
27537 var _props = this.props,
27538 children = _props.children,
27539 name = _props.name,
27540 prefix = _props.prefix,
27541 style = _props.style,
27542 className = _props.className,
27543 _field = _props.field,
27544 others = (0, _objectWithoutProperties3.default)(_props, ['children', 'name', 'prefix', 'style', 'className', 'field']);
27545
27546 if (children && typeof children !== 'function') {
27547 return _react2.default.createElement('div', { className: prefix + 'form-item-help' }, children);
27548 }
27549
27550 var field = this.context._formField || _field;
27551
27552 if (!field || !name) {
27553 return null;
27554 }
27555
27556 var isSingle = typeof name === 'string';
27557
27558 var names = isSingle ? [name] : name;
27559 var errorArr = [];
27560
27561 if (names.length) {
27562 var errors = field.getErrors(names);
27563 Object.keys(errors).forEach(function (key) {
27564 if (errors[key]) {
27565 errorArr.push(errors[key]);
27566 }
27567 });
27568 }
27569
27570 var result = null;
27571 if (typeof children === 'function') {
27572 result = children(errorArr, isSingle ? field.getState(name) : undefined);
27573 } else {
27574 result = this.itemRender(errorArr);
27575 }
27576
27577 if (!result) {
27578 return null;
27579 }
27580
27581 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'form-item-help'] = true, _classNames[className] = className, _classNames));
27582
27583 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: cls, style: style }), result);
27584 };
27585
27586 return Error;
27587}(_react2.default.Component), _class.propTypes = {
27588 /**
27589 * 表单名
27590 */
27591 name: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
27592 /**
27593 * 自定义 field (在 Form 内不需要设置)
27594 */
27595 field: _propTypes2.default.object,
27596 style: _propTypes2.default.object,
27597 className: _propTypes2.default.string,
27598 /**
27599 * 自定义错误渲染, 可以是 node 或者 function(errors, state)
27600 */
27601 children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]),
27602 prefix: _propTypes2.default.string
27603}, _class.defaultProps = {
27604 prefix: 'next-'
27605}, _class.contextTypes = {
27606 _formField: _propTypes2.default.object
27607}, _class._typeMark = 'form_error', _temp2);
27608Error.displayName = 'Error';
27609exports.default = _configProvider2.default.config(Error);
27610module.exports = exports['default'];
27611
27612/***/ }),
27613/* 179 */
27614/***/ (function(module, exports, __webpack_require__) {
27615
27616"use strict";
27617
27618
27619exports.__esModule = true;
27620
27621var _objectWithoutProperties2 = __webpack_require__(8);
27622
27623var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
27624
27625var _configProvider = __webpack_require__(9);
27626
27627var _configProvider2 = _interopRequireDefault(_configProvider);
27628
27629var _Search = __webpack_require__(402);
27630
27631var _Search2 = _interopRequireDefault(_Search);
27632
27633function _interopRequireDefault(obj) {
27634 return obj && obj.__esModule ? obj : { default: obj };
27635}
27636
27637exports.default = _configProvider2.default.config(_Search2.default, {
27638 transfrom: /* istanbul ignore next */function transfrom(props, deprecated) {
27639 var onInputFocus = props.onInputFocus,
27640 overlayVisible = props.overlayVisible,
27641 combox = props.combox,
27642 others = (0, _objectWithoutProperties3.default)(props, ['onInputFocus', 'overlayVisible', 'combox']);
27643
27644 var newprops = others;
27645
27646 if (onInputFocus) {
27647 deprecated('onInputFocus', 'onFocus', 'Search');
27648 newprops.onFocus = onInputFocus;
27649 }
27650 if ('overlayVisible' in props) {
27651 deprecated('overlayVisible', 'visible', 'Search');
27652 newprops.visible = overlayVisible;
27653 }
27654 if (combox) {
27655 deprecated('combox', 'popupContent', 'Search');
27656 newprops.popupContent = combox;
27657 }
27658
27659 return newprops;
27660 }
27661});
27662module.exports = exports['default'];
27663
27664/***/ }),
27665/* 180 */
27666/***/ (function(module, exports, __webpack_require__) {
27667
27668"use strict";
27669
27670
27671exports.__esModule = true;
27672exports.getTrackLeft = exports.getTrackAnimateCSS = exports.getTrackCSS = undefined;
27673
27674var _extends2 = __webpack_require__(1);
27675
27676var _extends3 = _interopRequireDefault(_extends2);
27677
27678var _reactDom = __webpack_require__(12);
27679
27680var _reactDom2 = _interopRequireDefault(_reactDom);
27681
27682function _interopRequireDefault(obj) {
27683 return obj && obj.__esModule ? obj : { default: obj };
27684}
27685
27686var checkSpecKeys = function checkSpecKeys(spec, keysArray) {
27687 return keysArray.reduce(function (value, key) {
27688 return value && spec.hasOwnProperty(key);
27689 }, true) ? null : console.error('Keys Missing', spec); /*eslint no-console:0*/
27690};
27691
27692var getTrackCSS = exports.getTrackCSS = function getTrackCSS(spec) {
27693 checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth']);
27694
27695 var trackWidth = void 0;
27696 var trackHeight = void 0;
27697
27698 var trackChildren = spec.slideCount + 2 * spec.slidesToShow;
27699
27700 if (!spec.vertical) {
27701 if (spec.variableWidth) {
27702 trackWidth = (spec.slideCount + 2 * spec.slidesToShow) * spec.slideWidth;
27703 } else if (spec.centerMode) {
27704 trackWidth = (spec.slideCount + 2 * (spec.slidesToShow + 1)) * spec.slideWidth;
27705 } else {
27706 trackWidth = (spec.slideCount + 2 * spec.slidesToShow) * spec.slideWidth;
27707 }
27708 } else {
27709 trackHeight = trackChildren * spec.slideHeight;
27710 }
27711
27712 var style = {
27713 opacity: 1
27714 };
27715
27716 var transform = {
27717 WebkitTransform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)',
27718 transform: !spec.vertical ? 'translate3d(' + spec.left + 'px, 0px, 0px)' : 'translate3d(0px, ' + spec.left + 'px, 0px)',
27719 transition: '',
27720 WebkitTransition: '',
27721 msTransform: !spec.vertical ? 'translateX(' + spec.left + 'px)' : 'translateY(' + spec.left + 'px)'
27722 };
27723
27724 if (trackWidth) {
27725 style = (0, _extends3.default)({}, style, { width: trackWidth });
27726 }
27727
27728 if (trackHeight) {
27729 style = (0, _extends3.default)({}, style, { height: trackHeight });
27730 }
27731
27732 if (spec.animation !== 'fade') {
27733 style = (0, _extends3.default)({}, style, transform);
27734 }
27735
27736 return style;
27737};
27738
27739var getTrackAnimateCSS = exports.getTrackAnimateCSS = function getTrackAnimateCSS(spec) {
27740 checkSpecKeys(spec, ['left', 'variableWidth', 'slideCount', 'slidesToShow', 'slideWidth', 'speed', 'cssEase']);
27741
27742 var style = getTrackCSS(spec);
27743 // useCSS is true by default so it can be undefined
27744 style.WebkitTransition = '-webkit-transform ' + spec.speed + 'ms ' + spec.cssEase;
27745 style.transition = 'transform ' + spec.speed + 'ms ' + spec.cssEase;
27746 return style;
27747};
27748
27749var getTrackLeft = exports.getTrackLeft = function getTrackLeft(spec) {
27750 checkSpecKeys(spec, ['slideIndex', 'trackRef', 'infinite', 'centerMode', 'slideCount', 'slidesToShow', 'slidesToScroll', 'slideWidth', 'listWidth', 'variableWidth', 'slideHeight']);
27751
27752 var slideOffset = 0;
27753 var targetLeft = void 0;
27754 var targetSlide = void 0;
27755 var verticalOffset = 0;
27756
27757 if (spec.animation === 'fade') {
27758 return 0;
27759 }
27760
27761 if (spec.infinite) {
27762 if (spec.slideCount > spec.slidesToShow) {
27763 slideOffset = spec.slideWidth * spec.slidesToShow * -1;
27764 verticalOffset = spec.slideHeight * spec.slidesToShow * -1;
27765 }
27766 if (spec.slideCount % spec.slidesToScroll !== 0) {
27767 var condition = spec.slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow;
27768
27769 if (spec.rtl) {
27770 var slideIndex = spec.slideIndex >= spec.slideCount ? spec.slideCount - spec.slideIndex : spec.slideIndex;
27771 condition = slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow;
27772 }
27773 if (condition) {
27774 if (spec.slideIndex > spec.slideCount) {
27775 slideOffset = (spec.slidesToShow - (spec.slideIndex - spec.slideCount)) * spec.slideWidth * -1;
27776 verticalOffset = (spec.slidesToShow - (spec.slideIndex - spec.slideCount)) * spec.slideHeight * -1;
27777 } else {
27778 slideOffset = spec.slideCount % spec.slidesToScroll * spec.slideWidth * -1;
27779 verticalOffset = spec.slideCount % spec.slidesToScroll * spec.slideHeight * -1;
27780 }
27781 }
27782 }
27783 } else {
27784 /* eslint-disable no-lonely-if */
27785 if (spec.slideCount % spec.slidesToScroll !== 0) {
27786 if (spec.slideIndex + spec.slidesToScroll > spec.slideCount && spec.slideCount > spec.slidesToShow) {
27787 var slidesToOffset = spec.slidesToShow - spec.slideCount % spec.slidesToScroll;
27788 slideOffset = slidesToOffset * spec.slideWidth;
27789 }
27790 }
27791 }
27792
27793 if (spec.centerMode) {
27794 if (spec.infinite) {
27795 slideOffset += spec.slideWidth * Math.floor(spec.slidesToShow / 2);
27796 } else {
27797 slideOffset = spec.slideWidth * Math.floor(spec.slidesToShow / 2);
27798 }
27799 }
27800
27801 if (!spec.vertical) {
27802 targetLeft = spec.slideIndex * spec.slideWidth * -1 + slideOffset;
27803 } else {
27804 targetLeft = spec.slideIndex * spec.slideHeight * -1 + verticalOffset;
27805 }
27806
27807 if (spec.variableWidth === true) {
27808 var targetSlideIndex = void 0;
27809 if (spec.slideCount <= spec.slidesToShow || spec.infinite === false) {
27810 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).childNodes[spec.slideIndex];
27811 } else {
27812 targetSlideIndex = spec.slideIndex + spec.slidesToShow;
27813 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).childNodes[targetSlideIndex];
27814 }
27815 targetLeft = targetSlide ? targetSlide.offsetLeft * -1 : 0;
27816 if (spec.centerMode === true) {
27817 if (spec.infinite === false) {
27818 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).children[spec.slideIndex];
27819 } else {
27820 targetSlide = _reactDom2.default.findDOMNode(spec.trackRef).children[spec.slideIndex + spec.slidesToShow + 1];
27821 }
27822
27823 if (targetSlide) {
27824 targetLeft = targetSlide.offsetLeft * -1 + (spec.listWidth - targetSlide.offsetWidth) / 2;
27825 }
27826 }
27827 }
27828
27829 return targetLeft;
27830};
27831
27832/***/ }),
27833/* 181 */
27834/***/ (function(module, exports, __webpack_require__) {
27835
27836"use strict";
27837
27838
27839exports.__esModule = true;
27840exports.triggerEvents = undefined;
27841
27842var _typeof2 = __webpack_require__(14);
27843
27844var _typeof3 = _interopRequireDefault(_typeof2);
27845
27846exports.getOffsetWH = getOffsetWH;
27847exports.getOffsetLT = getOffsetLT;
27848exports.isTransformSupported = isTransformSupported;
27849exports.toArray = toArray;
27850exports.tabsArrayShallowEqual = tabsArrayShallowEqual;
27851
27852var _react = __webpack_require__(0);
27853
27854var _react2 = _interopRequireDefault(_react);
27855
27856function _interopRequireDefault(obj) {
27857 return obj && obj.__esModule ? obj : { default: obj };
27858}
27859
27860var triggerEvents = exports.triggerEvents = {
27861 CLICK: 'click',
27862 HOVER: 'hover'
27863};
27864
27865function getOffsetWH(node, tabPosition) {
27866 var prop = 'width';
27867 if (tabPosition === 'left' || tabPosition === 'right') {
27868 prop = 'height';
27869 }
27870 return node ? node.getBoundingClientRect()[prop] : 0;
27871}
27872
27873function getOffsetLT(node, tabPosition) {
27874 var prop = 'left';
27875 if (tabPosition === 'left' || tabPosition === 'right') {
27876 prop = 'top';
27877 }
27878 return node.getBoundingClientRect()[prop];
27879}
27880
27881function isTransformSupported(style) {
27882 return 'transform' in style || 'webkitTransform' in style || 'MozTransform' in style;
27883}
27884
27885function toArray(children) {
27886 var ret = [];
27887 _react2.default.Children.forEach(children, function (child, index) {
27888 if (_react2.default.isValidElement(child)) {
27889 ret.push(_react2.default.cloneElement(child, {
27890 key: child.key || index,
27891 title: child.props.title || child.props.tab
27892 }));
27893 }
27894 });
27895 return ret;
27896}
27897
27898/**
27899 * tab数组浅比较
27900 * @param {Array} arrA 更新后的数组
27901 * @param {Array} arrB 原数组
27902 * @return {Boolean} 数组浅比较是否相等
27903 * @example
27904 * arr.tabsArrayShallowEqual(['2','3','4'], ['2','5','4']); // false
27905 */
27906
27907function tabsArrayShallowEqual(arrA, arrB) {
27908 // 相同地址的返回true,不需要更新数据(更新数据的基础是props数据与当前获取的值不同)
27909 if (arrA === arrB) {
27910 return true;
27911 }
27912
27913 // 判断:调用的值/是否为数组/数组的长度
27914 if (!arrA || !arrB || (typeof arrA === 'undefined' ? 'undefined' : (0, _typeof3.default)(arrA)) + (typeof arrB === 'undefined' ? 'undefined' : (0, _typeof3.default)(arrB)) !== 'objectobject' || arrA.length !== arrB.length) {
27915 return false;
27916 }
27917
27918 // 判断tabs的key与title是否更改
27919 for (var i = 0; i < arrA.length; i++) {
27920 if (arrA[i].key !== arrB[i].key || arrA[i].props.title !== arrB[i].props.title) {
27921 return false;
27922 }
27923 }
27924 return true;
27925}
27926
27927/***/ }),
27928/* 182 */
27929/***/ (function(module, exports, __webpack_require__) {
27930
27931"use strict";
27932
27933
27934exports.__esModule = true;
27935exports.default = undefined;
27936
27937var _extends2 = __webpack_require__(1);
27938
27939var _extends3 = _interopRequireDefault(_extends2);
27940
27941var _objectWithoutProperties2 = __webpack_require__(8);
27942
27943var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
27944
27945var _classCallCheck2 = __webpack_require__(2);
27946
27947var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
27948
27949var _possibleConstructorReturn2 = __webpack_require__(3);
27950
27951var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
27952
27953var _inherits2 = __webpack_require__(4);
27954
27955var _inherits3 = _interopRequireDefault(_inherits2);
27956
27957var _class, _temp;
27958
27959var _react = __webpack_require__(0);
27960
27961var _react2 = _interopRequireDefault(_react);
27962
27963var _propTypes = __webpack_require__(5);
27964
27965var _propTypes2 = _interopRequireDefault(_propTypes);
27966
27967var _classnames2 = __webpack_require__(7);
27968
27969var _classnames3 = _interopRequireDefault(_classnames2);
27970
27971var _filter = __webpack_require__(183);
27972
27973var _filter2 = _interopRequireDefault(_filter);
27974
27975var _sort = __webpack_require__(184);
27976
27977var _sort2 = _interopRequireDefault(_sort);
27978
27979var _cell = __webpack_require__(65);
27980
27981var _cell2 = _interopRequireDefault(_cell);
27982
27983var _resize = __webpack_require__(428);
27984
27985var _resize2 = _interopRequireDefault(_resize);
27986
27987function _interopRequireDefault(obj) {
27988 return obj && obj.__esModule ? obj : { default: obj };
27989}
27990
27991var noop = function noop() {};
27992var Header = (_temp = _class = function (_React$Component) {
27993 (0, _inherits3.default)(Header, _React$Component);
27994
27995 function Header() {
27996 (0, _classCallCheck3.default)(this, Header);
27997
27998 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this));
27999
28000 _this.checkHasLock = function () {
28001 var columns = _this.props.columns;
28002
28003 var hasLock = false;
28004 for (var i = 0; i < columns.length; i++) {
28005 var cols = columns[i];
28006 for (var j = 0; j < cols.length; j++) {
28007 var col = cols[j];
28008 if (col.lock) {
28009 hasLock = true;
28010 break;
28011 }
28012 }
28013 if (hasLock) {
28014 break;
28015 }
28016 }
28017 _this.hasLock = hasLock;
28018 };
28019
28020 _this.getCellRef = function (i, j, cell) {
28021 _this.props.headerCellRef(i, j, cell);
28022
28023 var columns = _this.props.columns;
28024
28025 var columnProps = columns[i] && columns[i][j];
28026 if (columnProps && columnProps.ref && typeof columnProps.ref === 'function') {
28027 columnProps.ref(cell);
28028 }
28029 };
28030
28031 _this.getCellDomRef = function (i, j, cellDom) {
28032 var cellRefKey = _this.getCellDomRefKey(i, j);
28033 _this[cellRefKey] = cellDom;
28034 };
28035
28036 _this.getCellDomRefKey = function (i, j) {
28037 return 'header_cell_' + i + '_' + j;
28038 };
28039
28040 _this.onSort = function (dataIndex, order, sort) {
28041 _this.props.onSort(dataIndex, order, sort);
28042 };
28043
28044 _this.hasLock = false;
28045 return _this;
28046 }
28047
28048 Header.prototype.render = function render() {
28049 var _this2 = this;
28050
28051 /*eslint-disable no-unused-vars */
28052 var _props = this.props,
28053 prefix = _props.prefix,
28054 className = _props.className,
28055 children = _props.children,
28056 Tag = _props.component,
28057 colGroup = _props.colGroup,
28058 columns = _props.columns,
28059 locale = _props.locale,
28060 filterParams = _props.filterParams,
28061 onFilter = _props.onFilter,
28062 components = _props.components,
28063 affixRef = _props.affixRef,
28064 headerCellRef = _props.headerCellRef,
28065 onSort = _props.onSort,
28066 sort = _props.sort,
28067 sortIcons = _props.sortIcons,
28068 onResizeChange = _props.onResizeChange,
28069 pure = _props.pure,
28070 rtl = _props.rtl,
28071 tableWidth = _props.tableWidth,
28072 tableEl = _props.tableEl,
28073 resizeProxyDomRef = _props.resizeProxyDomRef,
28074 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'children', 'component', 'colGroup', 'columns', 'locale', 'filterParams', 'onFilter', 'components', 'affixRef', 'headerCellRef', 'onSort', 'sort', 'sortIcons', 'onResizeChange', 'pure', 'rtl', 'tableWidth', 'tableEl', 'resizeProxyDomRef']);
28075
28076 this.checkHasLock();
28077
28078 var _components$Cell = components.Cell,
28079 Cell = _components$Cell === undefined ? _cell2.default : _components$Cell,
28080 _components$Filter = components.Filter,
28081 Filter = _components$Filter === undefined ? _filter2.default : _components$Filter,
28082 _components$Sort = components.Sort,
28083 Sort = _components$Sort === undefined ? _sort2.default : _components$Sort,
28084 _components$Resize = components.Resize,
28085 Resize = _components$Resize === undefined ? _resize2.default : _components$Resize;
28086
28087 var rowSpan = columns.length;
28088
28089 var header = columns.map(function (cols, index) {
28090 var col = cols.map(function (col, j) {
28091 var _classnames;
28092
28093 var cellRefKey = _this2.getCellDomRefKey(index, j);
28094 /* eslint-disable no-unused-vars, prefer-const */
28095 var title = col.title,
28096 colSpan = col.colSpan,
28097 sortable = col.sortable,
28098 sortDirections = col.sortDirections,
28099 resizable = col.resizable,
28100 asyncResizable = col.asyncResizable,
28101 dataIndex = col.dataIndex,
28102 filters = col.filters,
28103 filterMode = col.filterMode,
28104 filterMenuProps = col.filterMenuProps,
28105 filterProps = col.filterProps,
28106 width = col.width,
28107 align = col.align,
28108 alignHeader = col.alignHeader,
28109 className = col.className,
28110 __normalized = col.__normalized,
28111 lock = col.lock,
28112 cellStyle = col.cellStyle,
28113 wordBreak = col.wordBreak,
28114 others = (0, _objectWithoutProperties3.default)(col, ['title', 'colSpan', 'sortable', 'sortDirections', 'resizable', 'asyncResizable', 'dataIndex', 'filters', 'filterMode', 'filterMenuProps', 'filterProps', 'width', 'align', 'alignHeader', 'className', '__normalized', 'lock', 'cellStyle', 'wordBreak']);
28115
28116 var order = sort ? sort[dataIndex] : '';
28117 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-header-node'] = true, _classnames[prefix + 'table-header-resizable'] = resizable || asyncResizable, _classnames[prefix + 'table-word-break-' + wordBreak] = !!wordBreak, _classnames[prefix + 'table-header-sort-' + order] = sortable && order, _classnames[className] = className, _classnames));
28118 var attrs = {},
28119 sortElement = void 0,
28120 filterElement = void 0,
28121 resizeElement = void 0;
28122
28123 attrs.colSpan = colSpan;
28124
28125 // column.group doesn't have sort resize filter
28126 if (!(col.children && col.children.length)) {
28127 if (sortable) {
28128 sortElement = _react2.default.createElement(Sort, {
28129 prefix: prefix,
28130 className: prefix + 'table-header-icon',
28131 dataIndex: dataIndex,
28132 onSort: _this2.onSort,
28133 sortDirections: sortDirections,
28134 sortIcons: sortIcons,
28135 sort: sort,
28136 rtl: rtl,
28137 locale: locale
28138 });
28139 }
28140 if (asyncResizable || resizable) {
28141 resizeElement = _react2.default.createElement(Resize, {
28142 asyncResizable: asyncResizable,
28143 hasLock: _this2.hasLock,
28144 col: col,
28145 tableEl: tableEl,
28146 prefix: prefix,
28147 rtl: rtl,
28148 dataIndex: dataIndex,
28149 resizeProxyDomRef: resizeProxyDomRef,
28150 cellDomRef: _this2[cellRefKey],
28151 onChange: onResizeChange
28152 });
28153 }
28154
28155 if (filters) {
28156 filterElement = filters.length ? _react2.default.createElement(Filter, {
28157 dataIndex: dataIndex,
28158 className: prefix + 'table-header-icon',
28159 filters: filters,
28160 prefix: prefix,
28161 locale: locale,
28162 rtl: rtl,
28163 filterParams: filterParams,
28164 filterMode: filterMode,
28165 filterMenuProps: filterMenuProps,
28166 filterProps: filterProps,
28167 onFilter: onFilter
28168 }) : null;
28169 }
28170 attrs.rowSpan = rowSpan - index;
28171 }
28172
28173 if (+attrs.colSpan === 0) {
28174 return null;
28175 }
28176
28177 return _react2.default.createElement(Cell, (0, _extends3.default)({}, others, attrs, {
28178 key: j,
28179 prefix: prefix,
28180 pure: pure,
28181 rtl: rtl,
28182 cell: title,
28183 component: 'th',
28184 align: alignHeader ? alignHeader : align,
28185 className: className,
28186 ref: _this2.getCellRef.bind(_this2, index, j),
28187 getCellDomRef: _this2.getCellDomRef.bind(_this2, index, j),
28188 type: 'header'
28189 }), sortElement, filterElement, resizeElement);
28190 });
28191 return _react2.default.createElement('tr', { key: index }, col);
28192 });
28193
28194 return _react2.default.createElement(Tag, (0, _extends3.default)({ className: className }, others), header, children);
28195 };
28196
28197 return Header;
28198}(_react2.default.Component), _class.propTypes = {
28199 children: _propTypes2.default.any,
28200 prefix: _propTypes2.default.string,
28201 pure: _propTypes2.default.bool,
28202 className: _propTypes2.default.string,
28203 component: _propTypes2.default.string,
28204 columns: _propTypes2.default.array,
28205 colGroup: _propTypes2.default.object,
28206 headerCellRef: _propTypes2.default.func,
28207 locale: _propTypes2.default.object,
28208 filterParams: _propTypes2.default.object,
28209 onFilter: _propTypes2.default.func,
28210 components: _propTypes2.default.object,
28211 sort: _propTypes2.default.object,
28212 sortIcons: _propTypes2.default.object,
28213 onSort: _propTypes2.default.func,
28214 onResizeChange: _propTypes2.default.func,
28215 tableWidth: _propTypes2.default.number,
28216 tableEl: _propTypes2.default.any
28217}, _class.defaultProps = {
28218 component: 'thead',
28219 columns: [],
28220 headerCellRef: noop,
28221 onFilter: noop,
28222 components: {},
28223 onSort: noop,
28224 onResizeChange: noop
28225}, _temp);
28226Header.displayName = 'Header';
28227exports.default = Header;
28228module.exports = exports['default'];
28229
28230/***/ }),
28231/* 183 */
28232/***/ (function(module, exports, __webpack_require__) {
28233
28234"use strict";
28235
28236
28237exports.__esModule = true;
28238
28239var _extends2 = __webpack_require__(1);
28240
28241var _extends3 = _interopRequireDefault(_extends2);
28242
28243var _objectWithoutProperties2 = __webpack_require__(8);
28244
28245var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
28246
28247var _classCallCheck2 = __webpack_require__(2);
28248
28249var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28250
28251var _possibleConstructorReturn2 = __webpack_require__(3);
28252
28253var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28254
28255var _inherits2 = __webpack_require__(4);
28256
28257var _inherits3 = _interopRequireDefault(_inherits2);
28258
28259var _class, _temp, _initialiseProps;
28260
28261var _react = __webpack_require__(0);
28262
28263var _react2 = _interopRequireDefault(_react);
28264
28265var _propTypes = __webpack_require__(5);
28266
28267var _propTypes2 = _interopRequireDefault(_propTypes);
28268
28269var _reactLifecyclesCompat = __webpack_require__(10);
28270
28271var _classnames4 = __webpack_require__(7);
28272
28273var _classnames5 = _interopRequireDefault(_classnames4);
28274
28275var _dropdown = __webpack_require__(48);
28276
28277var _dropdown2 = _interopRequireDefault(_dropdown);
28278
28279var _menu = __webpack_require__(16);
28280
28281var _menu2 = _interopRequireDefault(_menu);
28282
28283var _button = __webpack_require__(17);
28284
28285var _button2 = _interopRequireDefault(_button);
28286
28287var _icon = __webpack_require__(11);
28288
28289var _icon2 = _interopRequireDefault(_icon);
28290
28291var _util = __webpack_require__(6);
28292
28293function _interopRequireDefault(obj) {
28294 return obj && obj.__esModule ? obj : { default: obj };
28295}
28296
28297// 共享状态的组件需要变成非受控组件
28298var Filter = (_temp = _class = function (_React$Component) {
28299 (0, _inherits3.default)(Filter, _React$Component);
28300
28301 function Filter(props) {
28302 (0, _classCallCheck3.default)(this, Filter);
28303
28304 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
28305
28306 _initialiseProps.call(_this);
28307
28308 var filterParams = props.filterParams || {};
28309 var filterConfig = filterParams[props.dataIndex] || {};
28310 _this.state = {
28311 visible: filterConfig.visible || false,
28312 selectedKeys: filterConfig.selectedKeys || [],
28313 selectedKeysChangedByInner: true
28314 };
28315 _this._selectedKeys = [].concat(_this.state.selectedKeys);
28316 return _this;
28317 }
28318
28319 Filter.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
28320 var state = {};
28321 if (nextProps.hasOwnProperty('filterParams') && typeof nextProps.filterParams !== 'undefined') {
28322 var dataIndex = nextProps.dataIndex || this.props.dataIndex;
28323 var filterParams = nextProps.filterParams || {};
28324 var filterConfig = filterParams[dataIndex] || {};
28325 var selectedKeys = void 0;
28326 if (prevState.selectedKeysChangedByInner) {
28327 selectedKeys = prevState.selectedKeys || [];
28328 state.selectedKeysChangedByInner = false;
28329 } else {
28330 selectedKeys = filterConfig.selectedKeys || [];
28331 }
28332
28333 state.selectedKeys = selectedKeys;
28334 }
28335
28336 return state;
28337 };
28338
28339 Filter.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
28340 var selectedKeys = prevState.selectedKeys;
28341
28342 this._selectedKeys = [].concat(selectedKeys);
28343 };
28344
28345 Filter.prototype.render = function render() {
28346 var _classnames, _classnames2, _classnames3;
28347
28348 var _props = this.props,
28349 filters = _props.filters,
28350 prefix = _props.prefix,
28351 locale = _props.locale,
28352 className = _props.className,
28353 filterMode = _props.filterMode,
28354 filterMenuProps = _props.filterMenuProps,
28355 filterProps = _props.filterProps,
28356 rtl = _props.rtl;
28357
28358 var dropdownClassname = (0, _classnames5.default)(filterProps && filterProps.className, (_classnames = {}, _classnames[prefix + 'table-filter-menu'] = true, _classnames));
28359 var _state = this.state,
28360 visible = _state.visible,
28361 selectedKeys = _state.selectedKeys;
28362
28363 var _ref = filterMenuProps || {},
28364 subMenuSelectable = _ref.subMenuSelectable,
28365 others = (0, _objectWithoutProperties3.default)(_ref, ['subMenuSelectable']);
28366
28367 function renderMenuItem(item) {
28368 return _react2.default.createElement(_menu2.default.Item, { key: item.value }, item.label);
28369 }
28370
28371 function renderSubMenu(parent, children) {
28372 return _react2.default.createElement(_menu2.default.SubMenu, { label: parent.label, key: parent.value, selectable: subMenuSelectable }, renderMenuContent(children));
28373 }
28374
28375 function renderMenuContent(list) {
28376 return list.map(function (item) {
28377 if (item.children) {
28378 return renderSubMenu(item, item.children);
28379 } else {
28380 return renderMenuItem(item);
28381 }
28382 });
28383 }
28384
28385 var content = renderMenuContent(filters),
28386 footer = _react2.default.createElement('div', { className: prefix + 'table-filter-footer' }, _react2.default.createElement(_button2.default, { type: 'primary', onClick: this.onFilterConfirm }, locale.ok), _react2.default.createElement(_button2.default, { onClick: this.onFilterClear }, locale.reset));
28387
28388 var cls = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'table-filter'] = true, _classnames2[className] = className, _classnames2));
28389
28390 var filterIconCls = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'table-filter-active'] = selectedKeys && selectedKeys.length > 0, _classnames3));
28391
28392 return _react2.default.createElement(_dropdown2.default, (0, _extends3.default)({
28393 trigger: _react2.default.createElement('span', {
28394 role: 'button',
28395 'aria-label': locale.filter,
28396 onKeyDown: this.filterKeydown,
28397 tabIndex: '0',
28398 className: cls
28399 }, _react2.default.createElement(_icon2.default, { type: 'filter', size: 'small', className: filterIconCls })),
28400 triggerType: 'click',
28401 visible: visible,
28402 autoFocus: true,
28403 rtl: rtl,
28404 needAdjust: false,
28405 onVisibleChange: this.onFilterVisible,
28406 className: dropdownClassname
28407 }, filterProps), _react2.default.createElement(_menu2.default, (0, _extends3.default)({
28408 footer: footer,
28409 rtl: rtl,
28410 selectedKeys: selectedKeys,
28411 selectMode: filterMode,
28412 onSelect: this.onFilterSelect
28413 }, others), content));
28414 };
28415
28416 return Filter;
28417}(_react2.default.Component), _class.propTypes = {
28418 dataIndex: _propTypes2.default.string,
28419 filters: _propTypes2.default.array,
28420 filterMode: _propTypes2.default.string,
28421 filterParams: _propTypes2.default.object,
28422 filterMenuProps: _propTypes2.default.object,
28423 filterProps: _propTypes2.default.object,
28424 locale: _propTypes2.default.object,
28425 onFilter: _propTypes2.default.func,
28426 prefix: _propTypes2.default.string,
28427 rtl: _propTypes2.default.bool
28428}, _class.defaultProps = {
28429 onFilter: function onFilter() {}
28430}, _initialiseProps = function _initialiseProps() {
28431 var _this2 = this;
28432
28433 this.filterKeydown = function (e) {
28434 e.preventDefault();
28435 e.stopPropagation();
28436
28437 if (e.keyCode === _util.KEYCODE.ENTER) {
28438 _this2.setState({
28439 visible: !_this2.state.visible
28440 });
28441 }
28442 };
28443
28444 this.onFilterVisible = function (visible) {
28445 _this2.setState({
28446 visible: visible
28447 });
28448
28449 if (!visible) {
28450 var selectedKeys = [].concat(_this2._selectedKeys);
28451
28452 _this2.setState({
28453 selectedKeysChangedByInner: true,
28454 selectedKeys: selectedKeys
28455 });
28456 }
28457 };
28458
28459 this.onFilterSelect = function (selectedKeys) {
28460 _this2.setState({
28461 visible: true,
28462 selectedKeysChangedByInner: true,
28463 selectedKeys: selectedKeys
28464 });
28465 };
28466
28467 this.onFilterConfirm = function () {
28468 var selectedKeys = _this2.state.selectedKeys;
28469 var filterParams = {},
28470 dataIndex = _this2.props.dataIndex;
28471
28472 filterParams[dataIndex] = {
28473 visible: false,
28474 selectedKeys: selectedKeys
28475 };
28476 _this2._selectedKeys = [].concat(selectedKeys);
28477 _this2.setState({
28478 visible: false,
28479 selectedKeysChangedByInner: true
28480 });
28481 // 兼容之前的格式
28482 _this2.props.onFilter(filterParams);
28483 };
28484
28485 this.onFilterClear = function () {
28486 var filterParams = {},
28487 dataIndex = _this2.props.dataIndex;
28488
28489 filterParams[dataIndex] = {
28490 visible: false,
28491 selectedKeys: []
28492 };
28493 _this2._selectedKeys = [];
28494 _this2.setState({
28495 selectedKeys: [],
28496 visible: false,
28497 selectedKeysChangedByInner: true
28498 });
28499 // 兼容之前的格式
28500 _this2.props.onFilter(filterParams);
28501 };
28502}, _temp);
28503Filter.displayName = 'Filter';
28504exports.default = (0, _reactLifecyclesCompat.polyfill)(Filter);
28505module.exports = exports['default'];
28506
28507/***/ }),
28508/* 184 */
28509/***/ (function(module, exports, __webpack_require__) {
28510
28511"use strict";
28512
28513
28514exports.__esModule = true;
28515exports.default = undefined;
28516
28517var _classCallCheck2 = __webpack_require__(2);
28518
28519var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28520
28521var _possibleConstructorReturn2 = __webpack_require__(3);
28522
28523var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28524
28525var _inherits2 = __webpack_require__(4);
28526
28527var _inherits3 = _interopRequireDefault(_inherits2);
28528
28529var _class, _temp2;
28530
28531var _react = __webpack_require__(0);
28532
28533var _react2 = _interopRequireDefault(_react);
28534
28535var _propTypes = __webpack_require__(5);
28536
28537var _propTypes2 = _interopRequireDefault(_propTypes);
28538
28539var _classnames2 = __webpack_require__(7);
28540
28541var _classnames3 = _interopRequireDefault(_classnames2);
28542
28543var _icon = __webpack_require__(11);
28544
28545var _icon2 = _interopRequireDefault(_icon);
28546
28547var _util = __webpack_require__(6);
28548
28549function _interopRequireDefault(obj) {
28550 return obj && obj.__esModule ? obj : { default: obj };
28551}
28552
28553/* eslint-disable react/prefer-stateless-function */
28554var Sort = (_temp2 = _class = function (_React$Component) {
28555 (0, _inherits3.default)(Sort, _React$Component);
28556
28557 function Sort() {
28558 var _temp, _this, _ret;
28559
28560 (0, _classCallCheck3.default)(this, Sort);
28561
28562 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
28563 args[_key] = arguments[_key];
28564 }
28565
28566 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function () {
28567 var _this$props = _this.props,
28568 sort = _this$props.sort,
28569 dataIndex = _this$props.dataIndex,
28570 sortDirections = _this$props.sortDirections;
28571
28572 var nextSortType = '';
28573
28574 sortDirections.forEach(function (dir, i) {
28575 if (sort[dataIndex] === dir) {
28576 nextSortType = sortDirections.length - 1 > i ? sortDirections[i + 1] : sortDirections[0];
28577 }
28578 });
28579
28580 if (!sort[dataIndex]) {
28581 nextSortType = sortDirections[0];
28582 }
28583
28584 _this.onSort(dataIndex, nextSortType);
28585 }, _this.keydownHandler = function (e) {
28586 e.preventDefault();
28587 e.stopPropagation();
28588
28589 if (e.keyCode === _util.KEYCODE.ENTER) {
28590 _this.handleClick();
28591 }
28592 }, _this.onSort = function (dataIndex, order) {
28593 var sort = {};
28594 sort[dataIndex] = order;
28595
28596 _this.props.onSort(dataIndex, order, sort);
28597 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
28598 }
28599
28600 // 渲染排序
28601 Sort.prototype.renderSort = function renderSort() {
28602 var _classnames;
28603
28604 var _props = this.props,
28605 prefix = _props.prefix,
28606 sort = _props.sort,
28607 sortIcons = _props.sortIcons,
28608 className = _props.className,
28609 dataIndex = _props.dataIndex,
28610 locale = _props.locale,
28611 sortDirections = _props.sortDirections,
28612 rtl = _props.rtl,
28613 sortStatus = sort[dataIndex],
28614 map = {
28615 desc: 'descending',
28616 asc: 'ascending'
28617 };
28618
28619 var icons = sortDirections.map(function (sortOrder) {
28620 return sortOrder === 'default' ? null : _react2.default.createElement('a', { key: sortOrder, className: sortStatus === sortOrder ? 'current' : '' }, sortIcons ? sortIcons[sortOrder] : _react2.default.createElement(_icon2.default, { rtl: rtl, type: map[sortOrder], size: 'xs' }));
28621 });
28622
28623 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-sort'] = true, _classnames[className] = className, _classnames));
28624
28625 return _react2.default.createElement('span', {
28626 role: 'button',
28627 tabIndex: '0',
28628 'aria-label': locale[sortStatus],
28629 className: cls,
28630 onClick: this.handleClick.bind(this),
28631 onKeyDown: this.keydownHandler
28632 }, icons);
28633 };
28634
28635 Sort.prototype.render = function render() {
28636 return this.renderSort();
28637 };
28638
28639 return Sort;
28640}(_react2.default.Component), _class.propTypes = {
28641 prefix: _propTypes2.default.string,
28642 rtl: _propTypes2.default.bool,
28643 className: _propTypes2.default.string,
28644 sort: _propTypes2.default.object,
28645 sortIcons: _propTypes2.default.object,
28646 onSort: _propTypes2.default.func,
28647 sortDirections: _propTypes2.default.arrayOf(_propTypes2.default.oneOf(['desc', 'asc', 'default'])),
28648 dataIndex: _propTypes2.default.string,
28649 locale: _propTypes2.default.object
28650}, _class.defaultProps = {
28651 sort: {},
28652 sortDirections: ['desc', 'asc']
28653}, _temp2);
28654Sort.displayName = 'Sort';
28655exports.default = Sort;
28656module.exports = exports['default'];
28657
28658/***/ }),
28659/* 185 */
28660/***/ (function(module, exports, __webpack_require__) {
28661
28662"use strict";
28663
28664
28665exports.__esModule = true;
28666exports.default = undefined;
28667
28668var _extends2 = __webpack_require__(1);
28669
28670var _extends3 = _interopRequireDefault(_extends2);
28671
28672var _classCallCheck2 = __webpack_require__(2);
28673
28674var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28675
28676var _possibleConstructorReturn2 = __webpack_require__(3);
28677
28678var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28679
28680var _inherits2 = __webpack_require__(4);
28681
28682var _inherits3 = _interopRequireDefault(_inherits2);
28683
28684var _class, _temp;
28685
28686var _react = __webpack_require__(0);
28687
28688var _react2 = _interopRequireDefault(_react);
28689
28690var _propTypes = __webpack_require__(5);
28691
28692var _propTypes2 = _interopRequireDefault(_propTypes);
28693
28694var _classnames2 = __webpack_require__(7);
28695
28696var _classnames3 = _interopRequireDefault(_classnames2);
28697
28698var _row = __webpack_require__(186);
28699
28700var _row2 = _interopRequireDefault(_row);
28701
28702function _interopRequireDefault(obj) {
28703 return obj && obj.__esModule ? obj : { default: obj };
28704}
28705
28706/* eslint-disable react/prefer-stateless-function */
28707var SelectionRow = (_temp = _class = function (_React$Component) {
28708 (0, _inherits3.default)(SelectionRow, _React$Component);
28709
28710 function SelectionRow() {
28711 (0, _classCallCheck3.default)(this, SelectionRow);
28712 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
28713 }
28714
28715 SelectionRow.prototype.render = function render() {
28716 var _classnames;
28717
28718 /* eslint-disable no-unused-vars*/
28719 var _props = this.props,
28720 className = _props.className,
28721 record = _props.record,
28722 primaryKey = _props.primaryKey;
28723 var selectedRowKeys = this.context.selectedRowKeys;
28724
28725 var cls = (0, _classnames3.default)((_classnames = {
28726 selected: selectedRowKeys.indexOf(record[primaryKey]) > -1
28727 }, _classnames[className] = className, _classnames));
28728 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, this.props, { className: cls }));
28729 };
28730
28731 return SelectionRow;
28732}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _class.contextTypes = {
28733 selectedRowKeys: _propTypes2.default.array
28734}, _temp);
28735SelectionRow.displayName = 'SelectionRow';
28736exports.default = SelectionRow;
28737module.exports = exports['default'];
28738
28739/***/ }),
28740/* 186 */
28741/***/ (function(module, exports, __webpack_require__) {
28742
28743"use strict";
28744
28745
28746exports.__esModule = true;
28747exports.default = undefined;
28748
28749var _extends2 = __webpack_require__(1);
28750
28751var _extends3 = _interopRequireDefault(_extends2);
28752
28753var _objectWithoutProperties2 = __webpack_require__(8);
28754
28755var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
28756
28757var _classCallCheck2 = __webpack_require__(2);
28758
28759var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28760
28761var _possibleConstructorReturn2 = __webpack_require__(3);
28762
28763var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28764
28765var _inherits2 = __webpack_require__(4);
28766
28767var _inherits3 = _interopRequireDefault(_inherits2);
28768
28769var _class, _temp2;
28770
28771var _react = __webpack_require__(0);
28772
28773var _react2 = _interopRequireDefault(_react);
28774
28775var _propTypes = __webpack_require__(5);
28776
28777var _propTypes2 = _interopRequireDefault(_propTypes);
28778
28779var _util = __webpack_require__(6);
28780
28781var _row = __webpack_require__(104);
28782
28783var _row2 = _interopRequireDefault(_row);
28784
28785function _interopRequireDefault(obj) {
28786 return obj && obj.__esModule ? obj : { default: obj };
28787}
28788
28789var ExpandedRow = (_temp2 = _class = function (_React$Component) {
28790 (0, _inherits3.default)(ExpandedRow, _React$Component);
28791
28792 function ExpandedRow() {
28793 var _temp, _this, _ret;
28794
28795 (0, _classCallCheck3.default)(this, ExpandedRow);
28796
28797 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
28798 args[_key] = arguments[_key];
28799 }
28800
28801 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getExpandedRow = function (parentKey, ref) {
28802 var getExpandedRowRef = _this.context.getExpandedRowRef;
28803
28804 getExpandedRowRef && getExpandedRowRef(parentKey, ref);
28805 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
28806 }
28807
28808 ExpandedRow.prototype.renderExpandedRow = function renderExpandedRow(record, rowIndex) {
28809 var _context = this.context,
28810 expandedRowRender = _context.expandedRowRender,
28811 expandedRowIndent = _context.expandedRowIndent,
28812 openRowKeys = _context.openRowKeys,
28813 lockType = _context.lockType,
28814 expandedIndexSimulate = _context.expandedIndexSimulate,
28815 expandedRowWidthEquals2Table = _context.expandedRowWidthEquals2Table;
28816
28817 var expandedIndex = expandedIndexSimulate ? (rowIndex - 1) / 2 : rowIndex;
28818
28819 var _props = this.props,
28820 columns = _props.columns,
28821 cellRef = _props.cellRef;
28822
28823 var colSpan = columns.length;
28824 var expandedCols = columns[0] && columns[0].__colIndex || 0;
28825
28826 if (expandedRowRender) {
28827 var _props2 = this.props,
28828 primaryKey = _props2.primaryKey,
28829 prefix = _props2.prefix,
28830 leftIndent = expandedRowIndent[0],
28831 rightIndent = expandedRowIndent[1],
28832 totalIndent = leftIndent + rightIndent,
28833 renderCols = function renderCols(number) {
28834 var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
28835
28836 var ret = [];
28837
28838 var _loop = function _loop(i) {
28839 ret.push(_react2.default.createElement('td', { key: i, ref: function ref(cell) {
28840 return cellRef(rowIndex, i + start, cell);
28841 } }, '\xA0'));
28842 };
28843
28844 for (var i = 0; i < number; i++) {
28845 _loop(i);
28846 }
28847 return ret;
28848 };
28849
28850 var content = void 0;
28851
28852 if (totalIndent > colSpan && !lockType) {
28853 _util.log.warning("It's not allowed expandedRowIndent is more than the number of columns.");
28854 }
28855 if (leftIndent < columns.length && lockType === 'left') {
28856 _util.log.warning('expandedRowIndent left is less than the number of left lock columns.');
28857 }
28858 if (rightIndent < columns.length && lockType === 'right') {
28859 _util.log.warning('expandedRowIndent right is less than the number of right lock columns.');
28860 }
28861 if (lockType) {
28862 return openRowKeys.indexOf(record[primaryKey]) > -1 ? _react2.default.createElement('tr', { className: prefix + 'table-expanded-row', key: 'expanded-' + expandedIndex }, _react2.default.createElement('td', { colSpan: colSpan, ref: function ref(cell) {
28863 return cellRef(rowIndex, expandedCols, cell);
28864 } }, '\xA0')) : null;
28865 }
28866
28867 var expandedRowStyle = {
28868 position: 'sticky',
28869 left: 0
28870 };
28871 // 暴露给用户的index
28872 content = expandedRowRender(record, expandedIndex);
28873 if (!_react2.default.isValidElement(content)) {
28874 content = _react2.default.createElement('div', {
28875 className: prefix + 'table-cell-wrapper',
28876 ref: this.getExpandedRow.bind(this, record[primaryKey]),
28877 style: expandedRowWidthEquals2Table && expandedRowStyle
28878 }, content);
28879 } else {
28880 content = expandedRowWidthEquals2Table ? _react2.default.createElement('div', {
28881 className: prefix + 'table-expanded-area',
28882 ref: this.getExpandedRow.bind(this, record[primaryKey]),
28883 style: expandedRowStyle
28884 }, content) : content;
28885 }
28886
28887 var rightStart = columns.length;
28888 columns.forEach(function (col) {
28889 col.lock === 'right' && rightStart--;
28890 });
28891 return openRowKeys.indexOf(record[primaryKey]) > -1 ? _react2.default.createElement('tr', { className: prefix + 'table-expanded-row', key: 'expanded-' + (record[primaryKey] || expandedIndex) }, renderCols(leftIndent), _react2.default.createElement('td', { colSpan: colSpan - totalIndent }, content), renderCols(rightIndent, rightStart)) : null;
28892 } else {
28893 return null;
28894 }
28895 };
28896
28897 ExpandedRow.prototype.render = function render() {
28898 /* eslint-disable no-unused-vars*/
28899 var _props3 = this.props,
28900 record = _props3.record,
28901 rowIndex = _props3.rowIndex,
28902 columns = _props3.columns,
28903 others = (0, _objectWithoutProperties3.default)(_props3, ['record', 'rowIndex', 'columns']);
28904 var expandedIndexSimulate = this.context.expandedIndexSimulate;
28905
28906 if (record.__expanded) {
28907 return this.renderExpandedRow(record, rowIndex, columns);
28908 }
28909
28910 var newRowIndex = expandedIndexSimulate ? rowIndex / 2 : rowIndex;
28911 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, others, { record: record, columns: columns, __rowIndex: rowIndex, rowIndex: newRowIndex }));
28912 };
28913
28914 return ExpandedRow;
28915}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _class.contextTypes = {
28916 openRowKeys: _propTypes2.default.array,
28917 expandedRowRender: _propTypes2.default.func,
28918 expandedRowIndent: _propTypes2.default.array,
28919 expandedIndexSimulate: _propTypes2.default.bool,
28920 expandedRowWidthEquals2Table: _propTypes2.default.bool,
28921 lockType: _propTypes2.default.oneOf(['left', 'right']),
28922 getExpandedRowRef: _propTypes2.default.func
28923}, _temp2);
28924ExpandedRow.displayName = 'ExpandedRow';
28925exports.default = ExpandedRow;
28926module.exports = exports['default'];
28927
28928/***/ }),
28929/* 187 */
28930/***/ (function(module, exports, __webpack_require__) {
28931
28932"use strict";
28933
28934
28935exports.__esModule = true;
28936exports.default = undefined;
28937
28938var _extends2 = __webpack_require__(1);
28939
28940var _extends3 = _interopRequireDefault(_extends2);
28941
28942var _objectWithoutProperties2 = __webpack_require__(8);
28943
28944var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
28945
28946var _classCallCheck2 = __webpack_require__(2);
28947
28948var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
28949
28950var _possibleConstructorReturn2 = __webpack_require__(3);
28951
28952var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
28953
28954var _inherits2 = __webpack_require__(4);
28955
28956var _inherits3 = _interopRequireDefault(_inherits2);
28957
28958var _class, _temp2;
28959
28960var _react = __webpack_require__(0);
28961
28962var _react2 = _interopRequireDefault(_react);
28963
28964var _reactDom = __webpack_require__(12);
28965
28966var _propTypes = __webpack_require__(5);
28967
28968var _propTypes2 = _interopRequireDefault(_propTypes);
28969
28970var _body = __webpack_require__(63);
28971
28972var _body2 = _interopRequireDefault(_body);
28973
28974function _interopRequireDefault(obj) {
28975 return obj && obj.__esModule ? obj : { default: obj };
28976}
28977
28978/* eslint-disable react/prefer-stateless-function */
28979var FixedBody = (_temp2 = _class = function (_React$Component) {
28980 (0, _inherits3.default)(FixedBody, _React$Component);
28981
28982 function FixedBody() {
28983 var _temp, _this, _ret;
28984
28985 (0, _classCallCheck3.default)(this, FixedBody);
28986
28987 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
28988 args[_key] = arguments[_key];
28989 }
28990
28991 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onBodyScroll = function (event) {
28992 var onFixedScrollSync = _this.context.onFixedScrollSync;
28993 // sync scroll left to header
28994
28995 onFixedScrollSync && onFixedScrollSync(event);
28996
28997 // sync scroll top/left to lock columns
28998 if ('onLockScroll' in _this.props && typeof _this.props.onLockScroll === 'function') {
28999 _this.props.onLockScroll(event);
29000 }
29001 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29002 }
29003
29004 FixedBody.prototype.componentDidMount = function componentDidMount() {
29005 var getNode = this.context.getNode;
29006
29007 getNode && getNode('body', (0, _reactDom.findDOMNode)(this));
29008 };
29009
29010 FixedBody.prototype.render = function render() {
29011 /*eslint-disable no-unused-vars */
29012 var _props = this.props,
29013 className = _props.className,
29014 colGroup = _props.colGroup,
29015 onLockScroll = _props.onLockScroll,
29016 tableWidth = _props.tableWidth,
29017 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'colGroup', 'onLockScroll', 'tableWidth']);
29018 var _context = this.context,
29019 maxBodyHeight = _context.maxBodyHeight,
29020 fixedHeader = _context.fixedHeader;
29021
29022 var style = {};
29023 if (fixedHeader) {
29024 style.maxHeight = maxBodyHeight;
29025 style.position = 'relative';
29026 }
29027 return _react2.default.createElement('div', {
29028 style: style,
29029 className: className,
29030 onScroll: this.onBodyScroll
29031 }, _react2.default.createElement('table', { style: { width: tableWidth } }, colGroup, _react2.default.createElement(_body2.default, (0, _extends3.default)({}, others, { colGroup: colGroup }))));
29032 };
29033
29034 return FixedBody;
29035}(_react2.default.Component), _class.propTypes = {
29036 children: _propTypes2.default.any,
29037 prefix: _propTypes2.default.string,
29038 className: _propTypes2.default.string,
29039 colGroup: _propTypes2.default.any,
29040 onLockScroll: _propTypes2.default.func,
29041 tableWidth: _propTypes2.default.number
29042}, _class.contextTypes = {
29043 fixedHeader: _propTypes2.default.bool,
29044 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
29045 onFixedScrollSync: _propTypes2.default.func,
29046 getNode: _propTypes2.default.func
29047}, _temp2);
29048FixedBody.displayName = 'FixedBody';
29049exports.default = FixedBody;
29050module.exports = exports['default'];
29051
29052/***/ }),
29053/* 188 */
29054/***/ (function(module, exports, __webpack_require__) {
29055
29056"use strict";
29057
29058
29059exports.__esModule = true;
29060exports.default = undefined;
29061
29062var _extends2 = __webpack_require__(1);
29063
29064var _extends3 = _interopRequireDefault(_extends2);
29065
29066var _classCallCheck2 = __webpack_require__(2);
29067
29068var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29069
29070var _possibleConstructorReturn2 = __webpack_require__(3);
29071
29072var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29073
29074var _inherits2 = __webpack_require__(4);
29075
29076var _inherits3 = _interopRequireDefault(_inherits2);
29077
29078var _class, _temp2;
29079
29080var _react = __webpack_require__(0);
29081
29082var _react2 = _interopRequireDefault(_react);
29083
29084var _reactDom = __webpack_require__(12);
29085
29086var _propTypes = __webpack_require__(5);
29087
29088var _propTypes2 = _interopRequireDefault(_propTypes);
29089
29090var _body = __webpack_require__(187);
29091
29092var _body2 = _interopRequireDefault(_body);
29093
29094function _interopRequireDefault(obj) {
29095 return obj && obj.__esModule ? obj : { default: obj };
29096}
29097
29098/* eslint-disable react/prefer-stateless-function */
29099var LockBody = (_temp2 = _class = function (_React$Component) {
29100 (0, _inherits3.default)(LockBody, _React$Component);
29101
29102 function LockBody() {
29103 var _temp, _this, _ret;
29104
29105 (0, _classCallCheck3.default)(this, LockBody);
29106
29107 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
29108 args[_key] = arguments[_key];
29109 }
29110
29111 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onBodyScroll = function (event) {
29112 _this.context.onLockBodyScroll(event);
29113 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29114 }
29115
29116 LockBody.prototype.componentDidMount = function componentDidMount() {
29117 this.context.getLockNode('body', (0, _reactDom.findDOMNode)(this), this.context.lockType);
29118 };
29119
29120 LockBody.prototype.render = function render() {
29121 var event = {
29122 onLockScroll: this.onBodyScroll
29123 };
29124 return _react2.default.createElement(_body2.default, (0, _extends3.default)({}, this.props, event));
29125 };
29126
29127 return LockBody;
29128}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _body2.default.propTypes), _class.contextTypes = (0, _extends3.default)({}, _body2.default.contextTypes, {
29129 getLockNode: _propTypes2.default.func,
29130 onLockBodyScroll: _propTypes2.default.func,
29131 lockType: _propTypes2.default.oneOf(['left', 'right'])
29132}), _temp2);
29133LockBody.displayName = 'LockBody';
29134exports.default = LockBody;
29135module.exports = exports['default'];
29136
29137/***/ }),
29138/* 189 */
29139/***/ (function(module, exports, __webpack_require__) {
29140
29141"use strict";
29142
29143
29144exports.__esModule = true;
29145exports.default = undefined;
29146
29147var _extends2 = __webpack_require__(1);
29148
29149var _extends3 = _interopRequireDefault(_extends2);
29150
29151var _classCallCheck2 = __webpack_require__(2);
29152
29153var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29154
29155var _possibleConstructorReturn2 = __webpack_require__(3);
29156
29157var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29158
29159var _inherits2 = __webpack_require__(4);
29160
29161var _inherits3 = _interopRequireDefault(_inherits2);
29162
29163var _class, _temp;
29164
29165var _reactDom = __webpack_require__(12);
29166
29167var _propTypes = __webpack_require__(5);
29168
29169var _propTypes2 = _interopRequireDefault(_propTypes);
29170
29171var _header = __webpack_require__(66);
29172
29173var _header2 = _interopRequireDefault(_header);
29174
29175function _interopRequireDefault(obj) {
29176 return obj && obj.__esModule ? obj : { default: obj };
29177}
29178
29179var LockHeader = (_temp = _class = function (_FixedHeader) {
29180 (0, _inherits3.default)(LockHeader, _FixedHeader);
29181
29182 function LockHeader() {
29183 (0, _classCallCheck3.default)(this, LockHeader);
29184 return (0, _possibleConstructorReturn3.default)(this, _FixedHeader.apply(this, arguments));
29185 }
29186
29187 LockHeader.prototype.componentDidMount = function componentDidMount() {
29188 var _context = this.context,
29189 getNode = _context.getNode,
29190 getLockNode = _context.getLockNode;
29191
29192 getNode && getNode('header', (0, _reactDom.findDOMNode)(this), this.context.lockType);
29193 getLockNode && getLockNode('header', (0, _reactDom.findDOMNode)(this), this.context.lockType);
29194 };
29195
29196 return LockHeader;
29197}(_header2.default), _class.propTypes = (0, _extends3.default)({}, _header2.default.propTypes), _class.contextTypes = (0, _extends3.default)({}, _header2.default.contextTypes, {
29198 getLockNode: _propTypes2.default.func,
29199 lockType: _propTypes2.default.oneOf(['left', 'right'])
29200}), _temp);
29201exports.default = LockHeader;
29202module.exports = exports['default'];
29203
29204/***/ }),
29205/* 190 */
29206/***/ (function(module, exports, __webpack_require__) {
29207
29208"use strict";
29209
29210
29211exports.__esModule = true;
29212exports.default = undefined;
29213
29214var _classCallCheck2 = __webpack_require__(2);
29215
29216var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29217
29218var _possibleConstructorReturn2 = __webpack_require__(3);
29219
29220var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29221
29222var _inherits2 = __webpack_require__(4);
29223
29224var _inherits3 = _interopRequireDefault(_inherits2);
29225
29226var _class, _temp;
29227
29228var _react = __webpack_require__(0);
29229
29230var _react2 = _interopRequireDefault(_react);
29231
29232var _propTypes = __webpack_require__(5);
29233
29234var _propTypes2 = _interopRequireDefault(_propTypes);
29235
29236function _interopRequireDefault(obj) {
29237 return obj && obj.__esModule ? obj : { default: obj };
29238}
29239
29240/**
29241 * Table.GroupHeader
29242 * @order 2
29243 **/
29244var ListHeader = (_temp = _class = function (_React$Component) {
29245 (0, _inherits3.default)(ListHeader, _React$Component);
29246
29247 function ListHeader() {
29248 (0, _classCallCheck3.default)(this, ListHeader);
29249 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
29250 }
29251
29252 ListHeader.prototype.render = function render() {
29253 return null;
29254 };
29255
29256 return ListHeader;
29257}(_react2.default.Component), _class.propTypes = {
29258 /**
29259 * 行渲染的逻辑
29260 */
29261 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func]),
29262 /**
29263 * 是否在Children上面渲染selection
29264 */
29265 hasChildrenSelection: _propTypes2.default.bool,
29266 /**
29267 * 是否在GroupHeader上面渲染selection
29268 */
29269 hasSelection: _propTypes2.default.bool,
29270 /**
29271 * 当 dataSouce 里没有 children 时,是否使用内容作为数据
29272 */
29273 useFirstLevelDataWhenNoChildren: _propTypes2.default.bool
29274}, _class.defaultProps = {
29275 cell: function cell() {
29276 return '';
29277 },
29278 hasSelection: true,
29279 hasChildrenSelection: false,
29280 useFirstLevelDataWhenNoChildren: false
29281}, _class._typeMark = 'listHeader', _temp);
29282ListHeader.displayName = 'ListHeader';
29283exports.default = ListHeader;
29284module.exports = exports['default'];
29285
29286/***/ }),
29287/* 191 */
29288/***/ (function(module, exports, __webpack_require__) {
29289
29290"use strict";
29291
29292
29293exports.__esModule = true;
29294exports.default = undefined;
29295
29296var _classCallCheck2 = __webpack_require__(2);
29297
29298var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29299
29300var _possibleConstructorReturn2 = __webpack_require__(3);
29301
29302var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29303
29304var _inherits2 = __webpack_require__(4);
29305
29306var _inherits3 = _interopRequireDefault(_inherits2);
29307
29308var _class, _temp;
29309
29310var _react = __webpack_require__(0);
29311
29312var _react2 = _interopRequireDefault(_react);
29313
29314var _propTypes = __webpack_require__(5);
29315
29316var _propTypes2 = _interopRequireDefault(_propTypes);
29317
29318function _interopRequireDefault(obj) {
29319 return obj && obj.__esModule ? obj : { default: obj };
29320}
29321
29322/* istanbul ignore file */
29323/**
29324 * Table.GroupFooter
29325 * @order 3
29326 **/
29327var ListFooter = (_temp = _class = function (_React$Component) {
29328 (0, _inherits3.default)(ListFooter, _React$Component);
29329
29330 function ListFooter() {
29331 (0, _classCallCheck3.default)(this, ListFooter);
29332 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
29333 }
29334
29335 ListFooter.prototype.render = function render() {
29336 return null;
29337 };
29338
29339 return ListFooter;
29340}(_react2.default.Component), _class.propTypes = {
29341 /**
29342 * 行渲染的逻辑
29343 */
29344 cell: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func])
29345}, _class.defaultProps = {
29346 cell: function cell() {
29347 return '';
29348 }
29349}, _class._typeMark = 'listFooter', _temp);
29350ListFooter.displayName = 'ListFooter';
29351exports.default = ListFooter;
29352module.exports = exports['default'];
29353
29354/***/ }),
29355/* 192 */
29356/***/ (function(module, exports, __webpack_require__) {
29357
29358"use strict";
29359
29360
29361exports.__esModule = true;
29362
29363var _configProvider = __webpack_require__(9);
29364
29365var _configProvider2 = _interopRequireDefault(_configProvider);
29366
29367var _tree = __webpack_require__(455);
29368
29369var _tree2 = _interopRequireDefault(_tree);
29370
29371var _treeNode = __webpack_require__(105);
29372
29373var _treeNode2 = _interopRequireDefault(_treeNode);
29374
29375function _interopRequireDefault(obj) {
29376 return obj && obj.__esModule ? obj : { default: obj };
29377}
29378
29379_tree2.default.Node = _treeNode2.default;
29380
29381exports.default = _configProvider2.default.config(_tree2.default, {
29382 exportNames: ['setFocusKey']
29383});
29384module.exports = exports['default'];
29385
29386/***/ }),
29387/* 193 */
29388/***/ (function(module, exports, __webpack_require__) {
29389
29390"use strict";
29391
29392
29393exports.__esModule = true;
29394
29395var _extends2 = __webpack_require__(1);
29396
29397var _extends3 = _interopRequireDefault(_extends2);
29398
29399var _objectWithoutProperties2 = __webpack_require__(8);
29400
29401var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
29402
29403exports.normalizeToArray = normalizeToArray;
29404exports.isNodeChecked = isNodeChecked;
29405exports.forEachEnableNode = forEachEnableNode;
29406exports.isNodeDisabledChecked = isNodeDisabledChecked;
29407exports.getCheckableParentNode = getCheckableParentNode;
29408exports.filterChildKey = filterChildKey;
29409exports.filterParentKey = filterParentKey;
29410exports.isDescendantOrSelf = isDescendantOrSelf;
29411exports.isSiblingOrSelf = isSiblingOrSelf;
29412exports.getAllCheckedKeys = getAllCheckedKeys;
29413exports.convertChildren2Data = convertChildren2Data;
29414exports.getAllDescendantKeys = getAllDescendantKeys;
29415
29416var _treeNode = __webpack_require__(105);
29417
29418var _treeNode2 = _interopRequireDefault(_treeNode);
29419
29420function _interopRequireDefault(obj) {
29421 return obj && obj.__esModule ? obj : { default: obj };
29422}
29423
29424/* eslint-disable valid-jsdoc */
29425function normalizeToArray(keys) {
29426 if (keys !== undefined && keys !== null) {
29427 if (Array.isArray(keys)) {
29428 return [].concat(keys);
29429 }
29430
29431 return [keys];
29432 }
29433
29434 return [];
29435}
29436
29437/**
29438 * 判断子节点是否是选中状态,如果 checkable={false} 则向下递归,
29439 * @param {Node} child
29440 * @param {Array} checkedKeys
29441 */
29442function isNodeChecked(node, checkedKeys) {
29443 if (node.disabled || node.checkboxDisabled) return true;
29444 /* istanbul ignore next */
29445 if (node.checkable === false) {
29446 return !node.children || node.children.length === 0 || node.children.every(function (c) {
29447 return isNodeChecked(c, checkedKeys);
29448 });
29449 }
29450 return checkedKeys.indexOf(node.key) > -1;
29451}
29452
29453/**
29454 * 遍历所有可用的子节点
29455 * @param {Node}
29456 * @param {Function} callback
29457 */
29458function forEachEnableNode(node) {
29459 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
29460
29461 if (node.disabled || node.checkboxDisabled) return;
29462 // eslint-disable-next-line callback-return
29463 callback(node);
29464 if (node.children && node.children.length > 0) {
29465 node.children.forEach(function (child) {
29466 return forEachEnableNode(child, callback);
29467 });
29468 }
29469}
29470/**
29471 * 判断节点是否禁用checked
29472 * @param {Node} node
29473 * @returns {Boolean}
29474 */
29475function isNodeDisabledChecked(node) {
29476 if (node.disabled || node.checkboxDisabled) return true;
29477 /* istanbul ignore next */
29478 if (node.checkable === false) {
29479 return !node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked);
29480 }
29481
29482 return false;
29483}
29484
29485/**
29486 * 递归获取一个 checkable = {true} 的父节点,当 checkable={false} 时继续往上查找
29487 * @param {Node} node
29488 * @param {Map} _p2n
29489 * @return {Node}
29490 */
29491function getCheckableParentNode(node, _p2n) {
29492 var parentPos = node.pos.split(['-']);
29493 if (parentPos.length === 2) return node;
29494 parentPos.splice(parentPos.length - 1, 1);
29495 parentPos = parentPos.join('-');
29496 var parentNode = _p2n[parentPos];
29497 if (parentNode.disabled || parentNode.checkboxDisabled) return false;
29498 /* istanbul ignore next */
29499 if (parentNode.checkable === false) {
29500 return getCheckableParentNode(parentNode, _p2n);
29501 }
29502
29503 return parentNode;
29504}
29505/**
29506 * 过滤子节点
29507 * @param {Array} keys
29508 * @param {Object} _k2n
29509 */
29510function filterChildKey(keys, _k2n, _p2n) {
29511 var newKeys = [];
29512 keys.forEach(function (key) {
29513 var node = getCheckableParentNode(_k2n[key], _p2n);
29514 if (!node || node.checkable === false || node === _k2n[key] || keys.indexOf(node.key) === -1) {
29515 newKeys.push(key);
29516 }
29517 });
29518 return newKeys;
29519}
29520
29521function filterParentKey(keys, _k2n) {
29522 var newKeys = [];
29523
29524 for (var i = 0; i < keys.length; i++) {
29525 var node = _k2n[keys[i]];
29526 if (!node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked)) {
29527 newKeys.push(keys[i]);
29528 }
29529 }
29530
29531 return newKeys;
29532}
29533
29534function isDescendantOrSelf(currentPos, targetPos) {
29535 if (!currentPos || !targetPos) {
29536 return false;
29537 }
29538
29539 var currentNums = currentPos.split('-');
29540 var targetNums = targetPos.split('-');
29541
29542 return currentNums.length <= targetNums.length && currentNums.every(function (num, index) {
29543 return num === targetNums[index];
29544 });
29545}
29546
29547function isSiblingOrSelf(currentPos, targetPos) {
29548 var currentNums = currentPos.split('-').slice(0, -1);
29549 var targetNums = targetPos.split('-').slice(0, -1);
29550
29551 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
29552 return num === targetNums[index];
29553 });
29554}
29555
29556// eslint-disable-next-line max-statements
29557function getAllCheckedKeys(checkedKeys, _k2n, _p2n) {
29558 checkedKeys = normalizeToArray(checkedKeys);
29559 var filteredKeys = checkedKeys.filter(function (key) {
29560 return !!_k2n[key];
29561 });
29562 var flatKeys = [].concat(filterChildKey(filteredKeys, _k2n, _p2n).filter(function (key) {
29563 return !(_k2n[key].disabled || _k2n[key].checkboxDisabled);
29564 }), filteredKeys.filter(function (key) {
29565 return _k2n[key].disabled || _k2n[key].checkboxDisabled;
29566 }));
29567 var removeKey = function removeKey(child) {
29568 if (child.disabled || child.checkboxDisabled) return;
29569 if (child.checkable === false && child.children && child.children.length > 0) {
29570 return child.children.forEach(removeKey);
29571 }
29572 flatKeys.splice(flatKeys.indexOf(child.key), 1);
29573 };
29574
29575 var addParentKey = function addParentKey(i, parent) {
29576 return flatKeys.splice(i, 0, parent.key);
29577 };
29578
29579 // 所有 child nodes 选中时,取 parent node,删除所有 child nodes
29580 var keys = [].concat(flatKeys);
29581 for (var i = 0; i < keys.length; i++) {
29582 var pos = _k2n[keys[i]].pos;
29583 var nums = pos.split('-');
29584 if (nums.length === 2) {
29585 continue;
29586 }
29587 for (var j = nums.length - 2; j > 0; j--) {
29588 var parentPos = nums.slice(0, j + 1).join('-');
29589 var parent = _p2n[parentPos];
29590 if (parent.checkable === false || parent.disabled || parent.checkboxDisabled) continue;
29591 var parentChecked = parent.children.every(function (child) {
29592 return isNodeChecked(child, flatKeys);
29593 });
29594 if (parentChecked) {
29595 parent.children.forEach(removeKey);
29596 addParentKey(i, parent);
29597 } else {
29598 break;
29599 }
29600 }
29601 }
29602
29603 // 重新选中所有 child nodes
29604 var newKeys = new Set();
29605 flatKeys.forEach(function (key) {
29606 if (_k2n[key].disabled || _k2n[key].checkboxDisabled) {
29607 newKeys.add(key);
29608 return;
29609 }
29610 forEachEnableNode(_k2n[key], function (node) {
29611 if (node.checkable === false) return;
29612 newKeys.add(node.key);
29613 });
29614 });
29615
29616 return Array.from(newKeys);
29617}
29618
29619/**
29620 * Convert children of Tree into DataSource
29621 * @param {React.ReactNode} children
29622 * @return {Array}
29623 */
29624function convertChildren2Data(children) {
29625 function convert(treeNodes) {
29626 treeNodes = normalizeToArray(treeNodes);
29627
29628 return treeNodes.map(function (node) {
29629 if (node.type && node.type !== _treeNode2.default && node.type.target !== _treeNode2.default) {
29630 // 为了兼容之前的实现 保留非法节点
29631 return {
29632 illegalFlag: true,
29633 node: node
29634 };
29635 }
29636 var key = node.key,
29637 _node$props = node.props,
29638 children = _node$props.children,
29639 rest = (0, _objectWithoutProperties3.default)(_node$props, ['children']);
29640
29641 var nodeData = (0, _extends3.default)({ key: key }, rest);
29642
29643 if (children && !(Array.isArray(children) && !children.length)) {
29644 nodeData.children = convert(children);
29645 }
29646
29647 return nodeData;
29648 }).filter(function (treeNodeData) {
29649 return treeNodeData;
29650 });
29651 }
29652 return convert(children);
29653}
29654
29655/**
29656 * get all descendant`s keys of current node
29657 * @param {Object} nodeData
29658 * @param {Object} p2n
29659 * @return {Array}
29660 */
29661function getAllDescendantKeys(nodeData, p2n) {
29662 var posList = nodeData.pos.split('-');
29663 var keys = [];
29664 var pos = posList[0];
29665
29666 for (var i = 1; i < posList.length - 1; i++) {
29667 pos = [pos, posList[i]].join('-');
29668 keys.push(p2n[pos].key);
29669 }
29670
29671 return keys;
29672}
29673
29674/***/ }),
29675/* 194 */
29676/***/ (function(module, exports, __webpack_require__) {
29677
29678"use strict";
29679
29680
29681exports.__esModule = true;
29682
29683var _objectWithoutProperties2 = __webpack_require__(8);
29684
29685var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
29686
29687function _interopRequireDefault(obj) {
29688 return obj && obj.__esModule ? obj : { default: obj };
29689}
29690
29691// compatible with 0.x version
29692/* istanbul ignore next */
29693var transform = function transform(props, deprecated) {
29694 var listType = props.listType,
29695 defaultFileList = props.defaultFileList,
29696 fileList = props.fileList,
29697 others = (0, _objectWithoutProperties3.default)(props, ['listType', 'defaultFileList', 'fileList']);
29698
29699 var newprops = others;
29700
29701 if (listType === 'text-image') {
29702 deprecated('listType=text-image', 'listType=image', 'Upload');
29703 newprops.listType = 'image';
29704 } else if (listType === 'picture-card') {
29705 deprecated('listType=picture-card', 'listType=card', 'Upload');
29706 newprops.listType = 'card';
29707 } else {
29708 newprops.listType = listType;
29709 }
29710
29711 if ('defaultFileList' in props) {
29712 deprecated('defaultFileList', 'defaultValue', 'Upload');
29713 newprops.defaultValue = defaultFileList;
29714 }
29715
29716 if ('fileList' in props) {
29717 deprecated('fileList', 'value', 'Upload');
29718 newprops.value = fileList;
29719 }
29720
29721 return newprops;
29722};
29723
29724exports.default = transform;
29725module.exports = exports['default'];
29726
29727/***/ }),
29728/* 195 */
29729/***/ (function(module, exports, __webpack_require__) {
29730
29731"use strict";
29732
29733
29734exports.__esModule = true;
29735exports.default = undefined;
29736
29737var _classCallCheck2 = __webpack_require__(2);
29738
29739var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29740
29741var _possibleConstructorReturn2 = __webpack_require__(3);
29742
29743var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29744
29745var _inherits2 = __webpack_require__(4);
29746
29747var _inherits3 = _interopRequireDefault(_inherits2);
29748
29749var _react = __webpack_require__(0);
29750
29751function _interopRequireDefault(obj) {
29752 return obj && obj.__esModule ? obj : { default: obj };
29753}
29754
29755var Base = function (_Component) {
29756 (0, _inherits3.default)(Base, _Component);
29757
29758 function Base() {
29759 var _temp, _this, _ret;
29760
29761 (0, _classCallCheck3.default)(this, Base);
29762
29763 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
29764 args[_key] = arguments[_key];
29765 }
29766
29767 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.saveUploaderRef = function (ref) {
29768 /* istanbul ignore if */
29769 if (ref && typeof ref.getInstance === 'function') {
29770 _this.uploaderRef = ref.getInstance();
29771 } else {
29772 _this.uploaderRef = ref;
29773 }
29774 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29775 }
29776
29777 /* istanbul ignore next */
29778 Base.prototype.abort = function abort(file) {
29779 /* istanbul ignore next */
29780 this.uploaderRef.abort(file);
29781 };
29782 /* istanbul ignore next */
29783
29784 Base.prototype.startUpload = function startUpload() {
29785 /* istanbul ignore next */
29786 this.uploaderRef.startUpload();
29787 };
29788
29789 /* istanbul ignore next */
29790 Base.prototype.isUploading = function isUploading() {
29791 /* istanbul ignore next */
29792 return this.uploaderRef.isUploading();
29793 };
29794
29795 return Base;
29796}(_react.Component);
29797
29798Base.displayName = 'Base';
29799exports.default = Base;
29800module.exports = exports['default'];
29801
29802/***/ }),
29803/* 196 */
29804/***/ (function(module, exports, __webpack_require__) {
29805
29806"use strict";
29807
29808
29809exports.__esModule = true;
29810exports.default = undefined;
29811
29812var _extends2 = __webpack_require__(1);
29813
29814var _extends3 = _interopRequireDefault(_extends2);
29815
29816var _objectWithoutProperties2 = __webpack_require__(8);
29817
29818var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
29819
29820var _classCallCheck2 = __webpack_require__(2);
29821
29822var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
29823
29824var _possibleConstructorReturn2 = __webpack_require__(3);
29825
29826var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
29827
29828var _inherits2 = __webpack_require__(4);
29829
29830var _inherits3 = _interopRequireDefault(_inherits2);
29831
29832var _class, _temp2;
29833
29834var _react = __webpack_require__(0);
29835
29836var _react2 = _interopRequireDefault(_react);
29837
29838var _propTypes = __webpack_require__(5);
29839
29840var _propTypes2 = _interopRequireDefault(_propTypes);
29841
29842var _util = __webpack_require__(6);
29843
29844var _uploader = __webpack_require__(197);
29845
29846var _uploader2 = _interopRequireDefault(_uploader);
29847
29848var _selecter = __webpack_require__(107);
29849
29850var _selecter2 = _interopRequireDefault(_selecter);
29851
29852function _interopRequireDefault(obj) {
29853 return obj && obj.__esModule ? obj : { default: obj };
29854}
29855
29856var Html5Uploader = (_temp2 = _class = function (_Component) {
29857 (0, _inherits3.default)(Html5Uploader, _Component);
29858
29859 function Html5Uploader() {
29860 var _temp, _this, _ret;
29861
29862 (0, _classCallCheck3.default)(this, Html5Uploader);
29863
29864 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
29865 args[_key] = arguments[_key];
29866 }
29867
29868 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.getUploadOptions = function (props) {
29869 return {
29870 action: props.action,
29871 name: props.name,
29872 timeout: props.timeout,
29873 method: props.method,
29874 beforeUpload: props.beforeUpload,
29875 onProgress: props.onProgress,
29876 onSuccess: props.onSuccess,
29877 onError: props.onError,
29878 withCredentials: props.withCredentials,
29879 headers: props.headers,
29880 data: props.data,
29881 request: props.request
29882 };
29883 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
29884 }
29885
29886 Html5Uploader.prototype.componentDidMount = function componentDidMount() {
29887 var props = this.props;
29888
29889 var options = this.getUploadOptions(props);
29890 this.uploader = new _uploader2.default(options);
29891 };
29892
29893 Html5Uploader.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
29894 var preOptions = this.getUploadOptions(prevProps);
29895 var options = this.getUploadOptions(this.props);
29896
29897 var keys = Object.keys(options);
29898
29899 for (var i = 0; i < keys.length; i++) {
29900 var key = keys[i];
29901 if (options[key] !== preOptions[key]) {
29902 this.uploader.setOptions(options);
29903 return;
29904 }
29905 }
29906 };
29907
29908 Html5Uploader.prototype.componentWillUnmount = function componentWillUnmount() {
29909 this.abort();
29910 };
29911
29912 Html5Uploader.prototype.abort = function abort(file) {
29913 this.uploader.abort(file);
29914 };
29915
29916 Html5Uploader.prototype.startUpload = function startUpload(fileList) {
29917 this.uploader.startUpload(fileList);
29918 };
29919
29920 Html5Uploader.prototype.render = function render() {
29921 var _props = this.props,
29922 accept = _props.accept,
29923 multiple = _props.multiple,
29924 webkitdirectory = _props.webkitdirectory,
29925 children = _props.children,
29926 id = _props.id,
29927 disabled = _props.disabled,
29928 dragable = _props.dragable,
29929 style = _props.style,
29930 className = _props.className,
29931 onSelect = _props.onSelect,
29932 onDragOver = _props.onDragOver,
29933 onDragLeave = _props.onDragLeave,
29934 onDrop = _props.onDrop,
29935 name = _props.name,
29936 others = (0, _objectWithoutProperties3.default)(_props, ['accept', 'multiple', 'webkitdirectory', 'children', 'id', 'disabled', 'dragable', 'style', 'className', 'onSelect', 'onDragOver', 'onDragLeave', 'onDrop', 'name']);
29937
29938 return _react2.default.createElement(_selecter2.default, (0, _extends3.default)({}, others, {
29939 id: id,
29940 accept: accept,
29941 multiple: multiple,
29942 webkitdirectory: webkitdirectory,
29943 dragable: dragable,
29944 disabled: disabled,
29945 className: className,
29946 style: style,
29947 onSelect: onSelect,
29948 onDragOver: onDragOver,
29949 onDragLeave: onDragLeave,
29950 onDrop: onDrop,
29951 name: name
29952 }), children);
29953 };
29954
29955 return Html5Uploader;
29956}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _selecter2.default.propTypes, {
29957 /**
29958 * 上传的地址
29959 */
29960 action: _propTypes2.default.string,
29961 /**
29962 * 接受上传的文件类型 (image/png, image/jpg, .doc, .ppt) 详见 [input accept attribute](https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-accept)
29963 */
29964 accept: _propTypes2.default.string,
29965 /**
29966 * 上传额外传参
29967 */
29968 data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
29969 /**
29970 * 设置上传的请求头部
29971 */
29972 headers: _propTypes2.default.object,
29973 /**
29974 * 是否允许请求携带 cookie
29975 */
29976 withCredentials: _propTypes2.default.bool,
29977 /**
29978 * 上传文件之前
29979 * @param {Object} file 文件对象
29980 * @return {Boolean} `false` 停止上传
29981 */
29982 beforeUpload: _propTypes2.default.func,
29983 /**
29984 * 正在上传文件的钩子,参数为上传的事件以及文件
29985 */
29986 onProgress: _propTypes2.default.func,
29987 /**
29988 * 上传成功回调函数,参数为请求下响应信息以及文件
29989 */
29990 onSuccess: _propTypes2.default.func,
29991 /**
29992 * 上传失败回调函数,参数为上传失败的信息、响应信息以及文件
29993 */
29994 onError: _propTypes2.default.func,
29995 children: _propTypes2.default.node,
29996 /**
29997 * 上传超时,单位ms
29998 */
29999 timeout: _propTypes2.default.number,
30000 /**
30001 * 上传方法
30002 */
30003 method: _propTypes2.default.oneOf(['post', 'put']),
30004 request: _propTypes2.default.func
30005}), _class.defaultProps = (0, _extends3.default)({}, _selecter2.default.defaultProps, {
30006 name: 'file',
30007 multiple: false,
30008 withCredentials: true,
30009 beforeUpload: _util.func.noop,
30010 onSelect: _util.func.noop,
30011 onDragOver: _util.func.noop,
30012 onDragLeave: _util.func.noop,
30013 onDrop: _util.func.noop,
30014 onProgress: _util.func.noop,
30015 onSuccess: _util.func.noop,
30016 onError: _util.func.noop,
30017 onAbort: _util.func.noop,
30018 method: 'post'
30019}), _temp2);
30020Html5Uploader.displayName = 'Html5Uploader';
30021exports.default = Html5Uploader;
30022module.exports = exports['default'];
30023
30024/***/ }),
30025/* 197 */
30026/***/ (function(module, exports, __webpack_require__) {
30027
30028"use strict";
30029
30030
30031exports.__esModule = true;
30032exports.default = undefined;
30033
30034var _extends2 = __webpack_require__(1);
30035
30036var _extends3 = _interopRequireDefault(_extends2);
30037
30038var _classCallCheck2 = __webpack_require__(2);
30039
30040var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30041
30042var _util = __webpack_require__(6);
30043
30044var _util2 = __webpack_require__(42);
30045
30046var _request = __webpack_require__(466);
30047
30048var _request2 = _interopRequireDefault(_request);
30049
30050function _interopRequireDefault(obj) {
30051 return obj && obj.__esModule ? obj : { default: obj };
30052}
30053
30054var noop = _util.func.noop;
30055
30056var Uploader = function () {
30057 function Uploader(options) {
30058 (0, _classCallCheck3.default)(this, Uploader);
30059
30060 this.options = (0, _extends3.default)({
30061 beforeUpload: noop,
30062 onProgress: noop,
30063 onSuccess: noop,
30064 onError: noop,
30065 data: {},
30066 name: 'file',
30067 method: 'post'
30068 }, options);
30069 this.reqs = {};
30070 }
30071
30072 Uploader.prototype.setOptions = function setOptions(options) {
30073 (0, _extends3.default)(this.options, options);
30074 };
30075
30076 Uploader.prototype.startUpload = function startUpload(files) {
30077 var _this = this;
30078
30079 var filesArr = files.length ? Array.prototype.slice.call(files) : [files];
30080 filesArr.forEach(function (file) {
30081 file.uid = file.uid || (0, _util2.uid)();
30082 _this.upload(file);
30083 });
30084 };
30085
30086 Uploader.prototype.abort = function abort(file) {
30087 var reqs = this.reqs;
30088
30089 if (file) {
30090 var _uid = file;
30091 if (file && file.uid) {
30092 _uid = file.uid;
30093 }
30094 if (reqs[_uid]) {
30095 reqs[_uid].abort();
30096 delete reqs[_uid];
30097 }
30098 } else {
30099 Object.keys(reqs).forEach(function (uid) {
30100 if (reqs[uid] && reqs[uid].abort) {
30101 reqs[uid].abort();
30102 }
30103 delete reqs[uid];
30104 });
30105 }
30106 };
30107
30108 Uploader.prototype.upload = function upload(file) {
30109 var _this2 = this;
30110
30111 var _options = this.options,
30112 beforeUpload = _options.beforeUpload,
30113 action = _options.action,
30114 name = _options.name,
30115 headers = _options.headers,
30116 timeout = _options.timeout,
30117 withCredentials = _options.withCredentials,
30118 method = _options.method,
30119 data = _options.data;
30120
30121 var before = beforeUpload(file, {
30122 action: action,
30123 name: name,
30124 headers: headers,
30125 timeout: timeout,
30126 withCredentials: withCredentials,
30127 method: method,
30128 data: data
30129 });
30130
30131 _util.func.promiseCall(before, function (options) {
30132 if (options === false) {
30133 var err = new Error(_util2.errorCode.BEFOREUPLOAD_REJECT);
30134 err.code = _util2.errorCode.BEFOREUPLOAD_REJECT;
30135 return _this2.options.onError(err, null, file);
30136 }
30137 _this2.post(file, _util.obj.isPlainObject(options) ? options : undefined);
30138 }, function (error) {
30139 var err = void 0;
30140 if (error) {
30141 err = error;
30142 } else {
30143 err = new Error(_util2.errorCode.BEFOREUPLOAD_REJECT);
30144 err.code = _util2.errorCode.BEFOREUPLOAD_REJECT;
30145 }
30146 _this2.options.onError(err, null, file);
30147 });
30148 };
30149
30150 Uploader.prototype.post = function post(file) {
30151 var _this3 = this;
30152
30153 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
30154
30155 var requestOptions = (0, _extends3.default)({}, this.options, options);
30156 var action = requestOptions.action,
30157 name = requestOptions.name,
30158 headers = requestOptions.headers,
30159 timeout = requestOptions.timeout,
30160 withCredentials = requestOptions.withCredentials,
30161 _onProgress = requestOptions.onProgress,
30162 _onSuccess = requestOptions.onSuccess,
30163 _onError = requestOptions.onError,
30164 method = requestOptions.method;
30165
30166 var data = requestOptions.data;
30167 if (typeof data === 'function') {
30168 data = data(file);
30169 }
30170
30171 var uid = file.uid;
30172
30173 var request = typeof requestOptions.request === 'function' ? requestOptions.request : _request2.default;
30174 this.reqs[uid] = request({
30175 action: action,
30176 filename: name,
30177 file: file,
30178 data: data,
30179 timeout: timeout,
30180 headers: headers,
30181 withCredentials: withCredentials,
30182 method: method,
30183 onProgress: function onProgress(e) {
30184 _onProgress(e, file);
30185 },
30186 onSuccess: function onSuccess(ret) {
30187 delete _this3.reqs[uid];
30188 _onSuccess(ret, file);
30189 },
30190 onError: function onError(err, ret) {
30191 delete _this3.reqs[uid];
30192 _onError(err, ret, file);
30193 }
30194 });
30195 };
30196
30197 return Uploader;
30198}();
30199
30200exports.default = Uploader;
30201module.exports = exports['default'];
30202
30203/***/ }),
30204/* 198 */
30205/***/ (function(module, exports, __webpack_require__) {
30206
30207"use strict";
30208
30209
30210exports.__esModule = true;
30211
30212var _extends2 = __webpack_require__(1);
30213
30214var _extends3 = _interopRequireDefault(_extends2);
30215
30216var _objectWithoutProperties2 = __webpack_require__(8);
30217
30218var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
30219
30220var _classCallCheck2 = __webpack_require__(2);
30221
30222var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30223
30224var _possibleConstructorReturn2 = __webpack_require__(3);
30225
30226var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30227
30228var _inherits2 = __webpack_require__(4);
30229
30230var _inherits3 = _interopRequireDefault(_inherits2);
30231
30232var _class, _temp2;
30233
30234var _react = __webpack_require__(0);
30235
30236var _react2 = _interopRequireDefault(_react);
30237
30238var _propTypes = __webpack_require__(5);
30239
30240var _propTypes2 = _interopRequireDefault(_propTypes);
30241
30242var _classnames2 = __webpack_require__(7);
30243
30244var _classnames3 = _interopRequireDefault(_classnames2);
30245
30246var _zhCn = __webpack_require__(13);
30247
30248var _zhCn2 = _interopRequireDefault(_zhCn);
30249
30250var _util = __webpack_require__(6);
30251
30252var _timeMenu = __webpack_require__(479);
30253
30254var _timeMenu2 = _interopRequireDefault(_timeMenu);
30255
30256var _propTypes3 = __webpack_require__(109);
30257
30258var _propTypes4 = _interopRequireDefault(_propTypes3);
30259
30260function _interopRequireDefault(obj) {
30261 return obj && obj.__esModule ? obj : { default: obj };
30262}
30263
30264var noop = _util.func.noop;
30265var TimePickerPanel = (_temp2 = _class = function (_Component) {
30266 (0, _inherits3.default)(TimePickerPanel, _Component);
30267
30268 function TimePickerPanel() {
30269 var _temp, _this, _ret;
30270
30271 (0, _classCallCheck3.default)(this, TimePickerPanel);
30272
30273 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
30274 args[_key] = arguments[_key];
30275 }
30276
30277 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.prefixCls = _this.props.prefix + 'time-picker2', _this.onSelectMenuItem = function (panelType, index, type) {
30278 var _this$props = _this.props,
30279 value = _this$props.value,
30280 isRange = _this$props.isRange;
30281
30282 var valueArr = Array.isArray(value) ? value : [value];
30283 var val = panelType === 'end' ? valueArr[1] : valueArr[0];
30284
30285 var clonedValue = val ? val.clone() : (0, _util.datejs)('00:00:00', 'HH:mm:ss', true);
30286 var newValue = void 0;
30287 switch (type) {
30288 case 'hour':
30289 newValue = clonedValue.hour(index);
30290 break;
30291 case 'minute':
30292 newValue = clonedValue.minute(index);
30293 break;
30294 case 'second':
30295 newValue = clonedValue.second(index);
30296 break;
30297 }
30298
30299 if (isRange) {
30300 var nextValueArray = [];
30301 if (panelType === 'start') {
30302 nextValueArray[0] = newValue;
30303 nextValueArray[1] = value[1];
30304 } else if (panelType === 'end') {
30305 nextValueArray[0] = value[0];
30306 nextValueArray[1] = newValue;
30307 }
30308
30309 _this.props.onSelect(nextValueArray, panelType);
30310 } else {
30311 _this.props.onSelect(newValue, 'panel');
30312 }
30313 }, _this.getDisabledItems = function () {
30314 var _this$props2 = _this.props,
30315 disabledHours = _this$props2.disabledHours,
30316 disabledMinutes = _this$props2.disabledMinutes,
30317 disabledSeconds = _this$props2.disabledSeconds,
30318 value = _this$props2.value,
30319 isRange = _this$props2.isRange;
30320
30321 var disableds = {
30322 newDisabledHours: [disabledHours],
30323 newDisabledMinutes: [disabledMinutes],
30324 newDisabledSeconds: [disabledSeconds]
30325 };
30326 if (!isRange) {
30327 return disableds;
30328 }
30329
30330 var dHours = disabledHours() || [];
30331 var dMinutes = disabledMinutes() || [];
30332 var dSeconds = disabledSeconds() || [];
30333
30334 var v0 = value[0];
30335 var v1 = value[1];
30336
30337 var hoursEqual = function hoursEqual() {
30338 return v0 && v1 && v0.hour() === v1.hour();
30339 };
30340 var minutesEqual = function minutesEqual() {
30341 return v0 && v1 && v0.hour() === v1.hour() && v0.minute() === v1.minute();
30342 };
30343
30344 disableds.newDisabledHours[0] = function (h) {
30345 return v1 && h > v1.hour() || dHours.indexOf(h) > -1;
30346 };
30347 disableds.newDisabledMinutes[0] = function (m) {
30348 return v1 && hoursEqual() && m > v1.minute() || dMinutes.indexOf(m) > -1;
30349 };
30350 disableds.newDisabledSeconds[0] = function (s) {
30351 return v1 && minutesEqual() && s > v1.second() || dSeconds.indexOf(s) > -1;
30352 };
30353
30354 disableds.newDisabledHours[1] = function (h) {
30355 return v0 && h < v0.hour() || dHours.indexOf(h) > -1;
30356 };
30357 disableds.newDisabledMinutes[1] = function (m) {
30358 return v0 && m < (hoursEqual() && v0.minute()) || dMinutes.indexOf(m) > -1;
30359 };
30360 disableds.newDisabledSeconds[1] = function (s) {
30361 return v0 && minutesEqual() && s < v0.second() || dSeconds.indexOf(s) > -1;
30362 };
30363
30364 return disableds;
30365 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
30366 }
30367
30368 /**
30369 *
30370 * @param {enum} panelType 'start' | 'end' | 'panel'
30371 * @param {*} index
30372 * @param {*} type 'hour' | 'minute' | 'second'
30373 */
30374
30375 TimePickerPanel.prototype.render = function render() {
30376 var _classnames,
30377 _this2 = this;
30378
30379 var _props = this.props,
30380 prefix = _props.prefix,
30381 value = _props.value,
30382 isRange = _props.isRange,
30383 locale = _props.locale,
30384 className = _props.className,
30385 disabled = _props.disabled,
30386 showHour = _props.showHour,
30387 showMinute = _props.showMinute,
30388 showSecond = _props.showSecond,
30389 hourStep = _props.hourStep,
30390 minuteStep = _props.minuteStep,
30391 secondStep = _props.secondStep,
30392 renderTimeMenuItems = _props.renderTimeMenuItems,
30393 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'value', 'isRange', 'locale', 'className', 'disabled', 'showHour', 'showMinute', 'showSecond', 'hourStep', 'minuteStep', 'secondStep', 'renderTimeMenuItems']);
30394
30395 var colLen = [showHour, showMinute, showSecond].filter(function (v) {
30396 return v;
30397 }).length;
30398 var classNames = (0, _classnames3.default)(this.prefixCls + '-panel', (_classnames = {}, _classnames[this.prefixCls + '-panel-col-' + colLen] = !isRange, _classnames[this.prefixCls + '-panel-range'] = isRange, _classnames), className);
30399
30400 var activeHour = [];
30401 var activeMinute = [];
30402 var activeSecond = [];
30403
30404 var valueArr = Array.isArray(value) ? value : [value];
30405 valueArr.forEach(function (val, i) {
30406 if (val && _util.datejs.isSelf(val)) {
30407 activeHour[i] = val.hour();
30408 activeMinute[i] = val.minute();
30409 activeSecond[i] = val.second();
30410 }
30411 });
30412
30413 var commonProps = {
30414 prefix: prefix,
30415 disabled: disabled,
30416 renderTimeMenuItems: renderTimeMenuItems
30417 };
30418
30419 var _getDisabledItems = this.getDisabledItems(),
30420 newDisabledHours = _getDisabledItems.newDisabledHours,
30421 newDisabledMinutes = _getDisabledItems.newDisabledMinutes,
30422 newDisabledSeconds = _getDisabledItems.newDisabledSeconds;
30423
30424 var generatePanel = function generatePanel(index) {
30425 return _react2.default.createElement(_react2.default.Fragment, null, showHour ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
30426 value: valueArr[index],
30427 activeIndex: activeHour[index],
30428 title: locale.hour,
30429 mode: 'hour',
30430 step: hourStep,
30431 onSelect: _this2.onSelectMenuItem.bind(_this2, '' + (index === 0 ? 'start' : 'end')),
30432 disabledItems: newDisabledHours[index]
30433 })) : null, showMinute ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
30434 value: valueArr[index],
30435 activeIndex: activeMinute[index],
30436 title: locale.minute,
30437 mode: 'minute',
30438 step: minuteStep,
30439 onSelect: _this2.onSelectMenuItem.bind(_this2, '' + (index === 0 ? 'start' : 'end')),
30440 disabledItems: newDisabledMinutes[index]
30441 })) : null, showSecond ? _react2.default.createElement(_timeMenu2.default, (0, _extends3.default)({}, commonProps, {
30442 value: valueArr[index],
30443 activeIndex: activeSecond[index],
30444 title: locale.second,
30445 step: secondStep,
30446 mode: 'second',
30447 onSelect: _this2.onSelectMenuItem.bind(_this2, '' + (index === 0 ? 'start' : 'end')),
30448 disabledItems: newDisabledSeconds[index]
30449 })) : null);
30450 };
30451
30452 var singlePanel = generatePanel(0);
30453
30454 var panelClassNames = (0, _classnames3.default)(this.prefixCls + '-panel-col-' + colLen, this.prefixCls + '-panel-list');
30455
30456 var doublePanel = _react2.default.createElement(_react2.default.Fragment, null, _react2.default.createElement('div', { className: panelClassNames }, generatePanel(0)), _react2.default.createElement('div', { className: panelClassNames }, generatePanel(1)));
30457
30458 return _react2.default.createElement('div', (0, _extends3.default)({}, (0, _util.pickAttrs)(others), { className: classNames }), isRange ? doublePanel : singlePanel);
30459 };
30460
30461 return TimePickerPanel;
30462}(_react.Component), _class.propTypes = {
30463 prefix: _propTypes2.default.string,
30464 /**
30465 * 时间值(dayjs 对象)
30466 */
30467 value: _propTypes4.default.value,
30468 /**
30469 * 是否显示小时
30470 */
30471 showHour: _propTypes2.default.bool,
30472 /**
30473 * 是否显示分钟
30474 */
30475 showMinute: _propTypes2.default.bool,
30476 /**
30477 * 是否显示秒
30478 */
30479 showSecond: _propTypes2.default.bool,
30480 /**
30481 * 小时选项步长
30482 */
30483 hourStep: _propTypes2.default.number,
30484 /**
30485 * 分钟选项步长
30486 */
30487 minuteStep: _propTypes2.default.number,
30488 /**
30489 * 秒钟选项步长
30490 */
30491 secondStep: _propTypes2.default.number,
30492 /**
30493 * 禁用小时函数
30494 * @param {Number} index 时 0 - 23
30495 * @return {Boolean} 是否禁用
30496 */
30497 disabledHours: _propTypes2.default.func,
30498 /**
30499 * 禁用分钟函数
30500 * @param {Number} index 分 0 - 59
30501 * @return {Boolean} 是否禁用
30502 */
30503 disabledMinutes: _propTypes2.default.func,
30504 /**
30505 * 禁用秒函数
30506 * @param {Number} index 秒 0 - 59
30507 * @return {Boolean} 是否禁用
30508 */
30509 disabledSeconds: _propTypes2.default.func,
30510 /**
30511 * 渲染的可选择时间列表
30512 * [{
30513 * label: '01',
30514 * value: 1
30515 * }]
30516 * @param {Array} list 默认渲染的列表
30517 * @param {String} mode 渲染的菜单 hour, minute, second
30518 * @param {dayjs} value 当前时间,可能为 null
30519 * @return {Array} 返回需要渲染的数据
30520 */
30521 renderTimeMenuItems: _propTypes2.default.func,
30522 /**
30523 * 选择某个日期值时的回调
30524 * @param {Object} 选中后的日期值
30525 */
30526 onSelect: _propTypes2.default.func,
30527 isRange: _propTypes2.default.bool,
30528 locale: _propTypes2.default.object,
30529 disabled: _propTypes2.default.bool,
30530 className: _propTypes2.default.string
30531}, _class.defaultProps = {
30532 prefix: 'next-',
30533 showHour: true,
30534 showSecond: true,
30535 showMinute: true,
30536 disabledHours: noop,
30537 disabledMinutes: noop,
30538 disabledSeconds: noop,
30539 onSelect: noop,
30540 disabled: false,
30541 isRange: false,
30542 locale: _zhCn2.default.TimePicker
30543}, _temp2);
30544TimePickerPanel.displayName = 'TimePickerPanel';
30545exports.default = TimePickerPanel;
30546module.exports = exports['default'];
30547
30548/***/ }),
30549/* 199 */
30550/***/ (function(module, exports, __webpack_require__) {
30551
30552"use strict";
30553
30554
30555exports.__esModule = true;
30556exports.checkDayjsObj = checkDayjsObj;
30557exports.checkDateValue = checkDateValue;
30558exports.onTimeKeydown = onTimeKeydown;
30559
30560var _util = __webpack_require__(6);
30561
30562// 检查传入值是否为 dayjs 对象
30563function checkDayjsObj(props, propName, componentName) {
30564 if (props[propName] && !_util.datejs.isSelf(props[propName])) {
30565 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a dayjs object.');
30566 }
30567}
30568
30569// 检查传入值是否为 dayjs 对象
30570function checkDateValue(props, propName, componentName) {
30571 if (props[propName] && !_util.datejs.isSelf(props[propName]) && typeof props[propName] !== 'string') {
30572 return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a dayjs object or format date string.');
30573 }
30574}
30575
30576/**
30577 * 监听键盘事件,操作时间
30578 * @param {KeyboardEvent} e
30579 * @param {Object} param1
30580 * @param {String} type second hour minute
30581 */
30582function onTimeKeydown(e, _ref, type) {
30583 var format = _ref.format,
30584 timeInputStr = _ref.timeInputStr,
30585 steps = _ref.steps,
30586 value = _ref.value;
30587
30588 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) return;
30589 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) return;
30590
30591 var time = (0, _util.datejs)(timeInputStr, format, true);
30592
30593 if (time.isValid()) {
30594 var stepUnit = e.altKey ? 'hour' : 'minute';
30595 switch (e.keyCode) {
30596 case _util.KEYCODE.UP:
30597 time = time.subtract(steps[type], type);
30598 break;
30599 case _util.KEYCODE.DOWN:
30600 time = time.add(steps[type], type);
30601 break;
30602 case _util.KEYCODE.PAGE_UP:
30603 time = time.subtract(steps[stepUnit], stepUnit);
30604 break;
30605 case _util.KEYCODE.PAGE_DOWN:
30606 time = time.add(steps[stepUnit], stepUnit);
30607 break;
30608 }
30609 } else if (value) {
30610 time = value.clone();
30611 } else {
30612 time = (0, _util.datejs)();
30613 time = time.hour(0).minute(0).second(0);
30614 }
30615
30616 e.preventDefault();
30617 return time.format(format);
30618}
30619
30620/***/ }),
30621/* 200 */
30622/***/ (function(module, exports, __webpack_require__) {
30623
30624"use strict";
30625
30626
30627exports.__esModule = true;
30628
30629var _extends2 = __webpack_require__(1);
30630
30631var _extends3 = _interopRequireDefault(_extends2);
30632
30633var _objectWithoutProperties2 = __webpack_require__(8);
30634
30635var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
30636
30637var _classCallCheck2 = __webpack_require__(2);
30638
30639var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30640
30641var _possibleConstructorReturn2 = __webpack_require__(3);
30642
30643var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30644
30645var _inherits2 = __webpack_require__(4);
30646
30647var _inherits3 = _interopRequireDefault(_inherits2);
30648
30649var _class, _temp;
30650
30651var _react = __webpack_require__(0);
30652
30653var _react2 = _interopRequireDefault(_react);
30654
30655var _reactLifecyclesCompat = __webpack_require__(10);
30656
30657var _propTypes = __webpack_require__(5);
30658
30659var PT = _interopRequireWildcard(_propTypes);
30660
30661var _classnames3 = __webpack_require__(7);
30662
30663var _classnames4 = _interopRequireDefault(_classnames3);
30664
30665var _propTypes2 = __webpack_require__(45);
30666
30667var _propTypes3 = _interopRequireDefault(_propTypes2);
30668
30669var _util = __webpack_require__(6);
30670
30671var _zhCn = __webpack_require__(13);
30672
30673var _zhCn2 = _interopRequireDefault(_zhCn);
30674
30675var _button = __webpack_require__(17);
30676
30677var _button2 = _interopRequireDefault(_button);
30678
30679function _interopRequireWildcard(obj) {
30680 if (obj && obj.__esModule) {
30681 return obj;
30682 } else {
30683 var newObj = {};if (obj != null) {
30684 for (var key in obj) {
30685 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
30686 }
30687 }newObj.default = obj;return newObj;
30688 }
30689}
30690
30691function _interopRequireDefault(obj) {
30692 return obj && obj.__esModule ? obj : { default: obj };
30693}
30694
30695var renderNode = _util.func.renderNode;
30696
30697function normalizePreset(preset) {
30698 if (Array.isArray(preset)) {
30699 return preset;
30700 } else {
30701 return Object.keys(preset).map(function (key) {
30702 return {
30703 label: key,
30704 value: preset[key]
30705 };
30706 });
30707 }
30708}
30709
30710var FooterPanel = (_temp = _class = function (_React$PureComponent) {
30711 (0, _inherits3.default)(FooterPanel, _React$PureComponent);
30712
30713 function FooterPanel(props) {
30714 (0, _classCallCheck3.default)(this, FooterPanel);
30715
30716 var _this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call(this, props));
30717
30718 _this.renderRanges = function () {
30719 if (!_this.props.preset) {
30720 return null;
30721 }
30722
30723 var preset = normalizePreset(_this.props.preset);
30724
30725 return preset.map(function (_ref, index) {
30726 var label = _ref.label,
30727 value = _ref.value,
30728 restProps = (0, _objectWithoutProperties3.default)(_ref, ['label', 'value']);
30729
30730 var buttonProps = _util.obj.pickProps(_button2.default.propTypes, restProps);
30731
30732 var handleClick = function handleClick() {
30733 var date = typeof value === 'function' ? value() : value;
30734 _this.props.onChange(date, 'CLICK_PRESET');
30735 };
30736 return _react2.default.createElement(_button2.default, (0, _extends3.default)({
30737 text: preset.length === 1,
30738 size: 'small',
30739 type: preset.length === 1 ? 'primary' : 'secondary',
30740 key: label + '-' + index
30741 // onClick={() =>
30742 // func.invoke(this.props, 'onChange', [
30743 // typeof value === 'function' ? value() : value,
30744 // 'CLICK_PRESET',
30745 // ])
30746 // }
30747 , onClick: handleClick
30748 }, buttonProps), label);
30749 });
30750 };
30751
30752 _this.prefixCls = props.prefix + 'date-picker2-footer';
30753 return _this;
30754 }
30755
30756 FooterPanel.prototype.render = function render() {
30757 var _classnames, _classnames2;
30758
30759 var prefixCls = this.prefixCls;
30760 var _props = this.props,
30761 showOk = _props.showOk,
30762 locale = _props.locale,
30763 onOk = _props.onOk,
30764 oKable = _props.oKable,
30765 extraRender = _props.extraRender,
30766 className = _props.className;
30767
30768 var classNames = (0, _classnames4.default)(prefixCls, className, (_classnames = {}, _classnames[prefixCls + '-with-actions'] = showOk, _classnames));
30769
30770 var extraNode = renderNode(extraRender);
30771 var rangeNode = this.renderRanges();
30772 var actionsNode = _react2.default.createElement(_button2.default, { size: 'small', disabled: !oKable, onClick: onOk, className: prefixCls + '-ok', type: 'primary' }, locale.ok);
30773
30774 var showFooter = showOk || extraNode || rangeNode;
30775 var rangesCls = (0, _classnames4.default)(prefixCls + '-preset', (_classnames2 = {}, _classnames2[prefixCls + '-preset-only'] = !showOk && !extraNode, _classnames2));
30776
30777 return showFooter ? _react2.default.createElement('div', { className: classNames }, extraNode ? _react2.default.createElement('div', { className: prefixCls + '-extra' }, extraNode) : null, rangeNode ? _react2.default.createElement('div', { className: rangesCls }, rangeNode) : null, showOk ? _react2.default.createElement('div', { className: prefixCls + '-actions' }, actionsNode) : null) : null;
30778 };
30779
30780 return FooterPanel;
30781}(_react2.default.PureComponent), _class.propTypes = {
30782 rtl: PT.bool,
30783 className: PT.string,
30784 prefix: PT.string,
30785 locale: PT.object,
30786 showOk: PT.bool,
30787 preset: PT.oneOfType([PT.array, PT.object]),
30788 onOk: PT.func,
30789 oKable: PT.bool,
30790 extraRender: _propTypes3.default.render
30791}, _class.defaultProps = {
30792 locale: _zhCn2.default.DatePicker
30793}, _temp);
30794exports.default = (0, _reactLifecyclesCompat.polyfill)(FooterPanel);
30795module.exports = exports['default'];
30796
30797/***/ }),
30798/* 201 */
30799/***/ (function(module, exports, __webpack_require__) {
30800
30801"use strict";
30802
30803
30804exports.__esModule = true;
30805
30806var _propTypes = __webpack_require__(5);
30807
30808var PT = _interopRequireWildcard(_propTypes);
30809
30810var _constant = __webpack_require__(52);
30811
30812var _util = __webpack_require__(6);
30813
30814function _interopRequireWildcard(obj) {
30815 if (obj && obj.__esModule) {
30816 return obj;
30817 } else {
30818 var newObj = {};if (obj != null) {
30819 for (var key in obj) {
30820 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
30821 }
30822 }newObj.default = obj;return newObj;
30823 }
30824}
30825
30826var error = function error(propName, ComponentName) {
30827 return new Error('Invalid prop ' + propName + ' supplied to ' + ComponentName + '. Validation failed.');
30828};
30829
30830var SharedPT = {
30831 shape: PT.oneOf(Object.values(_constant.CALENDAR_SHAPE)),
30832 mode: PT.oneOf(Object.values(_constant.CALENDAR_MODE)),
30833 panelMode: PT.oneOf(Object.values(_constant.DATE_PANEL_MODE)),
30834 // 日期类型:
30835 // @string: 2020-11-11
30836 // @date: 日期对象
30837 // @moment: moment对象
30838 // @dayjs: dayjs对象
30839 date: function date(props, propName, componentName) {
30840 if (propName in props && !(0, _util.datejs)(props.propName).isValid()) {
30841 throw error(propName, componentName);
30842 }
30843 }
30844};
30845
30846exports.default = SharedPT;
30847module.exports = exports['default'];
30848
30849/***/ }),
30850/* 202 */
30851/***/ (function(module, exports, __webpack_require__) {
30852
30853"use strict";
30854
30855
30856exports.__esModule = true;
30857
30858var _extends2 = __webpack_require__(1);
30859
30860var _extends3 = _interopRequireDefault(_extends2);
30861
30862var _classCallCheck2 = __webpack_require__(2);
30863
30864var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
30865
30866var _possibleConstructorReturn2 = __webpack_require__(3);
30867
30868var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
30869
30870var _inherits2 = __webpack_require__(4);
30871
30872var _inherits3 = _interopRequireDefault(_inherits2);
30873
30874var _class, _temp2;
30875
30876var _react = __webpack_require__(0);
30877
30878var _react2 = _interopRequireDefault(_react);
30879
30880var _reactLifecyclesCompat = __webpack_require__(10);
30881
30882var _propTypes = __webpack_require__(5);
30883
30884var PT = _interopRequireWildcard(_propTypes);
30885
30886var _panel = __webpack_require__(198);
30887
30888var _panel2 = _interopRequireDefault(_panel);
30889
30890var _propTypes2 = __webpack_require__(45);
30891
30892var _propTypes3 = _interopRequireDefault(_propTypes2);
30893
30894var _util = __webpack_require__(6);
30895
30896function _interopRequireWildcard(obj) {
30897 if (obj && obj.__esModule) {
30898 return obj;
30899 } else {
30900 var newObj = {};if (obj != null) {
30901 for (var key in obj) {
30902 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
30903 }
30904 }newObj.default = obj;return newObj;
30905 }
30906}
30907
30908function _interopRequireDefault(obj) {
30909 return obj && obj.__esModule ? obj : { default: obj };
30910}
30911
30912var DECADE_TIME_FORMAT = 'HH:mm:ss';
30913
30914var TimePanel = (_temp2 = _class = function (_React$PureComponent) {
30915 (0, _inherits3.default)(TimePanel, _React$PureComponent);
30916
30917 function TimePanel() {
30918 var _temp, _this, _ret;
30919
30920 (0, _classCallCheck3.default)(this, TimePanel);
30921
30922 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
30923 args[_key] = arguments[_key];
30924 }
30925
30926 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.formater = function (v) {
30927 var _this$props$timePanel = _this.props.timePanelProps,
30928 timePanelProps = _this$props$timePanel === undefined ? {} : _this$props$timePanel;
30929
30930 var _this$getShow = _this.getShow(),
30931 showHour = _this$getShow.showHour,
30932 showMinute = _this$getShow.showMinute,
30933 showSecond = _this$getShow.showSecond;
30934
30935 var fmt = void 0;
30936 if ('format' in timePanelProps) {
30937 fmt = timePanelProps.format;
30938 } else {
30939 var fmtArr = [];
30940
30941 showHour && fmtArr.push('HH');
30942 showMinute && fmtArr.push('mm');
30943 showSecond && fmtArr.push('ss');
30944
30945 fmt = fmtArr.join(':');
30946 }
30947
30948 return typeof fmt === 'function' ? fmt(v) : v.format(fmt);
30949 }, _this.getShow = function () {
30950 var _this$props$timePanel2 = _this.props.timePanelProps,
30951 props = _this$props$timePanel2 === undefined ? {} : _this$props$timePanel2;
30952
30953 var fmt = props.format || DECADE_TIME_FORMAT;
30954
30955 var showHour = void 0;
30956 var showMinute = void 0;
30957 var showSecond = void 0;
30958
30959 if (typeof fmt === 'string') {
30960 showHour = fmt.indexOf('H') > -1;
30961 showSecond = fmt.indexOf('s') > -1;
30962 showMinute = fmt.indexOf('m') > -1;
30963 }
30964
30965 return {
30966 showHour: 'showHour' in props ? props.showHour : showHour,
30967 showMinute: 'showMinute' in props ? props.showMinute : showMinute,
30968 showSecond: 'showSecond' in props ? props.showSecond : showSecond
30969 };
30970 }, _this.onSelect = function (v) {
30971 _util.func.invoke(_this.props, 'onSelect', [v]);
30972 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
30973 }
30974
30975 TimePanel.prototype.render = function render() {
30976 var _props = this.props,
30977 prefix = _props.prefix,
30978 rtl = _props.rtl,
30979 locale = _props.locale,
30980 _props$timePanelProps = _props.timePanelProps,
30981 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps,
30982 value = _props.value;
30983
30984 var _getShow = this.getShow(),
30985 showHour = _getShow.showHour,
30986 showMinute = _getShow.showMinute,
30987 showSecond = _getShow.showSecond;
30988
30989 return _react2.default.createElement('div', { dir: rtl ? 'rtl' : undefined, className: prefix + 'date-time-picker-wrapper ' + prefix + 'calendar2-panel' }, _react2.default.createElement('div', { className: prefix + 'calendar2-header' }, _react2.default.createElement('div', { className: prefix + 'calendar2-header-text-field' }, value ? this.formater(value) : null)), _react2.default.createElement(_panel2.default, (0, _extends3.default)({
30990 prefix: prefix,
30991 locale: locale,
30992 onSelect: this.onSelect,
30993 showHour: showHour,
30994 showSecond: showSecond,
30995 showMinute: showMinute
30996 }, timePanelProps, {
30997 value: value
30998 })));
30999 };
31000
31001 return TimePanel;
31002}(_react2.default.PureComponent), _class.propTypes = {
31003 rtl: PT.bool,
31004 prefix: PT.string,
31005 locale: PT.object,
31006 value: _propTypes3.default.date,
31007 timePanelProps: PT.object,
31008 onSelect: PT.func
31009}, _temp2);
31010exports.default = (0, _reactLifecyclesCompat.polyfill)(TimePanel);
31011module.exports = exports['default'];
31012
31013/***/ }),
31014/* 203 */
31015/***/ (function(module, exports, __webpack_require__) {
31016
31017"use strict";
31018
31019
31020var next = __webpack_require__(204);
31021
31022next.version = '1.25.36';
31023
31024module.exports = next;
31025
31026/***/ }),
31027/* 204 */
31028/***/ (function(module, exports, __webpack_require__) {
31029
31030"use strict";
31031
31032
31033exports.__esModule = true;
31034
31035var _affix = __webpack_require__(69);
31036
31037Object.defineProperty(exports, 'Affix', {
31038 enumerable: true,
31039 get: function get() {
31040 return _interopRequireDefault(_affix).default;
31041 }
31042});
31043
31044var _animate = __webpack_require__(20);
31045
31046Object.defineProperty(exports, 'Animate', {
31047 enumerable: true,
31048 get: function get() {
31049 return _interopRequireDefault(_animate).default;
31050 }
31051});
31052
31053var _badge = __webpack_require__(273);
31054
31055Object.defineProperty(exports, 'Badge', {
31056 enumerable: true,
31057 get: function get() {
31058 return _interopRequireDefault(_badge).default;
31059 }
31060});
31061
31062var _balloon = __webpack_require__(59);
31063
31064Object.defineProperty(exports, 'Balloon', {
31065 enumerable: true,
31066 get: function get() {
31067 return _interopRequireDefault(_balloon).default;
31068 }
31069});
31070
31071var _breadcrumb = __webpack_require__(285);
31072
31073Object.defineProperty(exports, 'Breadcrumb', {
31074 enumerable: true,
31075 get: function get() {
31076 return _interopRequireDefault(_breadcrumb).default;
31077 }
31078});
31079
31080var _button = __webpack_require__(17);
31081
31082Object.defineProperty(exports, 'Button', {
31083 enumerable: true,
31084 get: function get() {
31085 return _interopRequireDefault(_button).default;
31086 }
31087});
31088
31089var _calendar = __webpack_require__(38);
31090
31091Object.defineProperty(exports, 'Calendar', {
31092 enumerable: true,
31093 get: function get() {
31094 return _interopRequireDefault(_calendar).default;
31095 }
31096});
31097
31098var _card = __webpack_require__(318);
31099
31100Object.defineProperty(exports, 'Card', {
31101 enumerable: true,
31102 get: function get() {
31103 return _interopRequireDefault(_card).default;
31104 }
31105});
31106
31107var _cascader = __webpack_require__(165);
31108
31109Object.defineProperty(exports, 'Cascader', {
31110 enumerable: true,
31111 get: function get() {
31112 return _interopRequireDefault(_cascader).default;
31113 }
31114});
31115
31116var _cascaderSelect = __webpack_require__(328);
31117
31118Object.defineProperty(exports, 'CascaderSelect', {
31119 enumerable: true,
31120 get: function get() {
31121 return _interopRequireDefault(_cascaderSelect).default;
31122 }
31123});
31124
31125var _checkbox = __webpack_require__(49);
31126
31127Object.defineProperty(exports, 'Checkbox', {
31128 enumerable: true,
31129 get: function get() {
31130 return _interopRequireDefault(_checkbox).default;
31131 }
31132});
31133
31134var _collapse = __webpack_require__(330);
31135
31136Object.defineProperty(exports, 'Collapse', {
31137 enumerable: true,
31138 get: function get() {
31139 return _interopRequireDefault(_collapse).default;
31140 }
31141});
31142
31143var _configProvider = __webpack_require__(9);
31144
31145Object.defineProperty(exports, 'ConfigProvider', {
31146 enumerable: true,
31147 get: function get() {
31148 return _interopRequireDefault(_configProvider).default;
31149 }
31150});
31151
31152var _datePicker = __webpack_require__(332);
31153
31154Object.defineProperty(exports, 'DatePicker', {
31155 enumerable: true,
31156 get: function get() {
31157 return _interopRequireDefault(_datePicker).default;
31158 }
31159});
31160
31161var _dialog = __webpack_require__(339);
31162
31163Object.defineProperty(exports, 'Dialog', {
31164 enumerable: true,
31165 get: function get() {
31166 return _interopRequireDefault(_dialog).default;
31167 }
31168});
31169
31170var _dropdown = __webpack_require__(48);
31171
31172Object.defineProperty(exports, 'Dropdown', {
31173 enumerable: true,
31174 get: function get() {
31175 return _interopRequireDefault(_dropdown).default;
31176 }
31177});
31178
31179var _drawer = __webpack_require__(344);
31180
31181Object.defineProperty(exports, 'Drawer', {
31182 enumerable: true,
31183 get: function get() {
31184 return _interopRequireDefault(_drawer).default;
31185 }
31186});
31187
31188var _field = __webpack_require__(172);
31189
31190Object.defineProperty(exports, 'Field', {
31191 enumerable: true,
31192 get: function get() {
31193 return _interopRequireDefault(_field).default;
31194 }
31195});
31196
31197var _form = __webpack_require__(366);
31198
31199Object.defineProperty(exports, 'Form', {
31200 enumerable: true,
31201 get: function get() {
31202 return _interopRequireDefault(_form).default;
31203 }
31204});
31205
31206var _grid = __webpack_require__(177);
31207
31208Object.defineProperty(exports, 'Grid', {
31209 enumerable: true,
31210 get: function get() {
31211 return _interopRequireDefault(_grid).default;
31212 }
31213});
31214
31215var _icon = __webpack_require__(11);
31216
31217Object.defineProperty(exports, 'Icon', {
31218 enumerable: true,
31219 get: function get() {
31220 return _interopRequireDefault(_icon).default;
31221 }
31222});
31223
31224var _input = __webpack_require__(18);
31225
31226Object.defineProperty(exports, 'Input', {
31227 enumerable: true,
31228 get: function get() {
31229 return _interopRequireDefault(_input).default;
31230 }
31231});
31232
31233var _loading = __webpack_require__(100);
31234
31235Object.defineProperty(exports, 'Loading', {
31236 enumerable: true,
31237 get: function get() {
31238 return _interopRequireDefault(_loading).default;
31239 }
31240});
31241
31242var _menu = __webpack_require__(16);
31243
31244Object.defineProperty(exports, 'Menu', {
31245 enumerable: true,
31246 get: function get() {
31247 return _interopRequireDefault(_menu).default;
31248 }
31249});
31250
31251var _menuButton = __webpack_require__(376);
31252
31253Object.defineProperty(exports, 'MenuButton', {
31254 enumerable: true,
31255 get: function get() {
31256 return _interopRequireDefault(_menuButton).default;
31257 }
31258});
31259
31260var _message = __webpack_require__(94);
31261
31262Object.defineProperty(exports, 'Message', {
31263 enumerable: true,
31264 get: function get() {
31265 return _interopRequireDefault(_message).default;
31266 }
31267});
31268
31269var _nav = __webpack_require__(377);
31270
31271Object.defineProperty(exports, 'Nav', {
31272 enumerable: true,
31273 get: function get() {
31274 return _interopRequireDefault(_nav).default;
31275 }
31276});
31277
31278var _numberPicker = __webpack_require__(383);
31279
31280Object.defineProperty(exports, 'NumberPicker', {
31281 enumerable: true,
31282 get: function get() {
31283 return _interopRequireDefault(_numberPicker).default;
31284 }
31285});
31286
31287var _overlay = __webpack_require__(15);
31288
31289Object.defineProperty(exports, 'Overlay', {
31290 enumerable: true,
31291 get: function get() {
31292 return _interopRequireDefault(_overlay).default;
31293 }
31294});
31295
31296var _pagination = __webpack_require__(386);
31297
31298Object.defineProperty(exports, 'Pagination', {
31299 enumerable: true,
31300 get: function get() {
31301 return _interopRequireDefault(_pagination).default;
31302 }
31303});
31304
31305var _paragraph = __webpack_require__(388);
31306
31307Object.defineProperty(exports, 'Paragraph', {
31308 enumerable: true,
31309 get: function get() {
31310 return _interopRequireDefault(_paragraph).default;
31311 }
31312});
31313
31314var _progress = __webpack_require__(101);
31315
31316Object.defineProperty(exports, 'Progress', {
31317 enumerable: true,
31318 get: function get() {
31319 return _interopRequireDefault(_progress).default;
31320 }
31321});
31322
31323var _radio = __webpack_require__(50);
31324
31325Object.defineProperty(exports, 'Radio', {
31326 enumerable: true,
31327 get: function get() {
31328 return _interopRequireDefault(_radio).default;
31329 }
31330});
31331
31332var _range = __webpack_require__(392);
31333
31334Object.defineProperty(exports, 'Range', {
31335 enumerable: true,
31336 get: function get() {
31337 return _interopRequireDefault(_range).default;
31338 }
31339});
31340
31341var _rating = __webpack_require__(400);
31342
31343Object.defineProperty(exports, 'Rating', {
31344 enumerable: true,
31345 get: function get() {
31346 return _interopRequireDefault(_rating).default;
31347 }
31348});
31349
31350var _search = __webpack_require__(179);
31351
31352Object.defineProperty(exports, 'Search', {
31353 enumerable: true,
31354 get: function get() {
31355 return _interopRequireDefault(_search).default;
31356 }
31357});
31358
31359var _select = __webpack_require__(29);
31360
31361Object.defineProperty(exports, 'Select', {
31362 enumerable: true,
31363 get: function get() {
31364 return _interopRequireDefault(_select).default;
31365 }
31366});
31367
31368var _shell = __webpack_require__(403);
31369
31370Object.defineProperty(exports, 'Shell', {
31371 enumerable: true,
31372 get: function get() {
31373 return _interopRequireDefault(_shell).default;
31374 }
31375});
31376
31377var _slider = __webpack_require__(407);
31378
31379Object.defineProperty(exports, 'Slider', {
31380 enumerable: true,
31381 get: function get() {
31382 return _interopRequireDefault(_slider).default;
31383 }
31384});
31385
31386var _splitButton = __webpack_require__(415);
31387
31388Object.defineProperty(exports, 'SplitButton', {
31389 enumerable: true,
31390 get: function get() {
31391 return _interopRequireDefault(_splitButton).default;
31392 }
31393});
31394
31395var _step = __webpack_require__(416);
31396
31397Object.defineProperty(exports, 'Step', {
31398 enumerable: true,
31399 get: function get() {
31400 return _interopRequireDefault(_step).default;
31401 }
31402});
31403
31404var _switch = __webpack_require__(419);
31405
31406Object.defineProperty(exports, 'Switch', {
31407 enumerable: true,
31408 get: function get() {
31409 return _interopRequireDefault(_switch).default;
31410 }
31411});
31412
31413var _tab = __webpack_require__(420);
31414
31415Object.defineProperty(exports, 'Tab', {
31416 enumerable: true,
31417 get: function get() {
31418 return _interopRequireDefault(_tab).default;
31419 }
31420});
31421
31422var _table = __webpack_require__(425);
31423
31424Object.defineProperty(exports, 'Table', {
31425 enumerable: true,
31426 get: function get() {
31427 return _interopRequireDefault(_table).default;
31428 }
31429});
31430
31431var _tag = __webpack_require__(149);
31432
31433Object.defineProperty(exports, 'Tag', {
31434 enumerable: true,
31435 get: function get() {
31436 return _interopRequireDefault(_tag).default;
31437 }
31438});
31439
31440var _timePicker = __webpack_require__(446);
31441
31442Object.defineProperty(exports, 'TimePicker', {
31443 enumerable: true,
31444 get: function get() {
31445 return _interopRequireDefault(_timePicker).default;
31446 }
31447});
31448
31449var _timeline = __webpack_require__(448);
31450
31451Object.defineProperty(exports, 'Timeline', {
31452 enumerable: true,
31453 get: function get() {
31454 return _interopRequireDefault(_timeline).default;
31455 }
31456});
31457
31458var _transfer = __webpack_require__(451);
31459
31460Object.defineProperty(exports, 'Transfer', {
31461 enumerable: true,
31462 get: function get() {
31463 return _interopRequireDefault(_transfer).default;
31464 }
31465});
31466
31467var _tree = __webpack_require__(192);
31468
31469Object.defineProperty(exports, 'Tree', {
31470 enumerable: true,
31471 get: function get() {
31472 return _interopRequireDefault(_tree).default;
31473 }
31474});
31475
31476var _treeSelect = __webpack_require__(458);
31477
31478Object.defineProperty(exports, 'TreeSelect', {
31479 enumerable: true,
31480 get: function get() {
31481 return _interopRequireDefault(_treeSelect).default;
31482 }
31483});
31484
31485var _typography = __webpack_require__(460);
31486
31487Object.defineProperty(exports, 'Typography', {
31488 enumerable: true,
31489 get: function get() {
31490 return _interopRequireDefault(_typography).default;
31491 }
31492});
31493
31494var _upload = __webpack_require__(464);
31495
31496Object.defineProperty(exports, 'Upload', {
31497 enumerable: true,
31498 get: function get() {
31499 return _interopRequireDefault(_upload).default;
31500 }
31501});
31502
31503var _virtualList = __webpack_require__(51);
31504
31505Object.defineProperty(exports, 'VirtualList', {
31506 enumerable: true,
31507 get: function get() {
31508 return _interopRequireDefault(_virtualList).default;
31509 }
31510});
31511
31512var _notification = __webpack_require__(470);
31513
31514Object.defineProperty(exports, 'Notification', {
31515 enumerable: true,
31516 get: function get() {
31517 return _interopRequireDefault(_notification).default;
31518 }
31519});
31520
31521var _divider = __webpack_require__(472);
31522
31523Object.defineProperty(exports, 'Divider', {
31524 enumerable: true,
31525 get: function get() {
31526 return _interopRequireDefault(_divider).default;
31527 }
31528});
31529
31530var _avatar = __webpack_require__(473);
31531
31532Object.defineProperty(exports, 'Avatar', {
31533 enumerable: true,
31534 get: function get() {
31535 return _interopRequireDefault(_avatar).default;
31536 }
31537});
31538
31539var _responsiveGrid = __webpack_require__(99);
31540
31541Object.defineProperty(exports, 'ResponsiveGrid', {
31542 enumerable: true,
31543 get: function get() {
31544 return _interopRequireDefault(_responsiveGrid).default;
31545 }
31546});
31547
31548var _box = __webpack_require__(175);
31549
31550Object.defineProperty(exports, 'Box', {
31551 enumerable: true,
31552 get: function get() {
31553 return _interopRequireDefault(_box).default;
31554 }
31555});
31556
31557var _list = __webpack_require__(474);
31558
31559Object.defineProperty(exports, 'List', {
31560 enumerable: true,
31561 get: function get() {
31562 return _interopRequireDefault(_list).default;
31563 }
31564});
31565
31566var _timePicker2 = __webpack_require__(477);
31567
31568Object.defineProperty(exports, 'TimePicker2', {
31569 enumerable: true,
31570 get: function get() {
31571 return _interopRequireDefault(_timePicker2).default;
31572 }
31573});
31574
31575var _datePicker2 = __webpack_require__(481);
31576
31577Object.defineProperty(exports, 'DatePicker2', {
31578 enumerable: true,
31579 get: function get() {
31580 return _interopRequireDefault(_datePicker2).default;
31581 }
31582});
31583
31584var _calendar2 = __webpack_require__(111);
31585
31586Object.defineProperty(exports, 'Calendar2', {
31587 enumerable: true,
31588 get: function get() {
31589 return _interopRequireDefault(_calendar2).default;
31590 }
31591});
31592
31593function _interopRequireDefault(obj) {
31594 return obj && obj.__esModule ? obj : { default: obj };
31595}
31596
31597/***/ }),
31598/* 205 */
31599/***/ (function(module, exports, __webpack_require__) {
31600
31601module.exports = { "default": __webpack_require__(206), __esModule: true };
31602
31603/***/ }),
31604/* 206 */
31605/***/ (function(module, exports, __webpack_require__) {
31606
31607__webpack_require__(207);
31608module.exports = __webpack_require__(24).Object.assign;
31609
31610
31611/***/ }),
31612/* 207 */
31613/***/ (function(module, exports, __webpack_require__) {
31614
31615// 19.1.3.1 Object.assign(target, source)
31616var $export = __webpack_require__(31);
31617
31618$export($export.S + $export.F, 'Object', { assign: __webpack_require__(209) });
31619
31620
31621/***/ }),
31622/* 208 */
31623/***/ (function(module, exports) {
31624
31625module.exports = function (it) {
31626 if (typeof it != 'function') throw TypeError(it + ' is not a function!');
31627 return it;
31628};
31629
31630
31631/***/ }),
31632/* 209 */
31633/***/ (function(module, exports, __webpack_require__) {
31634
31635"use strict";
31636
31637// 19.1.2.1 Object.assign(target, source, ...)
31638var DESCRIPTORS = __webpack_require__(25);
31639var getKeys = __webpack_require__(54);
31640var gOPS = __webpack_require__(76);
31641var pIE = __webpack_require__(57);
31642var toObject = __webpack_require__(77);
31643var IObject = __webpack_require__(116);
31644var $assign = Object.assign;
31645
31646// should work with symbols and should have deterministic property order (V8 bug)
31647module.exports = !$assign || __webpack_require__(47)(function () {
31648 var A = {};
31649 var B = {};
31650 // eslint-disable-next-line no-undef
31651 var S = Symbol();
31652 var K = 'abcdefghijklmnopqrst';
31653 A[S] = 7;
31654 K.split('').forEach(function (k) { B[k] = k; });
31655 return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
31656}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
31657 var T = toObject(target);
31658 var aLen = arguments.length;
31659 var index = 1;
31660 var getSymbols = gOPS.f;
31661 var isEnum = pIE.f;
31662 while (aLen > index) {
31663 var S = IObject(arguments[index++]);
31664 var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
31665 var length = keys.length;
31666 var j = 0;
31667 var key;
31668 while (length > j) {
31669 key = keys[j++];
31670 if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];
31671 }
31672 } return T;
31673} : $assign;
31674
31675
31676/***/ }),
31677/* 210 */
31678/***/ (function(module, exports, __webpack_require__) {
31679
31680// false -> Array#indexOf
31681// true -> Array#includes
31682var toIObject = __webpack_require__(34);
31683var toLength = __webpack_require__(211);
31684var toAbsoluteIndex = __webpack_require__(212);
31685module.exports = function (IS_INCLUDES) {
31686 return function ($this, el, fromIndex) {
31687 var O = toIObject($this);
31688 var length = toLength(O.length);
31689 var index = toAbsoluteIndex(fromIndex, length);
31690 var value;
31691 // Array#includes uses SameValueZero equality algorithm
31692 // eslint-disable-next-line no-self-compare
31693 if (IS_INCLUDES && el != el) while (length > index) {
31694 value = O[index++];
31695 // eslint-disable-next-line no-self-compare
31696 if (value != value) return true;
31697 // Array#indexOf ignores holes, Array#includes - not
31698 } else for (;length > index; index++) if (IS_INCLUDES || index in O) {
31699 if (O[index] === el) return IS_INCLUDES || index || 0;
31700 } return !IS_INCLUDES && -1;
31701 };
31702};
31703
31704
31705/***/ }),
31706/* 211 */
31707/***/ (function(module, exports, __webpack_require__) {
31708
31709// 7.1.15 ToLength
31710var toInteger = __webpack_require__(72);
31711var min = Math.min;
31712module.exports = function (it) {
31713 return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
31714};
31715
31716
31717/***/ }),
31718/* 212 */
31719/***/ (function(module, exports, __webpack_require__) {
31720
31721var toInteger = __webpack_require__(72);
31722var max = Math.max;
31723var min = Math.min;
31724module.exports = function (index, length) {
31725 index = toInteger(index);
31726 return index < 0 ? max(index + length, 0) : min(index, length);
31727};
31728
31729
31730/***/ }),
31731/* 213 */
31732/***/ (function(module, exports, __webpack_require__) {
31733
31734module.exports = { "default": __webpack_require__(214), __esModule: true };
31735
31736/***/ }),
31737/* 214 */
31738/***/ (function(module, exports, __webpack_require__) {
31739
31740__webpack_require__(215);
31741__webpack_require__(221);
31742module.exports = __webpack_require__(81).f('iterator');
31743
31744
31745/***/ }),
31746/* 215 */
31747/***/ (function(module, exports, __webpack_require__) {
31748
31749"use strict";
31750
31751var $at = __webpack_require__(216)(true);
31752
31753// 21.1.3.27 String.prototype[@@iterator]()
31754__webpack_require__(118)(String, 'String', function (iterated) {
31755 this._t = String(iterated); // target
31756 this._i = 0; // next index
31757// 21.1.5.2.1 %StringIteratorPrototype%.next()
31758}, function () {
31759 var O = this._t;
31760 var index = this._i;
31761 var point;
31762 if (index >= O.length) return { value: undefined, done: true };
31763 point = $at(O, index);
31764 this._i += point.length;
31765 return { value: point, done: false };
31766});
31767
31768
31769/***/ }),
31770/* 216 */
31771/***/ (function(module, exports, __webpack_require__) {
31772
31773var toInteger = __webpack_require__(72);
31774var defined = __webpack_require__(71);
31775// true -> String#at
31776// false -> String#codePointAt
31777module.exports = function (TO_STRING) {
31778 return function (that, pos) {
31779 var s = String(defined(that));
31780 var i = toInteger(pos);
31781 var l = s.length;
31782 var a, b;
31783 if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
31784 a = s.charCodeAt(i);
31785 return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
31786 ? TO_STRING ? s.charAt(i) : a
31787 : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
31788 };
31789};
31790
31791
31792/***/ }),
31793/* 217 */
31794/***/ (function(module, exports, __webpack_require__) {
31795
31796"use strict";
31797
31798var create = __webpack_require__(79);
31799var descriptor = __webpack_require__(53);
31800var setToStringTag = __webpack_require__(80);
31801var IteratorPrototype = {};
31802
31803// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
31804__webpack_require__(32)(IteratorPrototype, __webpack_require__(35)('iterator'), function () { return this; });
31805
31806module.exports = function (Constructor, NAME, next) {
31807 Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
31808 setToStringTag(Constructor, NAME + ' Iterator');
31809};
31810
31811
31812/***/ }),
31813/* 218 */
31814/***/ (function(module, exports, __webpack_require__) {
31815
31816var dP = __webpack_require__(26);
31817var anObject = __webpack_require__(46);
31818var getKeys = __webpack_require__(54);
31819
31820module.exports = __webpack_require__(25) ? Object.defineProperties : function defineProperties(O, Properties) {
31821 anObject(O);
31822 var keys = getKeys(Properties);
31823 var length = keys.length;
31824 var i = 0;
31825 var P;
31826 while (length > i) dP.f(O, P = keys[i++], Properties[P]);
31827 return O;
31828};
31829
31830
31831/***/ }),
31832/* 219 */
31833/***/ (function(module, exports, __webpack_require__) {
31834
31835var document = __webpack_require__(23).document;
31836module.exports = document && document.documentElement;
31837
31838
31839/***/ }),
31840/* 220 */
31841/***/ (function(module, exports, __webpack_require__) {
31842
31843// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
31844var has = __webpack_require__(27);
31845var toObject = __webpack_require__(77);
31846var IE_PROTO = __webpack_require__(73)('IE_PROTO');
31847var ObjectProto = Object.prototype;
31848
31849module.exports = Object.getPrototypeOf || function (O) {
31850 O = toObject(O);
31851 if (has(O, IE_PROTO)) return O[IE_PROTO];
31852 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
31853 return O.constructor.prototype;
31854 } return O instanceof Object ? ObjectProto : null;
31855};
31856
31857
31858/***/ }),
31859/* 221 */
31860/***/ (function(module, exports, __webpack_require__) {
31861
31862__webpack_require__(222);
31863var global = __webpack_require__(23);
31864var hide = __webpack_require__(32);
31865var Iterators = __webpack_require__(78);
31866var TO_STRING_TAG = __webpack_require__(35)('toStringTag');
31867
31868var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' +
31869 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' +
31870 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' +
31871 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' +
31872 'TextTrackList,TouchList').split(',');
31873
31874for (var i = 0; i < DOMIterables.length; i++) {
31875 var NAME = DOMIterables[i];
31876 var Collection = global[NAME];
31877 var proto = Collection && Collection.prototype;
31878 if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
31879 Iterators[NAME] = Iterators.Array;
31880}
31881
31882
31883/***/ }),
31884/* 222 */
31885/***/ (function(module, exports, __webpack_require__) {
31886
31887"use strict";
31888
31889var addToUnscopables = __webpack_require__(223);
31890var step = __webpack_require__(224);
31891var Iterators = __webpack_require__(78);
31892var toIObject = __webpack_require__(34);
31893
31894// 22.1.3.4 Array.prototype.entries()
31895// 22.1.3.13 Array.prototype.keys()
31896// 22.1.3.29 Array.prototype.values()
31897// 22.1.3.30 Array.prototype[@@iterator]()
31898module.exports = __webpack_require__(118)(Array, 'Array', function (iterated, kind) {
31899 this._t = toIObject(iterated); // target
31900 this._i = 0; // next index
31901 this._k = kind; // kind
31902// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
31903}, function () {
31904 var O = this._t;
31905 var kind = this._k;
31906 var index = this._i++;
31907 if (!O || index >= O.length) {
31908 this._t = undefined;
31909 return step(1);
31910 }
31911 if (kind == 'keys') return step(0, index);
31912 if (kind == 'values') return step(0, O[index]);
31913 return step(0, [index, O[index]]);
31914}, 'values');
31915
31916// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
31917Iterators.Arguments = Iterators.Array;
31918
31919addToUnscopables('keys');
31920addToUnscopables('values');
31921addToUnscopables('entries');
31922
31923
31924/***/ }),
31925/* 223 */
31926/***/ (function(module, exports) {
31927
31928module.exports = function () { /* empty */ };
31929
31930
31931/***/ }),
31932/* 224 */
31933/***/ (function(module, exports) {
31934
31935module.exports = function (done, value) {
31936 return { value: value, done: !!done };
31937};
31938
31939
31940/***/ }),
31941/* 225 */
31942/***/ (function(module, exports, __webpack_require__) {
31943
31944module.exports = { "default": __webpack_require__(226), __esModule: true };
31945
31946/***/ }),
31947/* 226 */
31948/***/ (function(module, exports, __webpack_require__) {
31949
31950__webpack_require__(227);
31951__webpack_require__(232);
31952__webpack_require__(233);
31953__webpack_require__(234);
31954module.exports = __webpack_require__(24).Symbol;
31955
31956
31957/***/ }),
31958/* 227 */
31959/***/ (function(module, exports, __webpack_require__) {
31960
31961"use strict";
31962
31963// ECMAScript 6 symbols shim
31964var global = __webpack_require__(23);
31965var has = __webpack_require__(27);
31966var DESCRIPTORS = __webpack_require__(25);
31967var $export = __webpack_require__(31);
31968var redefine = __webpack_require__(119);
31969var META = __webpack_require__(228).KEY;
31970var $fails = __webpack_require__(47);
31971var shared = __webpack_require__(74);
31972var setToStringTag = __webpack_require__(80);
31973var uid = __webpack_require__(56);
31974var wks = __webpack_require__(35);
31975var wksExt = __webpack_require__(81);
31976var wksDefine = __webpack_require__(82);
31977var enumKeys = __webpack_require__(229);
31978var isArray = __webpack_require__(230);
31979var anObject = __webpack_require__(46);
31980var isObject = __webpack_require__(33);
31981var toObject = __webpack_require__(77);
31982var toIObject = __webpack_require__(34);
31983var toPrimitive = __webpack_require__(70);
31984var createDesc = __webpack_require__(53);
31985var _create = __webpack_require__(79);
31986var gOPNExt = __webpack_require__(231);
31987var $GOPD = __webpack_require__(121);
31988var $GOPS = __webpack_require__(76);
31989var $DP = __webpack_require__(26);
31990var $keys = __webpack_require__(54);
31991var gOPD = $GOPD.f;
31992var dP = $DP.f;
31993var gOPN = gOPNExt.f;
31994var $Symbol = global.Symbol;
31995var $JSON = global.JSON;
31996var _stringify = $JSON && $JSON.stringify;
31997var PROTOTYPE = 'prototype';
31998var HIDDEN = wks('_hidden');
31999var TO_PRIMITIVE = wks('toPrimitive');
32000var isEnum = {}.propertyIsEnumerable;
32001var SymbolRegistry = shared('symbol-registry');
32002var AllSymbols = shared('symbols');
32003var OPSymbols = shared('op-symbols');
32004var ObjectProto = Object[PROTOTYPE];
32005var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f;
32006var QObject = global.QObject;
32007// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
32008var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
32009
32010// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
32011var setSymbolDesc = DESCRIPTORS && $fails(function () {
32012 return _create(dP({}, 'a', {
32013 get: function () { return dP(this, 'a', { value: 7 }).a; }
32014 })).a != 7;
32015}) ? function (it, key, D) {
32016 var protoDesc = gOPD(ObjectProto, key);
32017 if (protoDesc) delete ObjectProto[key];
32018 dP(it, key, D);
32019 if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
32020} : dP;
32021
32022var wrap = function (tag) {
32023 var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
32024 sym._k = tag;
32025 return sym;
32026};
32027
32028var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
32029 return typeof it == 'symbol';
32030} : function (it) {
32031 return it instanceof $Symbol;
32032};
32033
32034var $defineProperty = function defineProperty(it, key, D) {
32035 if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
32036 anObject(it);
32037 key = toPrimitive(key, true);
32038 anObject(D);
32039 if (has(AllSymbols, key)) {
32040 if (!D.enumerable) {
32041 if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
32042 it[HIDDEN][key] = true;
32043 } else {
32044 if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
32045 D = _create(D, { enumerable: createDesc(0, false) });
32046 } return setSymbolDesc(it, key, D);
32047 } return dP(it, key, D);
32048};
32049var $defineProperties = function defineProperties(it, P) {
32050 anObject(it);
32051 var keys = enumKeys(P = toIObject(P));
32052 var i = 0;
32053 var l = keys.length;
32054 var key;
32055 while (l > i) $defineProperty(it, key = keys[i++], P[key]);
32056 return it;
32057};
32058var $create = function create(it, P) {
32059 return P === undefined ? _create(it) : $defineProperties(_create(it), P);
32060};
32061var $propertyIsEnumerable = function propertyIsEnumerable(key) {
32062 var E = isEnum.call(this, key = toPrimitive(key, true));
32063 if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
32064 return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
32065};
32066var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
32067 it = toIObject(it);
32068 key = toPrimitive(key, true);
32069 if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
32070 var D = gOPD(it, key);
32071 if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
32072 return D;
32073};
32074var $getOwnPropertyNames = function getOwnPropertyNames(it) {
32075 var names = gOPN(toIObject(it));
32076 var result = [];
32077 var i = 0;
32078 var key;
32079 while (names.length > i) {
32080 if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
32081 } return result;
32082};
32083var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
32084 var IS_OP = it === ObjectProto;
32085 var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
32086 var result = [];
32087 var i = 0;
32088 var key;
32089 while (names.length > i) {
32090 if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
32091 } return result;
32092};
32093
32094// 19.4.1.1 Symbol([description])
32095if (!USE_NATIVE) {
32096 $Symbol = function Symbol() {
32097 if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
32098 var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
32099 var $set = function (value) {
32100 if (this === ObjectProto) $set.call(OPSymbols, value);
32101 if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
32102 setSymbolDesc(this, tag, createDesc(1, value));
32103 };
32104 if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set });
32105 return wrap(tag);
32106 };
32107 redefine($Symbol[PROTOTYPE], 'toString', function toString() {
32108 return this._k;
32109 });
32110
32111 $GOPD.f = $getOwnPropertyDescriptor;
32112 $DP.f = $defineProperty;
32113 __webpack_require__(120).f = gOPNExt.f = $getOwnPropertyNames;
32114 __webpack_require__(57).f = $propertyIsEnumerable;
32115 $GOPS.f = $getOwnPropertySymbols;
32116
32117 if (DESCRIPTORS && !__webpack_require__(55)) {
32118 redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
32119 }
32120
32121 wksExt.f = function (name) {
32122 return wrap(wks(name));
32123 };
32124}
32125
32126$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });
32127
32128for (var es6Symbols = (
32129 // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
32130 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
32131).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
32132
32133for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
32134
32135$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
32136 // 19.4.2.1 Symbol.for(key)
32137 'for': function (key) {
32138 return has(SymbolRegistry, key += '')
32139 ? SymbolRegistry[key]
32140 : SymbolRegistry[key] = $Symbol(key);
32141 },
32142 // 19.4.2.5 Symbol.keyFor(sym)
32143 keyFor: function keyFor(sym) {
32144 if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
32145 for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
32146 },
32147 useSetter: function () { setter = true; },
32148 useSimple: function () { setter = false; }
32149});
32150
32151$export($export.S + $export.F * !USE_NATIVE, 'Object', {
32152 // 19.1.2.2 Object.create(O [, Properties])
32153 create: $create,
32154 // 19.1.2.4 Object.defineProperty(O, P, Attributes)
32155 defineProperty: $defineProperty,
32156 // 19.1.2.3 Object.defineProperties(O, Properties)
32157 defineProperties: $defineProperties,
32158 // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
32159 getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
32160 // 19.1.2.7 Object.getOwnPropertyNames(O)
32161 getOwnPropertyNames: $getOwnPropertyNames,
32162 // 19.1.2.8 Object.getOwnPropertySymbols(O)
32163 getOwnPropertySymbols: $getOwnPropertySymbols
32164});
32165
32166// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
32167// https://bugs.chromium.org/p/v8/issues/detail?id=3443
32168var FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });
32169
32170$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {
32171 getOwnPropertySymbols: function getOwnPropertySymbols(it) {
32172 return $GOPS.f(toObject(it));
32173 }
32174});
32175
32176// 24.3.2 JSON.stringify(value [, replacer [, space]])
32177$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
32178 var S = $Symbol();
32179 // MS Edge converts symbol values to JSON as {}
32180 // WebKit converts symbol values to JSON as null
32181 // V8 throws on boxed symbols
32182 return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
32183})), 'JSON', {
32184 stringify: function stringify(it) {
32185 var args = [it];
32186 var i = 1;
32187 var replacer, $replacer;
32188 while (arguments.length > i) args.push(arguments[i++]);
32189 $replacer = replacer = args[1];
32190 if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
32191 if (!isArray(replacer)) replacer = function (key, value) {
32192 if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
32193 if (!isSymbol(value)) return value;
32194 };
32195 args[1] = replacer;
32196 return _stringify.apply($JSON, args);
32197 }
32198});
32199
32200// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
32201$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(32)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
32202// 19.4.3.5 Symbol.prototype[@@toStringTag]
32203setToStringTag($Symbol, 'Symbol');
32204// 20.2.1.9 Math[@@toStringTag]
32205setToStringTag(Math, 'Math', true);
32206// 24.3.3 JSON[@@toStringTag]
32207setToStringTag(global.JSON, 'JSON', true);
32208
32209
32210/***/ }),
32211/* 228 */
32212/***/ (function(module, exports, __webpack_require__) {
32213
32214var META = __webpack_require__(56)('meta');
32215var isObject = __webpack_require__(33);
32216var has = __webpack_require__(27);
32217var setDesc = __webpack_require__(26).f;
32218var id = 0;
32219var isExtensible = Object.isExtensible || function () {
32220 return true;
32221};
32222var FREEZE = !__webpack_require__(47)(function () {
32223 return isExtensible(Object.preventExtensions({}));
32224});
32225var setMeta = function (it) {
32226 setDesc(it, META, { value: {
32227 i: 'O' + ++id, // object ID
32228 w: {} // weak collections IDs
32229 } });
32230};
32231var fastKey = function (it, create) {
32232 // return primitive with prefix
32233 if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
32234 if (!has(it, META)) {
32235 // can't set metadata to uncaught frozen object
32236 if (!isExtensible(it)) return 'F';
32237 // not necessary to add metadata
32238 if (!create) return 'E';
32239 // add missing metadata
32240 setMeta(it);
32241 // return object ID
32242 } return it[META].i;
32243};
32244var getWeak = function (it, create) {
32245 if (!has(it, META)) {
32246 // can't set metadata to uncaught frozen object
32247 if (!isExtensible(it)) return true;
32248 // not necessary to add metadata
32249 if (!create) return false;
32250 // add missing metadata
32251 setMeta(it);
32252 // return hash weak collections IDs
32253 } return it[META].w;
32254};
32255// add metadata on freeze-family methods calling
32256var onFreeze = function (it) {
32257 if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
32258 return it;
32259};
32260var meta = module.exports = {
32261 KEY: META,
32262 NEED: false,
32263 fastKey: fastKey,
32264 getWeak: getWeak,
32265 onFreeze: onFreeze
32266};
32267
32268
32269/***/ }),
32270/* 229 */
32271/***/ (function(module, exports, __webpack_require__) {
32272
32273// all enumerable object keys, includes symbols
32274var getKeys = __webpack_require__(54);
32275var gOPS = __webpack_require__(76);
32276var pIE = __webpack_require__(57);
32277module.exports = function (it) {
32278 var result = getKeys(it);
32279 var getSymbols = gOPS.f;
32280 if (getSymbols) {
32281 var symbols = getSymbols(it);
32282 var isEnum = pIE.f;
32283 var i = 0;
32284 var key;
32285 while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
32286 } return result;
32287};
32288
32289
32290/***/ }),
32291/* 230 */
32292/***/ (function(module, exports, __webpack_require__) {
32293
32294// 7.2.2 IsArray(argument)
32295var cof = __webpack_require__(117);
32296module.exports = Array.isArray || function isArray(arg) {
32297 return cof(arg) == 'Array';
32298};
32299
32300
32301/***/ }),
32302/* 231 */
32303/***/ (function(module, exports, __webpack_require__) {
32304
32305// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
32306var toIObject = __webpack_require__(34);
32307var gOPN = __webpack_require__(120).f;
32308var toString = {}.toString;
32309
32310var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
32311 ? Object.getOwnPropertyNames(window) : [];
32312
32313var getWindowNames = function (it) {
32314 try {
32315 return gOPN(it);
32316 } catch (e) {
32317 return windowNames.slice();
32318 }
32319};
32320
32321module.exports.f = function getOwnPropertyNames(it) {
32322 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
32323};
32324
32325
32326/***/ }),
32327/* 232 */
32328/***/ (function(module, exports) {
32329
32330
32331
32332/***/ }),
32333/* 233 */
32334/***/ (function(module, exports, __webpack_require__) {
32335
32336__webpack_require__(82)('asyncIterator');
32337
32338
32339/***/ }),
32340/* 234 */
32341/***/ (function(module, exports, __webpack_require__) {
32342
32343__webpack_require__(82)('observable');
32344
32345
32346/***/ }),
32347/* 235 */
32348/***/ (function(module, exports, __webpack_require__) {
32349
32350module.exports = { "default": __webpack_require__(236), __esModule: true };
32351
32352/***/ }),
32353/* 236 */
32354/***/ (function(module, exports, __webpack_require__) {
32355
32356__webpack_require__(237);
32357module.exports = __webpack_require__(24).Object.setPrototypeOf;
32358
32359
32360/***/ }),
32361/* 237 */
32362/***/ (function(module, exports, __webpack_require__) {
32363
32364// 19.1.3.19 Object.setPrototypeOf(O, proto)
32365var $export = __webpack_require__(31);
32366$export($export.S, 'Object', { setPrototypeOf: __webpack_require__(238).set });
32367
32368
32369/***/ }),
32370/* 238 */
32371/***/ (function(module, exports, __webpack_require__) {
32372
32373// Works with __proto__ only. Old v8 can't work with null proto objects.
32374/* eslint-disable no-proto */
32375var isObject = __webpack_require__(33);
32376var anObject = __webpack_require__(46);
32377var check = function (O, proto) {
32378 anObject(O);
32379 if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
32380};
32381module.exports = {
32382 set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
32383 function (test, buggy, set) {
32384 try {
32385 set = __webpack_require__(112)(Function.call, __webpack_require__(121).f(Object.prototype, '__proto__').set, 2);
32386 set(test, []);
32387 buggy = !(test instanceof Array);
32388 } catch (e) { buggy = true; }
32389 return function setPrototypeOf(O, proto) {
32390 check(O, proto);
32391 if (buggy) O.__proto__ = proto;
32392 else set(O, proto);
32393 return O;
32394 };
32395 }({}, false) : undefined),
32396 check: check
32397};
32398
32399
32400/***/ }),
32401/* 239 */
32402/***/ (function(module, exports, __webpack_require__) {
32403
32404module.exports = { "default": __webpack_require__(240), __esModule: true };
32405
32406/***/ }),
32407/* 240 */
32408/***/ (function(module, exports, __webpack_require__) {
32409
32410__webpack_require__(241);
32411var $Object = __webpack_require__(24).Object;
32412module.exports = function create(P, D) {
32413 return $Object.create(P, D);
32414};
32415
32416
32417/***/ }),
32418/* 241 */
32419/***/ (function(module, exports, __webpack_require__) {
32420
32421var $export = __webpack_require__(31);
32422// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
32423$export($export.S, 'Object', { create: __webpack_require__(79) });
32424
32425
32426/***/ }),
32427/* 242 */
32428/***/ (function(module, exports, __webpack_require__) {
32429
32430"use strict";
32431/**
32432 * Copyright (c) 2013-present, Facebook, Inc.
32433 *
32434 * This source code is licensed under the MIT license found in the
32435 * LICENSE file in the root directory of this source tree.
32436 */
32437
32438
32439
32440var ReactPropTypesSecret = __webpack_require__(243);
32441
32442function emptyFunction() {}
32443function emptyFunctionWithReset() {}
32444emptyFunctionWithReset.resetWarningCache = emptyFunction;
32445
32446module.exports = function() {
32447 function shim(props, propName, componentName, location, propFullName, secret) {
32448 if (secret === ReactPropTypesSecret) {
32449 // It is still safe when called from React.
32450 return;
32451 }
32452 var err = new Error(
32453 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
32454 'Use PropTypes.checkPropTypes() to call them. ' +
32455 'Read more at http://fb.me/use-check-prop-types'
32456 );
32457 err.name = 'Invariant Violation';
32458 throw err;
32459 };
32460 shim.isRequired = shim;
32461 function getShim() {
32462 return shim;
32463 };
32464 // Important!
32465 // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
32466 var ReactPropTypes = {
32467 array: shim,
32468 bigint: shim,
32469 bool: shim,
32470 func: shim,
32471 number: shim,
32472 object: shim,
32473 string: shim,
32474 symbol: shim,
32475
32476 any: shim,
32477 arrayOf: getShim,
32478 element: shim,
32479 elementType: shim,
32480 instanceOf: getShim,
32481 node: shim,
32482 objectOf: getShim,
32483 oneOf: getShim,
32484 oneOfType: getShim,
32485 shape: getShim,
32486 exact: getShim,
32487
32488 checkPropTypes: emptyFunctionWithReset,
32489 resetWarningCache: emptyFunction
32490 };
32491
32492 ReactPropTypes.PropTypes = ReactPropTypes;
32493
32494 return ReactPropTypes;
32495};
32496
32497
32498/***/ }),
32499/* 243 */
32500/***/ (function(module, exports, __webpack_require__) {
32501
32502"use strict";
32503/**
32504 * Copyright (c) 2013-present, Facebook, Inc.
32505 *
32506 * This source code is licensed under the MIT license found in the
32507 * LICENSE file in the root directory of this source tree.
32508 */
32509
32510
32511
32512var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
32513
32514module.exports = ReactPropTypesSecret;
32515
32516
32517/***/ }),
32518/* 244 */
32519/***/ (function(module, exports, __webpack_require__) {
32520
32521"use strict";
32522
32523
32524exports.__esModule = true;
32525exports.on = on;
32526exports.once = once;
32527/**
32528 * 取消事件绑定
32529 * @param {*} node DOM节点或任何可以绑定事件的对象
32530 * @param {String} eventName 事件名
32531 * @param {Function} callback 回调方法
32532 * @param {Boolean} [useCapture=false] 是否开启事件捕获优先
32533 */
32534function _off(node, eventName, callback, useCapture) {
32535 /* istanbul ignore else */
32536 if (node.removeEventListener) {
32537 node.removeEventListener(eventName, callback, useCapture || false);
32538 }
32539}
32540
32541/**
32542 * 绑定事件
32543 * @param {*} node DOM节点或任何可以绑定事件的对象
32544 * @param {String} eventName 事件名
32545 * @param {Function} callback 回调方法
32546 * @param {Boolean} useCapture 是否开启事件捕获优先
32547 * @return {Object} 返回的object中包含一个off方法,用于取消事件监听
32548 *
32549 * @example
32550 * const handler = events.on(document.body, 'click', e => {
32551 * // handle click ...
32552 * });
32553 * // 取消事件绑定
32554 * handler.off();
32555 */
32556exports.off = _off;
32557function on(node, eventName, callback, useCapture) {
32558 /* istanbul ignore else */
32559 if (node.addEventListener) {
32560 node.addEventListener(eventName, callback, useCapture || false);
32561 }
32562
32563 return {
32564 off: function off() {
32565 return _off(node, eventName, callback, useCapture);
32566 }
32567 };
32568}
32569
32570/**
32571 * 绑定事件,只执行一次后销毁
32572 * @param {*} node DOM节点或任何可以绑定事件的对象
32573 * @param {String} eventName 事件名
32574 * @param {Function} callback 回调方法
32575 * @param {Boolean} useCapture 是否开启事件捕获优先
32576 * @return {Function} 返回的object中包含一个off方法,用于取消事件监听
32577 */
32578function once(node, eventName, callback, useCapture) {
32579 return on(node, eventName, function __fn() {
32580 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
32581 args[_key] = arguments[_key];
32582 }
32583
32584 callback.apply(this, args);
32585
32586 // 由于addEventListener中的参数options只在Chrome 55、Firefox(Gecko)以上版本支持,故还是用传统的方法实现once
32587 _off(node, eventName, __fn, useCapture);
32588 }, useCapture);
32589}
32590
32591/***/ }),
32592/* 245 */
32593/***/ (function(module, exports, __webpack_require__) {
32594
32595"use strict";
32596
32597
32598exports.__esModule = true;
32599exports.prevent = exports.noop = undefined;
32600exports.makeChain = makeChain;
32601exports.bindCtx = bindCtx;
32602exports.promiseCall = promiseCall;
32603exports.invoke = invoke;
32604exports.renderNode = renderNode;
32605exports.checkDate = checkDate;
32606exports.checkRangeDate = checkRangeDate;
32607
32608var _object = __webpack_require__(36);
32609
32610var _date = __webpack_require__(83);
32611
32612var _date2 = _interopRequireDefault(_date);
32613
32614function _interopRequireDefault(obj) {
32615 return obj && obj.__esModule ? obj : { default: obj };
32616}
32617
32618/**
32619 * 一个空方法,返回入参本身或空对象
32620 */
32621var noop = exports.noop = function noop() {};
32622
32623/**
32624 * 一个空方法,返回false
32625 */
32626var prevent = exports.prevent = function prevent() {
32627 return false;
32628};
32629
32630/**
32631 * 将N个方法合并为一个链式调用的方法
32632 * @return {Function} 合并后的方法
32633 * 参考 https://github.com/react-component/util/
32634 *
32635 * @example
32636 * func.makeChain(this.handleChange, this.props.onChange);
32637 */
32638function makeChain() {
32639 for (var _len = arguments.length, fns = Array(_len), _key = 0; _key < _len; _key++) {
32640 fns[_key] = arguments[_key];
32641 }
32642
32643 if (fns.length === 1) {
32644 return fns[0];
32645 }
32646
32647 return function chainedFunction() {
32648 for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
32649 args[_key2] = arguments[_key2];
32650 }
32651
32652 for (var i = 0, j = fns.length; i < j; i++) {
32653 if (fns[i] && fns[i].apply) {
32654 fns[i].apply(this, args);
32655 }
32656 }
32657 };
32658}
32659
32660/**
32661 * 批量改变方法的上下文
32662 * 此方法在react组件中很有用,在constructor中批量将组件上的方法执行上下文绑定到组件本身
32663 * 注意:用bind改变函数运行的上下文只会生效一次
32664 * @param {Object} ctx 方法挂载的对象以及执行的上下文
32665 * @param {Array<String>} fns 方法名列表
32666 *
32667 * @example
32668 * func.bindCtx(this, ['handleClick', 'handleChange']);
32669 */
32670function bindCtx(ctx, fns, ns) {
32671 if (typeof fns === 'string') {
32672 fns = [fns];
32673 }
32674
32675 // 方法的挂载空间,如果不传,默认与ctx相同
32676 ns = ns || ctx;
32677
32678 fns.forEach(function (fnName) {
32679 // 这里不要添加空方法判断,由调用者保证正确性,否则出了问题无法排查
32680 ns[fnName] = ns[fnName].bind(ctx);
32681 });
32682}
32683
32684/**
32685 * 用于执行回调方法后的逻辑
32686 * @param {*} ret 回调方法执行结果
32687 * @param {Function} success 执行结果返回非false的回调
32688 * @param {Function} [failure=noop] 执行结果返回false的回调
32689 */
32690function promiseCall(ret, success) {
32691 var failure = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : noop;
32692
32693 if ((0, _object.isPromise)(ret)) {
32694 return ret.then(function (result) {
32695 success(result);
32696 return result;
32697 }).catch(function (e) {
32698 failure(e);
32699 // throw e;
32700 });
32701 }
32702
32703 return ret !== false ? success(ret) : failure(ret);
32704}
32705
32706/**
32707 * 方法调用,如果obj对象中存在名为method的方法则调用该方法
32708 * @param {Object} target 目标对象
32709 * @param {string} method 方法名
32710 * @param {Array} args 函数参数列表
32711 * @returns {*} 函数返回值 如果不存在返回undefined
32712 */
32713function invoke(target, method, args) {
32714 var func = target && method in target ? target[method] : undefined;
32715 return func && func.apply(undefined, args);
32716}
32717
32718function renderNode(render, defaultRender) {
32719 var renderProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
32720
32721 var r = render !== undefined ? render : defaultRender;
32722
32723 if (renderProps && !Array.isArray(renderProps)) {
32724 renderProps = [renderProps];
32725 }
32726 return typeof r === 'function' ? r.apply(undefined, renderProps) : r;
32727}
32728
32729/**
32730 * 日期检验:无效值返回 null
32731 * @param {dayjs.ConfigType} value
32732 * @returns {Dayjs | null}
32733 */
32734function checkDate(value) {
32735 /**
32736 * 因为 datejs(undefined) 表示当前时间
32737 * 但是这里期望的是一个空值,即用户不输入值的时候显示为空
32738 */
32739 if (value === undefined) {
32740 value = null;
32741 }
32742
32743 value = (0, _date2.default)(value);
32744 return value.isValid() ? value : null;
32745}
32746
32747/**
32748 * Range 日期检验
32749 * @param {dayjs.ConfigType[]} value 日期值
32750 * @param {number} inputType 输入框类型:开始时间输入框/结束时间输入框
32751 * @param {boolean} disabled 是否禁用
32752 * @param {boolean} strictly 是否严格校验:严格模式下不允许开始时间大于结束时间,在显示确认按键的,用户输入过程可不严格校验
32753 * @returns {Dayjs[] | null[]}
32754 */
32755function checkRangeDate(value, inputType, disabled) {
32756 var strictly = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
32757
32758 var _ref = Array.isArray(value) ? [0, 1].map(function (i) {
32759 return checkDate(value[i]);
32760 }) : [null, null],
32761 begin = _ref[0],
32762 end = _ref[1];
32763
32764 var _ref2 = Array.isArray(disabled) ? disabled : [disabled, disabled],
32765 disabledBegin = _ref2[0],
32766 disabledEnd = _ref2[1];
32767
32768 /**
32769 * 需要清除其中一个时间,优先清除结束时间,下面情况清除开始时间:
32770 * 1. 结束时间被 disabled 而开始时间没有被 disabled
32771 * 2. 开始时间和结束时间都没被 disabled 且当前正在输入是结束时间
32772 */
32773
32774 if (strictly && begin && end && begin.isAfter(end)) {
32775 if (!disabledBegin && disabledEnd ||
32776 // 本来是 (!disabledBegin && !disabledBegin && inputType === DATE_INPUT_TYPE.END)
32777 !disabledBegin && !disabledBegin && inputType === 1) {
32778 return [null, end];
32779 }
32780
32781 return [begin, null];
32782 }
32783
32784 return [begin, end];
32785}
32786
32787/***/ }),
32788/* 246 */
32789/***/ (function(module, exports, __webpack_require__) {
32790
32791!function(t,e){ true?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_customParseFormat=e()}(this,(function(){"use strict";var t={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},e=/(\[[^[]*\])|([-:/.()\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\d\d/,r=/\d\d?/,i=/\d*[^\s\d-_:/()]+/,o={},s=function(t){return(t=+t)+(t>68?1900:2e3)};var a=function(t){return function(e){this[t]=+e}},f=[/[+-]\d\d:?(\d\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if("Z"===t)return 0;var e=t.match(/([+-]|\d\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:"+"===e[0]?-n:n}(t)}],u=function(t){var e=o[t];return e&&(e.indexOf?e:e.s.concat(e.f))},h=function(t,e){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(t.indexOf(r(i,0,e))>-1){n=i>12;break}}else n=t===(e?"pm":"PM");return n},d={A:[i,function(t){this.afternoon=h(t,!1)}],a:[i,function(t){this.afternoon=h(t,!0)}],S:[/\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\d{3}/,function(t){this.milliseconds=+t}],s:[r,a("seconds")],ss:[r,a("seconds")],m:[r,a("minutes")],mm:[r,a("minutes")],H:[r,a("hours")],h:[r,a("hours")],HH:[r,a("hours")],hh:[r,a("hours")],D:[r,a("day")],DD:[n,a("day")],Do:[i,function(t){var e=o.ordinal,n=t.match(/\d+/);if(this.day=n[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\[|\]/g,"")===t&&(this.day=r)}],M:[r,a("month")],MM:[n,a("month")],MMM:[i,function(t){var e=u("months"),n=(u("monthsShort")||e.map((function(t){return t.substr(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(t){var e=u("months").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\d+/,a("year")],YY:[n,function(t){this.year=s(t)}],YYYY:[/\d{4}/,a("year")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\[[^\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,r){var o=r&&r.toUpperCase();return n||i[r]||t[r]||i[o].replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),a=s.length,f=0;f<a;f+=1){var u=s[f],h=d[u],c=h&&h[0],l=h&&h[1];s[f]=l?{regex:c,parser:l}:u.replace(/^\[|\]$/g,"")}return function(t){for(var e={},n=0,r=0;n<a;n+=1){var i=s[n];if("string"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,u=t.substr(r),h=o.exec(u)[0];f.call(e,h),t=t.replace(h,"")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(s=t.parseTwoDigitYear);var r=e.prototype,i=r.parse;r.parse=function(t){var e=t.date,r=t.utc,s=t.args;this.$u=r;var a=s[1];if("string"==typeof a){var f=!0===s[2],u=!0===s[3],h=f||u,d=s[2];u&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(t,e,n){try{if(["x","X"].indexOf(e)>-1)return new Date(("X"===e?1e3:1)*t);var r=c(e)(t),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,u=r.seconds,h=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=u||0,g=h||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(t){return new Date("")}}(e,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),h&&e!=this.format(a)&&(this.$d=new Date("")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(""))}else i.call(this,t)}}}));
32792
32793/***/ }),
32794/* 247 */
32795/***/ (function(module, exports, __webpack_require__) {
32796
32797!function(e,n){ true?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){"use strict";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));
32798
32799/***/ }),
32800/* 248 */
32801/***/ (function(module, exports, __webpack_require__) {
32802
32803!function(n,e){ true?module.exports=e():"function"==typeof define&&define.amd?define(e):(n="undefined"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){"use strict";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.substr(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\[[^\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format("MMMM"):u(n,"months")},monthsShort:function(e){return e?e.format("MMM"):u(n,"monthsShort","months",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format("dddd"):u(n,"weekdays")},weekdaysMin:function(e){return e?e.format("dd"):u(n,"weekdaysMin","weekdays",2)},weekdaysShort:function(e){return e?e.format("ddd"):u(n,"weekdaysShort","weekdays",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),"months")},t.monthsShort=function(){return u(i(),"monthsShort","months",3)},t.weekdays=function(n){return u(i(),"weekdays",null,null,n)},t.weekdaysShort=function(n){return u(i(),"weekdaysShort","weekdays",3,n)},t.weekdaysMin=function(n){return u(i(),"weekdaysMin","weekdays",2,n)}}}));
32804
32805/***/ }),
32806/* 249 */
32807/***/ (function(module, exports, __webpack_require__) {
32808
32809!function(t,n){ true?module.exports=n():"function"==typeof define&&define.amd?define(n):(t="undefined"!=typeof globalThis?globalThis:t||self).dayjs_plugin_quarterOfYear=n()}(this,(function(){"use strict";var t="month",n="quarter";return function(e,i){var r=i.prototype;r.quarter=function(t){return this.$utils().u(t)?Math.ceil((this.month()+1)/3):this.month(this.month()%3+3*(t-1))};var s=r.add;r.add=function(e,i){return e=Number(e),this.$utils().p(i)===n?this.add(3*e,t):s.bind(this)(e,i)};var u=r.startOf;r.startOf=function(e,i){var r=this.$utils(),s=!!r.u(i)||i;if(r.p(e)===n){var o=this.quarter()-1;return s?this.month(3*o).startOf(t).startOf("day"):this.month(3*o+2).endOf(t).endOf("day")}return u.bind(this)(e,i)}}}));
32810
32811/***/ }),
32812/* 250 */
32813/***/ (function(module, exports, __webpack_require__) {
32814
32815!function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_advancedFormat=t()}(this,(function(){"use strict";return function(e,t,r){var n=t.prototype,s=n.format;r.en.ordinal=function(e){var t=["th","st","nd","rd"],r=e%100;return"["+e+(t[(r-20)%10]||t[r]||t[0])+"]"},n.format=function(e){var t=this,r=this.$locale();if(!this.isValid())return s.bind(this)(e);var n=this.$utils(),a=(e||"YYYY-MM-DDTHH:mm:ssZ").replace(/\[([^\]]+)]|Q|wo|ww|w|WW|W|zzz|z|gggg|GGGG|Do|X|x|k{1,2}|S/g,(function(e){switch(e){case"Q":return Math.ceil((t.$M+1)/3);case"Do":return r.ordinal(t.$D);case"gggg":return t.weekYear();case"GGGG":return t.isoWeekYear();case"wo":return r.ordinal(t.week(),"W");case"w":case"ww":return n.s(t.week(),"w"===e?1:2,"0");case"W":case"WW":return n.s(t.isoWeek(),"W"===e?1:2,"0");case"k":case"kk":return n.s(String(0===t.$H?24:t.$H),"k"===e?1:2,"0");case"X":return Math.floor(t.$d.getTime()/1e3);case"x":return t.$d.getTime();case"z":return"["+t.offsetName()+"]";case"zzz":return"["+t.offsetName("long")+"]";default:return e}}));return s.bind(this)(a)}}}));
32816
32817/***/ }),
32818/* 251 */
32819/***/ (function(module, exports, __webpack_require__) {
32820
32821!function(e,t){ true?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_plugin_weekOfYear=t()}(this,(function(){"use strict";var e="week",t="year";return function(i,n,r){var f=n.prototype;f.week=function(i){if(void 0===i&&(i=null),null!==i)return this.add(7*(i-this.week()),"day");var n=this.$locale().yearStart||1;if(11===this.month()&&this.date()>25){var f=r(this).startOf(t).add(1,t).date(n),s=r(this).endOf(e);if(f.isBefore(s))return 1}var a=r(this).startOf(t).date(n).startOf(e).subtract(1,"millisecond"),o=this.diff(a,e,!0);return o<0?r(this).startOf("week").week():Math.ceil(o)},f.weeks=function(e){return void 0===e&&(e=null),this.week(e)}}}));
32822
32823/***/ }),
32824/* 252 */
32825/***/ (function(module, exports, __webpack_require__) {
32826
32827!function(e,_){ true?module.exports=_(__webpack_require__(127)):"function"==typeof define&&define.amd?define(["dayjs"],_):(e="undefined"!=typeof globalThis?globalThis:e||self).dayjs_locale_zh_cn=_(e.dayjs)}(this,(function(e){"use strict";function _(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var t=_(e),d={name:"zh-cn",weekdays:"星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),weekdaysShort:"周日_周一_周二_周三_周四_周五_周六".split("_"),weekdaysMin:"日_一_二_三_四_五_六".split("_"),months:"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),monthsShort:"1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),ordinal:function(e,_){return"W"===_?e+"周":e+"日"},weekStart:1,yearStart:4,formats:{LT:"HH:mm",LTS:"HH:mm:ss",L:"YYYY/MM/DD",LL:"YYYY年M月D日",LLL:"YYYY年M月D日Ah点mm分",LLLL:"YYYY年M月D日ddddAh点mm分",l:"YYYY/M/D",ll:"YYYY年M月D日",lll:"YYYY年M月D日 HH:mm",llll:"YYYY年M月D日dddd HH:mm"},relativeTime:{future:"%s内",past:"%s前",s:"几秒",m:"1 分钟",mm:"%d 分钟",h:"1 小时",hh:"%d 小时",d:"1 天",dd:"%d 天",M:"1 个月",MM:"%d 个月",y:"1 年",yy:"%d 年"},meridiem:function(e,_){var t=100*e+_;return t<600?"凌晨":t<900?"早上":t<1100?"上午":t<1300?"中午":t<1800?"下午":"晚上"}};return t.default.locale(d,null,!0),d}));
32828
32829/***/ }),
32830/* 253 */
32831/***/ (function(module, exports, __webpack_require__) {
32832
32833"use strict";
32834
32835
32836exports.__esModule = true;
32837exports.flex = exports.transition = exports.animation = undefined;
32838
32839var _dom = __webpack_require__(123);
32840
32841var _object = __webpack_require__(36);
32842
32843var animationEndEventNames = {
32844 WebkitAnimation: 'webkitAnimationEnd',
32845 OAnimation: 'oAnimationEnd',
32846 animation: 'animationend'
32847};
32848
32849var transitionEventNames = {
32850 WebkitTransition: 'webkitTransitionEnd',
32851 OTransition: 'oTransitionEnd',
32852 transition: 'transitionend'
32853};
32854
32855/**
32856 * 是否支持某些动效事件,如果支持,返回相应的end事件名
32857 * @private
32858 * @param {Object<String>} names
32859 * @return {Object|false}
32860 */
32861function _supportEnd(names) {
32862 /* istanbul ignore if */
32863 if (!_dom.hasDOM) {
32864 return false;
32865 }
32866
32867 var el = document.createElement('div');
32868 var ret = false;
32869
32870 (0, _object.each)(names, function (val, key) {
32871 /* istanbul ignore else */
32872 if (el.style[key] !== undefined) {
32873 ret = { end: val };
32874 return false;
32875 }
32876 });
32877
32878 return ret;
32879}
32880
32881/**
32882 * 是否支持某些CSS属性
32883 * @private
32884 * @param {Object<Array<String>>} names
32885 * @return {Boolean} is support
32886 */
32887function _supportCSS(names) {
32888 /* istanbul ignore if */
32889 if (!_dom.hasDOM) {
32890 return false;
32891 }
32892
32893 var el = document.createElement('div');
32894 var ret = false;
32895
32896 (0, _object.each)(names, function (val, key) {
32897 (0, _object.each)(val, function (item) {
32898 try {
32899 el.style[key] = item;
32900 ret = ret || el.style[key] === item;
32901 } catch (e) {
32902 // It will be throw error when set unknown property under IE8
32903 }
32904 return !ret; // 如果有一个支持就返回false,后面不需要再判断
32905 });
32906
32907 return !ret;
32908 });
32909
32910 return ret;
32911}
32912
32913/**
32914 * 是否支持animation以及动画结束事件名
32915 * @type {Object|false}
32916 * @property {String} end 动画结束事件名
32917 */
32918var animation = exports.animation = _supportEnd(animationEndEventNames);
32919
32920/**
32921 * 是否支持transition以及过滤效果结束事件名
32922 * @type {Object|false}
32923 * @property {String} end 过渡效果结束事件名
32924 */
32925var transition = exports.transition = _supportEnd(transitionEventNames);
32926
32927/**
32928 * 是否支持flex属性
32929 * @type {Boolean}
32930 */
32931var flex = exports.flex = _supportCSS({
32932 display: ['flex', '-webkit-flex', '-moz-flex', '-ms-flexbox']
32933});
32934
32935/***/ }),
32936/* 254 */
32937/***/ (function(module, exports, __webpack_require__) {
32938
32939"use strict";
32940
32941
32942exports.__esModule = true;
32943exports.getFocusNodeList = getFocusNodeList;
32944exports.saveLastFocusNode = saveLastFocusNode;
32945exports.clearLastFocusNode = clearLastFocusNode;
32946exports.backLastFocusNode = backLastFocusNode;
32947exports.limitTabRange = limitTabRange;
32948
32949var _keycode = __webpack_require__(128);
32950
32951var _keycode2 = _interopRequireDefault(_keycode);
32952
32953var _object = __webpack_require__(36);
32954
32955function _interopRequireDefault(obj) {
32956 return obj && obj.__esModule ? obj : { default: obj };
32957}
32958
32959/**
32960 * 用于切换页面元素的焦点
32961 */
32962
32963/**
32964 * 元素是否可见
32965 * @private
32966 * @param {Element} node
32967 * @return {Boolean}
32968 */
32969function _isVisible(node) {
32970 while (node) {
32971 var _node = node,
32972 nodeName = _node.nodeName;
32973
32974 if (nodeName === 'BODY' || nodeName === 'HTML') {
32975 break;
32976 }
32977 if (node.style.display === 'none' || node.style.visibility === 'hidden') {
32978 return false;
32979 }
32980 node = node.parentNode;
32981 }
32982 return true;
32983}
32984
32985/**
32986 * 元素是否可以获取焦点
32987 * @private
32988 * @param {Element} node
32989 * @return {Boolean}
32990 */
32991function _isFocusable(node) {
32992 var nodeName = node.nodeName.toLowerCase();
32993 var tabIndex = parseInt(node.getAttribute('tabindex'), 10);
32994 var hasTabIndex = !isNaN(tabIndex) && tabIndex > -1;
32995
32996 if (_isVisible(node)) {
32997 if (nodeName === 'input') {
32998 return !node.disabled && node.type !== 'hidden';
32999 } else if (['select', 'textarea', 'button'].indexOf(nodeName) > -1) {
33000 return !node.disabled;
33001 } else if (nodeName === 'a') {
33002 return node.getAttribute('href') || hasTabIndex;
33003 } else {
33004 return hasTabIndex;
33005 }
33006 }
33007 return false;
33008}
33009
33010/**
33011 * 列出能获取焦点的子节点
33012 * @param {Element} node 容器节点
33013 * @return {Array<Element>}
33014 */
33015function getFocusNodeList(node) {
33016 var res = [];
33017 var nodeList = node.querySelectorAll('*');
33018
33019 (0, _object.each)(nodeList, function (item) {
33020 if (_isFocusable(item)) {
33021 var method = item.getAttribute('data-auto-focus') ? 'unshift' : 'push';
33022 res[method](item);
33023 }
33024 });
33025
33026 if (_isFocusable(node)) {
33027 res.unshift(node);
33028 }
33029
33030 return res;
33031}
33032
33033// 用于记录上一次获得焦点的无素
33034var lastFocusElement = null;
33035
33036/**
33037 * 保存最近一次获得焦点的无素
33038 */
33039function saveLastFocusNode() {
33040 lastFocusElement = document.activeElement;
33041}
33042
33043/**
33044 * 清除焦点记录
33045 */
33046function clearLastFocusNode() {
33047 lastFocusElement = null;
33048}
33049
33050/**
33051 * 尝试将焦点切换到上一个元素
33052 */
33053function backLastFocusNode() {
33054 if (lastFocusElement) {
33055 try {
33056 // 元素可能已经被移动了
33057 lastFocusElement.focus();
33058 } catch (e) {
33059 // ignore ...
33060 }
33061 }
33062}
33063
33064/**
33065 * 在限制的范围内切换焦点
33066 * @param {Element} node 容器节点
33067 * @param {Event} e 键盘事件
33068 */
33069function limitTabRange(node, e) {
33070 if (e.keyCode === _keycode2.default.TAB) {
33071 var tabNodeList = getFocusNodeList(node);
33072 var maxIndex = tabNodeList.length - 1;
33073 var index = tabNodeList.indexOf(document.activeElement);
33074
33075 if (index > -1) {
33076 var targetIndex = index + (e.shiftKey ? -1 : 1);
33077 targetIndex < 0 && (targetIndex = maxIndex);
33078 targetIndex > maxIndex && (targetIndex = 0);
33079 tabNodeList[targetIndex].focus();
33080 e.preventDefault();
33081 }
33082 }
33083}
33084
33085/***/ }),
33086/* 255 */
33087/***/ (function(module, exports, __webpack_require__) {
33088
33089"use strict";
33090
33091
33092exports.__esModule = true;
33093
33094var _typeof2 = __webpack_require__(14);
33095
33096var _typeof3 = _interopRequireDefault(_typeof2);
33097
33098exports.randomId = randomId;
33099exports.escapeForId = escapeForId;
33100
33101function _interopRequireDefault(obj) {
33102 return obj && obj.__esModule ? obj : { default: obj };
33103}
33104
33105/**
33106 * Generate a string to be used for HTML id attributes
33107 *
33108 * @param {String} prefix - prefix text for the id. Important because without one, eventually there will be 2 elements with the same id on the same page
33109 * @param {Number} max - range for the random number generator. Defaults to 1,000,000, but can be set higher if necessary.
33110 * @returns {String}
33111 */
33112function randomId(prefix) {
33113 var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000000;
33114
33115 var rand = Math.ceil(Math.random() * max);
33116
33117 return prefix ? escapeForId(prefix) + '-' + rand : rand.toString(10);
33118}
33119
33120/**
33121 * Replace characters not allowed for HTML id attributes
33122 *
33123 * @param {String} text
33124 * @returns {String}
33125 */
33126function escapeForId(text) {
33127 if (!text) {
33128 return '';
33129 }
33130
33131 if ((typeof text === 'undefined' ? 'undefined' : (0, _typeof3.default)(text)) === 'object') {
33132 text = JSON.stringify(text);
33133 } else if (typeof text !== 'string') {
33134 text = String(text);
33135 }
33136
33137 return text.replace(/['"]/gm, '').replace(/[\s'"]/gm, '-');
33138}
33139
33140/***/ }),
33141/* 256 */
33142/***/ (function(module, exports, __webpack_require__) {
33143
33144"use strict";
33145
33146
33147exports.__esModule = true;
33148var attributes = 'accept acceptCharset accessKey action allowFullScreen allowTransparency\nalt async autoComplete autoFocus autoPlay capture cellPadding cellSpacing challenge\ncharSet checked classID className colSpan cols content contentEditable contextMenu\ncontrols coords crossOrigin data dateTime default defer dir disabled download draggable\nencType form formAction formEncType formMethod formNoValidate formTarget frameBorder\nheaders height hidden high href hrefLang htmlFor httpEquiv icon id inputMode integrity\nis keyParams keyType kind label lang list loop low manifest marginHeight marginWidth max maxLength media\nmediaGroup method min minLength multiple muted name noValidate nonce open\noptimum pattern placeholder poster preload radioGroup readOnly rel required\nreversed role rowSpan rows sandbox scope scoped scrolling seamless selected\nshape size sizes span spellCheck src srcDoc srcLang srcSet start step style\nsummary tabIndex target title type useMap value width wmode wrap'.replace(/\s+/g, ' ').replace(/\t|\n|\r/g, '').split(' ');
33149
33150var eventsName = 'onCopy onCut onPaste onCompositionEnd onCompositionStart onCompositionUpdate onKeyDown\n onKeyPress onKeyUp onFocus onBlur onChange onInput onSubmit onClick onContextMenu onDoubleClick\n onDrag onDragEnd onDragEnter onDragExit onDragLeave onDragOver onDragStart onDrop onMouseDown\n onMouseEnter onMouseLeave onMouseMove onMouseOut onMouseOver onMouseUp onSelect onTouchCancel\n onTouchEnd onTouchMove onTouchStart onScroll onWheel onAbort onCanPlay onCanPlayThrough\n onDurationChange onEmptied onEncrypted onEnded onError onLoadedData onLoadedMetadata\n onLoadStart onPause onPlay onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting onLoad onError'.replace(/\s+/g, ' ').replace(/\t|\n|\r/g, '').split(' ');
33151
33152var attrsPrefix = ['data-', 'aria-'];
33153/**
33154 * 过滤掉无效的透传到 DOM 属性
33155 */
33156
33157exports.default = function (props) {
33158 var attrs = {};
33159
33160 var _loop = function _loop(key) {
33161 if (attributes.indexOf(key) > -1 || eventsName.indexOf(key) > -1) {
33162 attrs[key] = props[key];
33163 } else if (attrsPrefix.map(function (prefix) {
33164 return new RegExp('^' + prefix);
33165 }).some(function (reg) {
33166 return key.replace(reg, '') !== key;
33167 })) {
33168 attrs[key] = props[key];
33169 }
33170 };
33171
33172 for (var key in props) {
33173 _loop(key);
33174 }
33175 return attrs;
33176};
33177
33178module.exports = exports['default'];
33179
33180/***/ }),
33181/* 257 */
33182/***/ (function(module, exports, __webpack_require__) {
33183
33184"use strict";
33185
33186
33187exports.__esModule = true;
33188
33189var _objectWithoutProperties2 = __webpack_require__(8);
33190
33191var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
33192
33193var _classCallCheck2 = __webpack_require__(2);
33194
33195var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
33196
33197var _possibleConstructorReturn2 = __webpack_require__(3);
33198
33199var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
33200
33201var _inherits2 = __webpack_require__(4);
33202
33203var _inherits3 = _interopRequireDefault(_inherits2);
33204
33205var _extends2 = __webpack_require__(1);
33206
33207var _extends3 = _interopRequireDefault(_extends2);
33208
33209exports.initLocales = initLocales;
33210exports.setLanguage = setLanguage;
33211exports.setLocale = setLocale;
33212exports.setDirection = setDirection;
33213exports.getLocale = getLocale;
33214exports.getLanguage = getLanguage;
33215exports.getDirection = getDirection;
33216exports.config = config;
33217
33218var _react = __webpack_require__(0);
33219
33220var _react2 = _interopRequireDefault(_react);
33221
33222var _propTypes = __webpack_require__(5);
33223
33224var _propTypes2 = _interopRequireDefault(_propTypes);
33225
33226var _hoistNonReactStatics = __webpack_require__(258);
33227
33228var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
33229
33230var _util = __webpack_require__(6);
33231
33232var _getContextProps = __webpack_require__(130);
33233
33234var _getContextProps2 = _interopRequireDefault(_getContextProps);
33235
33236var _errorBoundary = __webpack_require__(131);
33237
33238var _errorBoundary2 = _interopRequireDefault(_errorBoundary);
33239
33240function _interopRequireDefault(obj) {
33241 return obj && obj.__esModule ? obj : { default: obj };
33242}
33243
33244var shallowEqual = _util.obj.shallowEqual;
33245
33246function getDisplayName(Component) {
33247 return Component.displayName || Component.name || 'Component';
33248}
33249
33250var globalLocales = void 0;
33251var currentGlobalLanguage = 'zh-cn';
33252var currentGlobalLocale = {};
33253var currentGlobalRtl = void 0;
33254
33255function initLocales(locales) {
33256 globalLocales = locales;
33257
33258 if (locales) {
33259 currentGlobalLocale = locales[currentGlobalLanguage];
33260
33261 if (typeof currentGlobalRtl !== 'boolean') {
33262 currentGlobalRtl = currentGlobalLocale && currentGlobalLocale.rtl;
33263 }
33264 }
33265}
33266
33267function setLanguage(language) {
33268 if (globalLocales) {
33269 currentGlobalLanguage = language;
33270 currentGlobalLocale = globalLocales[language];
33271
33272 if (typeof currentGlobalRtl !== 'boolean') {
33273 currentGlobalRtl = currentGlobalLocale && currentGlobalLocale.rtl;
33274 }
33275 }
33276}
33277
33278function setLocale(locale) {
33279 currentGlobalLocale = (0, _extends3.default)({}, globalLocales ? globalLocales[currentGlobalLanguage] : {}, locale);
33280
33281 if (typeof currentGlobalRtl !== 'boolean') {
33282 currentGlobalRtl = currentGlobalLocale && currentGlobalLocale.rtl;
33283 }
33284}
33285
33286function setDirection(dir) {
33287 currentGlobalRtl = dir === 'rtl';
33288}
33289
33290function getLocale() {
33291 return currentGlobalLocale;
33292}
33293
33294function getLanguage() {
33295 return currentGlobalLanguage;
33296}
33297
33298function getDirection() {
33299 return currentGlobalRtl;
33300}
33301
33302function config(Component) {
33303 var _class, _temp;
33304
33305 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
33306
33307 // 非 forwardRef 创建的 class component
33308 if (_util.obj.isClassComponent(Component) && Component.prototype.shouldComponentUpdate === undefined) {
33309 // class component: 通过定义 shouldComponentUpdate 改写成 pure component, 有refs
33310 Component.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState) {
33311 if (this.props.pure) {
33312 return !shallowEqual(this.props, nextProps) || !shallowEqual(this.state, nextState);
33313 }
33314
33315 return true;
33316 };
33317 }
33318
33319 var ConfigedComponent = (_temp = _class = function (_React$Component) {
33320 (0, _inherits3.default)(ConfigedComponent, _React$Component);
33321
33322 function ConfigedComponent(props, context) {
33323 (0, _classCallCheck3.default)(this, ConfigedComponent);
33324
33325 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
33326
33327 _this._getInstance = _this._getInstance.bind(_this);
33328 _this._deprecated = _this._deprecated.bind(_this);
33329 return _this;
33330 }
33331
33332 ConfigedComponent.prototype._getInstance = function _getInstance(ref) {
33333 var _this2 = this;
33334
33335 this._instance = ref;
33336
33337 if (this._instance && options.exportNames) {
33338 options.exportNames.forEach(function (name) {
33339 var field = _this2._instance[name];
33340 if (typeof field === 'function') {
33341 _this2[name] = field.bind(_this2._instance);
33342 } else {
33343 _this2[name] = field;
33344 }
33345 });
33346 }
33347 };
33348
33349 ConfigedComponent.prototype._deprecated = function _deprecated() {
33350 if (this.context.nextWarning !== false) {
33351 _util.log.deprecated.apply(_util.log, arguments);
33352 }
33353 };
33354
33355 ConfigedComponent.prototype.getInstance = function getInstance() {
33356 return this._instance;
33357 };
33358
33359 ConfigedComponent.prototype.render = function render() {
33360 var _props = this.props,
33361 prefix = _props.prefix,
33362 locale = _props.locale,
33363 defaultPropsConfig = _props.defaultPropsConfig,
33364 pure = _props.pure,
33365 rtl = _props.rtl,
33366 device = _props.device,
33367 popupContainer = _props.popupContainer,
33368 errorBoundary = _props.errorBoundary,
33369 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'locale', 'defaultPropsConfig', 'pure', 'rtl', 'device', 'popupContainer', 'errorBoundary']);
33370 var _context = this.context,
33371 nextPrefix = _context.nextPrefix,
33372 _context$nextLocale = _context.nextLocale,
33373 nextLocale = _context$nextLocale === undefined ? {} : _context$nextLocale,
33374 _context$nextDefaultP = _context.nextDefaultPropsConfig,
33375 nextDefaultPropsConfig = _context$nextDefaultP === undefined ? {} : _context$nextDefaultP,
33376 nextPure = _context.nextPure,
33377 nextRtl = _context.nextRtl,
33378 nextDevice = _context.nextDevice,
33379 nextPopupContainer = _context.nextPopupContainer,
33380 nextErrorBoundary = _context.nextErrorBoundary;
33381
33382 var displayName = options.componentName || getDisplayName(Component);
33383 var contextProps = (0, _getContextProps2.default)({
33384 prefix: prefix,
33385 locale: locale,
33386 defaultPropsConfig: defaultPropsConfig,
33387 pure: pure,
33388 device: device,
33389 popupContainer: popupContainer,
33390 rtl: rtl,
33391 errorBoundary: errorBoundary
33392 }, {
33393 nextPrefix: nextPrefix,
33394 nextLocale: (0, _extends3.default)({}, currentGlobalLocale, nextLocale),
33395 nextDefaultPropsConfig: nextDefaultPropsConfig,
33396 nextPure: nextPure,
33397 nextDevice: nextDevice,
33398 nextPopupContainer: nextPopupContainer,
33399 nextRtl: typeof nextRtl === 'boolean' ? nextRtl : currentGlobalRtl === true ? true : undefined,
33400 nextErrorBoundary: nextErrorBoundary
33401 }, displayName);
33402
33403 // errorBoundary is only for <ErrorBoundary>
33404 var newContextProps = ['prefix', 'locale', 'pure', 'rtl', 'device', 'popupContainer'].reduce(function (ret, name) {
33405 if (typeof contextProps[name] !== 'undefined') {
33406 ret[name] = contextProps[name];
33407 }
33408 return ret;
33409 }, {});
33410
33411 if ('pure' in newContextProps && newContextProps.pure) {
33412 _util.log.warning('pure of ConfigProvider is deprecated, use Function Component or React.PureComponent');
33413 }
33414
33415 // 对于两个真正消费 popupContainer 的组件来说,正确的名字是 container,
33416 if ('popupContainer' in newContextProps && this.props.container === undefined && ['Overlay', 'Popup'].indexOf(displayName) > -1) {
33417 newContextProps.container = newContextProps.popupContainer;
33418 delete newContextProps.popupContainer;
33419 }
33420
33421 var newOthers = options.transform ? options.transform(others, this._deprecated) : others;
33422
33423 var content = _react2.default.createElement(Component, (0, _extends3.default)({}, contextProps.defaultPropsConfig[displayName], newOthers, newContextProps, {
33424 ref: _util.obj.isClassComponent(Component) ? this._getInstance : null
33425 }));
33426
33427 var _contextProps$errorBo = contextProps.errorBoundary,
33428 open = _contextProps$errorBo.open,
33429 othersBoundary = (0, _objectWithoutProperties3.default)(_contextProps$errorBo, ['open']);
33430
33431 return open ? _react2.default.createElement(_errorBoundary2.default, othersBoundary, content) : content;
33432 };
33433
33434 return ConfigedComponent;
33435 }(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, Component.propTypes || {}, {
33436 prefix: _propTypes2.default.string,
33437 locale: _propTypes2.default.object,
33438 defaultPropsConfig: _propTypes2.default.object,
33439 pure: _propTypes2.default.bool,
33440 rtl: _propTypes2.default.bool,
33441 device: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
33442 popupContainer: _propTypes2.default.any,
33443 errorBoundary: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object])
33444 }), _class.contextTypes = (0, _extends3.default)({}, Component.contextTypes || {}, {
33445 nextPrefix: _propTypes2.default.string,
33446 nextLocale: _propTypes2.default.object,
33447 nextDefaultPropsConfig: _propTypes2.default.object,
33448 nextPure: _propTypes2.default.bool,
33449 nextRtl: _propTypes2.default.bool,
33450 nextWarning: _propTypes2.default.bool,
33451 nextDevice: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
33452 nextPopupContainer: _propTypes2.default.any,
33453 nextErrorBoundary: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object])
33454 }), _temp);
33455 ConfigedComponent.displayName = 'ConfigedComponent';
33456
33457 ConfigedComponent.displayName = 'Config(' + getDisplayName(Component) + ')';
33458
33459 (0, _hoistNonReactStatics2.default)(ConfigedComponent, Component);
33460
33461 return ConfigedComponent;
33462}
33463
33464/***/ }),
33465/* 258 */
33466/***/ (function(module, exports, __webpack_require__) {
33467
33468"use strict";
33469
33470
33471var reactIs = __webpack_require__(259);
33472
33473/**
33474 * Copyright 2015, Yahoo! Inc.
33475 * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.
33476 */
33477var REACT_STATICS = {
33478 childContextTypes: true,
33479 contextType: true,
33480 contextTypes: true,
33481 defaultProps: true,
33482 displayName: true,
33483 getDefaultProps: true,
33484 getDerivedStateFromError: true,
33485 getDerivedStateFromProps: true,
33486 mixins: true,
33487 propTypes: true,
33488 type: true
33489};
33490var KNOWN_STATICS = {
33491 name: true,
33492 length: true,
33493 prototype: true,
33494 caller: true,
33495 callee: true,
33496 arguments: true,
33497 arity: true
33498};
33499var FORWARD_REF_STATICS = {
33500 '$$typeof': true,
33501 render: true,
33502 defaultProps: true,
33503 displayName: true,
33504 propTypes: true
33505};
33506var MEMO_STATICS = {
33507 '$$typeof': true,
33508 compare: true,
33509 defaultProps: true,
33510 displayName: true,
33511 propTypes: true,
33512 type: true
33513};
33514var TYPE_STATICS = {};
33515TYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;
33516TYPE_STATICS[reactIs.Memo] = MEMO_STATICS;
33517
33518function getStatics(component) {
33519 // React v16.11 and below
33520 if (reactIs.isMemo(component)) {
33521 return MEMO_STATICS;
33522 } // React v16.12 and above
33523
33524
33525 return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;
33526}
33527
33528var defineProperty = Object.defineProperty;
33529var getOwnPropertyNames = Object.getOwnPropertyNames;
33530var getOwnPropertySymbols = Object.getOwnPropertySymbols;
33531var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
33532var getPrototypeOf = Object.getPrototypeOf;
33533var objectPrototype = Object.prototype;
33534function hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {
33535 if (typeof sourceComponent !== 'string') {
33536 // don't hoist over string (html) components
33537 if (objectPrototype) {
33538 var inheritedComponent = getPrototypeOf(sourceComponent);
33539
33540 if (inheritedComponent && inheritedComponent !== objectPrototype) {
33541 hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);
33542 }
33543 }
33544
33545 var keys = getOwnPropertyNames(sourceComponent);
33546
33547 if (getOwnPropertySymbols) {
33548 keys = keys.concat(getOwnPropertySymbols(sourceComponent));
33549 }
33550
33551 var targetStatics = getStatics(targetComponent);
33552 var sourceStatics = getStatics(sourceComponent);
33553
33554 for (var i = 0; i < keys.length; ++i) {
33555 var key = keys[i];
33556
33557 if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {
33558 var descriptor = getOwnPropertyDescriptor(sourceComponent, key);
33559
33560 try {
33561 // Avoid failures from read-only properties
33562 defineProperty(targetComponent, key, descriptor);
33563 } catch (e) {}
33564 }
33565 }
33566 }
33567
33568 return targetComponent;
33569}
33570
33571module.exports = hoistNonReactStatics;
33572
33573
33574/***/ }),
33575/* 259 */
33576/***/ (function(module, exports, __webpack_require__) {
33577
33578"use strict";
33579
33580
33581if (true) {
33582 module.exports = __webpack_require__(260);
33583} else {
33584 module.exports = require('./cjs/react-is.development.js');
33585}
33586
33587
33588/***/ }),
33589/* 260 */
33590/***/ (function(module, exports, __webpack_require__) {
33591
33592"use strict";
33593/** @license React v16.13.1
33594 * react-is.production.min.js
33595 *
33596 * Copyright (c) Facebook, Inc. and its affiliates.
33597 *
33598 * This source code is licensed under the MIT license found in the
33599 * LICENSE file in the root directory of this source tree.
33600 */
33601
33602var b="function"===typeof Symbol&&Symbol.for,c=b?Symbol.for("react.element"):60103,d=b?Symbol.for("react.portal"):60106,e=b?Symbol.for("react.fragment"):60107,f=b?Symbol.for("react.strict_mode"):60108,g=b?Symbol.for("react.profiler"):60114,h=b?Symbol.for("react.provider"):60109,k=b?Symbol.for("react.context"):60110,l=b?Symbol.for("react.async_mode"):60111,m=b?Symbol.for("react.concurrent_mode"):60111,n=b?Symbol.for("react.forward_ref"):60112,p=b?Symbol.for("react.suspense"):60113,q=b?
33603Symbol.for("react.suspense_list"):60120,r=b?Symbol.for("react.memo"):60115,t=b?Symbol.for("react.lazy"):60116,v=b?Symbol.for("react.block"):60121,w=b?Symbol.for("react.fundamental"):60117,x=b?Symbol.for("react.responder"):60118,y=b?Symbol.for("react.scope"):60119;
33604function z(a){if("object"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;
33605exports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return"object"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};
33606exports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};
33607exports.isValidElementType=function(a){return"string"===typeof a||"function"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||"object"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;
33608
33609
33610/***/ }),
33611/* 261 */
33612/***/ (function(module, exports, __webpack_require__) {
33613
33614"use strict";
33615
33616
33617exports.__esModule = true;
33618
33619var _propTypes = __webpack_require__(5);
33620
33621var _propTypes2 = _interopRequireDefault(_propTypes);
33622
33623function _interopRequireDefault(obj) {
33624 return obj && obj.__esModule ? obj : { default: obj };
33625}
33626
33627/**
33628 * Creates an object with the same values as object and keys
33629 * generated by running each own enumerable string keyed property
33630 * of object thru iteratee.
33631 * @param {Object} obj
33632 * @param {Function} fn
33633 * @return {Object}
33634 */
33635var mapKeys = function mapKeys(obj, fn) {
33636 var result = {};
33637 for (var key in obj) {
33638 if (Object.prototype.hasOwnProperty.call(obj, key)) {
33639 var value = obj[key];
33640 var newKey = fn(key, value);
33641 result[newKey] = value;
33642 }
33643 }
33644
33645 return result;
33646};
33647
33648/**
33649 * Replace specific key with prefix `next`
33650 * and lowercase first character of the result.
33651 * @param {String} key
33652 * @return {String}
33653 */
33654var replaceKey = function replaceKey(key) {
33655 return key.replace(/^(next)([A-Z])/, function (match, p1, p2) {
33656 return p2.toLowerCase();
33657 });
33658};
33659
33660/**
33661 * @param {Object} source
33662 * @return {Object}
33663 */
33664var transformContext = function transformContext(source) {
33665 return mapKeys(source, replaceKey);
33666};
33667
33668/**
33669 * Consumer
33670 * @param {Object} prop
33671 * @param {Object} context
33672 */
33673var Consumer = function Consumer(_ref, context) {
33674 var children = _ref.children;
33675 return typeof children === 'function' ? children(transformContext(context)) : null;
33676};
33677
33678/**
33679 * PropTypes
33680 * @type {Object}
33681 * @static
33682 */
33683Consumer.propTypes = {
33684 // Render context as function
33685 // Function(context: object): ReactElement
33686 children: _propTypes2.default.func
33687};
33688
33689/**
33690 * ContextTypes (legacy context)
33691 * @type {Object}
33692 * @static
33693 */
33694Consumer.contextTypes = {
33695 nextPrefix: _propTypes2.default.string,
33696 nextLocale: _propTypes2.default.object,
33697 nextPure: _propTypes2.default.bool,
33698 newRtl: _propTypes2.default.bool,
33699 nextWarning: _propTypes2.default.bool,
33700 nextDevice: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
33701 nextPopupContainer: _propTypes2.default.any
33702};
33703
33704exports.default = Consumer;
33705module.exports = exports['default'];
33706
33707/***/ }),
33708/* 262 */
33709/***/ (function(module, exports, __webpack_require__) {
33710
33711"use strict";
33712
33713
33714exports.__esModule = true;
33715
33716var _classCallCheck2 = __webpack_require__(2);
33717
33718var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
33719
33720function _interopRequireDefault(obj) {
33721 return obj && obj.__esModule ? obj : { default: obj };
33722}
33723
33724var Cache = function () {
33725 function Cache() {
33726 (0, _classCallCheck3.default)(this, Cache);
33727
33728 this._root = null;
33729 this._store = new Map();
33730 }
33731
33732 Cache.prototype.empty = function empty() {
33733 return this._store.size === 0;
33734 };
33735
33736 Cache.prototype.has = function has(key) {
33737 return this._store.has(key);
33738 };
33739
33740 Cache.prototype.get = function get(key, defaultValue) {
33741 var res = this.has(key) ? this._store.get(key) : this.root();
33742 return typeof res === 'undefined' || res === null ? defaultValue : res;
33743 };
33744
33745 Cache.prototype.add = function add(key, value) {
33746 if (this.empty()) {
33747 this._root = key;
33748 }
33749 this._store.set(key, value);
33750 };
33751
33752 Cache.prototype.update = function update(key, value) {
33753 if (this.has(key)) {
33754 this._store.set(key, value);
33755 }
33756 };
33757
33758 Cache.prototype.remove = function remove(key) {
33759 this._store.delete(key);
33760
33761 if (key === this._root) {
33762 var maps = this._store.keys();
33763 // 如果当前销毁的实例刚好是root,那么从map中取下一个加入的节点当作root
33764 var nextkey = maps.next().value;
33765 this._root = nextkey;
33766 }
33767 };
33768
33769 Cache.prototype.clear = function clear() {
33770 this._store.clear();
33771 };
33772
33773 Cache.prototype.root = function root() {
33774 return this._store.get(this._root);
33775 };
33776
33777 return Cache;
33778}();
33779
33780exports.default = Cache;
33781module.exports = exports['default'];
33782
33783/***/ }),
33784/* 263 */
33785/***/ (function(module, exports, __webpack_require__) {
33786
33787"use strict";
33788
33789
33790exports.__esModule = true;
33791exports.getScroll = getScroll;
33792exports.getRect = getRect;
33793exports.getNodeHeight = getNodeHeight;
33794function getScroll(node, isVertical) {
33795 if (typeof window === 'undefined') {
33796 return 0;
33797 }
33798 var windowProp = isVertical ? 'pageYOffset' : 'pageXOffset';
33799 var elementProp = isVertical ? 'scrollTop' : 'scrollLeft';
33800 return node === window ? node[windowProp] : node[elementProp];
33801}
33802
33803function getRect(node) {
33804 return node !== window ? node.getBoundingClientRect() : { top: 0, left: 0, bottom: 0 };
33805}
33806
33807function getNodeHeight(node) {
33808 if (!node) {
33809 return 0;
33810 }
33811 if (node === window) {
33812 return window.innerHeight;
33813 }
33814 return node.clientHeight;
33815}
33816
33817/***/ }),
33818/* 264 */
33819/***/ (function(module, exports, __webpack_require__) {
33820
33821"use strict";
33822
33823
33824exports.__esModule = true;
33825exports.default = void 0;
33826
33827var PropTypes = _interopRequireWildcard(__webpack_require__(5));
33828
33829var _addClass = _interopRequireDefault(__webpack_require__(265));
33830
33831var _removeClass = _interopRequireDefault(__webpack_require__(267));
33832
33833var _react = _interopRequireDefault(__webpack_require__(0));
33834
33835var _Transition = _interopRequireDefault(__webpack_require__(133));
33836
33837var _PropTypes = __webpack_require__(134);
33838
33839function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
33840
33841function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
33842
33843function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33844
33845function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
33846
33847var addClass = function addClass(node, classes) {
33848 return node && classes && classes.split(' ').forEach(function (c) {
33849 return (0, _addClass.default)(node, c);
33850 });
33851};
33852
33853var removeClass = function removeClass(node, classes) {
33854 return node && classes && classes.split(' ').forEach(function (c) {
33855 return (0, _removeClass.default)(node, c);
33856 });
33857};
33858/**
33859 * A transition component inspired by the excellent
33860 * [ng-animate](http://www.nganimate.org/) library, you should use it if you're
33861 * using CSS transitions or animations. It's built upon the
33862 * [`Transition`](https://reactcommunity.org/react-transition-group/transition)
33863 * component, so it inherits all of its props.
33864 *
33865 * `CSSTransition` applies a pair of class names during the `appear`, `enter`,
33866 * and `exit` states of the transition. The first class is applied and then a
33867 * second `*-active` class in order to activate the CSSS transition. After the
33868 * transition, matching `*-done` class names are applied to persist the
33869 * transition state.
33870 *
33871 * ```jsx
33872 * function App() {
33873 * const [inProp, setInProp] = useState(false);
33874 * return (
33875 * <div>
33876 * <CSSTransition in={inProp} timeout={200} classNames="my-node">
33877 * <div>
33878 * {"I'll receive my-node-* classes"}
33879 * </div>
33880 * </CSSTransition>
33881 * <button type="button" onClick={() => setInProp(true)}>
33882 * Click to Enter
33883 * </button>
33884 * </div>
33885 * );
33886 * }
33887 * ```
33888 *
33889 * When the `in` prop is set to `true`, the child component will first receive
33890 * the class `example-enter`, then the `example-enter-active` will be added in
33891 * the next tick. `CSSTransition` [forces a
33892 * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)
33893 * between before adding the `example-enter-active`. This is an important trick
33894 * because it allows us to transition between `example-enter` and
33895 * `example-enter-active` even though they were added immediately one after
33896 * another. Most notably, this is what makes it possible for us to animate
33897 * _appearance_.
33898 *
33899 * ```css
33900 * .my-node-enter {
33901 * opacity: 0;
33902 * }
33903 * .my-node-enter-active {
33904 * opacity: 1;
33905 * transition: opacity 200ms;
33906 * }
33907 * .my-node-exit {
33908 * opacity: 1;
33909 * }
33910 * .my-node-exit-active {
33911 * opacity: 0;
33912 * transition: opacity: 200ms;
33913 * }
33914 * ```
33915 *
33916 * `*-active` classes represent which styles you want to animate **to**.
33917 */
33918
33919
33920var CSSTransition =
33921/*#__PURE__*/
33922function (_React$Component) {
33923 _inheritsLoose(CSSTransition, _React$Component);
33924
33925 function CSSTransition() {
33926 var _this;
33927
33928 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
33929 args[_key] = arguments[_key];
33930 }
33931
33932 _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;
33933
33934 _this.onEnter = function (node, appearing) {
33935 var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),
33936 className = _this$getClassNames.className;
33937
33938 _this.removeClasses(node, 'exit');
33939
33940 addClass(node, className);
33941
33942 if (_this.props.onEnter) {
33943 _this.props.onEnter(node, appearing);
33944 }
33945 };
33946
33947 _this.onEntering = function (node, appearing) {
33948 var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),
33949 activeClassName = _this$getClassNames2.activeClassName;
33950
33951 _this.reflowAndAddClass(node, activeClassName);
33952
33953 if (_this.props.onEntering) {
33954 _this.props.onEntering(node, appearing);
33955 }
33956 };
33957
33958 _this.onEntered = function (node, appearing) {
33959 var appearClassName = _this.getClassNames('appear').doneClassName;
33960
33961 var enterClassName = _this.getClassNames('enter').doneClassName;
33962
33963 var doneClassName = appearing ? appearClassName + " " + enterClassName : enterClassName;
33964
33965 _this.removeClasses(node, appearing ? 'appear' : 'enter');
33966
33967 addClass(node, doneClassName);
33968
33969 if (_this.props.onEntered) {
33970 _this.props.onEntered(node, appearing);
33971 }
33972 };
33973
33974 _this.onExit = function (node) {
33975 var _this$getClassNames3 = _this.getClassNames('exit'),
33976 className = _this$getClassNames3.className;
33977
33978 _this.removeClasses(node, 'appear');
33979
33980 _this.removeClasses(node, 'enter');
33981
33982 addClass(node, className);
33983
33984 if (_this.props.onExit) {
33985 _this.props.onExit(node);
33986 }
33987 };
33988
33989 _this.onExiting = function (node) {
33990 var _this$getClassNames4 = _this.getClassNames('exit'),
33991 activeClassName = _this$getClassNames4.activeClassName;
33992
33993 _this.reflowAndAddClass(node, activeClassName);
33994
33995 if (_this.props.onExiting) {
33996 _this.props.onExiting(node);
33997 }
33998 };
33999
34000 _this.onExited = function (node) {
34001 var _this$getClassNames5 = _this.getClassNames('exit'),
34002 doneClassName = _this$getClassNames5.doneClassName;
34003
34004 _this.removeClasses(node, 'exit');
34005
34006 addClass(node, doneClassName);
34007
34008 if (_this.props.onExited) {
34009 _this.props.onExited(node);
34010 }
34011 };
34012
34013 _this.getClassNames = function (type) {
34014 var classNames = _this.props.classNames;
34015 var isStringClassNames = typeof classNames === 'string';
34016 var prefix = isStringClassNames && classNames ? classNames + '-' : '';
34017 var className = isStringClassNames ? prefix + type : classNames[type];
34018 var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];
34019 var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];
34020 return {
34021 className: className,
34022 activeClassName: activeClassName,
34023 doneClassName: doneClassName
34024 };
34025 };
34026
34027 return _this;
34028 }
34029
34030 var _proto = CSSTransition.prototype;
34031
34032 _proto.removeClasses = function removeClasses(node, type) {
34033 var _this$getClassNames6 = this.getClassNames(type),
34034 className = _this$getClassNames6.className,
34035 activeClassName = _this$getClassNames6.activeClassName,
34036 doneClassName = _this$getClassNames6.doneClassName;
34037
34038 className && removeClass(node, className);
34039 activeClassName && removeClass(node, activeClassName);
34040 doneClassName && removeClass(node, doneClassName);
34041 };
34042
34043 _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {
34044 // This is for to force a repaint,
34045 // which is necessary in order to transition styles when adding a class name.
34046 if (className) {
34047 /* eslint-disable no-unused-expressions */
34048 node && node.scrollTop;
34049 /* eslint-enable no-unused-expressions */
34050
34051 addClass(node, className);
34052 }
34053 };
34054
34055 _proto.render = function render() {
34056 var props = _extends({}, this.props);
34057
34058 delete props.classNames;
34059 return _react.default.createElement(_Transition.default, _extends({}, props, {
34060 onEnter: this.onEnter,
34061 onEntered: this.onEntered,
34062 onEntering: this.onEntering,
34063 onExit: this.onExit,
34064 onExiting: this.onExiting,
34065 onExited: this.onExited
34066 }));
34067 };
34068
34069 return CSSTransition;
34070}(_react.default.Component);
34071
34072CSSTransition.defaultProps = {
34073 classNames: ''
34074};
34075CSSTransition.propTypes = false ? _extends({}, _Transition.default.propTypes, {
34076 /**
34077 * The animation classNames applied to the component as it enters, exits or
34078 * has finished the transition. A single name can be provided and it will be
34079 * suffixed for each stage: e.g.
34080 *
34081 * `classNames="fade"` applies `fade-enter`, `fade-enter-active`,
34082 * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,
34083 * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.
34084 *
34085 * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.
34086 * This allows you to define different behavior for when appearing is done and
34087 * when regular entering is done, using selectors like
34088 * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an
34089 * epic entrance animation when element first appears in the DOM using
34090 * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can
34091 * simply use `fade-enter-done` for defining both cases.
34092 *
34093 * Each individual classNames can also be specified independently like:
34094 *
34095 * ```js
34096 * classNames={{
34097 * appear: 'my-appear',
34098 * appearActive: 'my-active-appear',
34099 * appearDone: 'my-done-appear',
34100 * enter: 'my-enter',
34101 * enterActive: 'my-active-enter',
34102 * enterDone: 'my-done-enter',
34103 * exit: 'my-exit',
34104 * exitActive: 'my-active-exit',
34105 * exitDone: 'my-done-exit',
34106 * }}
34107 * ```
34108 *
34109 * If you want to set these classes using CSS Modules:
34110 *
34111 * ```js
34112 * import styles from './styles.css';
34113 * ```
34114 *
34115 * you might want to use camelCase in your CSS file, that way could simply
34116 * spread them instead of listing them one by one:
34117 *
34118 * ```js
34119 * classNames={{ ...styles }}
34120 * ```
34121 *
34122 * @type {string | {
34123 * appear?: string,
34124 * appearActive?: string,
34125 * appearDone?: string,
34126 * enter?: string,
34127 * enterActive?: string,
34128 * enterDone?: string,
34129 * exit?: string,
34130 * exitActive?: string,
34131 * exitDone?: string,
34132 * }}
34133 */
34134 classNames: _PropTypes.classNamesShape,
34135
34136 /**
34137 * A `<Transition>` callback fired immediately after the 'enter' or 'appear' class is
34138 * applied.
34139 *
34140 * @type Function(node: HtmlElement, isAppearing: bool)
34141 */
34142 onEnter: PropTypes.func,
34143
34144 /**
34145 * A `<Transition>` callback fired immediately after the 'enter-active' or
34146 * 'appear-active' class is applied.
34147 *
34148 * @type Function(node: HtmlElement, isAppearing: bool)
34149 */
34150 onEntering: PropTypes.func,
34151
34152 /**
34153 * A `<Transition>` callback fired immediately after the 'enter' or
34154 * 'appear' classes are **removed** and the `done` class is added to the DOM node.
34155 *
34156 * @type Function(node: HtmlElement, isAppearing: bool)
34157 */
34158 onEntered: PropTypes.func,
34159
34160 /**
34161 * A `<Transition>` callback fired immediately after the 'exit' class is
34162 * applied.
34163 *
34164 * @type Function(node: HtmlElement)
34165 */
34166 onExit: PropTypes.func,
34167
34168 /**
34169 * A `<Transition>` callback fired immediately after the 'exit-active' is applied.
34170 *
34171 * @type Function(node: HtmlElement)
34172 */
34173 onExiting: PropTypes.func,
34174
34175 /**
34176 * A `<Transition>` callback fired immediately after the 'exit' classes
34177 * are **removed** and the `exit-done` class is added to the DOM node.
34178 *
34179 * @type Function(node: HtmlElement)
34180 */
34181 onExited: PropTypes.func
34182}) : {};
34183var _default = CSSTransition;
34184exports.default = _default;
34185module.exports = exports["default"];
34186
34187/***/ }),
34188/* 265 */
34189/***/ (function(module, exports, __webpack_require__) {
34190
34191"use strict";
34192
34193
34194var _interopRequireDefault = __webpack_require__(28);
34195
34196exports.__esModule = true;
34197exports.default = addClass;
34198
34199var _hasClass = _interopRequireDefault(__webpack_require__(266));
34200
34201function addClass(element, className) {
34202 if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className);
34203}
34204
34205module.exports = exports["default"];
34206
34207/***/ }),
34208/* 266 */
34209/***/ (function(module, exports, __webpack_require__) {
34210
34211"use strict";
34212
34213
34214exports.__esModule = true;
34215exports.default = hasClass;
34216
34217function hasClass(element, className) {
34218 if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1;
34219}
34220
34221module.exports = exports["default"];
34222
34223/***/ }),
34224/* 267 */
34225/***/ (function(module, exports, __webpack_require__) {
34226
34227"use strict";
34228
34229
34230function replaceClassName(origClass, classToRemove) {
34231 return origClass.replace(new RegExp('(^|\\s)' + classToRemove + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
34232}
34233
34234module.exports = function removeClass(element, className) {
34235 if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));
34236};
34237
34238/***/ }),
34239/* 268 */
34240/***/ (function(module, exports, __webpack_require__) {
34241
34242"use strict";
34243
34244
34245exports.__esModule = true;
34246exports.default = void 0;
34247
34248var _propTypes = _interopRequireDefault(__webpack_require__(5));
34249
34250var _react = _interopRequireDefault(__webpack_require__(0));
34251
34252var _reactDom = __webpack_require__(12);
34253
34254var _TransitionGroup = _interopRequireDefault(__webpack_require__(135));
34255
34256function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34257
34258function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
34259
34260function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }
34261
34262/**
34263 * The `<ReplaceTransition>` component is a specialized `Transition` component
34264 * that animates between two children.
34265 *
34266 * ```jsx
34267 * <ReplaceTransition in>
34268 * <Fade><div>I appear first</div></Fade>
34269 * <Fade><div>I replace the above</div></Fade>
34270 * </ReplaceTransition>
34271 * ```
34272 */
34273var ReplaceTransition =
34274/*#__PURE__*/
34275function (_React$Component) {
34276 _inheritsLoose(ReplaceTransition, _React$Component);
34277
34278 function ReplaceTransition() {
34279 var _this;
34280
34281 for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {
34282 _args[_key] = arguments[_key];
34283 }
34284
34285 _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;
34286
34287 _this.handleEnter = function () {
34288 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
34289 args[_key2] = arguments[_key2];
34290 }
34291
34292 return _this.handleLifecycle('onEnter', 0, args);
34293 };
34294
34295 _this.handleEntering = function () {
34296 for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
34297 args[_key3] = arguments[_key3];
34298 }
34299
34300 return _this.handleLifecycle('onEntering', 0, args);
34301 };
34302
34303 _this.handleEntered = function () {
34304 for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
34305 args[_key4] = arguments[_key4];
34306 }
34307
34308 return _this.handleLifecycle('onEntered', 0, args);
34309 };
34310
34311 _this.handleExit = function () {
34312 for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
34313 args[_key5] = arguments[_key5];
34314 }
34315
34316 return _this.handleLifecycle('onExit', 1, args);
34317 };
34318
34319 _this.handleExiting = function () {
34320 for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
34321 args[_key6] = arguments[_key6];
34322 }
34323
34324 return _this.handleLifecycle('onExiting', 1, args);
34325 };
34326
34327 _this.handleExited = function () {
34328 for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
34329 args[_key7] = arguments[_key7];
34330 }
34331
34332 return _this.handleLifecycle('onExited', 1, args);
34333 };
34334
34335 return _this;
34336 }
34337
34338 var _proto = ReplaceTransition.prototype;
34339
34340 _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {
34341 var _child$props;
34342
34343 var children = this.props.children;
34344
34345 var child = _react.default.Children.toArray(children)[idx];
34346
34347 if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);
34348 if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));
34349 };
34350
34351 _proto.render = function render() {
34352 var _this$props = this.props,
34353 children = _this$props.children,
34354 inProp = _this$props.in,
34355 props = _objectWithoutPropertiesLoose(_this$props, ["children", "in"]);
34356
34357 var _React$Children$toArr = _react.default.Children.toArray(children),
34358 first = _React$Children$toArr[0],
34359 second = _React$Children$toArr[1];
34360
34361 delete props.onEnter;
34362 delete props.onEntering;
34363 delete props.onEntered;
34364 delete props.onExit;
34365 delete props.onExiting;
34366 delete props.onExited;
34367 return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {
34368 key: 'first',
34369 onEnter: this.handleEnter,
34370 onEntering: this.handleEntering,
34371 onEntered: this.handleEntered
34372 }) : _react.default.cloneElement(second, {
34373 key: 'second',
34374 onEnter: this.handleExit,
34375 onEntering: this.handleExiting,
34376 onEntered: this.handleExited
34377 }));
34378 };
34379
34380 return ReplaceTransition;
34381}(_react.default.Component);
34382
34383ReplaceTransition.propTypes = false ? {
34384 in: _propTypes.default.bool.isRequired,
34385 children: function children(props, propName) {
34386 if (_react.default.Children.count(props[propName]) !== 2) return new Error("\"" + propName + "\" must be exactly two transition components.");
34387 return null;
34388 }
34389} : {};
34390var _default = ReplaceTransition;
34391exports.default = _default;
34392module.exports = exports["default"];
34393
34394/***/ }),
34395/* 269 */
34396/***/ (function(module, exports, __webpack_require__) {
34397
34398"use strict";
34399
34400
34401exports.__esModule = true;
34402exports.getChildMapping = getChildMapping;
34403exports.mergeChildMappings = mergeChildMappings;
34404exports.getInitialChildMapping = getInitialChildMapping;
34405exports.getNextChildMapping = getNextChildMapping;
34406
34407var _react = __webpack_require__(0);
34408
34409/**
34410 * Given `this.props.children`, return an object mapping key to child.
34411 *
34412 * @param {*} children `this.props.children`
34413 * @return {object} Mapping of key to child
34414 */
34415function getChildMapping(children, mapFn) {
34416 var mapper = function mapper(child) {
34417 return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;
34418 };
34419
34420 var result = Object.create(null);
34421 if (children) _react.Children.map(children, function (c) {
34422 return c;
34423 }).forEach(function (child) {
34424 // run the map function here instead so that the key is the computed one
34425 result[child.key] = mapper(child);
34426 });
34427 return result;
34428}
34429/**
34430 * When you're adding or removing children some may be added or removed in the
34431 * same render pass. We want to show *both* since we want to simultaneously
34432 * animate elements in and out. This function takes a previous set of keys
34433 * and a new set of keys and merges them with its best guess of the correct
34434 * ordering. In the future we may expose some of the utilities in
34435 * ReactMultiChild to make this easy, but for now React itself does not
34436 * directly have this concept of the union of prevChildren and nextChildren
34437 * so we implement it here.
34438 *
34439 * @param {object} prev prev children as returned from
34440 * `ReactTransitionChildMapping.getChildMapping()`.
34441 * @param {object} next next children as returned from
34442 * `ReactTransitionChildMapping.getChildMapping()`.
34443 * @return {object} a key set that contains all keys in `prev` and all keys
34444 * in `next` in a reasonable order.
34445 */
34446
34447
34448function mergeChildMappings(prev, next) {
34449 prev = prev || {};
34450 next = next || {};
34451
34452 function getValueForKey(key) {
34453 return key in next ? next[key] : prev[key];
34454 } // For each key of `next`, the list of keys to insert before that key in
34455 // the combined list
34456
34457
34458 var nextKeysPending = Object.create(null);
34459 var pendingKeys = [];
34460
34461 for (var prevKey in prev) {
34462 if (prevKey in next) {
34463 if (pendingKeys.length) {
34464 nextKeysPending[prevKey] = pendingKeys;
34465 pendingKeys = [];
34466 }
34467 } else {
34468 pendingKeys.push(prevKey);
34469 }
34470 }
34471
34472 var i;
34473 var childMapping = {};
34474
34475 for (var nextKey in next) {
34476 if (nextKeysPending[nextKey]) {
34477 for (i = 0; i < nextKeysPending[nextKey].length; i++) {
34478 var pendingNextKey = nextKeysPending[nextKey][i];
34479 childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);
34480 }
34481 }
34482
34483 childMapping[nextKey] = getValueForKey(nextKey);
34484 } // Finally, add the keys which didn't appear before any key in `next`
34485
34486
34487 for (i = 0; i < pendingKeys.length; i++) {
34488 childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);
34489 }
34490
34491 return childMapping;
34492}
34493
34494function getProp(child, prop, props) {
34495 return props[prop] != null ? props[prop] : child.props[prop];
34496}
34497
34498function getInitialChildMapping(props, onExited) {
34499 return getChildMapping(props.children, function (child) {
34500 return (0, _react.cloneElement)(child, {
34501 onExited: onExited.bind(null, child),
34502 in: true,
34503 appear: getProp(child, 'appear', props),
34504 enter: getProp(child, 'enter', props),
34505 exit: getProp(child, 'exit', props)
34506 });
34507 });
34508}
34509
34510function getNextChildMapping(nextProps, prevChildMapping, onExited) {
34511 var nextChildMapping = getChildMapping(nextProps.children);
34512 var children = mergeChildMappings(prevChildMapping, nextChildMapping);
34513 Object.keys(children).forEach(function (key) {
34514 var child = children[key];
34515 if (!(0, _react.isValidElement)(child)) return;
34516 var hasPrev = key in prevChildMapping;
34517 var hasNext = key in nextChildMapping;
34518 var prevChild = prevChildMapping[key];
34519 var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)
34520
34521 if (hasNext && (!hasPrev || isLeaving)) {
34522 // console.log('entering', key)
34523 children[key] = (0, _react.cloneElement)(child, {
34524 onExited: onExited.bind(null, child),
34525 in: true,
34526 exit: getProp(child, 'exit', nextProps),
34527 enter: getProp(child, 'enter', nextProps)
34528 });
34529 } else if (!hasNext && hasPrev && !isLeaving) {
34530 // item is old (exiting)
34531 // console.log('leaving', key)
34532 children[key] = (0, _react.cloneElement)(child, {
34533 in: false
34534 });
34535 } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {
34536 // item hasn't changed transition states
34537 // copy over the last transition props;
34538 // console.log('unchanged', key)
34539 children[key] = (0, _react.cloneElement)(child, {
34540 onExited: onExited.bind(null, child),
34541 in: prevChild.props.in,
34542 exit: getProp(child, 'exit', nextProps),
34543 enter: getProp(child, 'enter', nextProps)
34544 });
34545 }
34546 });
34547 return children;
34548}
34549
34550/***/ }),
34551/* 270 */
34552/***/ (function(module, exports, __webpack_require__) {
34553
34554"use strict";
34555
34556
34557exports.__esModule = true;
34558exports.default = undefined;
34559
34560var _extends2 = __webpack_require__(1);
34561
34562var _extends3 = _interopRequireDefault(_extends2);
34563
34564var _objectWithoutProperties2 = __webpack_require__(8);
34565
34566var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
34567
34568var _classCallCheck2 = __webpack_require__(2);
34569
34570var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
34571
34572var _possibleConstructorReturn2 = __webpack_require__(3);
34573
34574var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
34575
34576var _inherits2 = __webpack_require__(4);
34577
34578var _inherits3 = _interopRequireDefault(_inherits2);
34579
34580var _class, _temp;
34581
34582var _react = __webpack_require__(0);
34583
34584var _react2 = _interopRequireDefault(_react);
34585
34586var _propTypes = __webpack_require__(5);
34587
34588var _propTypes2 = _interopRequireDefault(_propTypes);
34589
34590var _reactTransitionGroup = __webpack_require__(84);
34591
34592var _util = __webpack_require__(6);
34593
34594function _interopRequireDefault(obj) {
34595 return obj && obj.__esModule ? obj : { default: obj };
34596}
34597
34598var noop = function noop() {};
34599var on = _util.events.on,
34600 off = _util.events.off;
34601var addClass = _util.dom.addClass,
34602 removeClass = _util.dom.removeClass;
34603
34604var prefixes = ['-webkit-', '-moz-', '-o-', 'ms-', ''];
34605
34606function getStyleProperty(node, name) {
34607 var style = window.getComputedStyle(node);
34608 var ret = '';
34609 for (var i = 0; i < prefixes.length; i++) {
34610 ret = style.getPropertyValue(prefixes[i] + name);
34611 if (ret) {
34612 break;
34613 }
34614 }
34615 return ret;
34616}
34617
34618var AnimateChild = (_temp = _class = function (_Component) {
34619 (0, _inherits3.default)(AnimateChild, _Component);
34620
34621 function AnimateChild(props) {
34622 (0, _classCallCheck3.default)(this, AnimateChild);
34623
34624 var _this2 = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
34625
34626 _util.func.bindCtx(_this2, ['handleEnter', 'handleEntering', 'handleEntered', 'handleExit', 'handleExiting', 'handleExited', 'addEndListener']);
34627 _this2.endListeners = {
34628 transitionend: [],
34629 animationend: []
34630 };
34631 _this2.timeoutMap = {};
34632 return _this2;
34633 }
34634
34635 AnimateChild.prototype.componentWillUnmount = function componentWillUnmount() {
34636 var _this3 = this;
34637
34638 Object.keys(this.endListeners).forEach(function (eventName) {
34639 _this3.endListeners[eventName].forEach(function (listener) {
34640 off(_this3.node, eventName, listener);
34641 });
34642 });
34643 this.endListeners = {
34644 transitionend: [],
34645 animationend: []
34646 };
34647 };
34648
34649 AnimateChild.prototype.generateEndListener = function generateEndListener(node, done, eventName, id) {
34650 var _this = this;
34651 return function endListener(e) {
34652 if (e && e.target === node) {
34653 if (_this.timeoutMap[id]) {
34654 clearTimeout(_this.timeoutMap[id]);
34655 delete _this.timeoutMap[id];
34656 }
34657
34658 done();
34659 off(node, eventName, endListener);
34660 var listeners = _this.endListeners[eventName];
34661 var index = listeners.indexOf(endListener);
34662 index > -1 && listeners.splice(index, 1);
34663 }
34664 };
34665 };
34666
34667 AnimateChild.prototype.addEndListener = function addEndListener(node, done) {
34668 var _this4 = this;
34669
34670 if (_util.support.transition || _util.support.animation) {
34671 var id = (0, _util.guid)();
34672
34673 this.node = node;
34674 if (_util.support.transition) {
34675 var transitionEndListener = this.generateEndListener(node, done, 'transitionend', id);
34676 on(node, 'transitionend', transitionEndListener);
34677 this.endListeners.transitionend.push(transitionEndListener);
34678 }
34679 if (_util.support.animation) {
34680 var animationEndListener = this.generateEndListener(node, done, 'animationend', id);
34681 on(node, 'animationend', animationEndListener);
34682 this.endListeners.animationend.push(animationEndListener);
34683 }
34684
34685 setTimeout(function () {
34686 var transitionDelay = parseFloat(getStyleProperty(node, 'transition-delay')) || 0;
34687 var transitionDuration = parseFloat(getStyleProperty(node, 'transition-duration')) || 0;
34688 var animationDelay = parseFloat(getStyleProperty(node, 'animation-delay')) || 0;
34689 var animationDuration = parseFloat(getStyleProperty(node, 'animation-duration')) || 0;
34690 var time = Math.max(transitionDuration + transitionDelay, animationDuration + animationDelay);
34691 if (time) {
34692 _this4.timeoutMap[id] = setTimeout(function () {
34693 done();
34694 }, time * 1000 + 200);
34695 }
34696 }, 15);
34697 } else {
34698 done();
34699 }
34700 };
34701
34702 AnimateChild.prototype.removeEndtListener = function removeEndtListener() {
34703 this.transitionOff && this.transitionOff();
34704 this.animationOff && this.animationOff();
34705 };
34706
34707 AnimateChild.prototype.removeClassNames = function removeClassNames(node, names) {
34708 Object.keys(names).forEach(function (key) {
34709 removeClass(node, names[key]);
34710 });
34711 };
34712
34713 AnimateChild.prototype.handleEnter = function handleEnter(node, isAppearing) {
34714 var names = this.props.names;
34715
34716 if (names) {
34717 this.removeClassNames(node, names);
34718 var className = isAppearing ? 'appear' : 'enter';
34719 addClass(node, names[className]);
34720 }
34721
34722 var hook = isAppearing ? this.props.onAppear : this.props.onEnter;
34723 hook(node);
34724 };
34725
34726 AnimateChild.prototype.handleEntering = function handleEntering(node, isAppearing) {
34727 var _this5 = this;
34728
34729 setTimeout(function () {
34730 var names = _this5.props.names;
34731
34732 if (names) {
34733 var className = isAppearing ? 'appearActive' : 'enterActive';
34734 addClass(node, names[className]);
34735 }
34736
34737 var hook = isAppearing ? _this5.props.onAppearing : _this5.props.onEntering;
34738 hook(node);
34739 }, 10);
34740 };
34741
34742 AnimateChild.prototype.handleEntered = function handleEntered(node, isAppearing) {
34743 var names = this.props.names;
34744
34745 if (names) {
34746 var classNames = isAppearing ? [names.appear, names.appearActive] : [names.enter, names.enterActive];
34747 classNames.forEach(function (className) {
34748 removeClass(node, className);
34749 });
34750 }
34751
34752 var hook = isAppearing ? this.props.onAppeared : this.props.onEntered;
34753 hook(node);
34754 };
34755
34756 AnimateChild.prototype.handleExit = function handleExit(node) {
34757 var names = this.props.names;
34758
34759 if (names) {
34760 this.removeClassNames(node, names);
34761 addClass(node, names.leave);
34762 }
34763
34764 this.props.onExit(node);
34765 };
34766
34767 AnimateChild.prototype.handleExiting = function handleExiting(node) {
34768 var _this6 = this;
34769
34770 setTimeout(function () {
34771 var names = _this6.props.names;
34772
34773 if (names) {
34774 addClass(node, names.leaveActive);
34775 }
34776 _this6.props.onExiting(node);
34777 }, 10);
34778 };
34779
34780 AnimateChild.prototype.handleExited = function handleExited(node) {
34781 var names = this.props.names;
34782
34783 if (names) {
34784 [names.leave, names.leaveActive].forEach(function (className) {
34785 removeClass(node, className);
34786 });
34787 }
34788
34789 this.props.onExited(node);
34790 };
34791
34792 AnimateChild.prototype.render = function render() {
34793 /* eslint-disable no-unused-vars */
34794 var _props = this.props,
34795 names = _props.names,
34796 onAppear = _props.onAppear,
34797 onAppeared = _props.onAppeared,
34798 onAppearing = _props.onAppearing,
34799 onEnter = _props.onEnter,
34800 onEntering = _props.onEntering,
34801 onEntered = _props.onEntered,
34802 onExit = _props.onExit,
34803 onExiting = _props.onExiting,
34804 onExited = _props.onExited,
34805 others = (0, _objectWithoutProperties3.default)(_props, ['names', 'onAppear', 'onAppeared', 'onAppearing', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited']);
34806 /* eslint-enable no-unused-vars */
34807
34808 return _react2.default.createElement(_reactTransitionGroup.Transition, (0, _extends3.default)({}, others, {
34809 onEnter: this.handleEnter,
34810 onEntering: this.handleEntering,
34811 onEntered: this.handleEntered,
34812 onExit: this.handleExit,
34813 onExiting: this.handleExiting,
34814 onExited: this.handleExited,
34815 addEndListener: this.addEndListener
34816 }));
34817 };
34818
34819 return AnimateChild;
34820}(_react.Component), _class.propTypes = {
34821 names: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
34822 onAppear: _propTypes2.default.func,
34823 onAppearing: _propTypes2.default.func,
34824 onAppeared: _propTypes2.default.func,
34825 onEnter: _propTypes2.default.func,
34826 onEntering: _propTypes2.default.func,
34827 onEntered: _propTypes2.default.func,
34828 onExit: _propTypes2.default.func,
34829 onExiting: _propTypes2.default.func,
34830 onExited: _propTypes2.default.func
34831}, _class.defaultProps = {
34832 onAppear: noop,
34833 onAppearing: noop,
34834 onAppeared: noop,
34835 onEnter: noop,
34836 onEntering: noop,
34837 onEntered: noop,
34838 onExit: noop,
34839 onExiting: noop,
34840 onExited: noop
34841}, _temp);
34842AnimateChild.displayName = 'AnimateChild';
34843exports.default = AnimateChild;
34844module.exports = exports['default'];
34845
34846/***/ }),
34847/* 271 */
34848/***/ (function(module, exports, __webpack_require__) {
34849
34850"use strict";
34851
34852
34853exports.__esModule = true;
34854exports.default = undefined;
34855
34856var _extends2 = __webpack_require__(1);
34857
34858var _extends3 = _interopRequireDefault(_extends2);
34859
34860var _objectWithoutProperties2 = __webpack_require__(8);
34861
34862var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
34863
34864var _classCallCheck2 = __webpack_require__(2);
34865
34866var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
34867
34868var _possibleConstructorReturn2 = __webpack_require__(3);
34869
34870var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
34871
34872var _inherits2 = __webpack_require__(4);
34873
34874var _inherits3 = _interopRequireDefault(_inherits2);
34875
34876var _class, _temp;
34877
34878var _react = __webpack_require__(0);
34879
34880var _react2 = _interopRequireDefault(_react);
34881
34882var _propTypes = __webpack_require__(5);
34883
34884var _propTypes2 = _interopRequireDefault(_propTypes);
34885
34886var _util = __webpack_require__(6);
34887
34888var _animate = __webpack_require__(132);
34889
34890var _animate2 = _interopRequireDefault(_animate);
34891
34892function _interopRequireDefault(obj) {
34893 return obj && obj.__esModule ? obj : { default: obj };
34894}
34895
34896var noop = function noop() {};
34897var getStyle = _util.dom.getStyle;
34898var Expand = (_temp = _class = function (_Component) {
34899 (0, _inherits3.default)(Expand, _Component);
34900
34901 function Expand(props) {
34902 (0, _classCallCheck3.default)(this, Expand);
34903
34904 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
34905
34906 _util.func.bindCtx(_this, ['beforeEnter', 'onEnter', 'afterEnter', 'beforeLeave', 'onLeave', 'afterLeave']);
34907 return _this;
34908 }
34909
34910 Expand.prototype.beforeEnter = function beforeEnter(node) {
34911 if (this.leaving) {
34912 this.afterLeave(node);
34913 }
34914
34915 this.cacheCurrentStyle(node);
34916 this.cacheComputedStyle(node);
34917 this.setCurrentStyleToZero(node);
34918
34919 this.props.beforeEnter(node);
34920 };
34921
34922 Expand.prototype.onEnter = function onEnter(node) {
34923 this.setCurrentStyleToComputedStyle(node);
34924
34925 this.props.onEnter(node);
34926 };
34927
34928 Expand.prototype.afterEnter = function afterEnter(node) {
34929 this.restoreCurrentStyle(node);
34930
34931 this.props.afterEnter(node);
34932 };
34933
34934 Expand.prototype.beforeLeave = function beforeLeave(node) {
34935 this.leaving = true;
34936
34937 this.cacheCurrentStyle(node);
34938 this.cacheComputedStyle(node);
34939 this.setCurrentStyleToComputedStyle(node);
34940
34941 this.props.beforeLeave(node);
34942 };
34943
34944 Expand.prototype.onLeave = function onLeave(node) {
34945 this.setCurrentStyleToZero(node);
34946
34947 this.props.onLeave(node);
34948 };
34949
34950 Expand.prototype.afterLeave = function afterLeave(node) {
34951 this.leaving = false;
34952
34953 this.restoreCurrentStyle(node);
34954
34955 this.props.afterLeave(node);
34956 };
34957
34958 Expand.prototype.cacheCurrentStyle = function cacheCurrentStyle(node) {
34959 this.styleBorderTopWidth = node.style.borderTopWidth;
34960 this.stylePaddingTop = node.style.paddingTop;
34961 this.styleHeight = node.style.height;
34962 this.stylePaddingBottom = node.style.paddingBottom;
34963 this.styleBorderBottomWidth = node.style.borderBottomWidth;
34964 };
34965
34966 Expand.prototype.cacheComputedStyle = function cacheComputedStyle(node) {
34967 this.borderTopWidth = getStyle(node, 'borderTopWidth');
34968 this.paddingTop = getStyle(node, 'paddingTop');
34969 this.height = node.offsetHeight;
34970 this.paddingBottom = getStyle(node, 'paddingBottom');
34971 this.borderBottomWidth = getStyle(node, 'borderBottomWidth');
34972 };
34973
34974 Expand.prototype.setCurrentStyleToZero = function setCurrentStyleToZero(node) {
34975 node.style.borderTopWidth = '0px';
34976 node.style.paddingTop = '0px';
34977 node.style.height = '0px';
34978 node.style.paddingBottom = '0px';
34979 node.style.borderBottomWidth = '0px';
34980 };
34981
34982 Expand.prototype.setCurrentStyleToComputedStyle = function setCurrentStyleToComputedStyle(node) {
34983 node.style.borderTopWidth = this.borderTopWidth + 'px';
34984 node.style.paddingTop = this.paddingTop + 'px';
34985 node.style.height = this.height + 'px';
34986 node.style.paddingBottom = this.paddingBottom + 'px';
34987 node.style.borderBottomWidth = this.borderBottomWidth + 'px';
34988 };
34989
34990 Expand.prototype.restoreCurrentStyle = function restoreCurrentStyle(node) {
34991 node.style.borderTopWidth = this.styleBorderTopWidth;
34992 node.style.paddingTop = this.stylePaddingTop;
34993 node.style.height = this.styleHeight;
34994 node.style.paddingBottom = this.stylePaddingBottom;
34995 node.style.borderBottomWidth = this.styleBorderBottomWidth;
34996 };
34997
34998 Expand.prototype.render = function render() {
34999 var _props = this.props,
35000 animation = _props.animation,
35001 others = (0, _objectWithoutProperties3.default)(_props, ['animation']);
35002
35003 var newAnimation = animation || 'expand';
35004
35005 return _react2.default.createElement(_animate2.default, (0, _extends3.default)({}, others, {
35006 animation: newAnimation,
35007 beforeEnter: this.beforeEnter,
35008 onEnter: this.onEnter,
35009 afterEnter: this.afterEnter,
35010 beforeLeave: this.beforeLeave,
35011 onLeave: this.onLeave,
35012 afterLeave: this.afterLeave
35013 }));
35014 };
35015
35016 return Expand;
35017}(_react.Component), _class.propTypes = {
35018 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object]),
35019 beforeEnter: _propTypes2.default.func,
35020 onEnter: _propTypes2.default.func,
35021 afterEnter: _propTypes2.default.func,
35022 beforeLeave: _propTypes2.default.func,
35023 onLeave: _propTypes2.default.func,
35024 afterLeave: _propTypes2.default.func
35025}, _class.defaultProps = {
35026 beforeEnter: noop,
35027 onEnter: noop,
35028 afterEnter: noop,
35029 beforeLeave: noop,
35030 onLeave: noop,
35031 afterLeave: noop
35032}, _temp);
35033Expand.displayName = 'Expand';
35034exports.default = Expand;
35035module.exports = exports['default'];
35036
35037/***/ }),
35038/* 272 */
35039/***/ (function(module, exports, __webpack_require__) {
35040
35041"use strict";
35042
35043
35044exports.__esModule = true;
35045
35046var _extends2 = __webpack_require__(1);
35047
35048var _extends3 = _interopRequireDefault(_extends2);
35049
35050var _objectWithoutProperties2 = __webpack_require__(8);
35051
35052var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
35053
35054var _react = __webpack_require__(0);
35055
35056var _react2 = _interopRequireDefault(_react);
35057
35058var _reactTransitionGroup = __webpack_require__(84);
35059
35060var _classnames = __webpack_require__(7);
35061
35062var _classnames2 = _interopRequireDefault(_classnames);
35063
35064function _interopRequireDefault(obj) {
35065 return obj && obj.__esModule ? obj : { default: obj };
35066}
35067
35068var OverlayAnimate = function OverlayAnimate(props) {
35069 var animation = props.animation,
35070 visible = props.visible,
35071 children = props.children,
35072 _props$timeout = props.timeout,
35073 timeout = _props$timeout === undefined ? 300 : _props$timeout,
35074 style = props.style,
35075 mountOnEnter = props.mountOnEnter,
35076 unmountOnExit = props.unmountOnExit,
35077 appear = props.appear,
35078 enter = props.enter,
35079 exit = props.exit,
35080 onEnter = props.onEnter,
35081 onEntering = props.onEntering,
35082 onEntered = props.onEntered,
35083 onExit = props.onExit,
35084 onExiting = props.onExiting,
35085 onExited = props.onExited,
35086 others = (0, _objectWithoutProperties3.default)(props, ['animation', 'visible', 'children', 'timeout', 'style', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited']);
35087
35088 var animateProps = {
35089 mountOnEnter: mountOnEnter,
35090 unmountOnExit: unmountOnExit,
35091 appear: appear,
35092 enter: enter,
35093 exit: exit,
35094 onEnter: onEnter,
35095 onEntering: onEntering,
35096 onEntered: onEntered,
35097 onExit: onExit,
35098 onExiting: onExiting,
35099 onExited: onExited
35100 };
35101
35102 Object.keys(animateProps).forEach(function (k) {
35103 if (!(k in props) || typeof props[k] === 'undefined') {
35104 delete animateProps[k];
35105 }
35106 });
35107
35108 var animationMap = typeof animation === 'string' ? { in: animation, out: animation } : animation;
35109
35110 var animateClsMap = animation ? {
35111 entering: animationMap.in,
35112 exiting: animationMap.out
35113 } : {};
35114
35115 if (animation === false) {
35116 animateClsMap.entering = '';
35117 animateClsMap.exiting = '';
35118 }
35119
35120 return _react2.default.createElement(_reactTransitionGroup.Transition, (0, _extends3.default)({}, animateProps, { 'in': visible, timeout: animation ? timeout : 0, appear: true }), function (state) {
35121 var _classNames;
35122
35123 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[children.props.className] = !!children.props.className, _classNames[animateClsMap[state]] = state in animateClsMap && animateClsMap[state], _classNames));
35124
35125 var childProps = (0, _extends3.default)({}, others, {
35126 className: cls
35127 });
35128
35129 if (style && children.props && children.props.style) {
35130 childProps.style = (0, _extends3.default)({}, children.props.style, style);
35131 }
35132
35133 return _react2.default.cloneElement(children, childProps);
35134 });
35135}; /* istanbul ignore file */
35136exports.default = OverlayAnimate;
35137module.exports = exports['default'];
35138
35139/***/ }),
35140/* 273 */
35141/***/ (function(module, exports, __webpack_require__) {
35142
35143"use strict";
35144
35145
35146exports.__esModule = true;
35147
35148var _extends2 = __webpack_require__(1);
35149
35150var _extends3 = _interopRequireDefault(_extends2);
35151
35152var _classCallCheck2 = __webpack_require__(2);
35153
35154var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
35155
35156var _possibleConstructorReturn2 = __webpack_require__(3);
35157
35158var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
35159
35160var _inherits2 = __webpack_require__(4);
35161
35162var _inherits3 = _interopRequireDefault(_inherits2);
35163
35164var _class, _temp;
35165
35166var _react = __webpack_require__(0);
35167
35168var _react2 = _interopRequireDefault(_react);
35169
35170var _propTypes = __webpack_require__(5);
35171
35172var _propTypes2 = _interopRequireDefault(_propTypes);
35173
35174var _classnames = __webpack_require__(7);
35175
35176var _classnames2 = _interopRequireDefault(_classnames);
35177
35178var _configProvider = __webpack_require__(9);
35179
35180var _configProvider2 = _interopRequireDefault(_configProvider);
35181
35182var _util = __webpack_require__(6);
35183
35184var _sup = __webpack_require__(274);
35185
35186var _sup2 = _interopRequireDefault(_sup);
35187
35188function _interopRequireDefault(obj) {
35189 return obj && obj.__esModule ? obj : { default: obj };
35190}
35191
35192/**
35193 * Badge
35194 */
35195var Badge = (_temp = _class = function (_Component) {
35196 (0, _inherits3.default)(Badge, _Component);
35197
35198 function Badge() {
35199 (0, _classCallCheck3.default)(this, Badge);
35200 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
35201 }
35202
35203 Badge.prototype.render = function render() {
35204 var _classNames;
35205
35206 var _props = this.props,
35207 prefix = _props.prefix,
35208 dot = _props.dot,
35209 className = _props.className,
35210 children = _props.children,
35211 content = _props.content,
35212 style = _props.style,
35213 rtl = _props.rtl,
35214 originCount = _props.count,
35215 showZero = _props.showZero,
35216 originOverflowCount = _props.overflowCount;
35217
35218 var count = parseInt(originCount, 10);
35219 var overflowCount = parseInt(originOverflowCount, 10);
35220 var others = _util.obj.pickOthers(Badge.propTypes, this.props);
35221
35222 // 如果是数字,则添加默认的 title
35223 if (count || count === 0 && showZero) {
35224 others.title = others.title || '' + count;
35225 }
35226
35227 var classes = (0, _classnames2.default)(prefix + 'badge', (_classNames = {}, _classNames[prefix + 'badge-not-a-wrapper'] = !children, _classNames), className);
35228
35229 return _react2.default.createElement('span', (0, _extends3.default)({ dir: rtl ? 'rtl' : undefined, className: classes }, others), children, _react2.default.createElement(_sup2.default, {
35230 prefix: prefix,
35231 content: content,
35232 count: count,
35233 showZero: showZero,
35234 overflowCount: overflowCount,
35235 dot: dot,
35236 style: style
35237 }));
35238 };
35239
35240 return Badge;
35241}(_react.Component), _class.propTypes = {
35242 // 样式类名的品牌前缀
35243 prefix: _propTypes2.default.string,
35244 rtl: _propTypes2.default.bool,
35245 // 自定义类名
35246 className: _propTypes2.default.string,
35247 // 自定义内联样式
35248 style: _propTypes2.default.object,
35249 /**
35250 * 徽标依托的内容,一般显示在其右上方
35251 */
35252 children: _propTypes2.default.node,
35253 /**
35254 * 展示的数字,大于 `overflowCount` 时显示为 `${overflowCount}+`,为 `0` 时默认隐藏
35255 */
35256 count: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
35257 /**
35258 * 当`count`为`0`时,是否显示count
35259 * @version 1.16
35260 */
35261 showZero: _propTypes2.default.bool,
35262 /**
35263 * 自定义徽标中的内容
35264 */
35265 content: _propTypes2.default.node,
35266 /**
35267 * 展示的封顶的数字
35268 */
35269 overflowCount: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
35270 /**
35271 * 不展示数字,只展示一个小红点
35272 */
35273 dot: _propTypes2.default.bool
35274}, _class.defaultProps = {
35275 prefix: 'next-',
35276 count: 0,
35277 showZero: false,
35278 overflowCount: 99,
35279 dot: false
35280}, _temp);
35281Badge.displayName = 'Badge';
35282exports.default = _configProvider2.default.config(Badge);
35283module.exports = exports['default'];
35284
35285/***/ }),
35286/* 274 */
35287/***/ (function(module, exports, __webpack_require__) {
35288
35289"use strict";
35290
35291
35292exports.__esModule = true;
35293
35294var _classCallCheck2 = __webpack_require__(2);
35295
35296var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
35297
35298var _possibleConstructorReturn2 = __webpack_require__(3);
35299
35300var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
35301
35302var _inherits2 = __webpack_require__(4);
35303
35304var _inherits3 = _interopRequireDefault(_inherits2);
35305
35306var _class, _temp;
35307
35308var _react = __webpack_require__(0);
35309
35310var _react2 = _interopRequireDefault(_react);
35311
35312var _propTypes = __webpack_require__(5);
35313
35314var _propTypes2 = _interopRequireDefault(_propTypes);
35315
35316var _reactLifecyclesCompat = __webpack_require__(10);
35317
35318var _classnames = __webpack_require__(7);
35319
35320var _classnames2 = _interopRequireDefault(_classnames);
35321
35322var _animate = __webpack_require__(20);
35323
35324var _animate2 = _interopRequireDefault(_animate);
35325
35326var _util = __webpack_require__(6);
35327
35328function _interopRequireDefault(obj) {
35329 return obj && obj.__esModule ? obj : { default: obj };
35330}
35331
35332/**
35333 * badge sup component
35334 */
35335
35336// util::getDigitArray
35337var getDigitArray = function getDigitArray(num) {
35338 return num.toString().split('').reverse().map(function (i) {
35339 return parseInt(i, 10);
35340 });
35341};
35342
35343var Sup = (_temp = _class = function (_Component) {
35344 (0, _inherits3.default)(Sup, _Component);
35345
35346 // 单排可滚动的数字列表
35347 Sup.renderDigit = function renderDigit(prefix, digit, key) {
35348 var children = [];
35349 for (var i = 0; i < 30; i++) {
35350 children.push(_react2.default.createElement('span', { key: i }, i % 10));
35351 }
35352
35353 return _react2.default.createElement('span', { className: prefix + 'badge-scroll-number-only', key: key }, children);
35354 };
35355
35356 // 可滚动数字组
35357
35358
35359 Sup.renderNumber = function renderNumber(prefix, count) {
35360 return getDigitArray(count).map(function (digit, i) {
35361 return Sup.renderDigit(prefix, digit, i);
35362 }).reverse();
35363 };
35364
35365 function Sup(props) {
35366 (0, _classCallCheck3.default)(this, Sup);
35367
35368 // render 时, 上一次的渲染数字 和 当前渲染的数字
35369 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
35370
35371 _this.saveRef = function (ref) {
35372 _this.supEl = ref;
35373 };
35374
35375 _this.state = {
35376 lastCount: 0,
35377 currentCount: props.count
35378 };
35379 return _this;
35380 }
35381
35382 Sup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
35383 if ('count' in nextProps) {
35384 return {
35385 lastCount: prevState.currentCount,
35386 currentCount: nextProps.count
35387 };
35388 }
35389
35390 return null;
35391 };
35392
35393 Sup.prototype.componentDidMount = function componentDidMount() {
35394 this.computeStyle(true);
35395 };
35396
35397 Sup.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
35398 var _this2 = this;
35399
35400 if (prevProps.count !== this.props.count) {
35401 this.computeStyle(false);
35402
35403 // NOTE why called `computeStyle` again after 300ms ?
35404 setTimeout(function () {
35405 _this2.computeStyle(true, true);
35406 }, 300);
35407 }
35408 };
35409
35410 Sup.prototype.computeStyle = function computeStyle(removeTransition, revert) {
35411 var _this3 = this;
35412
35413 var _props = this.props,
35414 prefix = _props.prefix,
35415 count = _props.count,
35416 overflowCount = _props.overflowCount;
35417 var lastCount = this.state.lastCount;
35418
35419 if (count < 0) {
35420 return;
35421 }
35422 var supNode = this.supEl;
35423
35424 if (supNode && _util.dom.hasClass(supNode, prefix + 'badge-count')) {
35425 var scrollNums = supNode.querySelectorAll('.' + prefix + 'badge-scroll-number-only');
35426
35427 if (scrollNums.length) {
35428 var height = window.getComputedStyle(supNode).height;
35429
35430 scrollNums = [].slice.call(scrollNums, 0).reverse();
35431
35432 getDigitArray(count).forEach(function (digit, i) {
35433 var position = _this3.getPositionByDigit(digit, i, revert);
35434 var transformTo = -position * parseFloat(height);
35435
35436 removeTransition = removeTransition || typeof getDigitArray(lastCount)[i] === 'undefined' || lastCount > overflowCount || lastCount <= 0;
35437
35438 var scrollStyle = _util.support.animation ? {
35439 transition: removeTransition ? 'none' : 'transform .3s cubic-bezier(.645, .045, .355, 1), -webkit-transform .3s cubic-bezier(.645, .045, .355, 1)',
35440 WebkitTransform: 'translateY(' + transformTo + 'px)',
35441 transform: 'translateY(' + transformTo + 'px)',
35442 height: height,
35443 lineHeight: height
35444 } : {
35445 top: transformTo + 'px',
35446 height: height,
35447 lineHeight: height
35448 };
35449
35450 Object.keys(scrollStyle).forEach(function (key) {
35451 scrollNums[i].style[key] = scrollStyle[key];
35452 });
35453 });
35454 }
35455 }
35456 };
35457
35458 Sup.prototype.getPositionByDigit = function getPositionByDigit(digit, i, revert) {
35459 var lastCount = this.state.lastCount;
35460
35461 if (revert) {
35462 return 10 + digit;
35463 }
35464 var lastDigit = getDigitArray(lastCount)[i] || 0;
35465
35466 if (this.props.count > lastCount) {
35467 return (digit >= lastDigit ? 10 : 20) + digit;
35468 }
35469
35470 if (digit <= lastDigit) {
35471 return 10 + digit;
35472 }
35473
35474 return digit;
35475 };
35476
35477 Sup.prototype.render = function render() {
35478 var _classNames;
35479
35480 var _props2 = this.props,
35481 prefix = _props2.prefix,
35482 count = _props2.count,
35483 showZero = _props2.showZero,
35484 overflowCount = _props2.overflowCount,
35485 dot = _props2.dot,
35486 style = _props2.style,
35487 content = _props2.content;
35488
35489 var supClasses = (0, _classnames2.default)(prefix + 'badge-scroll-number', (_classNames = {}, _classNames[prefix + 'badge-count'] = !!count || count === 0 && showZero, _classNames[prefix + 'badge-dot'] = dot, _classNames[prefix + 'badge-custom'] = !!content, _classNames));
35490
35491 var children = null;
35492 var show = dot || count > 0 || count === 0 && showZero || content;
35493
35494 if (count > 0 || count === 0 && showZero) {
35495 var realCount = overflowCount > 0 && count > overflowCount ? overflowCount + '+' : count;
35496
35497 children = isNaN(realCount) ? realCount : Sup.renderNumber(prefix, count);
35498 } else if (content) {
35499 children = content;
35500 }
35501
35502 var animation = {
35503 appear: 'zoomIn',
35504 enter: 'zoomIn',
35505 leave: 'zoomOut'
35506 };
35507
35508 var wrapper = _util.support.animation ? _react2.default.createElement(_animate2.default, { animation: animation }) : _react2.default.createElement('span', null);
35509 var element = show ? _react2.default.createElement('sup', { ref: this.saveRef, className: supClasses, style: style }, children) : null;
35510
35511 return _react2.default.cloneElement(wrapper, {}, element);
35512 };
35513
35514 return Sup;
35515}(_react.Component), _class.propTypes = {
35516 prefix: _propTypes2.default.string,
35517 count: _propTypes2.default.number,
35518 showZero: _propTypes2.default.bool,
35519 overflowCount: _propTypes2.default.number,
35520 content: _propTypes2.default.node,
35521 dot: _propTypes2.default.bool,
35522 style: _propTypes2.default.object
35523}, _class.defaultProps = {
35524 prefix: 'next-',
35525 count: 0,
35526 showZero: false,
35527 overflowCount: 99,
35528 dot: false
35529}, _temp);
35530Sup.displayName = 'Sup';
35531exports.default = (0, _reactLifecyclesCompat.polyfill)(Sup);
35532module.exports = exports['default'];
35533
35534/***/ }),
35535/* 275 */
35536/***/ (function(module, exports, __webpack_require__) {
35537
35538"use strict";
35539
35540
35541exports.__esModule = true;
35542
35543var _extends2 = __webpack_require__(1);
35544
35545var _extends3 = _interopRequireDefault(_extends2);
35546
35547var _objectWithoutProperties2 = __webpack_require__(8);
35548
35549var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
35550
35551var _classCallCheck2 = __webpack_require__(2);
35552
35553var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
35554
35555var _possibleConstructorReturn2 = __webpack_require__(3);
35556
35557var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
35558
35559var _inherits2 = __webpack_require__(4);
35560
35561var _inherits3 = _interopRequireDefault(_inherits2);
35562
35563var _class, _temp;
35564
35565var _react = __webpack_require__(0);
35566
35567var _react2 = _interopRequireDefault(_react);
35568
35569var _propTypes = __webpack_require__(5);
35570
35571var _propTypes2 = _interopRequireDefault(_propTypes);
35572
35573var _reactLifecyclesCompat = __webpack_require__(10);
35574
35575var _overlay = __webpack_require__(15);
35576
35577var _overlay2 = _interopRequireDefault(_overlay);
35578
35579var _util = __webpack_require__(6);
35580
35581var _inner = __webpack_require__(86);
35582
35583var _inner2 = _interopRequireDefault(_inner);
35584
35585var _alignMap = __webpack_require__(87);
35586
35587var _util2 = __webpack_require__(140);
35588
35589function _interopRequireDefault(obj) {
35590 return obj && obj.__esModule ? obj : { default: obj };
35591}
35592
35593var noop = _util.func.noop;
35594var Popup = _overlay2.default.Popup;
35595
35596var alignList = ['t', 'r', 'b', 'l', 'tl', 'tr', 'bl', 'br', 'lt', 'lb', 'rt', 'rb'];
35597
35598var alignMap = _alignMap.normalMap;
35599
35600/** Balloon */
35601var Balloon = (_temp = _class = function (_React$Component) {
35602 (0, _inherits3.default)(Balloon, _React$Component);
35603
35604 function Balloon(props, context) {
35605 (0, _classCallCheck3.default)(this, Balloon);
35606
35607 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
35608
35609 _this.beforePosition = function (result, obj) {
35610 var placement = result.config.placement;
35611
35612 if (placement !== _this.state.align) {
35613 _this.setState({
35614 align: placement,
35615 innerAlign: true
35616 });
35617 }
35618
35619 if (_this.props.arrowPointToCenter) {
35620 var _obj$target = obj.target,
35621 width = _obj$target.width,
35622 height = _obj$target.height;
35623
35624 if (placement.length === 2) {
35625 var offset = _alignMap.normalMap[placement].offset;
35626 switch (placement[0]) {
35627 case 'b':
35628 case 't':
35629 {
35630 var plus = offset[0] > 0 ? 1 : -1;
35631 result.style.left = result.style.left + plus * width / 2 - offset[0];
35632 }
35633 break;
35634 case 'l':
35635 case 'r':
35636 {
35637 var _plus = offset[0] > 0 ? 1 : -1;
35638 result.style.top = result.style.top + _plus * height / 2 - offset[1];
35639 }
35640 break;
35641 }
35642 }
35643 }
35644
35645 return result;
35646 };
35647
35648 _this.state = {
35649 align: alignList.includes(props.align) ? props.align : 'b',
35650 visible: 'visible' in props ? props.visible : props.defaultVisible
35651 };
35652 _this._onClose = _this._onClose.bind(_this);
35653 _this._onPosition = _this._onPosition.bind(_this);
35654 _this._onVisibleChange = _this._onVisibleChange.bind(_this);
35655 return _this;
35656 }
35657
35658 Balloon.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
35659 var nextState = {};
35660 if ('visible' in nextProps) {
35661 nextState.visible = nextProps.visible;
35662 }
35663
35664 if (!prevState.innerAlign && 'align' in nextProps && alignList.includes(nextProps.align) && nextProps.align !== prevState.align) {
35665 nextState.align = nextProps.align;
35666 nextState.innerAlign = false;
35667 }
35668
35669 return nextState;
35670 };
35671
35672 Balloon.prototype._onVisibleChange = function _onVisibleChange(visible, trigger) {
35673 // Not Controlled
35674 if (!('visible' in this.props)) {
35675 this.setState({
35676 visible: visible
35677 });
35678 }
35679
35680 this.props.onVisibleChange(visible, trigger);
35681
35682 if (!visible) {
35683 this.props.onClose();
35684 }
35685 };
35686
35687 Balloon.prototype._onClose = function _onClose(e) {
35688 this._onVisibleChange(false, 'closeClick');
35689
35690 //必须加上preventDefault,否则单测IE下报错,出现full page reload 异常
35691 e.preventDefault();
35692 };
35693
35694 Balloon.prototype._onPosition = function _onPosition(res) {
35695 var rtl = this.props.rtl;
35696
35697 alignMap = this.props.alignEdge ? _alignMap.edgeMap : _alignMap.normalMap;
35698 var newAlign = res.align.join(' ');
35699 var resAlign = void 0;
35700
35701 var alignKey = 'align';
35702 if (rtl) {
35703 alignKey = 'rtlAlign';
35704 }
35705
35706 for (var key in alignMap) {
35707 if (alignMap[key][alignKey] === newAlign) {
35708 resAlign = key;
35709
35710 break;
35711 }
35712 }
35713
35714 resAlign = resAlign || this.state.align;
35715 if (resAlign !== this.state.align) {
35716 this.setState({
35717 align: resAlign,
35718 innerAlign: true
35719 });
35720 }
35721 };
35722
35723 Balloon.prototype.render = function render() {
35724 var _props = this.props,
35725 id = _props.id,
35726 type = _props.type,
35727 prefix = _props.prefix,
35728 className = _props.className,
35729 title = _props.title,
35730 alignEdge = _props.alignEdge,
35731 trigger = _props.trigger,
35732 triggerType = _props.triggerType,
35733 children = _props.children,
35734 closable = _props.closable,
35735 shouldUpdatePosition = _props.shouldUpdatePosition,
35736 delay = _props.delay,
35737 needAdjust = _props.needAdjust,
35738 autoAdjust = _props.autoAdjust,
35739 safeId = _props.safeId,
35740 autoFocus = _props.autoFocus,
35741 safeNode = _props.safeNode,
35742 onClick = _props.onClick,
35743 onHover = _props.onHover,
35744 animation = _props.animation,
35745 offset = _props.offset,
35746 style = _props.style,
35747 container = _props.container,
35748 popupContainer = _props.popupContainer,
35749 cache = _props.cache,
35750 popupStyle = _props.popupStyle,
35751 popupClassName = _props.popupClassName,
35752 popupProps = _props.popupProps,
35753 followTrigger = _props.followTrigger,
35754 rtl = _props.rtl,
35755 v2 = _props.v2,
35756 arrowPointToCenter = _props.arrowPointToCenter,
35757 _props$placementOffse = _props.placementOffset,
35758 placementOffset = _props$placementOffse === undefined ? 0 : _props$placementOffse,
35759 others = (0, _objectWithoutProperties3.default)(_props, ['id', 'type', 'prefix', 'className', 'title', 'alignEdge', 'trigger', 'triggerType', 'children', 'closable', 'shouldUpdatePosition', 'delay', 'needAdjust', 'autoAdjust', 'safeId', 'autoFocus', 'safeNode', 'onClick', 'onHover', 'animation', 'offset', 'style', 'container', 'popupContainer', 'cache', 'popupStyle', 'popupClassName', 'popupProps', 'followTrigger', 'rtl', 'v2', 'arrowPointToCenter', 'placementOffset']);
35760
35761 if (container) {
35762 _util.log.deprecated('container', 'popupContainer', 'Balloon');
35763 }
35764
35765 var align = this.state.align;
35766
35767 alignMap = alignEdge || v2 ? _alignMap.edgeMap : _alignMap.normalMap;
35768 var _prefix = this.context.prefix || prefix;
35769
35770 var trOrigin = 'trOrigin';
35771 if (rtl) {
35772 trOrigin = 'rtlTrOrigin';
35773 }
35774
35775 var _offset = [alignMap[align].offset[0] + offset[0], alignMap[align].offset[1] + offset[1]];
35776 var transformOrigin = alignMap[align][trOrigin];
35777 var _style = (0, _extends3.default)({ transformOrigin: transformOrigin }, style);
35778
35779 var content = _react2.default.createElement(_inner2.default, (0, _extends3.default)({}, _util.obj.pickOthers(Object.keys(Balloon.propTypes), others), {
35780 id: id,
35781 title: title,
35782 prefix: _prefix,
35783 closable: closable,
35784 onClose: this._onClose,
35785 className: className,
35786 style: _style,
35787 align: align,
35788 type: type,
35789 rtl: rtl,
35790 alignEdge: alignEdge,
35791 v2: v2
35792 }), children);
35793
35794 var triggerProps = {};
35795 triggerProps['aria-describedby'] = id;
35796 triggerProps.tabIndex = '0';
35797
35798 var ariaTrigger = id ? _react2.default.cloneElement(trigger, triggerProps) : trigger;
35799
35800 var newTrigger = (0, _util2.getDisabledCompatibleTrigger)(_react2.default.isValidElement(ariaTrigger) ? ariaTrigger : _react2.default.createElement('span', null, ariaTrigger));
35801
35802 var otherProps = {
35803 delay: delay,
35804 shouldUpdatePosition: shouldUpdatePosition,
35805 needAdjust: needAdjust,
35806 align: alignMap[align].align,
35807 offset: _offset,
35808 safeId: safeId,
35809 onHover: onHover,
35810 onPosition: this._onPosition
35811 };
35812
35813 if (v2) {
35814 delete otherProps.align;
35815 delete otherProps.shouldUpdatePosition;
35816 delete otherProps.needAdjust;
35817 delete otherProps.offset;
35818 delete otherProps.safeId;
35819 delete otherProps.onHover;
35820 delete otherProps.onPosition;
35821
35822 (0, _extends3.default)(otherProps, {
35823 placement: align,
35824 placementOffset: placementOffset + 12,
35825 v2: true,
35826 beforePosition: this.beforePosition,
35827 autoAdjust: autoAdjust
35828 });
35829 }
35830
35831 return _react2.default.createElement(Popup, (0, _extends3.default)({}, popupProps, {
35832 followTrigger: followTrigger,
35833 trigger: newTrigger,
35834 cache: cache,
35835 triggerType: triggerType,
35836 visible: this.state.visible,
35837 onClick: onClick,
35838 afterClose: this.props.afterClose,
35839 onVisibleChange: this._onVisibleChange,
35840 animation: animation,
35841 autoFocus: triggerType === 'focus' ? false : autoFocus,
35842 safeNode: safeNode,
35843 container: popupContainer || container,
35844 className: popupClassName,
35845 style: popupStyle,
35846 rtl: rtl
35847 }, otherProps), content);
35848 };
35849
35850 return Balloon;
35851}(_react2.default.Component), _class.contextTypes = {
35852 prefix: _propTypes2.default.string
35853}, _class.propTypes = {
35854 prefix: _propTypes2.default.string,
35855 pure: _propTypes2.default.bool,
35856 rtl: _propTypes2.default.bool,
35857 /**
35858 * 自定义类名
35859 */
35860 className: _propTypes2.default.string,
35861 /**
35862 * 自定义内敛样式
35863 */
35864 style: _propTypes2.default.object,
35865 /**
35866 * 浮层的内容
35867 */
35868 children: _propTypes2.default.any,
35869 size: _propTypes2.default.string,
35870 /**
35871 * 样式类型
35872 */
35873 type: _propTypes2.default.oneOf(['normal', 'primary']),
35874 /**
35875 * 标题
35876 * @version 1.23
35877 */
35878 title: _propTypes2.default.node,
35879 /**
35880 * 弹层当前显示的状态
35881 */
35882 visible: _propTypes2.default.bool,
35883 /**
35884 * 弹层默认显示的状态
35885 */
35886 defaultVisible: _propTypes2.default.bool,
35887 /**
35888 * 弹层在显示和隐藏触发的事件
35889 * @param {Boolean} visible 弹层是否隐藏和显示
35890 * @param {String} type 触发弹层显示或隐藏的来源, closeClick 表示由自带的关闭按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
35891 */
35892 onVisibleChange: _propTypes2.default.func,
35893 alignEdge: _propTypes2.default.bool,
35894 /**
35895 * 开启 v2 版本
35896 * @version 1.25
35897 */
35898 v2: _propTypes2.default.bool,
35899 /**
35900 * [v2] 箭头是否指向目标元素的中心
35901 * @version 1.25
35902 */
35903 arrowPointToCenter: _propTypes2.default.bool,
35904 /**
35905 * [v2] 弹层偏离触发元素的像素值
35906 */
35907 placementOffset: _propTypes2.default.number,
35908 /**
35909 * 是否显示关闭按钮
35910 */
35911 closable: _propTypes2.default.bool,
35912 /**
35913 * 弹出层位置
35914 * @enumdesc 上, 右, 下, 左, 上左, 上右, 下左, 下右, 左上, 左下, 右上, 右下
35915 */
35916 align: _propTypes2.default.oneOf(alignList),
35917 /**
35918 * 弹层相对于trigger的定位的微调, 接收数组[hoz, ver], 表示弹层在 left / top 上的增量
35919 * e.g. [100, 100] 表示往右(RTL 模式下是往左) 、下分布偏移100px
35920 */
35921 offset: _propTypes2.default.array,
35922 /**
35923 * 触发元素
35924 */
35925 trigger: _propTypes2.default.any,
35926 /**
35927 * 触发行为
35928 * 鼠标悬浮, 鼠标点击('hover','click')或者它们组成的数组,如 ['hover', 'click'], 强烈不建议使用'focus',若弹窗内容有复杂交互请使用click
35929 */
35930 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
35931
35932 onClick: _propTypes2.default.func,
35933 /**
35934 * 任何visible为false时会触发的事件
35935 */
35936 onClose: _propTypes2.default.func,
35937 onHover: _propTypes2.default.func,
35938 /**
35939 * [v2] 是否进行自动位置调整,默认自动开启。
35940 * @version 1.25
35941 */
35942 autoAdjust: _propTypes2.default.bool,
35943 needAdjust: _propTypes2.default.bool,
35944 /**
35945 * 弹层在触发以后的延时显示, 单位毫秒 ms
35946 */
35947 delay: _propTypes2.default.number,
35948 /**
35949 * 浮层关闭后触发的事件, 如果有动画,则在动画结束后触发
35950 */
35951 afterClose: _propTypes2.default.func,
35952 shouldUpdatePosition: _propTypes2.default.bool,
35953 /**
35954 * 弹层出现后是否自动focus到内部第一个元素
35955 */
35956 autoFocus: _propTypes2.default.bool,
35957 /**
35958 * 安全节点:对于triggetType为click的浮层,会在点击除了浮层外的其它区域时关闭浮层.safeNode用于添加不触发关闭的节点, 值可以是dom节点的id或者是节点的dom对象
35959 */
35960 safeNode: _propTypes2.default.string,
35961 /**
35962 * 用来指定safeNode节点的id,和safeNode配合使用
35963 */
35964 safeId: _propTypes2.default.string,
35965 /**
35966 * 配置动画的播放方式,格式是{in: '', out: ''}, 常用的动画class请查看Animate组件文档
35967 * @param {String} in 进场动画
35968 * @param {String} out 出场动画
35969 */
35970 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
35971
35972 /**
35973 * 弹层的dom节点关闭时是否删除
35974 */
35975 cache: _propTypes2.default.bool,
35976 /**
35977 * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数。
35978 */
35979 popupContainer: _propTypes2.default.any,
35980 container: _propTypes2.default.any,
35981 /**
35982 * 弹层组件style,透传给Popup
35983 */
35984 popupStyle: _propTypes2.default.object,
35985 /**
35986 * 弹层组件className,透传给Popup
35987 */
35988 popupClassName: _propTypes2.default.string,
35989 /**
35990 * 弹层组件属性,透传给Popup
35991 */
35992 popupProps: _propTypes2.default.object,
35993 /**
35994 * 是否跟随滚动
35995 */
35996 followTrigger: _propTypes2.default.bool,
35997 /**
35998 * 弹层id, 传入值才会支持无障碍
35999 */
36000 id: _propTypes2.default.string
36001}, _class.defaultProps = {
36002 prefix: 'next-',
36003 pure: false,
36004 type: 'normal',
36005 closable: true,
36006 defaultVisible: false,
36007 size: 'medium',
36008 alignEdge: false,
36009 arrowPointToCenter: false,
36010 align: 'b',
36011 offset: [0, 0],
36012 trigger: _react2.default.createElement('span', null),
36013 onClose: noop,
36014 afterClose: noop,
36015 onVisibleChange: noop,
36016 needAdjust: false,
36017 triggerType: 'hover',
36018 safeNode: undefined,
36019 safeId: null,
36020 autoFocus: true,
36021 animation: {
36022 in: 'zoomIn zoomInBig',
36023 out: 'zoomOut zoomOutBig'
36024 },
36025 cache: false,
36026 popupStyle: {},
36027 popupClassName: '',
36028 popupProps: {}
36029}, _temp);
36030Balloon.displayName = 'Balloon';
36031exports.default = (0, _reactLifecyclesCompat.polyfill)(Balloon);
36032module.exports = exports['default'];
36033
36034/***/ }),
36035/* 276 */
36036/***/ (function(module, exports, __webpack_require__) {
36037
36038"use strict";
36039
36040
36041exports.__esModule = true;
36042var overlayManager = {
36043 allOverlays: [],
36044
36045 addOverlay: function addOverlay(overlay) {
36046 this.removeOverlay(overlay);
36047 this.allOverlays.unshift(overlay);
36048 },
36049 isCurrentOverlay: function isCurrentOverlay(overlay) {
36050 return overlay && this.allOverlays[0] === overlay;
36051 },
36052 removeOverlay: function removeOverlay(overlay) {
36053 var i = this.allOverlays.indexOf(overlay);
36054 if (i > -1) {
36055 this.allOverlays.splice(i, 1);
36056 }
36057 }
36058};
36059
36060exports.default = overlayManager;
36061module.exports = exports["default"];
36062
36063/***/ }),
36064/* 277 */
36065/***/ (function(module, exports, __webpack_require__) {
36066
36067"use strict";
36068
36069
36070exports.__esModule = true;
36071exports.default = undefined;
36072
36073var _classCallCheck2 = __webpack_require__(2);
36074
36075var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
36076
36077var _typeof2 = __webpack_require__(14);
36078
36079var _typeof3 = _interopRequireDefault(_typeof2);
36080
36081var _class, _temp, _initialiseProps;
36082
36083var _util = __webpack_require__(6);
36084
36085var _findNode = __webpack_require__(60);
36086
36087var _findNode2 = _interopRequireDefault(_findNode);
36088
36089function _interopRequireDefault(obj) {
36090 return obj && obj.__esModule ? obj : { default: obj };
36091}
36092
36093var VIEWPORT = 'viewport';
36094
36095// IE8 not support pageXOffset
36096var getPageX = function getPageX() {
36097 return window.pageXOffset || document.documentElement.scrollLeft;
36098};
36099var getPageY = function getPageY() {
36100 return window.pageYOffset || document.documentElement.scrollTop;
36101};
36102
36103/**
36104 * @private get element size
36105 * @param {Element} element
36106 * @return {Object}
36107 */
36108function _getSize(element) {
36109 // element like `svg` do not have offsetWidth and offsetHeight prop
36110 // then getBoundingClientRect
36111 if ('offsetWidth' in element && 'offsetHeight' in element) {
36112 return {
36113 width: element.offsetWidth,
36114 height: element.offsetHeight
36115 };
36116 } else {
36117 var _element$getBoundingC = element.getBoundingClientRect(),
36118 width = _element$getBoundingC.width,
36119 height = _element$getBoundingC.height;
36120
36121 return {
36122 width: width,
36123 height: height
36124 };
36125 }
36126}
36127
36128/**
36129 * @private get element rect
36130 * @param {Element} elem
36131 * @return {Object}
36132 */
36133function _getElementRect(elem, container) {
36134 var offsetTop = 0,
36135 offsetLeft = 0,
36136 scrollTop = 0,
36137 scrollLeft = 0;
36138
36139 var _getSize2 = _getSize(elem),
36140 width = _getSize2.width,
36141 height = _getSize2.height;
36142
36143 do {
36144 if (!isNaN(elem.offsetTop)) {
36145 offsetTop += elem.offsetTop;
36146 }
36147 if (!isNaN(elem.offsetLeft)) {
36148 offsetLeft += elem.offsetLeft;
36149 }
36150 if (elem && elem.offsetParent) {
36151 if (!isNaN(elem.offsetParent.scrollLeft) && elem.offsetParent !== document.body) {
36152 scrollLeft += elem.offsetParent.scrollLeft;
36153 }
36154
36155 if (!isNaN(elem.offsetParent.scrollTop) && elem.offsetParent !== document.body) {
36156 scrollTop += elem.offsetParent.scrollTop;
36157 }
36158 }
36159
36160 elem = elem.offsetParent;
36161 } while (elem !== null && elem !== container);
36162
36163 // if container is body or invalid, treat as window, use client width & height
36164 var treatAsWindow = !container || container === document.body;
36165
36166 return {
36167 top: offsetTop - scrollTop - (treatAsWindow ? document.documentElement.scrollTop || document.body.scrollTop : 0),
36168 left: offsetLeft - scrollLeft - (treatAsWindow ? document.documentElement.scrollLeft || document.body.scrollLeft : 0),
36169 width: width,
36170 height: height
36171 };
36172}
36173
36174/**
36175 * @private get viewport size
36176 * @return {Object}
36177 */
36178function _getViewportSize(container) {
36179 if (!container || container === document.body) {
36180 return {
36181 width: document.documentElement.clientWidth,
36182 height: document.documentElement.clientHeight
36183 };
36184 }
36185
36186 var _container$getBoundin = container.getBoundingClientRect(),
36187 width = _container$getBoundin.width,
36188 height = _container$getBoundin.height;
36189
36190 return {
36191 width: width,
36192 height: height
36193 };
36194}
36195
36196var getContainer = function getContainer(_ref) {
36197 var container = _ref.container,
36198 baseElement = _ref.baseElement;
36199
36200 // SSR下会有副作用
36201 if ((typeof document === 'undefined' ? 'undefined' : (0, _typeof3.default)(document)) === undefined) {
36202 return container;
36203 }
36204
36205 var calcContainer = (0, _findNode2.default)(container, baseElement);
36206
36207 if (!calcContainer) {
36208 calcContainer = document.body;
36209 }
36210
36211 while (_util.dom.getStyle(calcContainer, 'position') === 'static') {
36212 if (!calcContainer || calcContainer === document.body) {
36213 return document.body;
36214 }
36215 calcContainer = calcContainer.parentNode;
36216 }
36217
36218 return calcContainer;
36219};
36220
36221var Position = (_temp = _class = function () {
36222 function Position(props) {
36223 (0, _classCallCheck3.default)(this, Position);
36224
36225 _initialiseProps.call(this);
36226
36227 this.pinElement = props.pinElement;
36228 this.baseElement = props.baseElement;
36229 this.pinFollowBaseElementWhenFixed = props.pinFollowBaseElementWhenFixed;
36230 this.container = getContainer(props);
36231 this.autoFit = props.autoFit || false;
36232 this.align = props.align || 'tl tl';
36233 this.offset = props.offset || [0, 0];
36234 this.needAdjust = props.needAdjust || false;
36235 this.isRtl = props.isRtl || false;
36236 }
36237
36238 /**
36239 * @public static place method
36240 * @param {Object} props
36241 * @param {DOM} props.pinElement
36242 * @param {DOM} props.baseElement
36243 * @param {String} props.align
36244 * @param {Number} props.offset
36245 * @param {Boolean} props.needAdjust
36246 * @param {Boolean} props.isRtl
36247 * @return {Position}
36248 */
36249
36250 Position.prototype.setPosition = function setPosition() {
36251 var pinElement = this.pinElement;
36252 var baseElement = this.baseElement;
36253 var pinFollowBaseElementWhenFixed = this.pinFollowBaseElementWhenFixed;
36254 var expectedAlign = this._getExpectedAlign();
36255 var isPinFixed = void 0,
36256 isBaseFixed = void 0,
36257 firstPositionResult = void 0;
36258 if (pinElement === VIEWPORT) {
36259 return;
36260 }
36261 if (_util.dom.getStyle(pinElement, 'position') !== 'fixed') {
36262 _util.dom.setStyle(pinElement, 'position', 'absolute');
36263 isPinFixed = false;
36264 } else {
36265 isPinFixed = true;
36266 }
36267 if (baseElement === VIEWPORT || _util.dom.getStyle(baseElement, 'position') !== 'fixed') {
36268 isBaseFixed = false;
36269 } else {
36270 isBaseFixed = true;
36271 }
36272
36273 // 根据期望的定位
36274 for (var i = 0; i < expectedAlign.length; i++) {
36275 var align = expectedAlign[i];
36276 var pinElementPoints = this._normalizePosition(pinElement, align.split(' ')[0], isPinFixed);
36277 var baseElementPoints = this._normalizePosition(baseElement, align.split(' ')[1],
36278 // 忽略元素位置,发生在类似dialog的场景下
36279 isPinFixed && !pinFollowBaseElementWhenFixed);
36280
36281 var pinElementParentOffset = this._getParentOffset(pinElement);
36282 var pinElementParentScrollOffset = this._getParentScrollOffset(pinElement);
36283
36284 var baseElementOffset = isPinFixed && isBaseFixed ? this._getLeftTop(baseElement) : // 在 pin 是 fixed 布局,并且又需要根据 base 计算位置时,计算 base 的 offset 需要忽略页面滚动
36285 baseElementPoints.offset(isPinFixed && pinFollowBaseElementWhenFixed);
36286 var top = baseElementOffset.top + baseElementPoints.y - pinElementParentOffset.top - pinElementPoints.y + pinElementParentScrollOffset.top;
36287 var left = baseElementOffset.left + baseElementPoints.x - pinElementParentOffset.left - pinElementPoints.x + pinElementParentScrollOffset.left;
36288
36289 this._setPinElementPostion(pinElement, { left: left, top: top }, this.offset);
36290
36291 if (this._isInViewport(pinElement, align)) {
36292 return align;
36293 } else if (!firstPositionResult) {
36294 if (this.needAdjust && !this.autoFit) {
36295 var _getViewportOffset2 = this._getViewportOffset(pinElement, align),
36296 right = _getViewportOffset2.right;
36297
36298 firstPositionResult = {
36299 left: right < 0 ? left + right : left,
36300 top: top
36301 };
36302 } else {
36303 firstPositionResult = { left: left, top: top };
36304 }
36305 }
36306 }
36307
36308 // This will only execute if `pinElement` could not be placed entirely in the Viewport
36309 var inViewportLeft = this._makeElementInViewport(pinElement, firstPositionResult.left, 'Left', isPinFixed);
36310 var inViewportTop = this._makeElementInViewport(pinElement, firstPositionResult.top, 'Top', isPinFixed);
36311
36312 this._setPinElementPostion(pinElement, { left: inViewportLeft, top: inViewportTop }, this._calPinOffset(expectedAlign[0]));
36313
36314 return expectedAlign[0];
36315 };
36316
36317 Position.prototype._getParentOffset = function _getParentOffset(element) {
36318 var parent = element.offsetParent || document.documentElement;
36319 var offset = void 0;
36320 if (parent === document.body && _util.dom.getStyle(parent, 'position') === 'static') {
36321 offset = {
36322 top: 0,
36323 left: 0
36324 };
36325 } else {
36326 offset = this._getElementOffset(parent);
36327 }
36328
36329 offset.top += parseFloat(_util.dom.getStyle(parent, 'border-top-width'), 10);
36330 offset.left += parseFloat(_util.dom.getStyle(parent, 'border-left-width'), 10);
36331 offset.offsetParent = parent;
36332 return offset;
36333 };
36334
36335 Position.prototype._makeElementInViewport = function _makeElementInViewport(pinElement, number, type, isPinFixed) {
36336 // pinElement.offsetParent is never body because wrapper has position: absolute
36337 // refactored to make code clearer. Revert if wrapper style changes.
36338 var result = number;
36339 var docElement = document.documentElement;
36340 var offsetParent = pinElement.offsetParent || document.documentElement;
36341
36342 if (result < 0) {
36343 if (isPinFixed) {
36344 result = 0;
36345 } else if (offsetParent === document.body && _util.dom.getStyle(offsetParent, 'position') === 'static') {
36346 // Only when div's offsetParent is document.body, we set new position result.
36347 result = Math.max(docElement['scroll' + type], document.body['scroll' + type]);
36348 }
36349 }
36350 return result;
36351 };
36352
36353 // 这里的第三个参数真实含义为:是否为fixed布局,并且像dialog一样,不跟随trigger元素
36354
36355
36356 Position.prototype._normalizePosition = function _normalizePosition(element, align, ignoreElementOffset) {
36357 var points = this._normalizeElement(element, ignoreElementOffset);
36358 this._normalizeXY(points, align);
36359
36360 return points;
36361 };
36362
36363 Position.prototype._normalizeXY = function _normalizeXY(points, align) {
36364 var x = align.split('')[1];
36365 var y = align.split('')[0];
36366
36367 points.x = this._xyConverter(x, points, 'width');
36368 points.y = this._xyConverter(y, points, 'height');
36369
36370 return points;
36371 };
36372
36373 Position.prototype._xyConverter = function _xyConverter(align, points, type) {
36374 var res = align.replace(/t|l/gi, '0%').replace(/c/gi, '50%').replace(/b|r/gi, '100%').replace(/(\d+)%/gi, function (m, d) {
36375 return points.size()[type] * (d / 100);
36376 });
36377
36378 return parseFloat(res, 10) || 0;
36379 };
36380
36381 Position.prototype._getLeftTop = function _getLeftTop(element) {
36382 return {
36383 left: parseFloat(_util.dom.getStyle(element, 'left')) || 0,
36384 top: parseFloat(_util.dom.getStyle(element, 'top')) || 0
36385 };
36386 };
36387
36388 Position.prototype._normalizeElement = function _normalizeElement(element, ignoreElementOffset) {
36389 var _this = this;
36390
36391 var result = {
36392 element: element,
36393 x: 0,
36394 y: 0
36395 },
36396 isViewport = element === VIEWPORT,
36397 docElement = document.documentElement;
36398
36399 result.offset = function (ignoreScroll) {
36400 // 这里是关键,第二个参数的含义以ing该是:是否为 fixed 布局,并且像 dialog 一样,不跟随 trigger 元素
36401 if (ignoreElementOffset) {
36402 return {
36403 left: 0,
36404 top: 0
36405 };
36406 } else if (isViewport) {
36407 return {
36408 left: getPageX(),
36409 top: getPageY()
36410 };
36411 } else {
36412 return _this._getElementOffset(element, ignoreScroll);
36413 }
36414 };
36415
36416 result.size = function () {
36417 if (isViewport) {
36418 return {
36419 width: docElement.clientWidth,
36420 height: docElement.clientHeight
36421 };
36422 } else {
36423 return _getSize(element);
36424 }
36425 };
36426
36427 return result;
36428 };
36429
36430 // ignoreScroll 在 pin 元素为 fixed 的时候生效,此时需要忽略页面滚动
36431 // 对 fixed 模式下 subNav 弹层的计算很重要,只有在这种情况下,才同时需要元素的相对位置,又不关心页面滚动
36432
36433
36434 Position.prototype._getElementOffset = function _getElementOffset(element, ignoreScroll) {
36435 var rect = element.getBoundingClientRect();
36436 var docElement = document.documentElement;
36437 var body = document.body;
36438 var docClientLeft = docElement.clientLeft || body.clientLeft || 0;
36439 var docClientTop = docElement.clientTop || body.clientTop || 0;
36440
36441 return {
36442 left: rect.left + (ignoreScroll ? 0 : getPageX()) - docClientLeft,
36443 top: rect.top + (ignoreScroll ? 0 : getPageY()) - docClientTop
36444 };
36445 };
36446
36447 // According to the location of the overflow to calculate the desired positioning
36448
36449
36450 Position.prototype._getExpectedAlign = function _getExpectedAlign() {
36451 var align = this.isRtl ? this._replaceAlignDir(this.align, /l|r/g, { l: 'r', r: 'l' }) : this.align;
36452 var expectedAlign = [align];
36453 if (this.needAdjust) {
36454 if (/t|b/g.test(align)) {
36455 expectedAlign.push(this._replaceAlignDir(align, /t|b/g, { t: 'b', b: 't' }));
36456 }
36457 if (/l|r/g.test(align)) {
36458 expectedAlign.push(this._replaceAlignDir(align, /l|r/g, { l: 'r', r: 'l' }));
36459 }
36460 if (/c/g.test(align)) {
36461 expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'l' }));
36462 expectedAlign.push(this._replaceAlignDir(align, /c(?= |$)/g, { c: 'r' }));
36463 }
36464 expectedAlign.push(this._replaceAlignDir(align, /l|r|t|b/g, {
36465 l: 'r',
36466 r: 'l',
36467 t: 'b',
36468 b: 't'
36469 }));
36470 }
36471 return expectedAlign;
36472 };
36473
36474 // Transform align order.
36475
36476
36477 Position.prototype._replaceAlignDir = function _replaceAlignDir(align, regExp, map) {
36478 return align.replace(regExp, function (res) {
36479 return map[res];
36480 });
36481 };
36482
36483 // Are the right sides of the pin and base aligned?
36484
36485
36486 Position.prototype._isRightAligned = function _isRightAligned(align) {
36487 var _align$split = align.split(' '),
36488 pinAlign = _align$split[0],
36489 baseAlign = _align$split[1];
36490
36491 return pinAlign[1] === 'r' && pinAlign[1] === baseAlign[1];
36492 };
36493
36494 // Are the bottoms of the pin and base aligned?
36495
36496
36497 Position.prototype._isBottomAligned = function _isBottomAligned(align) {
36498 var _align$split2 = align.split(' '),
36499 pinAlign = _align$split2[0],
36500 baseAlign = _align$split2[1];
36501
36502 return pinAlign[0] === 'b' && pinAlign[0] === baseAlign[0];
36503 };
36504
36505 // Detecting element is in the window, we want to adjust position later.
36506
36507
36508 Position.prototype._isInViewport = function _isInViewport(element, align) {
36509 var viewportSize = _getViewportSize(this.container);
36510 var elementRect = _getElementRect(element, this.container);
36511 var elementSize = _getSize(element);
36512
36513 // https://github.com/alibaba-fusion/next/issues/853
36514 // Equality causes issues in Chrome when pin element is off screen to right or bottom.
36515 // If it is not supposed to align with the bottom or right, then subtract 1 to use strict less than.
36516 var viewportWidth = this._isRightAligned(align) ? viewportSize.width : viewportSize.width - 1;
36517 var viewportHeight = this._isBottomAligned(align) ? viewportSize.height : viewportSize.height - 1;
36518
36519 // 临时方案,在 select + table 的场景下,不需要关注横向上是否在可视区域内
36520 // 在 balloon 场景下需要关注
36521 if (this.autoFit) {
36522 return elementRect.top >= 0 && elementRect.top + element.offsetHeight <= viewportHeight;
36523 }
36524
36525 // Avoid animate problem that use offsetWidth instead of getBoundingClientRect.
36526 return elementRect.left >= 0 && elementRect.left + elementSize.width <= viewportWidth && elementRect.top >= 0 && elementRect.top + elementSize.height <= viewportHeight;
36527 };
36528
36529 Position.prototype._getViewportOffset = function _getViewportOffset(element, align) {
36530 var viewportSize = _getViewportSize(this.container);
36531 var elementRect = _getElementRect(element, this.container);
36532 var elementSize = _getSize(element);
36533
36534 var viewportWidth = this._isRightAligned(align) ? viewportSize.width : viewportSize.width - 1;
36535 var viewportHeight = this._isBottomAligned(align) ? viewportSize.height : viewportSize.height - 1;
36536
36537 return {
36538 top: elementRect.top,
36539 right: viewportWidth - (elementRect.left + elementSize.width),
36540 bottom: viewportHeight - (elementRect.top + elementSize.height),
36541 left: elementRect.left
36542 };
36543 };
36544
36545 // 在这里做RTL判断 top-left 定位转化为等效的 top-right定位
36546
36547
36548 Position.prototype._setPinElementPostion = function _setPinElementPostion(pinElement, postion) {
36549 var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0];
36550 var top = postion.top,
36551 left = postion.left;
36552
36553 if (!this.isRtl) {
36554 _util.dom.setStyle(pinElement, {
36555 left: left + offset[0] + 'px',
36556 top: top + offset[1] + 'px'
36557 });
36558 return;
36559 }
36560
36561 // transfer {left,top} equaly to {right,top}
36562 var pinElementParentOffset = this._getParentOffset(pinElement);
36563
36564 var _getElementRect2 = _getElementRect(pinElementParentOffset.offsetParent),
36565 offsetParentWidth = _getElementRect2.width;
36566
36567 var _getElementRect3 = _getElementRect(pinElement),
36568 width = _getElementRect3.width;
36569
36570 var right = offsetParentWidth - (left + width);
36571 _util.dom.setStyle(pinElement, {
36572 left: 'auto',
36573 right: right + offset[0] + 'px',
36574 top: top + offset[1] + 'px'
36575 });
36576 };
36577
36578 return Position;
36579}(), _class.VIEWPORT = VIEWPORT, _class.place = function (props) {
36580 return new Position(props).setPosition();
36581}, _initialiseProps = function _initialiseProps() {
36582 var _this2 = this;
36583
36584 this._calPinOffset = function (align) {
36585 var offset = [].concat(_this2.offset);
36586
36587 if (_this2.autoFit && align && _this2.container && _this2.container !== document.body) {
36588 var baseElementRect = _getElementRect(_this2.baseElement, _this2.container);
36589 var pinElementRect = _getElementRect(_this2.pinElement, _this2.container);
36590 var viewportSize = _getViewportSize(_this2.container);
36591 var pinAlign = align.split(' ')[0];
36592 var x = pinAlign.charAt(1);
36593 var y = pinAlign.charAt(0);
36594
36595 if (pinElementRect.top < 0 || pinElementRect.top + pinElementRect.height > viewportSize.height) {
36596 offset[1] = -baseElementRect.top - (y === 't' ? baseElementRect.height : 0);
36597 }
36598 }
36599 return offset;
36600 };
36601
36602 this._getParentScrollOffset = function (elem) {
36603 var top = 0;
36604 var left = 0;
36605
36606 if (elem && elem.offsetParent && elem.offsetParent !== document.body) {
36607 if (!isNaN(elem.offsetParent.scrollTop)) {
36608 top += elem.offsetParent.scrollTop;
36609 }
36610 if (!isNaN(elem.offsetParent.scrollLeft)) {
36611 left += elem.offsetParent.scrollLeft;
36612 }
36613 }
36614
36615 return {
36616 top: top,
36617 left: left
36618 };
36619 };
36620}, _temp);
36621exports.default = Position;
36622module.exports = exports['default'];
36623
36624/***/ }),
36625/* 278 */
36626/***/ (function(module, exports, __webpack_require__) {
36627
36628"use strict";
36629
36630
36631exports.__esModule = true;
36632
36633var _extends2 = __webpack_require__(1);
36634
36635var _extends3 = _interopRequireDefault(_extends2);
36636
36637var _objectWithoutProperties2 = __webpack_require__(8);
36638
36639var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
36640
36641var _react = __webpack_require__(0);
36642
36643var _react2 = _interopRequireDefault(_react);
36644
36645var _classnames = __webpack_require__(7);
36646
36647var _classnames2 = _interopRequireDefault(_classnames);
36648
36649var _overlay = __webpack_require__(85);
36650
36651var _overlay2 = _interopRequireDefault(_overlay);
36652
36653var _animate = __webpack_require__(20);
36654
36655var _animate2 = _interopRequireDefault(_animate);
36656
36657var _util = __webpack_require__(6);
36658
36659function _interopRequireDefault(obj) {
36660 return obj && obj.__esModule ? obj : { default: obj };
36661}
36662
36663var Overlay2 = function Overlay2(props) {
36664 var _classNames;
36665
36666 if (!_react.useState || !_react.useRef || !_react.useEffect) {
36667 _util.log.warning('need react version > 16.8.0');
36668 return null;
36669 }
36670
36671 var _props$prefix = props.prefix,
36672 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
36673 _props$animation = props.animation,
36674 animation = _props$animation === undefined ? { in: 'expandInDown', out: 'expandOutUp' } : _props$animation,
36675 visible = props.visible,
36676 hasMask = props.hasMask,
36677 align = props.align,
36678 _props$points = props.points,
36679 points = _props$points === undefined ? align ? align.split(' ') : undefined : _props$points,
36680 onPosition = props.onPosition,
36681 children = props.children,
36682 className = props.className,
36683 style = props.style,
36684 wrapperClassName = props.wrapperClassName,
36685 beforeOpen = props.beforeOpen,
36686 onOpen = props.onOpen,
36687 afterOpen = props.afterOpen,
36688 beforeClose = props.beforeClose,
36689 onClose = props.onClose,
36690 afterClose = props.afterClose,
36691 others = (0, _objectWithoutProperties3.default)(props, ['prefix', 'animation', 'visible', 'hasMask', 'align', 'points', 'onPosition', 'children', 'className', 'style', 'wrapperClassName', 'beforeOpen', 'onOpen', 'afterOpen', 'beforeClose', 'onClose', 'afterClose']);
36692
36693 var _useState = (0, _react.useState)(true),
36694 isAnimationEnd = _useState[0],
36695 markAnimationEnd = _useState[1];
36696
36697 var overlayRef = (0, _react.useRef)(null);
36698
36699 var handleEnter = function handleEnter() {
36700 markAnimationEnd(false);
36701 typeof beforeOpen === 'function' && beforeOpen(overlayRef.current);
36702 };
36703 var handleEntering = function handleEntering() {
36704 typeof onOpen === 'function' && onOpen(overlayRef.current);
36705 };
36706 var handleEntered = function handleEntered() {
36707 typeof afterOpen === 'function' && afterOpen(overlayRef.current);
36708 };
36709 var handleExit = function handleExit() {
36710 typeof beforeClose === 'function' && beforeClose(overlayRef.current);
36711 };
36712 var handleExiting = function handleExiting() {
36713 typeof onClose === 'function' && onClose(overlayRef.current);
36714 };
36715 var handleExited = function handleExited() {
36716 markAnimationEnd(true);
36717 typeof afterClose === 'function' && afterClose(overlayRef.current);
36718 };
36719
36720 var childrenNode = _react2.default.createElement(_animate2.default.OverlayAnimate, {
36721 visible: visible,
36722 animation: animation,
36723 onEnter: handleEnter,
36724 onEntering: handleEntering,
36725 onEntered: handleEntered,
36726 onExit: handleExit,
36727 onExiting: handleExiting,
36728 onExited: handleExited,
36729 timeout: 300,
36730 style: style
36731 }, children ? (0, _react.cloneElement)(children, {
36732 className: (0, _classnames2.default)([prefix + 'overlay-inner', className, children && children.props && children.props.className])
36733 }) : _react2.default.createElement('span', null));
36734
36735 var wraperCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'overlay-wrapper v2'] = true, _classNames[wrapperClassName] = wrapperClassName, _classNames.opened = visible, _classNames));
36736
36737 var handlePosition = function handlePosition(result) {
36738 // 兼容 1.x, 2.x 可去除这段逻辑
36739 (0, _extends3.default)(result, { align: result.config.points });
36740
36741 typeof onPosition === 'function' && onPosition(result);
36742 };
36743
36744 var maskRender = function maskRender(node) {
36745 return _react2.default.createElement(_animate2.default.OverlayAnimate, {
36746 visible: visible,
36747 animation: animation ? { in: 'fadeIn', out: 'fadeOut' } : false,
36748 timeout: 300,
36749 unmountOnExit: true
36750 }, node);
36751 };
36752
36753 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, others, {
36754 visible: visible,
36755 isAnimationEnd: isAnimationEnd,
36756 hasMask: hasMask,
36757 wrapperClassName: wraperCls,
36758 maskClassName: prefix + 'overlay-backdrop',
36759 maskRender: maskRender,
36760 points: points,
36761 onPosition: handlePosition,
36762 ref: overlayRef
36763 }), childrenNode);
36764}; /* istanbul ignore file */
36765exports.default = Overlay2;
36766module.exports = exports['default'];
36767
36768/***/ }),
36769/* 279 */
36770/***/ (function(module, exports, __webpack_require__) {
36771
36772var setPrototypeOf = __webpack_require__(280);
36773
36774function _inheritsLoose(subClass, superClass) {
36775 subClass.prototype = Object.create(superClass.prototype);
36776 subClass.prototype.constructor = subClass;
36777 setPrototypeOf(subClass, superClass);
36778}
36779
36780module.exports = _inheritsLoose, module.exports.__esModule = true, module.exports["default"] = module.exports;
36781
36782/***/ }),
36783/* 280 */
36784/***/ (function(module, exports) {
36785
36786function _setPrototypeOf(o, p) {
36787 module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
36788 o.__proto__ = p;
36789 return o;
36790 }, module.exports.__esModule = true, module.exports["default"] = module.exports;
36791 return _setPrototypeOf(o, p);
36792}
36793
36794module.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports["default"] = module.exports;
36795
36796/***/ }),
36797/* 281 */
36798/***/ (function(module, exports, __webpack_require__) {
36799
36800"use strict";
36801
36802
36803exports.__esModule = true;
36804
36805var _objectWithoutProperties2 = __webpack_require__(8);
36806
36807var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
36808
36809var _extends2 = __webpack_require__(1);
36810
36811var _extends3 = _interopRequireDefault(_extends2);
36812
36813var _classCallCheck2 = __webpack_require__(2);
36814
36815var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
36816
36817var _possibleConstructorReturn2 = __webpack_require__(3);
36818
36819var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
36820
36821var _inherits2 = __webpack_require__(4);
36822
36823var _inherits3 = _interopRequireDefault(_inherits2);
36824
36825var _class, _temp;
36826
36827var _react = __webpack_require__(0);
36828
36829var _react2 = _interopRequireDefault(_react);
36830
36831var _reactDom = __webpack_require__(12);
36832
36833var _reactLifecyclesCompat = __webpack_require__(10);
36834
36835var _propTypes = __webpack_require__(5);
36836
36837var _propTypes2 = _interopRequireDefault(_propTypes);
36838
36839var _util = __webpack_require__(6);
36840
36841var _overlay = __webpack_require__(136);
36842
36843var _overlay2 = _interopRequireDefault(_overlay);
36844
36845function _interopRequireDefault(obj) {
36846 return obj && obj.__esModule ? obj : { default: obj };
36847}
36848
36849var noop = _util.func.noop,
36850 makeChain = _util.func.makeChain,
36851 bindCtx = _util.func.bindCtx;
36852
36853/**
36854 * Overlay.Popup
36855 * @description 继承 Overlay 的 API,除非特别说明
36856 * */
36857
36858var Popup = (_temp = _class = function (_Component) {
36859 (0, _inherits3.default)(Popup, _Component);
36860
36861 function Popup(props) {
36862 (0, _classCallCheck3.default)(this, Popup);
36863
36864 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
36865
36866 _this.state = {
36867 visible: typeof props.visible === 'undefined' ? props.defaultVisible : props.visible
36868 };
36869
36870 bindCtx(_this, ['handleTriggerClick', 'handleTriggerKeyDown', 'handleTriggerMouseEnter', 'handleTriggerMouseLeave', 'handleTriggerFocus', 'handleTriggerBlur', 'handleContentMouseEnter', 'handleContentMouseLeave', 'handleContentMouseDown', 'handleRequestClose', 'handleMaskMouseEnter', 'handleMaskMouseLeave']);
36871 return _this;
36872 }
36873
36874 Popup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
36875 if ('visible' in nextProps) {
36876 return (0, _extends3.default)({}, prevState, {
36877 visible: nextProps.visible
36878 });
36879 }
36880
36881 return null;
36882 };
36883
36884 Popup.prototype.componentWillUnmount = function componentWillUnmount() {
36885 var _this2 = this;
36886
36887 ['_timer', '_hideTimer', '_showTimer'].forEach(function (time) {
36888 _this2[time] && clearTimeout(_this2[time]);
36889 });
36890 };
36891
36892 Popup.prototype.handleVisibleChange = function handleVisibleChange(visible, type, e) {
36893 if (!('visible' in this.props)) {
36894 this.setState({
36895 visible: visible
36896 });
36897 }
36898
36899 this.props.onVisibleChange(visible, type, e);
36900 };
36901
36902 Popup.prototype.handleTriggerClick = function handleTriggerClick(e) {
36903 if (this.state.visible && !this.props.canCloseByTrigger) {
36904 return;
36905 }
36906
36907 this.handleVisibleChange(!this.state.visible, 'fromTrigger', e);
36908 };
36909
36910 Popup.prototype.handleTriggerKeyDown = function handleTriggerKeyDown(e) {
36911 var triggerClickKeycode = this.props.triggerClickKeycode;
36912
36913 var keycodes = Array.isArray(triggerClickKeycode) ? triggerClickKeycode : [triggerClickKeycode];
36914 if (keycodes.includes(e.keyCode)) {
36915 e.preventDefault();
36916 this.handleTriggerClick(e);
36917 }
36918 };
36919
36920 Popup.prototype.handleTriggerMouseEnter = function handleTriggerMouseEnter(e) {
36921 var _this3 = this;
36922
36923 this._mouseNotFirstOnMask = false;
36924
36925 if (this._hideTimer) {
36926 clearTimeout(this._hideTimer);
36927 this._hideTimer = null;
36928 }
36929 if (this._showTimer) {
36930 clearTimeout(this._showTimer);
36931 this._showTimer = null;
36932 }
36933 if (!this.state.visible) {
36934 this._showTimer = setTimeout(function () {
36935 _this3.handleVisibleChange(true, 'fromTrigger', e);
36936 }, this.props.delay);
36937 }
36938 };
36939
36940 Popup.prototype.handleTriggerMouseLeave = function handleTriggerMouseLeave(e, type) {
36941 var _this4 = this;
36942
36943 if (this._showTimer) {
36944 clearTimeout(this._showTimer);
36945 this._showTimer = null;
36946 }
36947 if (this.state.visible) {
36948 this._hideTimer = setTimeout(function () {
36949 _this4.handleVisibleChange(false, type || 'fromTrigger', e);
36950 }, this.props.delay);
36951 }
36952 };
36953
36954 Popup.prototype.handleTriggerFocus = function handleTriggerFocus(e) {
36955 this.handleVisibleChange(true, 'fromTrigger', e);
36956 };
36957
36958 Popup.prototype.handleTriggerBlur = function handleTriggerBlur(e) {
36959 if (!this._isForwardContent) {
36960 this.handleVisibleChange(false, 'fromTrigger', e);
36961 }
36962 this._isForwardContent = false;
36963 };
36964
36965 Popup.prototype.handleContentMouseDown = function handleContentMouseDown() {
36966 this._isForwardContent = true;
36967 };
36968
36969 Popup.prototype.handleContentMouseEnter = function handleContentMouseEnter() {
36970 clearTimeout(this._hideTimer);
36971 };
36972
36973 Popup.prototype.handleContentMouseLeave = function handleContentMouseLeave(e) {
36974 this.handleTriggerMouseLeave(e, 'fromContent');
36975 };
36976
36977 Popup.prototype.handleMaskMouseEnter = function handleMaskMouseEnter() {
36978 if (!this._mouseNotFirstOnMask) {
36979 clearTimeout(this._hideTimer);
36980 this._hideTimer = null;
36981 this._mouseNotFirstOnMask = false;
36982 }
36983 };
36984
36985 Popup.prototype.handleMaskMouseLeave = function handleMaskMouseLeave() {
36986 this._mouseNotFirstOnMask = true;
36987 };
36988
36989 Popup.prototype.handleRequestClose = function handleRequestClose(type, e) {
36990 this.handleVisibleChange(false, type, e);
36991 };
36992
36993 Popup.prototype.renderTrigger = function renderTrigger() {
36994 var _this5 = this;
36995
36996 var _props = this.props,
36997 trigger = _props.trigger,
36998 disabled = _props.disabled;
36999
37000 var props = {
37001 key: 'trigger',
37002 'aria-haspopup': true,
37003 'aria-expanded': this.state.visible
37004 };
37005
37006 if (!this.state.visible) {
37007 props['aria-describedby'] = undefined;
37008 }
37009
37010 if (!disabled) {
37011 var triggerType = this.props.triggerType;
37012
37013 var triggerTypes = Array.isArray(triggerType) ? triggerType : [triggerType];
37014
37015 var _ref = trigger && trigger.props || {},
37016 onClick = _ref.onClick,
37017 onKeyDown = _ref.onKeyDown,
37018 onMouseEnter = _ref.onMouseEnter,
37019 onMouseLeave = _ref.onMouseLeave,
37020 onFocus = _ref.onFocus,
37021 onBlur = _ref.onBlur;
37022
37023 triggerTypes.forEach(function (triggerType) {
37024 switch (triggerType) {
37025 case 'click':
37026 props.onClick = makeChain(_this5.handleTriggerClick, onClick);
37027 props.onKeyDown = makeChain(_this5.handleTriggerKeyDown, onKeyDown);
37028 break;
37029 case 'hover':
37030 props.onMouseEnter = makeChain(_this5.handleTriggerMouseEnter, onMouseEnter);
37031 props.onMouseLeave = makeChain(_this5.handleTriggerMouseLeave, onMouseLeave);
37032 break;
37033 case 'focus':
37034 props.onFocus = makeChain(_this5.handleTriggerFocus, onFocus);
37035 props.onBlur = makeChain(_this5.handleTriggerBlur, onBlur);
37036 break;
37037 default:
37038 break;
37039 }
37040 });
37041 }
37042
37043 return trigger && _react2.default.cloneElement(trigger, props);
37044 };
37045
37046 Popup.prototype.renderContent = function renderContent() {
37047 var _this6 = this;
37048
37049 var _props2 = this.props,
37050 children = _props2.children,
37051 triggerType = _props2.triggerType;
37052
37053 var triggerTypes = Array.isArray(triggerType) ? triggerType : [triggerType];
37054 var content = _react.Children.only(children);
37055 var _content$props = content.props,
37056 onMouseDown = _content$props.onMouseDown,
37057 onMouseEnter = _content$props.onMouseEnter,
37058 onMouseLeave = _content$props.onMouseLeave;
37059
37060 var props = {
37061 key: 'portal'
37062 };
37063
37064 triggerTypes.forEach(function (triggerType) {
37065 switch (triggerType) {
37066 case 'focus':
37067 props.onMouseDown = makeChain(_this6.handleContentMouseDown, onMouseDown);
37068 break;
37069 case 'hover':
37070 props.onMouseEnter = makeChain(_this6.handleContentMouseEnter, onMouseEnter);
37071 props.onMouseLeave = makeChain(_this6.handleContentMouseLeave, onMouseLeave);
37072 break;
37073 default:
37074 break;
37075 }
37076 });
37077
37078 return _react2.default.cloneElement(content, props);
37079 };
37080
37081 Popup.prototype.renderPortal = function renderPortal() {
37082 var _this7 = this;
37083
37084 var _props3 = this.props,
37085 target = _props3.target,
37086 safeNode = _props3.safeNode,
37087 followTrigger = _props3.followTrigger,
37088 triggerType = _props3.triggerType,
37089 hasMask = _props3.hasMask,
37090 wrapperStyle = _props3.wrapperStyle,
37091 others = (0, _objectWithoutProperties3.default)(_props3, ['target', 'safeNode', 'followTrigger', 'triggerType', 'hasMask', 'wrapperStyle']);
37092 var container = this.props.container;
37093
37094 var findTriggerNode = function findTriggerNode() {
37095 return (0, _reactDom.findDOMNode)(_this7);
37096 };
37097 var safeNodes = Array.isArray(safeNode) ? [].concat(safeNode) : [safeNode];
37098 safeNodes.unshift(findTriggerNode);
37099
37100 var newWrapperStyle = wrapperStyle || {};
37101
37102 if (followTrigger) {
37103 container = function container(trigger) {
37104 return trigger && trigger.parentNode || trigger;
37105 };
37106 newWrapperStyle.position = 'relative';
37107 }
37108
37109 if (triggerType === 'hover' && hasMask) {
37110 others.onMaskMouseEnter = this.handleMaskMouseEnter;
37111 others.onMaskMouseLeave = this.handleMaskMouseLeave;
37112 }
37113
37114 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, others, {
37115 key: 'overlay',
37116 ref: function ref(overlay) {
37117 return _this7.overlay = overlay;
37118 },
37119 visible: this.state.visible,
37120 target: target || findTriggerNode,
37121 container: container,
37122 safeNode: safeNodes,
37123 wrapperStyle: newWrapperStyle,
37124 triggerType: triggerType,
37125 hasMask: hasMask,
37126 onRequestClose: this.handleRequestClose
37127 }), this.props.children && this.renderContent());
37128 };
37129
37130 Popup.prototype.render = function render() {
37131 return [this.renderTrigger(), this.renderPortal()];
37132 };
37133
37134 return Popup;
37135}(_react.Component), _class.propTypes = {
37136 /**
37137 * 弹层内容
37138 */
37139 children: _propTypes2.default.node,
37140 /**
37141 * 触发弹层显示或隐藏的元素
37142 */
37143 trigger: _propTypes2.default.element,
37144 /**
37145 * 触发弹层显示或隐藏的操作类型,可以是 'click','hover','focus',或者它们组成的数组,如 ['hover', 'focus']
37146 */
37147 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
37148 /**
37149 * 当 triggerType 为 click 时才生效,可自定义触发弹层显示的键盘码
37150 */
37151 triggerClickKeycode: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.array]),
37152 /**
37153 * 弹层当前是否显示
37154 */
37155 visible: _propTypes2.default.bool,
37156 /**
37157 * 弹层默认是否显示
37158 */
37159 defaultVisible: _propTypes2.default.bool,
37160 /**
37161 * 弹层显示或隐藏时触发的回调函数
37162 * @param {Boolean} visible 弹层是否显示
37163 * @param {String} type 触发弹层显示或隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
37164 * @param {Object} e DOM事件
37165 */
37166 onVisibleChange: _propTypes2.default.func,
37167 /**
37168 * 设置此属性,弹层无法显示或隐藏
37169 */
37170 disabled: _propTypes2.default.bool,
37171 autoFit: _propTypes2.default.bool,
37172 /**
37173 * 弹层显示或隐藏的延时时间(以毫秒为单位),在 triggerType 被设置为 hover 时生效
37174 */
37175 delay: _propTypes2.default.number,
37176 /**
37177 * trigger 是否可以关闭弹层
37178 */
37179 canCloseByTrigger: _propTypes2.default.bool,
37180 /**
37181 * 弹层定位的参照元素
37182 * @default target 属性,即触发元素
37183 */
37184 target: _propTypes2.default.any,
37185 safeNode: _propTypes2.default.any,
37186 /**
37187 * 是否跟随trigger滚动
37188 */
37189 followTrigger: _propTypes2.default.bool,
37190 container: _propTypes2.default.any,
37191 hasMask: _propTypes2.default.bool,
37192 wrapperStyle: _propTypes2.default.object,
37193 rtl: _propTypes2.default.bool,
37194 /**
37195 * 开启 v2 版本
37196 */
37197 v2: _propTypes2.default.bool,
37198 /**
37199 * [v2] 快捷位置,包含 'tl' | 't' | 'tr' | 'rt' | 'r' | 'rb' | 'bl' | 'b' | 'br' | 'lt' | 'l' | 'lb'
37200 */
37201 placement: _propTypes2.default.string,
37202 /**
37203 * [v2] 弹层偏离触发元素的像素值
37204 */
37205 placementOffset: _propTypes2.default.number
37206}, _class.defaultProps = {
37207 triggerType: 'hover',
37208 triggerClickKeycode: [_util.KEYCODE.SPACE, _util.KEYCODE.ENTER],
37209 defaultVisible: false,
37210 onVisibleChange: noop,
37211 disabled: false,
37212 autoFit: false,
37213 delay: 200,
37214 canCloseByTrigger: true,
37215 followTrigger: false,
37216 container: function container() {
37217 return document.body;
37218 },
37219 rtl: false
37220}, _temp);
37221Popup.displayName = 'Popup';
37222exports.default = (0, _reactLifecyclesCompat.polyfill)(Popup);
37223module.exports = exports['default'];
37224
37225/***/ }),
37226/* 282 */
37227/***/ (function(module, exports, __webpack_require__) {
37228
37229"use strict";
37230
37231
37232exports.__esModule = true;
37233
37234var _extends2 = __webpack_require__(1);
37235
37236var _extends3 = _interopRequireDefault(_extends2);
37237
37238var _objectWithoutProperties2 = __webpack_require__(8);
37239
37240var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37241
37242var _react = __webpack_require__(0);
37243
37244var _react2 = _interopRequireDefault(_react);
37245
37246var _classnames = __webpack_require__(7);
37247
37248var _classnames2 = _interopRequireDefault(_classnames);
37249
37250var _overlay = __webpack_require__(85);
37251
37252var _overlay2 = _interopRequireDefault(_overlay);
37253
37254var _animate = __webpack_require__(20);
37255
37256var _animate2 = _interopRequireDefault(_animate);
37257
37258var _util = __webpack_require__(6);
37259
37260function _interopRequireDefault(obj) {
37261 return obj && obj.__esModule ? obj : { default: obj };
37262}
37263
37264var Popup = function Popup(props) {
37265 var _classNames;
37266
37267 if (!_react.useState || !_react.useRef || !_react.useEffect) {
37268 _util.log.warning('need react version > 16.8.0');
37269 return null;
37270 }
37271
37272 var _props$prefix = props.prefix,
37273 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
37274 _props$animation = props.animation,
37275 panimation = _props$animation === undefined ? { in: 'expandInDown', out: 'expandOutUp' } : _props$animation,
37276 defaultVisible = props.defaultVisible,
37277 _props$onVisibleChang = props.onVisibleChange,
37278 onVisibleChange = _props$onVisibleChang === undefined ? function () {} : _props$onVisibleChang,
37279 trigger = props.trigger,
37280 _props$triggerType = props.triggerType,
37281 triggerType = _props$triggerType === undefined ? 'hover' : _props$triggerType,
37282 overlay = props.overlay,
37283 onPosition = props.onPosition,
37284 children = props.children,
37285 className = props.className,
37286 style = props.style,
37287 wrapperClassName = props.wrapperClassName,
37288 triggerClickKeycode = props.triggerClickKeycode,
37289 align = props.align,
37290 beforeOpen = props.beforeOpen,
37291 onOpen = props.onOpen,
37292 afterOpen = props.afterOpen,
37293 beforeClose = props.beforeClose,
37294 onClose = props.onClose,
37295 afterClose = props.afterClose,
37296 others = (0, _objectWithoutProperties3.default)(props, ['prefix', 'animation', 'defaultVisible', 'onVisibleChange', 'trigger', 'triggerType', 'overlay', 'onPosition', 'children', 'className', 'style', 'wrapperClassName', 'triggerClickKeycode', 'align', 'beforeOpen', 'onOpen', 'afterOpen', 'beforeClose', 'onClose', 'afterClose']);
37297
37298 var _useState = (0, _react.useState)(defaultVisible),
37299 visible = _useState[0],
37300 setVisible = _useState[1];
37301
37302 var _useState2 = (0, _react.useState)(panimation),
37303 animation = _useState2[0],
37304 setAnimation = _useState2[1];
37305
37306 var _useState3 = (0, _react.useState)(true),
37307 isAnimationEnd = _useState3[0],
37308 markAnimationEnd = _useState3[1];
37309
37310 var overlayRef = (0, _react.useRef)(null);
37311
37312 (0, _react.useEffect)(function () {
37313 if ('visible' in props) {
37314 setVisible(props.visible);
37315 }
37316 }, [props.visible]);
37317
37318 (0, _react.useEffect)(function () {
37319 if ('animation' in props && animation !== panimation) {
37320 setAnimation(panimation);
37321 }
37322 }, [panimation]);
37323
37324 var handleVisibleChange = function handleVisibleChange(visible) {
37325 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
37326 args[_key - 1] = arguments[_key];
37327 }
37328
37329 if (!('visible' in props)) {
37330 setVisible(visible);
37331 }
37332
37333 onVisibleChange.apply(undefined, [visible].concat(args));
37334 };
37335
37336 var triggerNode = overlay ? children : trigger;
37337 var overlayNode = overlay ? overlay : children;
37338
37339 var handleEnter = function handleEnter() {
37340 markAnimationEnd(false);
37341 typeof beforeOpen === 'function' && beforeOpen(overlayRef.current);
37342 };
37343 var handleEntering = function handleEntering() {
37344 typeof onOpen === 'function' && onOpen(overlayRef.current);
37345 };
37346 var handleEntered = function handleEntered() {
37347 typeof afterOpen === 'function' && afterOpen(overlayRef.current);
37348 };
37349 var handleExit = function handleExit() {
37350 typeof beforeClose === 'function' && beforeClose(overlayRef.current);
37351 };
37352 var handleExiting = function handleExiting() {
37353 typeof onClose === 'function' && onClose(overlayRef.current);
37354 };
37355 var handleExited = function handleExited() {
37356 markAnimationEnd(true);
37357 typeof afterClose === 'function' && afterClose(overlayRef.current);
37358 };
37359
37360 overlayNode = _react2.default.createElement(_animate2.default.OverlayAnimate, {
37361 visible: visible,
37362 animation: animation,
37363 timeout: 200,
37364 onEnter: handleEnter,
37365 onEntering: handleEntering,
37366 onEntered: handleEntered,
37367 onExit: handleExit,
37368 onExiting: handleExiting,
37369 onExited: handleExited,
37370 style: style
37371 }, overlayNode ? (0, _react.cloneElement)(overlayNode, {
37372 className: (0, _classnames2.default)([prefix + 'overlay-inner', className, overlayNode && overlayNode.props && overlayNode.props.className])
37373 }) : _react2.default.createElement('span', null));
37374
37375 var handlePosition = function handlePosition(result) {
37376 // 兼容 1.x, 2.x 可去除这段逻辑
37377 (0, _extends3.default)(result, { align: result.config.points });
37378
37379 var placement = result.config.placement;
37380 if (placement && typeof placement === 'string') {
37381 if (animation.in === 'expandInDown' && animation.out === 'expandOutUp' && placement.match(/t/)) {
37382 setAnimation({
37383 in: 'expandInUp',
37384 out: 'expandOutDown'
37385 });
37386 } else if (animation.in === 'expandInUp' && animation.out === 'expandOutDown' && placement.match(/b/)) {
37387 setAnimation({
37388 in: 'expandInDown',
37389 out: 'expandOutUp'
37390 });
37391 }
37392 }
37393
37394 typeof onPosition === 'function' && onPosition(result);
37395 };
37396
37397 var wraperCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'overlay-wrapper v2'] = true, _classNames[wrapperClassName] = wrapperClassName, _classNames.opened = visible, _classNames));
37398
37399 // 兼容
37400 var v1Props = {};
37401 if (align) {
37402 v1Props.points = align.split(' ');
37403 }
37404
37405 var maskRender = function maskRender(node) {
37406 return _react2.default.createElement(_animate2.default.OverlayAnimate, {
37407 visible: visible,
37408 animation: animation ? { in: 'fadeIn', out: 'fadeOut' } : false,
37409 timeout: 200,
37410 unmountOnExit: true
37411 }, node);
37412 };
37413
37414 return _react2.default.createElement(_overlay2.default.Popup, (0, _extends3.default)({}, others, v1Props, {
37415 wrapperClassName: wraperCls,
37416 overlay: overlayNode,
37417 visible: visible,
37418 isAnimationEnd: isAnimationEnd,
37419 triggerType: triggerType,
37420 onVisibleChange: handleVisibleChange,
37421 onPosition: handlePosition,
37422 triggerClickKeyCode: triggerClickKeycode,
37423 maskRender: maskRender,
37424 ref: overlayRef
37425 }), triggerNode);
37426}; /* istanbul ignore file */
37427exports.default = Popup;
37428module.exports = exports['default'];
37429
37430/***/ }),
37431/* 283 */
37432/***/ (function(module, exports, __webpack_require__) {
37433
37434"use strict";
37435
37436
37437exports.__esModule = true;
37438
37439var _extends2 = __webpack_require__(1);
37440
37441var _extends3 = _interopRequireDefault(_extends2);
37442
37443var _objectWithoutProperties2 = __webpack_require__(8);
37444
37445var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37446
37447exports.default = createFromIconfontCN;
37448
37449var _react = __webpack_require__(0);
37450
37451var _react2 = _interopRequireDefault(_react);
37452
37453var _classnames = __webpack_require__(7);
37454
37455var _classnames2 = _interopRequireDefault(_classnames);
37456
37457var _configProvider = __webpack_require__(9);
37458
37459var _configProvider2 = _interopRequireDefault(_configProvider);
37460
37461var _index = __webpack_require__(11);
37462
37463var _index2 = _interopRequireDefault(_index);
37464
37465function _interopRequireDefault(obj) {
37466 return obj && obj.__esModule ? obj : { default: obj };
37467}
37468
37469var customCache = new Set();
37470
37471/** Icon.createFromIconfontCN
37472 * @description 通过自定义 iconfont源来使用使用svg格式的图片
37473 * @order 1
37474 */
37475function createFromIconfontCN() {
37476 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
37477 var scriptUrl = options.scriptUrl,
37478 _options$extraCommonP = options.extraCommonProps,
37479 extraCommonProps = _options$extraCommonP === undefined ? {} : _options$extraCommonP;
37480
37481 var hasExist = customCache.has(scriptUrl);
37482
37483 if (document.querySelector('script[data-namespace="' + scriptUrl + '"]')) {
37484 hasExist = true;
37485 }
37486
37487 /**
37488 * DOM API required.
37489 * Make sure in browser environment.
37490 * The Custom Icon will create a <script/>
37491 * that loads SVG symbols and insert the SVG Element into the document body.
37492 */
37493 if (typeof document !== 'undefined' && typeof window !== 'undefined' && typeof document.createElement === 'function' && typeof scriptUrl === 'string' && scriptUrl.length && !hasExist) {
37494 var script = document.createElement('script');
37495 script.setAttribute('src', scriptUrl);
37496 script.setAttribute('data-namespace', scriptUrl);
37497 customCache.add(scriptUrl);
37498 document.body.appendChild(script);
37499 }
37500
37501 var Iconfont = function Iconfont(props) {
37502 var _cx;
37503
37504 var type = props.type,
37505 size = props.size,
37506 children = props.children,
37507 className = props.className,
37508 _props$prefix = props.prefix,
37509 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
37510 others = (0, _objectWithoutProperties3.default)(props, ['type', 'size', 'children', 'className', 'prefix']);
37511
37512 // component > children > type
37513
37514 var content = null;
37515 if (props.type) {
37516 content = _react2.default.createElement('use', { xlinkHref: '#' + type });
37517 }
37518 if (children) {
37519 content = children;
37520 }
37521
37522 var classes = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'icon-remote'] = true, _cx), className);
37523
37524 return _react2.default.createElement(_index2.default, { size: size }, _react2.default.createElement('svg', (0, _extends3.default)({
37525 className: classes,
37526 focusable: false
37527 }, others, extraCommonProps), content));
37528 };
37529
37530 Iconfont.displayName = 'Iconfont';
37531
37532 return _configProvider2.default.config(Iconfont);
37533}
37534module.exports = exports['default'];
37535
37536/***/ }),
37537/* 284 */
37538/***/ (function(module, exports, __webpack_require__) {
37539
37540"use strict";
37541
37542
37543exports.__esModule = true;
37544exports.default = undefined;
37545
37546var _extends2 = __webpack_require__(1);
37547
37548var _extends3 = _interopRequireDefault(_extends2);
37549
37550var _objectWithoutProperties2 = __webpack_require__(8);
37551
37552var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37553
37554var _classCallCheck2 = __webpack_require__(2);
37555
37556var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
37557
37558var _possibleConstructorReturn2 = __webpack_require__(3);
37559
37560var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
37561
37562var _inherits2 = __webpack_require__(4);
37563
37564var _inherits3 = _interopRequireDefault(_inherits2);
37565
37566var _class, _temp;
37567
37568var _react = __webpack_require__(0);
37569
37570var _react2 = _interopRequireDefault(_react);
37571
37572var _propTypes = __webpack_require__(5);
37573
37574var _propTypes2 = _interopRequireDefault(_propTypes);
37575
37576var _overlay = __webpack_require__(15);
37577
37578var _overlay2 = _interopRequireDefault(_overlay);
37579
37580var _inner = __webpack_require__(86);
37581
37582var _inner2 = _interopRequireDefault(_inner);
37583
37584var _alignMap = __webpack_require__(87);
37585
37586var _util = __webpack_require__(140);
37587
37588function _interopRequireDefault(obj) {
37589 return obj && obj.__esModule ? obj : { default: obj };
37590}
37591
37592var Popup = _overlay2.default.Popup;
37593
37594var alignMap = _alignMap.normalMap;
37595/** Balloon.Tooltip */
37596var Tooltip = (_temp = _class = function (_React$Component) {
37597 (0, _inherits3.default)(Tooltip, _React$Component);
37598
37599 function Tooltip(props) {
37600 (0, _classCallCheck3.default)(this, Tooltip);
37601
37602 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
37603
37604 _this.beforePosition = function (result, obj) {
37605 var placement = result.config.placement;
37606
37607 if (placement !== _this.state.align) {
37608 _this.setState({
37609 align: placement,
37610 innerAlign: true
37611 });
37612 }
37613
37614 if (_this.props.arrowPointToCenter) {
37615 var _obj$target = obj.target,
37616 width = _obj$target.width,
37617 height = _obj$target.height;
37618
37619 if (placement.length === 2) {
37620 var offset = _alignMap.normalMap[placement].offset;
37621 switch (placement[0]) {
37622 case 'b':
37623 case 't':
37624 {
37625 var plus = offset[0] > 0 ? 1 : -1;
37626 result.style.left = result.style.left + plus * width / 2 - offset[0];
37627 }
37628 break;
37629 case 'l':
37630 case 'r':
37631 {
37632 var _plus = offset[0] > 0 ? 1 : -1;
37633 result.style.top = result.style.top + _plus * height / 2 - offset[1];
37634 }
37635 break;
37636 }
37637 }
37638 }
37639
37640 return result;
37641 };
37642
37643 _this.state = {
37644 align: props.placement || props.align,
37645 innerAlign: false
37646 };
37647 return _this;
37648 }
37649
37650 Tooltip.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
37651 if (nextProps.v2 && !prevState.innerAlign && 'align' in nextProps && nextProps.align !== prevState.align) {
37652 return {
37653 align: nextProps.align,
37654 innerAlign: false
37655 };
37656 }
37657
37658 return null;
37659 };
37660
37661 Tooltip.prototype.render = function render() {
37662 var _props = this.props,
37663 id = _props.id,
37664 className = _props.className,
37665 palign = _props.align,
37666 style = _props.style,
37667 prefix = _props.prefix,
37668 trigger = _props.trigger,
37669 children = _props.children,
37670 popupContainer = _props.popupContainer,
37671 popupProps = _props.popupProps,
37672 popupClassName = _props.popupClassName,
37673 popupStyle = _props.popupStyle,
37674 followTrigger = _props.followTrigger,
37675 triggerType = _props.triggerType,
37676 autoFocus = _props.autoFocus,
37677 alignEdge = _props.alignEdge,
37678 autoAdjust = _props.autoAdjust,
37679 rtl = _props.rtl,
37680 delay = _props.delay,
37681 v2 = _props.v2,
37682 arrowPointToCenter = _props.arrowPointToCenter,
37683 others = (0, _objectWithoutProperties3.default)(_props, ['id', 'className', 'align', 'style', 'prefix', 'trigger', 'children', 'popupContainer', 'popupProps', 'popupClassName', 'popupStyle', 'followTrigger', 'triggerType', 'autoFocus', 'alignEdge', 'autoAdjust', 'rtl', 'delay', 'v2', 'arrowPointToCenter']);
37684
37685 var trOrigin = 'trOrigin';
37686 if (rtl) {
37687 others.rtl = true;
37688 trOrigin = 'rtlTrOrigin';
37689 }
37690
37691 alignMap = alignEdge || v2 ? _alignMap.edgeMap : _alignMap.normalMap;
37692 var align = v2 ? this.state.align : palign;
37693
37694 var transformOrigin = alignMap[align][trOrigin];
37695 var _offset = alignMap[align].offset;
37696 var _style = (0, _extends3.default)({ transformOrigin: transformOrigin }, style);
37697
37698 var content = _react2.default.createElement(_inner2.default, (0, _extends3.default)({}, others, {
37699 id: id,
37700 prefix: prefix,
37701 closable: false,
37702 isTooltip: true,
37703 className: className,
37704 style: _style,
37705 align: align,
37706 rtl: rtl,
37707 alignEdge: alignEdge,
37708 v2: v2
37709 }), children);
37710
37711 var triggerProps = {};
37712 triggerProps['aria-describedby'] = id;
37713 triggerProps.tabIndex = '0';
37714
37715 var newTriggerType = triggerType;
37716
37717 if (triggerType === 'hover' && id) {
37718 newTriggerType = ['focus', 'hover'];
37719 }
37720
37721 var ariaTrigger = id ? _react2.default.cloneElement(trigger, triggerProps) : trigger;
37722
37723 var newTrigger = (0, _util.getDisabledCompatibleTrigger)(_react2.default.isValidElement(ariaTrigger) ? ariaTrigger : _react2.default.createElement('span', null, ariaTrigger));
37724
37725 var otherProps = {
37726 delay: delay,
37727 shouldUpdatePosition: true,
37728 needAdjust: false,
37729 align: alignMap[align].align,
37730 offset: _offset
37731 };
37732
37733 if (v2) {
37734 delete otherProps.align;
37735 delete otherProps.shouldUpdatePosition;
37736 delete otherProps.needAdjust;
37737 delete otherProps.offset;
37738
37739 (0, _extends3.default)(otherProps, {
37740 placement: align,
37741 placementOffset: 12,
37742 v2: true,
37743 beforePosition: this.beforePosition,
37744 autoAdjust: autoAdjust
37745 });
37746 }
37747
37748 return _react2.default.createElement(Popup, (0, _extends3.default)({
37749 role: 'tooltip',
37750 animation: {
37751 in: 'zoomIn',
37752 out: 'zoomOut'
37753 },
37754 className: popupClassName,
37755 container: popupContainer,
37756 followTrigger: followTrigger,
37757 trigger: newTrigger,
37758 triggerType: newTriggerType,
37759 style: popupStyle,
37760 rtl: rtl,
37761 autoFocus: triggerType === 'focus' ? false : autoFocus
37762 }, otherProps, popupProps), content);
37763 };
37764
37765 return Tooltip;
37766}(_react2.default.Component), _class.propTypes = {
37767 /**
37768 * 样式类名的品牌前缀
37769 */
37770 prefix: _propTypes2.default.string,
37771 /**
37772 * 自定义类名
37773 */
37774 className: _propTypes2.default.string,
37775 /**
37776 * 自定义内联样式
37777 */
37778 style: _propTypes2.default.object,
37779 /**
37780 * tooltip的内容
37781 */
37782 children: _propTypes2.default.any,
37783 /**
37784 * 弹出层位置
37785 * @enumdesc 上, 右, 下, 左, 上左, 上右, 下左, 下右, 左上, 左下, 右上, 右下
37786 */
37787 align: _propTypes2.default.oneOf(['t', 'r', 'b', 'l', 'tl', 'tr', 'bl', 'br', 'lt', 'lb', 'rt', 'rb']),
37788 /**
37789 * 触发元素
37790 */
37791 trigger: _propTypes2.default.any,
37792 /**
37793 * 触发行为
37794 * 鼠标悬浮, 鼠标点击('hover', 'click')或者它们组成的数组,如 ['hover', 'click'], 强烈不建议使用'focus',若有复杂交互,推荐使用triggerType为click的Balloon组件
37795 */
37796 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
37797 /**
37798 * 弹层组件style,透传给Popup
37799 */
37800 popupStyle: _propTypes2.default.object,
37801 /**
37802 * 弹层组件className,透传给Popup
37803 */
37804 popupClassName: _propTypes2.default.string,
37805 /**
37806 * 弹层组件属性,透传给Popup
37807 */
37808 popupProps: _propTypes2.default.object,
37809 /**
37810 * 是否pure render
37811 */
37812 pure: _propTypes2.default.bool,
37813 /**
37814 * 指定浮层渲染的父节点, 可以为节点id的字符串,也可以返回节点的函数。
37815 */
37816 popupContainer: _propTypes2.default.any,
37817 /**
37818 * 是否跟随滚动
37819 */
37820 followTrigger: _propTypes2.default.bool,
37821 /**
37822 * 弹层id, 传入值才会支持无障碍
37823 */
37824 id: _propTypes2.default.string,
37825 /**
37826 * 如果需要让 Tooltip 内容可被点击,可以设置这个参数,例如 100
37827 */
37828 delay: _propTypes2.default.number,
37829 /**
37830 * 开启 v2 版本
37831 */
37832 v2: _propTypes2.default.bool,
37833 /**
37834 * [v2] 箭头是否指向目标元素的中心
37835 */
37836 arrowPointToCenter: _propTypes2.default.bool
37837}, _class.defaultProps = {
37838 triggerType: 'hover',
37839 prefix: 'next-',
37840 align: 'b',
37841 delay: 50,
37842 trigger: _react2.default.createElement('span', null),
37843 arrowPointToCenter: false
37844}, _temp);
37845Tooltip.displayName = 'Tooltip';
37846exports.default = Tooltip;
37847module.exports = exports['default'];
37848
37849/***/ }),
37850/* 285 */
37851/***/ (function(module, exports, __webpack_require__) {
37852
37853"use strict";
37854
37855
37856exports.__esModule = true;
37857
37858var _typeof2 = __webpack_require__(14);
37859
37860var _typeof3 = _interopRequireDefault(_typeof2);
37861
37862var _objectWithoutProperties2 = __webpack_require__(8);
37863
37864var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
37865
37866var _extends2 = __webpack_require__(1);
37867
37868var _extends3 = _interopRequireDefault(_extends2);
37869
37870var _classCallCheck2 = __webpack_require__(2);
37871
37872var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
37873
37874var _possibleConstructorReturn2 = __webpack_require__(3);
37875
37876var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
37877
37878var _inherits2 = __webpack_require__(4);
37879
37880var _inherits3 = _interopRequireDefault(_inherits2);
37881
37882var _class, _temp, _initialiseProps;
37883
37884var _react = __webpack_require__(0);
37885
37886var _react2 = _interopRequireDefault(_react);
37887
37888var _propTypes = __webpack_require__(5);
37889
37890var _propTypes2 = _interopRequireDefault(_propTypes);
37891
37892var _reactLifecyclesCompat = __webpack_require__(10);
37893
37894var _icon = __webpack_require__(11);
37895
37896var _icon2 = _interopRequireDefault(_icon);
37897
37898var _configProvider = __webpack_require__(9);
37899
37900var _configProvider2 = _interopRequireDefault(_configProvider);
37901
37902var _dropdown = __webpack_require__(48);
37903
37904var _dropdown2 = _interopRequireDefault(_dropdown);
37905
37906var _menu = __webpack_require__(16);
37907
37908var _menu2 = _interopRequireDefault(_menu);
37909
37910var _item = __webpack_require__(299);
37911
37912var _item2 = _interopRequireDefault(_item);
37913
37914var _util = __webpack_require__(6);
37915
37916function _interopRequireDefault(obj) {
37917 return obj && obj.__esModule ? obj : { default: obj };
37918}
37919
37920/**
37921 * Breadcrumb
37922 */
37923var Breadcrumb = (_temp = _class = function (_Component) {
37924 (0, _inherits3.default)(Breadcrumb, _Component);
37925
37926 function Breadcrumb(props) {
37927 (0, _classCallCheck3.default)(this, Breadcrumb);
37928
37929 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
37930
37931 _initialiseProps.call(_this);
37932
37933 _this.state = {
37934 maxNode: props.maxNode === 'auto' ? 100 : props.maxNode
37935 };
37936 return _this;
37937 }
37938
37939 Breadcrumb.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
37940 if (state.prevMaxNode === props.maxNode) {
37941 return {};
37942 }
37943
37944 return {
37945 prevMaxNode: props.maxNode,
37946 maxNode: props.maxNode === 'auto' ? 100 : props.maxNode
37947 };
37948 };
37949
37950 Breadcrumb.prototype.componentDidMount = function componentDidMount() {
37951 this.computeMaxNode();
37952 _util.events.on(window, 'resize', this.computeMaxNode);
37953 };
37954
37955 Breadcrumb.prototype.componentDidUpdate = function componentDidUpdate() {
37956 this.computeMaxNode();
37957 };
37958
37959 Breadcrumb.prototype.componentWillUnmount = function componentWillUnmount() {
37960 _util.events.off(window, 'resize', this.computeMaxNode);
37961 };
37962
37963 Breadcrumb.prototype.renderEllipsisNodeWithMenu = function renderEllipsisNodeWithMenu(children, breakpointer) {
37964 // 拿到被隐藏的项
37965 var hiddenItems = [];
37966 _react.Children.forEach(children, function (item, i) {
37967 var _item$props = item.props,
37968 link = _item$props.link,
37969 itemChildren = _item$props.children;
37970
37971 if (i > 0 && i <= breakpointer) {
37972 hiddenItems.push(_react2.default.createElement(_menu2.default.Item, { key: i }, link ? _react2.default.createElement('a', { href: link }, itemChildren) : itemChildren));
37973 }
37974 });
37975
37976 var _props = this.props,
37977 prefix = _props.prefix,
37978 followTrigger = _props.followTrigger,
37979 popupContainer = _props.popupContainer,
37980 popupProps = _props.popupProps;
37981
37982 return _react2.default.createElement(_dropdown2.default, (0, _extends3.default)({
37983 trigger: _react2.default.createElement('span', null, '...')
37984 }, popupProps, {
37985 container: popupContainer,
37986 followTrigger: followTrigger
37987 }), _react2.default.createElement('div', { className: prefix + 'breadcrumb-dropdown-wrapper' }, _react2.default.createElement(_menu2.default, null, hiddenItems)));
37988 };
37989
37990 Breadcrumb.prototype.render = function render() {
37991 var _this2 = this;
37992
37993 var _props2 = this.props,
37994 prefix = _props2.prefix,
37995 rtl = _props2.rtl,
37996 className = _props2.className,
37997 children = _props2.children,
37998 component = _props2.component,
37999 showHiddenItems = _props2.showHiddenItems,
38000 maxNodeProp = _props2.maxNode,
38001 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'rtl', 'className', 'children', 'component', 'showHiddenItems', 'maxNode']);
38002
38003 var separator = this.props.separator || _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'breadcrumb-icon-sep' });
38004
38005 var maxNode = this.state.maxNode;
38006
38007 var items = void 0;
38008 var length = _react.Children.count(children);
38009
38010 if (maxNode > 1 && length > maxNode) {
38011 var breakpointer = length - maxNode + 1;
38012 items = [];
38013
38014 _react.Children.forEach(children, function (item, i) {
38015 var ariaProps = {};
38016
38017 // 增加空值判断
38018 if (!item) {
38019 return;
38020 }
38021 if (i === length - 1) {
38022 ariaProps['aria-current'] = 'page';
38023 }
38024
38025 if (i && i === breakpointer) {
38026 items.push(_react2.default.cloneElement(item, (0, _extends3.default)({
38027 separator: separator,
38028 prefix: prefix,
38029 key: i,
38030 activated: i === length - 1
38031 }, ariaProps, {
38032 className: showHiddenItems ? prefix + 'breadcrumb-text-ellipsis-clickable' : prefix + 'breadcrumb-text-ellipsis'
38033 }), showHiddenItems ? _this2.renderEllipsisNodeWithMenu(children, breakpointer) : '...'));
38034 } else if (!i || i > breakpointer) {
38035 items.push(_react2.default.cloneElement(item, (0, _extends3.default)({
38036 separator: separator,
38037 prefix: prefix,
38038 key: i
38039 }, ariaProps, {
38040 activated: i === length - 1
38041 })));
38042 }
38043 });
38044 } else {
38045 items = _react.Children.map(children, function (item, i) {
38046 var ariaProps = {};
38047 // 增加空值判断
38048 if (!item) {
38049 return;
38050 }
38051 if (i === length - 1) {
38052 ariaProps['aria-current'] = 'page';
38053 }
38054
38055 return _react2.default.cloneElement(item, (0, _extends3.default)({
38056 separator: separator,
38057 prefix: prefix,
38058 activated: i === length - 1
38059 }, ariaProps, {
38060 key: i
38061 }));
38062 });
38063 }
38064
38065 if (rtl) {
38066 others.dir = 'rtl';
38067 }
38068
38069 var BreadcrumbComponent = component;
38070
38071 delete others.maxNode;
38072
38073 return _react2.default.createElement(BreadcrumbComponent, (0, _extends3.default)({
38074 'aria-label': 'Breadcrumb',
38075 className: className
38076 }, others, {
38077 style: (0, _extends3.default)({ position: 'relative' }, others.style || {})
38078 }), _react2.default.createElement('ul', { className: prefix + 'breadcrumb' }, items), maxNodeProp === 'auto' ? _react2.default.createElement('ul', {
38079 style: {
38080 position: 'absolute',
38081 left: 0,
38082 right: 0,
38083 top: 0,
38084 visibility: 'hidden'
38085 },
38086 ref: this.saveBreadcrumbRef,
38087 className: prefix + 'breadcrumb'
38088 }, _react.Children.map(children, function (item, i) {
38089 return _react2.default.cloneElement(item, {
38090 separator: separator,
38091 prefix: prefix,
38092 activated: i === length - 1,
38093 key: i
38094 });
38095 })) : null);
38096 };
38097
38098 return Breadcrumb;
38099}(_react.Component), _class.Item = _item2.default, _class.propTypes = {
38100 /**
38101 * 样式类名的品牌前缀
38102 */
38103 prefix: _propTypes2.default.string,
38104 rtl: _propTypes2.default.bool,
38105 /*eslint-disable*/
38106 /**
38107 * 面包屑子节点,需传入 Breadcrumb.Item
38108 */
38109 children: function children(props, propName) {
38110 _react.Children.forEach(props[propName], function (child) {
38111 if (!(child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'breadcrumb_item')) {
38112 throw new Error("Breadcrumb's children must be Breadcrumb.Item!");
38113 }
38114 });
38115 },
38116 /*eslint-enable*/
38117 /**
38118 * 面包屑最多显示个数,超出部分会被隐藏, 设置为 auto 会自动根据父元素的宽度适配。
38119 */
38120 maxNode: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.oneOf(['auto'])]),
38121 /**
38122 * 当超过的项被隐藏时,是否可通过点击省略号展示菜单(包含被隐藏的项)
38123 * @version 1.23
38124 */
38125 showHiddenItems: _propTypes2.default.bool,
38126 /**
38127 * 弹层挂载的容器节点(在showHiddenItems为true时才有意义)
38128 * @version 1.23
38129 */
38130 popupContainer: _propTypes2.default.any,
38131 /**
38132 * 是否跟随trigger滚动(在showHiddenItems为true时才有意义)
38133 * @version 1.23
38134 */
38135 followTrigger: _propTypes2.default.bool,
38136 /**
38137 * 添加到弹层上的属性(在showHiddenItems为true时才有意义)
38138 * @version 1.23
38139 */
38140 popupProps: _propTypes2.default.object,
38141 /**
38142 * 分隔符,可以是文本或 Icon
38143 */
38144 separator: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
38145 /**
38146 * 设置标签类型
38147 */
38148 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
38149 className: _propTypes2.default.any
38150}, _class.defaultProps = {
38151 prefix: 'next-',
38152 maxNode: 100,
38153 showHiddenItems: false,
38154 component: 'nav'
38155}, _initialiseProps = function _initialiseProps() {
38156 var _this3 = this;
38157
38158 this.computeMaxNode = function () {
38159 // 计算最大node节点,无法获取到 ... 节点的宽度,目前会有 nodeWidth - ellipsisNodeWidth 的误差
38160 if (_this3.props.maxNode !== 'auto' || !_this3.breadcrumbEl) return;
38161 var scrollWidth = _this3.breadcrumbEl.scrollWidth;
38162 var rect = _this3.breadcrumbEl.getBoundingClientRect();
38163
38164 if (scrollWidth <= rect.width) return;
38165 var maxNode = _this3.breadcrumbEl.children.length;
38166 var index = 1;
38167 var fullWidth = scrollWidth;
38168
38169 while (index < _this3.breadcrumbEl.children.length - 1) {
38170 var el = _this3.breadcrumbEl.children[index];
38171 maxNode--;
38172 fullWidth -= el.getBoundingClientRect().width;
38173 if (fullWidth <= rect.width) {
38174 break;
38175 }
38176 index++;
38177 }
38178
38179 maxNode = Math.max(3, maxNode);
38180
38181 if (maxNode !== _this3.state.maxNode) {
38182 _this3.setState({
38183 maxNode: maxNode
38184 });
38185 }
38186 };
38187
38188 this.saveBreadcrumbRef = function (ref) {
38189 _this3.breadcrumbEl = ref;
38190 };
38191}, _temp);
38192Breadcrumb.displayName = 'Breadcrumb';
38193exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Breadcrumb));
38194module.exports = exports['default'];
38195
38196/***/ }),
38197/* 286 */
38198/***/ (function(module, exports, __webpack_require__) {
38199
38200"use strict";
38201
38202
38203exports.__esModule = true;
38204exports.default = undefined;
38205
38206var _extends2 = __webpack_require__(1);
38207
38208var _extends3 = _interopRequireDefault(_extends2);
38209
38210var _classCallCheck2 = __webpack_require__(2);
38211
38212var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38213
38214var _possibleConstructorReturn2 = __webpack_require__(3);
38215
38216var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38217
38218var _inherits2 = __webpack_require__(4);
38219
38220var _inherits3 = _interopRequireDefault(_inherits2);
38221
38222var _class, _temp;
38223
38224var _react = __webpack_require__(0);
38225
38226var _react2 = _interopRequireDefault(_react);
38227
38228var _propTypes = __webpack_require__(5);
38229
38230var _propTypes2 = _interopRequireDefault(_propTypes);
38231
38232var _overlay = __webpack_require__(15);
38233
38234var _overlay2 = _interopRequireDefault(_overlay);
38235
38236var _util = __webpack_require__(6);
38237
38238function _interopRequireDefault(obj) {
38239 return obj && obj.__esModule ? obj : { default: obj };
38240}
38241
38242var noop = _util.func.noop,
38243 makeChain = _util.func.makeChain,
38244 bindCtx = _util.func.bindCtx;
38245
38246var Popup = _overlay2.default.Popup;
38247
38248/**
38249 * Dropdown
38250 * @description 继承 Popup 的 API,除非特别说明
38251 */
38252var Dropdown = (_temp = _class = function (_Component) {
38253 (0, _inherits3.default)(Dropdown, _Component);
38254
38255 function Dropdown(props) {
38256 (0, _classCallCheck3.default)(this, Dropdown);
38257
38258 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
38259
38260 _this.state = {
38261 visible: 'visible' in props ? props.visible : props.defaultVisible || false,
38262 autoFocus: 'autoFocus' in props ? props.autoFocus : false
38263 };
38264
38265 bindCtx(_this, ['onTriggerKeyDown', 'onMenuClick', 'onVisibleChange']);
38266 return _this;
38267 }
38268
38269 Dropdown.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
38270 var state = {};
38271
38272 if ('visible' in nextProps) {
38273 state.visible = nextProps.visible;
38274 }
38275
38276 return state;
38277 };
38278
38279 Dropdown.prototype.getVisible = function getVisible() {
38280 var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
38281
38282 return 'visible' in props ? props.visible : this.state.visible;
38283 };
38284
38285 Dropdown.prototype.onMenuClick = function onMenuClick() {
38286 var autoClose = this.props.autoClose;
38287
38288 if (!('visible' in this.props) && autoClose) {
38289 this.setState({
38290 visible: false
38291 });
38292 }
38293 this.onVisibleChange(false, 'fromContent');
38294 };
38295
38296 Dropdown.prototype.onVisibleChange = function onVisibleChange(visible, from) {
38297 this.setState({ visible: visible });
38298
38299 this.props.onVisibleChange(visible, from);
38300 };
38301
38302 Dropdown.prototype.onTriggerKeyDown = function onTriggerKeyDown() {
38303 var autoFocus = true;
38304
38305 if ('autoFocus' in this.props) {
38306 autoFocus = this.props.autoFocus;
38307 }
38308
38309 this.setState({
38310 autoFocus: autoFocus
38311 });
38312 };
38313
38314 Dropdown.prototype.render = function render() {
38315 var _props = this.props,
38316 trigger = _props.trigger,
38317 rtl = _props.rtl,
38318 autoClose = _props.autoClose;
38319
38320 var child = _react.Children.only(this.props.children);
38321 var content = child;
38322 if (typeof child.type === 'function' && child.type.isNextMenu) {
38323 content = _react2.default.cloneElement(child, {
38324 onItemClick: makeChain(this.onMenuClick, child.props.onItemClick)
38325 });
38326 } else if (autoClose) {
38327 content = _react2.default.cloneElement(child, {
38328 onClick: makeChain(this.onMenuClick, child.props.onClick)
38329 });
38330 }
38331
38332 var newTrigger = _react2.default.cloneElement(trigger, {
38333 onKeyDown: makeChain(this.onTriggerKeyDown, trigger.props.onKeyDown)
38334 });
38335
38336 return _react2.default.createElement(Popup, (0, _extends3.default)({}, this.props, {
38337 rtl: rtl,
38338 autoFocus: this.state.autoFocus,
38339 trigger: newTrigger,
38340 visible: this.getVisible(),
38341 onVisibleChange: this.onVisibleChange,
38342 canCloseByOutSideClick: true
38343 }), content);
38344 };
38345
38346 return Dropdown;
38347}(_react.Component), _class.propTypes = {
38348 prefix: _propTypes2.default.string,
38349 pure: _propTypes2.default.bool,
38350 rtl: _propTypes2.default.bool,
38351 className: _propTypes2.default.string,
38352 /**
38353 * 弹层内容
38354 */
38355 children: _propTypes2.default.node,
38356 /**
38357 * 弹层当前是否显示
38358 */
38359 visible: _propTypes2.default.bool,
38360 /**
38361 * 弹层默认是否显示
38362 */
38363 defaultVisible: _propTypes2.default.bool,
38364 /**
38365 * 弹层显示或隐藏时触发的回调函数
38366 * @param {Boolean} visible 弹层是否显示
38367 * @param {String} type 触发弹层显示或隐藏的来源 fromContent 表示由Dropdown内容触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
38368 */
38369 onVisibleChange: _propTypes2.default.func,
38370 /**
38371 * 触发弹层显示或者隐藏的元素
38372 */
38373 trigger: _propTypes2.default.node,
38374 /**
38375 * 触发弹层显示或隐藏的操作类型,可以是 'click','hover',或者它们组成的数组,如 ['hover', 'click']
38376 */
38377 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
38378 /**
38379 * 设置此属性,弹层无法显示或隐藏
38380 */
38381 disabled: _propTypes2.default.bool,
38382 /**
38383 * 弹层相对于触发元素的定位, 详见 Overlay 的定位部分
38384 */
38385 align: _propTypes2.default.string,
38386 /**
38387 * 弹层相对于trigger的定位的微调, 接收数组[hoz, ver], 表示弹层在 left / top 上的增量
38388 * e.g. [100, 100] 表示往右(RTL 模式下是往左) 、下分布偏移100px
38389 */
38390 offset: _propTypes2.default.array,
38391 /**
38392 * 弹层显示或隐藏的延时时间(以毫秒为单位),在 triggerType 被设置为 hover 时生效
38393 */
38394 delay: _propTypes2.default.number,
38395 /**
38396 * 弹层打开时是否让其中的元素自动获取焦点
38397 */
38398 autoFocus: _propTypes2.default.bool,
38399 /**
38400 * 是否显示遮罩
38401 */
38402 hasMask: _propTypes2.default.bool,
38403 /**
38404 * 开启后,children 不管是不是Menu,点击后都默认关掉弹层(2.x默认设置为true)
38405 * @version 1.23
38406 */
38407 autoClose: _propTypes2.default.bool,
38408 /**
38409 * 隐藏时是否保留子节点
38410 */
38411 cache: _propTypes2.default.bool,
38412 /**
38413 * 配置动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画
38414 * @default { in: 'expandInDown', out: 'expandOutUp' }
38415 */
38416 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool])
38417}, _class.defaultProps = {
38418 prefix: 'next-',
38419 pure: false,
38420 defaultVisible: false,
38421 autoClose: false,
38422 onVisibleChange: noop,
38423 triggerType: 'hover',
38424 disabled: false,
38425 align: 'tl bl',
38426 offset: [0, 0],
38427 delay: 200,
38428 hasMask: false,
38429 cache: false,
38430 onPosition: noop
38431}, _temp);
38432Dropdown.displayName = 'Dropdown';
38433exports.default = Dropdown;
38434module.exports = exports['default'];
38435
38436/***/ }),
38437/* 287 */
38438/***/ (function(module, exports, __webpack_require__) {
38439
38440"use strict";
38441
38442
38443exports.__esModule = true;
38444exports.default = undefined;
38445
38446var _extends2 = __webpack_require__(1);
38447
38448var _extends3 = _interopRequireDefault(_extends2);
38449
38450var _objectWithoutProperties2 = __webpack_require__(8);
38451
38452var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
38453
38454var _classCallCheck2 = __webpack_require__(2);
38455
38456var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38457
38458var _possibleConstructorReturn2 = __webpack_require__(3);
38459
38460var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38461
38462var _inherits2 = __webpack_require__(4);
38463
38464var _inherits3 = _interopRequireDefault(_inherits2);
38465
38466var _class, _temp;
38467
38468var _react = __webpack_require__(0);
38469
38470var _react2 = _interopRequireDefault(_react);
38471
38472var _propTypes = __webpack_require__(5);
38473
38474var _propTypes2 = _interopRequireDefault(_propTypes);
38475
38476var _checkableItem = __webpack_require__(144);
38477
38478var _checkableItem2 = _interopRequireDefault(_checkableItem);
38479
38480function _interopRequireDefault(obj) {
38481 return obj && obj.__esModule ? obj : { default: obj };
38482}
38483
38484/**
38485 * Menu.CheckboxItem
38486 * @order 3
38487 * @description 该子组件选中情况不受 defaultSelectedKeys/selectedKeys 控制,请自行控制选中逻辑
38488 */
38489var CheckboxItem = (_temp = _class = function (_Component) {
38490 (0, _inherits3.default)(CheckboxItem, _Component);
38491
38492 function CheckboxItem() {
38493 (0, _classCallCheck3.default)(this, CheckboxItem);
38494 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
38495 }
38496
38497 CheckboxItem.prototype.render = function render() {
38498 var _props = this.props,
38499 checkboxDisabled = _props.checkboxDisabled,
38500 others = (0, _objectWithoutProperties3.default)(_props, ['checkboxDisabled']);
38501
38502 return _react2.default.createElement(_checkableItem2.default, (0, _extends3.default)({
38503 role: 'menuitemcheckbox',
38504 checkType: 'checkbox',
38505 checkDisabled: checkboxDisabled
38506 }, others));
38507 };
38508
38509 return CheckboxItem;
38510}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
38511 /**
38512 * 是否选中
38513 */
38514 checked: _propTypes2.default.bool,
38515 /**
38516 * 是否半选中
38517 */
38518 indeterminate: _propTypes2.default.bool,
38519 /**
38520 * 是否禁用
38521 */
38522 disabled: _propTypes2.default.bool,
38523 /**
38524 * 选中或取消选中触发的回调函数
38525 * @param {Boolean} checked 是否选中
38526 * @param {Object} event 选中事件对象
38527 */
38528 onChange: _propTypes2.default.func,
38529 /**
38530 * 帮助文本
38531 */
38532 helper: _propTypes2.default.node,
38533 /**
38534 * 标签内容
38535 */
38536 children: _propTypes2.default.node,
38537 checkboxDisabled: _propTypes2.default.bool
38538}, _class.defaultProps = {
38539 checked: false,
38540 indeterminate: false,
38541 disabled: false,
38542 onChange: function onChange() {},
38543 checkboxDisabled: false
38544}, _temp);
38545CheckboxItem.displayName = 'CheckboxItem';
38546exports.default = CheckboxItem;
38547module.exports = exports['default'];
38548
38549/***/ }),
38550/* 288 */
38551/***/ (function(module, exports, __webpack_require__) {
38552
38553module.exports = { "default": __webpack_require__(289), __esModule: true };
38554
38555/***/ }),
38556/* 289 */
38557/***/ (function(module, exports, __webpack_require__) {
38558
38559__webpack_require__(290);
38560var $Object = __webpack_require__(24).Object;
38561module.exports = function defineProperty(it, key, desc) {
38562 return $Object.defineProperty(it, key, desc);
38563};
38564
38565
38566/***/ }),
38567/* 290 */
38568/***/ (function(module, exports, __webpack_require__) {
38569
38570var $export = __webpack_require__(31);
38571// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
38572$export($export.S + $export.F * !__webpack_require__(25), 'Object', { defineProperty: __webpack_require__(26).f });
38573
38574
38575/***/ }),
38576/* 291 */
38577/***/ (function(module, exports, __webpack_require__) {
38578
38579"use strict";
38580
38581
38582exports.__esModule = true;
38583
38584var _extends2 = __webpack_require__(1);
38585
38586var _extends3 = _interopRequireDefault(_extends2);
38587
38588var _classCallCheck2 = __webpack_require__(2);
38589
38590var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38591
38592var _possibleConstructorReturn2 = __webpack_require__(3);
38593
38594var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38595
38596var _inherits2 = __webpack_require__(4);
38597
38598var _inherits3 = _interopRequireDefault(_inherits2);
38599
38600exports.default = withContext;
38601
38602var _react = __webpack_require__(0);
38603
38604var _react2 = _interopRequireDefault(_react);
38605
38606var _propTypes = __webpack_require__(5);
38607
38608var _propTypes2 = _interopRequireDefault(_propTypes);
38609
38610function _interopRequireDefault(obj) {
38611 return obj && obj.__esModule ? obj : { default: obj };
38612}
38613
38614function withContext(Checkbox) {
38615 var _class, _temp;
38616
38617 return _temp = _class = function (_React$Component) {
38618 (0, _inherits3.default)(WrappedComp, _React$Component);
38619
38620 function WrappedComp() {
38621 (0, _classCallCheck3.default)(this, WrappedComp);
38622 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
38623 }
38624
38625 WrappedComp.prototype.render = function render() {
38626 return _react2.default.createElement(Checkbox, (0, _extends3.default)({}, this.props, { context: this.context }));
38627 };
38628
38629 return WrappedComp;
38630 }(_react2.default.Component), _class.displayName = 'Checkbox', _class.contextTypes = {
38631 onChange: _propTypes2.default.func,
38632 __group__: _propTypes2.default.bool,
38633 selectedValue: _propTypes2.default.array,
38634 disabled: _propTypes2.default.bool,
38635 prefix: _propTypes2.default.string
38636 }, _temp;
38637}
38638module.exports = exports['default'];
38639
38640/***/ }),
38641/* 292 */
38642/***/ (function(module, exports, __webpack_require__) {
38643
38644"use strict";
38645
38646
38647exports.__esModule = true;
38648
38649var _extends2 = __webpack_require__(1);
38650
38651var _extends3 = _interopRequireDefault(_extends2);
38652
38653var _typeof2 = __webpack_require__(14);
38654
38655var _typeof3 = _interopRequireDefault(_typeof2);
38656
38657var _classCallCheck2 = __webpack_require__(2);
38658
38659var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38660
38661var _possibleConstructorReturn2 = __webpack_require__(3);
38662
38663var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38664
38665var _inherits2 = __webpack_require__(4);
38666
38667var _inherits3 = _interopRequireDefault(_inherits2);
38668
38669var _class, _temp;
38670
38671var _react = __webpack_require__(0);
38672
38673var _react2 = _interopRequireDefault(_react);
38674
38675var _propTypes = __webpack_require__(5);
38676
38677var _propTypes2 = _interopRequireDefault(_propTypes);
38678
38679var _classnames2 = __webpack_require__(7);
38680
38681var _classnames3 = _interopRequireDefault(_classnames2);
38682
38683var _reactLifecyclesCompat = __webpack_require__(10);
38684
38685var _util = __webpack_require__(6);
38686
38687var _checkbox = __webpack_require__(145);
38688
38689var _checkbox2 = _interopRequireDefault(_checkbox);
38690
38691function _interopRequireDefault(obj) {
38692 return obj && obj.__esModule ? obj : { default: obj };
38693}
38694
38695var pickOthers = _util.obj.pickOthers;
38696
38697/** Checkbox.Group */
38698
38699var CheckboxGroup = (_temp = _class = function (_Component) {
38700 (0, _inherits3.default)(CheckboxGroup, _Component);
38701
38702 function CheckboxGroup(props) {
38703 (0, _classCallCheck3.default)(this, CheckboxGroup);
38704
38705 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
38706
38707 var value = [];
38708 if ('value' in props) {
38709 value = props.value;
38710 } else if ('defaultValue' in props) {
38711 value = props.defaultValue;
38712 }
38713 if (!Array.isArray(value)) {
38714 if (value === null || value === undefined) {
38715 value = [];
38716 } else {
38717 value = [value];
38718 }
38719 }
38720 _this.state = {
38721 value: [].concat(value)
38722 };
38723
38724 _this.onChange = _this.onChange.bind(_this);
38725 return _this;
38726 }
38727
38728 CheckboxGroup.prototype.getChildContext = function getChildContext() {
38729 return {
38730 __group__: true,
38731 onChange: this.onChange,
38732 selectedValue: this.state.value,
38733 disabled: this.props.disabled
38734 };
38735 };
38736
38737 CheckboxGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
38738 if ('value' in nextProps) {
38739 var value = nextProps.value;
38740
38741 if (!Array.isArray(value)) {
38742 if (value === null || value === undefined) {
38743 value = [];
38744 } else {
38745 value = [value];
38746 }
38747 }
38748
38749 return { value: value };
38750 }
38751
38752 return null;
38753 };
38754
38755 CheckboxGroup.prototype.onChange = function onChange(currentValue, e) {
38756 var value = this.state.value;
38757
38758 var index = value.indexOf(currentValue);
38759 var valTemp = [].concat(value);
38760
38761 if (index === -1) {
38762 valTemp.push(currentValue);
38763 } else {
38764 valTemp.splice(index, 1);
38765 }
38766
38767 if (!('value' in this.props)) {
38768 this.setState({ value: valTemp });
38769 }
38770 this.props.onChange(valTemp, e);
38771 };
38772
38773 CheckboxGroup.prototype.render = function render() {
38774 var _this2 = this,
38775 _classnames;
38776
38777 var _props = this.props,
38778 className = _props.className,
38779 style = _props.style,
38780 prefix = _props.prefix,
38781 disabled = _props.disabled,
38782 direction = _props.direction,
38783 rtl = _props.rtl,
38784 isPreview = _props.isPreview,
38785 renderPreview = _props.renderPreview;
38786
38787 var others = pickOthers(CheckboxGroup.propTypes, this.props);
38788
38789 // 如果内嵌标签跟dataSource同时存在,以内嵌标签为主
38790 var children = void 0;
38791 var previewed = [];
38792 if (this.props.children) {
38793 children = _react2.default.Children.map(this.props.children, function (child) {
38794 if (!_react2.default.isValidElement(child)) {
38795 return child;
38796 }
38797 var checked = _this2.state.value && _this2.state.value.indexOf(child.props.value) > -1;
38798
38799 if (checked) {
38800 previewed.push({
38801 label: child.props.children,
38802 value: child.props.value
38803 });
38804 }
38805
38806 return _react2.default.cloneElement(child, child.props.rtl === undefined ? { rtl: rtl } : null);
38807 });
38808 } else {
38809 children = this.props.dataSource.map(function (item, index) {
38810 var option = item;
38811 if ((typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) !== 'object') {
38812 option = {
38813 label: item,
38814 value: item,
38815 disabled: disabled
38816 };
38817 }
38818 var checked = _this2.state.value && _this2.state.value.indexOf(option.value) > -1;
38819
38820 if (checked) {
38821 previewed.push({
38822 label: option.label,
38823 value: option.value
38824 });
38825 }
38826
38827 return _react2.default.createElement(_checkbox2.default, {
38828 key: index,
38829 value: option.value,
38830 checked: checked,
38831 rtl: rtl,
38832 disabled: disabled || option.disabled,
38833 label: option.label
38834 });
38835 });
38836 }
38837
38838 if (isPreview) {
38839 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
38840
38841 if ('renderPreview' in this.props) {
38842 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { dir: rtl ? 'rtl' : undefined, className: previewCls }), renderPreview(previewed, this.props));
38843 }
38844
38845 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { dir: rtl ? 'rtl' : undefined, className: previewCls }), previewed.map(function (item) {
38846 return item.label;
38847 }).join(', '));
38848 }
38849
38850 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'checkbox-group'] = true, _classnames[prefix + 'checkbox-group-' + direction] = true, _classnames[className] = !!className, _classnames.disabled = disabled, _classnames));
38851
38852 return _react2.default.createElement('span', (0, _extends3.default)({ dir: rtl ? 'rtl' : undefined }, others, { className: cls, style: style }), children);
38853 };
38854
38855 return CheckboxGroup;
38856}(_react.Component), _class.propTypes = {
38857 prefix: _propTypes2.default.string,
38858 rtl: _propTypes2.default.bool,
38859 /**
38860 * 自定义类名
38861 */
38862 className: _propTypes2.default.string,
38863 /**
38864 * 自定义内敛样式
38865 */
38866 style: _propTypes2.default.object,
38867 /**
38868 * 整体禁用
38869 */
38870 disabled: _propTypes2.default.bool,
38871 /**
38872 * 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` 或者 `[{value: 'apple', label: '苹果',}, {value: 'pear', label: '梨'}, {value: 'orange', label: '橙子'}]`
38873 */
38874 dataSource: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.arrayOf(_propTypes2.default.object)]),
38875 /**
38876 * 被选中的值列表
38877 */
38878 value: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.string, _propTypes2.default.number]),
38879 /**
38880 * 默认被选中的值列表
38881 */
38882 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.string, _propTypes2.default.number]),
38883 /**
38884 * 通过子元素方式设置内部 checkbox
38885 */
38886 children: _propTypes2.default.arrayOf(_propTypes2.default.element),
38887 /**
38888 * 选中值改变时的事件
38889 * @param {Array} value 选中项列表
38890 * @param {Event} e Dom 事件对象
38891 */
38892 onChange: _propTypes2.default.func,
38893
38894 /**
38895 * 子项目的排列方式
38896 * - hoz: 水平排列 (default)
38897 * - ver: 垂直排列
38898 */
38899 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
38900 /**
38901 * 是否为预览态
38902 * @version 1.19
38903 */
38904 isPreview: _propTypes2.default.bool,
38905 /**
38906 * 预览态模式下渲染的内容
38907 * @param {Array} previewed 预览值 [{label: '', value:''},...]
38908 * @param {Object} props 所有传入的参数
38909 * @returns {reactNode} Element 渲染内容
38910 * @version 1.19
38911 */
38912 renderPreview: _propTypes2.default.func
38913}, _class.defaultProps = {
38914 dataSource: [],
38915 onChange: function onChange() {},
38916 prefix: 'next-',
38917 direction: 'hoz',
38918 isPreview: false
38919}, _class.childContextTypes = {
38920 onChange: _propTypes2.default.func,
38921 __group__: _propTypes2.default.bool,
38922 selectedValue: _propTypes2.default.array,
38923 disabled: _propTypes2.default.bool
38924}, _temp);
38925CheckboxGroup.displayName = 'CheckboxGroup';
38926exports.default = (0, _reactLifecyclesCompat.polyfill)(CheckboxGroup);
38927module.exports = exports['default'];
38928
38929/***/ }),
38930/* 293 */
38931/***/ (function(module, exports, __webpack_require__) {
38932
38933"use strict";
38934
38935
38936exports.__esModule = true;
38937
38938var _extends2 = __webpack_require__(1);
38939
38940var _extends3 = _interopRequireDefault(_extends2);
38941
38942var _classCallCheck2 = __webpack_require__(2);
38943
38944var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
38945
38946var _possibleConstructorReturn2 = __webpack_require__(3);
38947
38948var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
38949
38950var _inherits2 = __webpack_require__(4);
38951
38952var _inherits3 = _interopRequireDefault(_inherits2);
38953
38954exports.default = withContext;
38955
38956var _react = __webpack_require__(0);
38957
38958var _react2 = _interopRequireDefault(_react);
38959
38960var _propTypes = __webpack_require__(5);
38961
38962var _propTypes2 = _interopRequireDefault(_propTypes);
38963
38964function _interopRequireDefault(obj) {
38965 return obj && obj.__esModule ? obj : { default: obj };
38966}
38967
38968function withContext(Radio) {
38969 var _class, _temp;
38970
38971 return _temp = _class = function (_React$Component) {
38972 (0, _inherits3.default)(WrappedComp, _React$Component);
38973
38974 function WrappedComp() {
38975 (0, _classCallCheck3.default)(this, WrappedComp);
38976 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
38977 }
38978
38979 WrappedComp.prototype.render = function render() {
38980 return _react2.default.createElement(Radio, (0, _extends3.default)({}, this.props, { context: this.context }));
38981 };
38982
38983 return WrappedComp;
38984 }(_react2.default.Component), _class.displayName = 'Radio', _class.contextTypes = {
38985 onChange: _propTypes2.default.func,
38986 __group__: _propTypes2.default.bool,
38987 isButton: _propTypes2.default.bool,
38988 selectedValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
38989 disabled: _propTypes2.default.bool
38990 }, _temp;
38991}
38992module.exports = exports['default'];
38993
38994/***/ }),
38995/* 294 */
38996/***/ (function(module, exports, __webpack_require__) {
38997
38998"use strict";
38999
39000
39001exports.__esModule = true;
39002
39003var _extends2 = __webpack_require__(1);
39004
39005var _extends3 = _interopRequireDefault(_extends2);
39006
39007var _typeof2 = __webpack_require__(14);
39008
39009var _typeof3 = _interopRequireDefault(_typeof2);
39010
39011var _classCallCheck2 = __webpack_require__(2);
39012
39013var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39014
39015var _possibleConstructorReturn2 = __webpack_require__(3);
39016
39017var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39018
39019var _inherits2 = __webpack_require__(4);
39020
39021var _inherits3 = _interopRequireDefault(_inherits2);
39022
39023var _class, _temp;
39024
39025var _react = __webpack_require__(0);
39026
39027var _react2 = _interopRequireDefault(_react);
39028
39029var _propTypes = __webpack_require__(5);
39030
39031var _propTypes2 = _interopRequireDefault(_propTypes);
39032
39033var _classnames2 = __webpack_require__(7);
39034
39035var _classnames3 = _interopRequireDefault(_classnames2);
39036
39037var _reactLifecyclesCompat = __webpack_require__(10);
39038
39039var _configProvider = __webpack_require__(9);
39040
39041var _configProvider2 = _interopRequireDefault(_configProvider);
39042
39043var _util = __webpack_require__(6);
39044
39045var _radio = __webpack_require__(148);
39046
39047var _radio2 = _interopRequireDefault(_radio);
39048
39049function _interopRequireDefault(obj) {
39050 return obj && obj.__esModule ? obj : { default: obj };
39051}
39052
39053var pickOthers = _util.obj.pickOthers;
39054
39055/**
39056 * Radio.Group
39057 * @order 2
39058 */
39059
39060var RadioGroup = (_temp = _class = function (_Component) {
39061 (0, _inherits3.default)(RadioGroup, _Component);
39062
39063 function RadioGroup(props) {
39064 (0, _classCallCheck3.default)(this, RadioGroup);
39065
39066 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
39067
39068 var value = '';
39069 if ('value' in props) {
39070 value = props.value;
39071 } else if ('defaultValue' in props) {
39072 value = props.defaultValue;
39073 }
39074
39075 _this.state = { value: value };
39076 _this.onChange = _this.onChange.bind(_this);
39077 return _this;
39078 }
39079
39080 RadioGroup.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
39081 if ('value' in props && props.value !== state.value) {
39082 return {
39083 value: props.value
39084 };
39085 }
39086
39087 return null;
39088 };
39089
39090 RadioGroup.prototype.getChildContext = function getChildContext() {
39091 var disabled = this.props.disabled;
39092
39093 return {
39094 __group__: true,
39095 isButton: this.props.shape === 'button',
39096 onChange: this.onChange,
39097 selectedValue: this.state.value,
39098 disabled: disabled
39099 };
39100 };
39101
39102 RadioGroup.prototype.onChange = function onChange(currentValue, e) {
39103 if (!('value' in this.props)) {
39104 this.setState({ value: currentValue });
39105 }
39106 if (currentValue !== this.state.value) {
39107 this.props.onChange(currentValue, e);
39108 }
39109 };
39110
39111 RadioGroup.prototype.render = function render() {
39112 var _this2 = this,
39113 _classnames;
39114
39115 var _props = this.props,
39116 rtl = _props.rtl,
39117 className = _props.className,
39118 disabled = _props.disabled,
39119 shape = _props.shape,
39120 size = _props.size,
39121 style = _props.style,
39122 prefix = _props.prefix,
39123 direction = _props.direction,
39124 component = _props.component,
39125 isPreview = _props.isPreview,
39126 renderPreview = _props.renderPreview;
39127
39128 var others = pickOthers(Object.keys(RadioGroup.propTypes), this.props);
39129
39130 if (rtl) {
39131 others.dir = 'rtl';
39132 }
39133
39134 var children = void 0;
39135 var previewed = {};
39136 if (this.props.children) {
39137 children = _react2.default.Children.map(this.props.children, function (child, index) {
39138 if (!_react2.default.isValidElement(child)) {
39139 return child;
39140 }
39141 var checked = _this2.state.value === child.props.value;
39142 if (checked) {
39143 previewed.label = child.props.children;
39144 previewed.value = child.props.value;
39145 }
39146 var tabIndex = index === 0 && !_this2.state.value || checked ? 0 : -1;
39147 var childrtl = child.props.rtl === undefined ? rtl : child.props.rtl;
39148 if (child.type && child.type.displayName === 'Config(Radio)') {
39149 return _react2.default.cloneElement(child, {
39150 checked: checked,
39151 tabIndex: tabIndex,
39152 rtl: childrtl
39153 });
39154 }
39155 return _react2.default.cloneElement(child, {
39156 checked: checked,
39157 rtl: childrtl
39158 });
39159 });
39160 } else {
39161 children = this.props.dataSource.map(function (item, index) {
39162 var option = item;
39163 if ((typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) !== 'object') {
39164 option = {
39165 label: item,
39166 value: item,
39167 disabled: disabled
39168 };
39169 }
39170 var checked = _this2.state.value === option.value;
39171 if (checked) {
39172 previewed.label = option.label;
39173 previewed.value = option.value;
39174 }
39175 return _react2.default.createElement(_radio2.default, {
39176 key: index,
39177 tabIndex: index === 0 && !_this2.state.value || checked ? 0 : -1,
39178 value: option.value,
39179 checked: checked,
39180 label: option.label,
39181 disabled: disabled || option.disabled
39182 });
39183 });
39184 }
39185 if (isPreview) {
39186 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
39187
39188 if ('renderPreview' in this.props) {
39189 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(previewed, this.props));
39190 }
39191
39192 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), previewed.label);
39193 }
39194
39195 var isButtonShape = shape === 'button';
39196
39197 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'radio-group'] = true, _classnames[prefix + 'radio-group-' + direction] = !isButtonShape, _classnames[prefix + 'radio-button'] = isButtonShape, _classnames[prefix + 'radio-button-' + size] = isButtonShape, _classnames[className] = !!className, _classnames.disabled = disabled, _classnames));
39198
39199 var TagName = component;
39200 return _react2.default.createElement(TagName, (0, _extends3.default)({}, others, { 'aria-disabled': disabled, role: 'radiogroup', className: cls, style: style }), children);
39201 };
39202
39203 return RadioGroup;
39204}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
39205 /**
39206 * 样式类名的品牌前缀
39207 */
39208 prefix: _propTypes2.default.string,
39209 /**
39210 * 自定义类名
39211 */
39212 className: _propTypes2.default.string,
39213 /**
39214 * 自定义内敛样式
39215 */
39216 style: _propTypes2.default.object,
39217 /**
39218 * name
39219 */
39220 name: _propTypes2.default.string,
39221 /**
39222 * radio group的选中项的值
39223 */
39224 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
39225 /**
39226 * radio group的默认值
39227 */
39228 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
39229 /**
39230 * 设置标签类型
39231 */
39232 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
39233 /**
39234 * 选中值改变时的事件
39235 * @param {String/Number} value 选中项的值
39236 * @param {Event} e Dom 事件对象
39237 */
39238 onChange: _propTypes2.default.func,
39239 /**
39240 * 表示radio被禁用
39241 */
39242 disabled: _propTypes2.default.bool,
39243 /**
39244 * 可以设置成 button 展示形状
39245 * @enumdesc 按钮状
39246 */
39247 shape: _propTypes2.default.oneOf(['normal', 'button']),
39248 /**
39249 * 与 `shape` 属性配套使用,shape设为button时有效
39250 * @enumdesc 大, 中, 小
39251 */
39252 size: _propTypes2.default.oneOf(['large', 'medium', 'small']),
39253 /**
39254 * 可选项列表, 数据项可为 String 或者 Object, 如 `['apple', 'pear', 'orange']` `[{label: 'apply', value: 'apple'}]`
39255 */
39256 dataSource: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.arrayOf(_propTypes2.default.object)]),
39257 /**
39258 * 通过子元素方式设置内部radio
39259 */
39260 children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.element), _propTypes2.default.element]),
39261
39262 /**
39263 * 子项目的排列方式
39264 * - hoz: 水平排列 (default)
39265 * - ver: 垂直排列
39266 */
39267 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
39268 /**
39269 * 是否为预览态
39270 */
39271 isPreview: _propTypes2.default.bool,
39272 /**
39273 * 预览态模式下渲染的内容
39274 * @param {Object} previewed 预览值:{label: "", value: ""}
39275 * @param {Object} props 所有传入的参数
39276 * @returns {reactNode} Element 渲染内容
39277 */
39278 renderPreview: _propTypes2.default.func
39279}), _class.defaultProps = {
39280 dataSource: [],
39281 size: 'medium',
39282 onChange: function onChange() {},
39283 prefix: 'next-',
39284 component: 'div',
39285 direction: 'hoz',
39286 isPreview: false
39287}, _class.childContextTypes = {
39288 onChange: _propTypes2.default.func,
39289 __group__: _propTypes2.default.bool,
39290 isButton: _propTypes2.default.bool,
39291 selectedValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.bool]),
39292 disabled: _propTypes2.default.bool
39293}, _temp);
39294RadioGroup.displayName = 'RadioGroup';
39295exports.default = (0, _reactLifecyclesCompat.polyfill)(RadioGroup);
39296module.exports = exports['default'];
39297
39298/***/ }),
39299/* 295 */
39300/***/ (function(module, exports, __webpack_require__) {
39301
39302"use strict";
39303
39304
39305exports.__esModule = true;
39306exports.default = undefined;
39307
39308var _extends2 = __webpack_require__(1);
39309
39310var _extends3 = _interopRequireDefault(_extends2);
39311
39312var _classCallCheck2 = __webpack_require__(2);
39313
39314var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39315
39316var _possibleConstructorReturn2 = __webpack_require__(3);
39317
39318var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39319
39320var _inherits2 = __webpack_require__(4);
39321
39322var _inherits3 = _interopRequireDefault(_inherits2);
39323
39324var _class, _temp;
39325
39326var _react = __webpack_require__(0);
39327
39328var _react2 = _interopRequireDefault(_react);
39329
39330var _propTypes = __webpack_require__(5);
39331
39332var _propTypes2 = _interopRequireDefault(_propTypes);
39333
39334var _checkableItem = __webpack_require__(144);
39335
39336var _checkableItem2 = _interopRequireDefault(_checkableItem);
39337
39338function _interopRequireDefault(obj) {
39339 return obj && obj.__esModule ? obj : { default: obj };
39340}
39341
39342/**
39343 * Menu.RadioItem
39344 * @order 4
39345 * @description 该子组件选中情况不受 defaultSelectedKeys/selectedKeys 控制,请自行控制选中逻辑
39346 */
39347var RadioItem = (_temp = _class = function (_Component) {
39348 (0, _inherits3.default)(RadioItem, _Component);
39349
39350 function RadioItem() {
39351 (0, _classCallCheck3.default)(this, RadioItem);
39352 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
39353 }
39354
39355 RadioItem.prototype.render = function render() {
39356 return _react2.default.createElement(_checkableItem2.default, (0, _extends3.default)({
39357 role: 'menuitemradio',
39358 checkType: 'radio'
39359 }, this.props));
39360 };
39361
39362 return RadioItem;
39363}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
39364 /**
39365 * 是否选中
39366 */
39367 checked: _propTypes2.default.bool,
39368 /**
39369 * 是否禁用
39370 */
39371 disabled: _propTypes2.default.bool,
39372 /**
39373 * 选中或取消选中触发的回调函数
39374 * @param {Boolean} checked 是否选中
39375 * @param {Object} event 选中事件对象
39376 */
39377 onChange: _propTypes2.default.func,
39378 /**
39379 * 帮助文本
39380 */
39381 helper: _propTypes2.default.node,
39382 /**
39383 * 标签内容
39384 */
39385 children: _propTypes2.default.node
39386}, _class.defaultProps = {
39387 checked: false,
39388 disabled: false,
39389 onChange: function onChange() {}
39390}, _temp);
39391RadioItem.displayName = 'RadioItem';
39392exports.default = RadioItem;
39393module.exports = exports['default'];
39394
39395/***/ }),
39396/* 296 */
39397/***/ (function(module, exports, __webpack_require__) {
39398
39399"use strict";
39400
39401
39402exports.__esModule = true;
39403exports.default = undefined;
39404
39405var _extends2 = __webpack_require__(1);
39406
39407var _extends3 = _interopRequireDefault(_extends2);
39408
39409var _typeof2 = __webpack_require__(14);
39410
39411var _typeof3 = _interopRequireDefault(_typeof2);
39412
39413var _objectWithoutProperties2 = __webpack_require__(8);
39414
39415var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39416
39417var _classCallCheck2 = __webpack_require__(2);
39418
39419var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39420
39421var _possibleConstructorReturn2 = __webpack_require__(3);
39422
39423var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39424
39425var _inherits2 = __webpack_require__(4);
39426
39427var _inherits3 = _interopRequireDefault(_inherits2);
39428
39429var _class, _temp;
39430
39431var _react = __webpack_require__(0);
39432
39433var _react2 = _interopRequireDefault(_react);
39434
39435var _propTypes = __webpack_require__(5);
39436
39437var _propTypes2 = _interopRequireDefault(_propTypes);
39438
39439var _classnames = __webpack_require__(7);
39440
39441var _classnames2 = _interopRequireDefault(_classnames);
39442
39443var _item = __webpack_require__(37);
39444
39445var _item2 = _interopRequireDefault(_item);
39446
39447function _interopRequireDefault(obj) {
39448 return obj && obj.__esModule ? obj : { default: obj };
39449}
39450
39451/**
39452 * Menu.Group
39453 * @order 5
39454 */
39455var Group = (_temp = _class = function (_Component) {
39456 (0, _inherits3.default)(Group, _Component);
39457
39458 function Group() {
39459 (0, _classCallCheck3.default)(this, Group);
39460 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
39461 }
39462
39463 Group.prototype.render = function render() {
39464 var _cx;
39465
39466 var _props = this.props,
39467 root = _props.root,
39468 className = _props.className,
39469 label = _props.label,
39470 children = _props.children,
39471 parentMode = _props.parentMode,
39472 others = (0, _objectWithoutProperties3.default)(_props, ['root', 'className', 'label', 'children', 'parentMode']);
39473 var prefix = root.props.prefix;
39474
39475 var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-group-label'] = true, _cx[className] = !!className, _cx));
39476
39477 var newChildren = children.map(function (child) {
39478 var _cx2;
39479
39480 // to fix https://github.com/alibaba-fusion/next/issues/952
39481 if (typeof child !== 'function' && (typeof child === 'undefined' ? 'undefined' : (0, _typeof3.default)(child)) !== 'object') {
39482 return child;
39483 }
39484 var className = child.props.className;
39485
39486 var newChildClassName = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'menu-group-item'] = true, _cx2[className] = !!className, _cx2));
39487
39488 return (0, _react.cloneElement)(child, {
39489 parentMode: parentMode,
39490 className: newChildClassName
39491 });
39492 });
39493
39494 return [_react2.default.createElement(_item2.default, (0, _extends3.default)({
39495 key: 'menu-group-label',
39496 className: newClassName,
39497 replaceClassName: true,
39498 root: root,
39499 parentMode: parentMode
39500 }, others), label)].concat(newChildren);
39501 };
39502
39503 return Group;
39504}(_react.Component), _class.menuChildType = 'group', _class.propTypes = {
39505 root: _propTypes2.default.object,
39506 className: _propTypes2.default.string,
39507 /**
39508 * 标签内容
39509 */
39510 label: _propTypes2.default.node,
39511 /**
39512 * 菜单项
39513 */
39514 children: _propTypes2.default.node,
39515 parentMode: _propTypes2.default.oneOf(['inline', 'popup'])
39516}, _temp);
39517Group.displayName = 'Group';
39518exports.default = Group;
39519module.exports = exports['default'];
39520
39521/***/ }),
39522/* 297 */
39523/***/ (function(module, exports, __webpack_require__) {
39524
39525"use strict";
39526
39527
39528exports.__esModule = true;
39529exports.default = undefined;
39530
39531var _extends2 = __webpack_require__(1);
39532
39533var _extends3 = _interopRequireDefault(_extends2);
39534
39535var _objectWithoutProperties2 = __webpack_require__(8);
39536
39537var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39538
39539var _classCallCheck2 = __webpack_require__(2);
39540
39541var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39542
39543var _possibleConstructorReturn2 = __webpack_require__(3);
39544
39545var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39546
39547var _inherits2 = __webpack_require__(4);
39548
39549var _inherits3 = _interopRequireDefault(_inherits2);
39550
39551var _class, _temp;
39552
39553var _react = __webpack_require__(0);
39554
39555var _react2 = _interopRequireDefault(_react);
39556
39557var _propTypes = __webpack_require__(5);
39558
39559var _propTypes2 = _interopRequireDefault(_propTypes);
39560
39561var _classnames = __webpack_require__(7);
39562
39563var _classnames2 = _interopRequireDefault(_classnames);
39564
39565function _interopRequireDefault(obj) {
39566 return obj && obj.__esModule ? obj : { default: obj };
39567}
39568
39569/**
39570 * Menu.Divider
39571 * @order 6
39572 */
39573var Divider = (_temp = _class = function (_Component) {
39574 (0, _inherits3.default)(Divider, _Component);
39575
39576 function Divider() {
39577 (0, _classCallCheck3.default)(this, Divider);
39578 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
39579 }
39580
39581 Divider.prototype.render = function render() {
39582 var _cx;
39583
39584 var _props = this.props,
39585 root = _props.root,
39586 className = _props.className,
39587 parentMode = _props.parentMode,
39588 parent = _props.parent,
39589 others = (0, _objectWithoutProperties3.default)(_props, ['root', 'className', 'parentMode', 'parent']);
39590 var prefix = root.props.prefix;
39591
39592 var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'menu-divider'] = true, _cx[className] = !!className, _cx));
39593
39594 return _react2.default.createElement('li', (0, _extends3.default)({ role: 'separator', className: newClassName }, others));
39595 };
39596
39597 return Divider;
39598}(_react.Component), _class.menuChildType = 'divider', _class.propTypes = {
39599 root: _propTypes2.default.object,
39600 className: _propTypes2.default.string
39601}, _temp);
39602Divider.displayName = 'Divider';
39603exports.default = Divider;
39604module.exports = exports['default'];
39605
39606/***/ }),
39607/* 298 */
39608/***/ (function(module, exports, __webpack_require__) {
39609
39610"use strict";
39611
39612
39613exports.__esModule = true;
39614
39615var _extends2 = __webpack_require__(1);
39616
39617var _extends3 = _interopRequireDefault(_extends2);
39618
39619var _objectWithoutProperties2 = __webpack_require__(8);
39620
39621var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39622
39623var _classCallCheck2 = __webpack_require__(2);
39624
39625var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39626
39627var _possibleConstructorReturn2 = __webpack_require__(3);
39628
39629var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39630
39631var _inherits2 = __webpack_require__(4);
39632
39633var _inherits3 = _interopRequireDefault(_inherits2);
39634
39635var _class, _temp;
39636
39637exports.default = create;
39638
39639var _react = __webpack_require__(0);
39640
39641var _react2 = _interopRequireDefault(_react);
39642
39643var _reactDom = __webpack_require__(12);
39644
39645var _propTypes = __webpack_require__(5);
39646
39647var _propTypes2 = _interopRequireDefault(_propTypes);
39648
39649var _classnames = __webpack_require__(7);
39650
39651var _classnames2 = _interopRequireDefault(_classnames);
39652
39653var _overlay = __webpack_require__(15);
39654
39655var _overlay2 = _interopRequireDefault(_overlay);
39656
39657var _util = __webpack_require__(6);
39658
39659var _configProvider = __webpack_require__(9);
39660
39661var _configProvider2 = _interopRequireDefault(_configProvider);
39662
39663var _menu = __webpack_require__(141);
39664
39665var _menu2 = _interopRequireDefault(_menu);
39666
39667function _interopRequireDefault(obj) {
39668 return obj && obj.__esModule ? obj : { default: obj };
39669}
39670
39671var bindCtx = _util.func.bindCtx;
39672var getContextProps = _configProvider2.default.getContextProps;
39673
39674var Menu = _configProvider2.default.config(_menu2.default);
39675
39676var menuInstance = void 0;
39677
39678var ContextMenu = (_temp = _class = function (_Component) {
39679 (0, _inherits3.default)(ContextMenu, _Component);
39680
39681 function ContextMenu(props) {
39682 (0, _classCallCheck3.default)(this, ContextMenu);
39683
39684 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
39685
39686 _this.state = {
39687 visible: true
39688 };
39689
39690 bindCtx(_this, ['handleOverlayClose', 'handleOverlayOpen', 'handleItemClick', 'getOverlay']);
39691 return _this;
39692 }
39693
39694 ContextMenu.prototype.getOverlay = function getOverlay(ref) {
39695 this.overlay = ref;
39696 };
39697
39698 ContextMenu.prototype.close = function close() {
39699 this.setState({
39700 visible: false
39701 });
39702 menuInstance = null;
39703 };
39704
39705 ContextMenu.prototype.handleOverlayClose = function handleOverlayClose(triggerType, e) {
39706 var clickedPopupMenu = triggerType === 'docClick' && this.popupNodes.some(function (node) {
39707 return node.contains(e.target);
39708 });
39709 if (!clickedPopupMenu) {
39710 this.close();
39711 var overlayProps = this.props.overlayProps;
39712
39713 if (overlayProps && overlayProps.onRequestClose) {
39714 for (var _len = arguments.length, others = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
39715 others[_key - 2] = arguments[_key];
39716 }
39717
39718 overlayProps.onRequestClose.apply(overlayProps, [triggerType, e].concat(others));
39719 }
39720 }
39721 };
39722
39723 ContextMenu.prototype.handleOverlayOpen = function handleOverlayOpen() {
39724 this.popupNodes = this.overlay.getInstance().getContent().getInstance().popupNodes;
39725 var overlayProps = this.props.overlayProps;
39726
39727 if (overlayProps && overlayProps.onOpen) {
39728 overlayProps.onOpen();
39729 }
39730 };
39731
39732 ContextMenu.prototype.handleItemClick = function handleItemClick() {
39733 var _props;
39734
39735 this.close();
39736
39737 this.props.onItemClick && (_props = this.props).onItemClick.apply(_props, arguments);
39738 };
39739
39740 ContextMenu.prototype.render = function render() {
39741 var _cx, _cx2;
39742
39743 var _props2 = this.props,
39744 className = _props2.className,
39745 popupClassName = _props2.popupClassName,
39746 target = _props2.target,
39747 align = _props2.align,
39748 offset = _props2.offset,
39749 afterClose = _props2.afterClose,
39750 _props2$overlayProps = _props2.overlayProps,
39751 overlayProps = _props2$overlayProps === undefined ? {} : _props2$overlayProps,
39752 others = (0, _objectWithoutProperties3.default)(_props2, ['className', 'popupClassName', 'target', 'align', 'offset', 'afterClose', 'overlayProps']);
39753
39754 var contextProps = getContextProps(this.props);
39755 var prefix = contextProps.prefix;
39756 var visible = this.state.visible;
39757
39758 var newOverlayProps = (0, _extends3.default)({}, contextProps, overlayProps, {
39759 target: target,
39760 align: align,
39761 offset: offset,
39762 afterClose: afterClose,
39763 visible: visible,
39764 onRequestClose: this.handleOverlayClose,
39765 onOpen: this.handleOverlayOpen,
39766 ref: this.getOverlay
39767 });
39768 var menuProps = (0, _extends3.default)({}, contextProps, {
39769 triggerType: 'hover'
39770 }, others, {
39771 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'context'] = true, _cx[className] = !!className, _cx)),
39772 popupClassName: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'context'] = true, _cx2[popupClassName] = !!popupClassName, _cx2)),
39773 onItemClick: this.handleItemClick
39774 });
39775
39776 newOverlayProps.rtl = false;
39777
39778 return _react2.default.createElement(_overlay2.default, newOverlayProps, _react2.default.createElement(Menu, menuProps));
39779 };
39780
39781 return ContextMenu;
39782}(_react.Component), _class.propTypes = {
39783 className: _propTypes2.default.string,
39784 popupClassName: _propTypes2.default.string,
39785 target: _propTypes2.default.any,
39786 align: _propTypes2.default.string,
39787 offset: _propTypes2.default.array,
39788 overlayProps: _propTypes2.default.object,
39789 afterClose: _propTypes2.default.func,
39790 mode: _propTypes2.default.oneOf(['inline', 'popup']),
39791 onOpen: _propTypes2.default.func,
39792 onItemClick: _propTypes2.default.func
39793}, _class.defaultProps = {
39794 prefix: 'next-',
39795 align: 'tl tl',
39796 mode: 'popup'
39797}, _temp);
39798
39799/**
39800 * 创建上下文菜单
39801 * @exportName create
39802 * @param {Object} props 属性对象
39803 */
39804
39805ContextMenu.displayName = 'ContextMenu';
39806function create(props) {
39807 if (menuInstance) {
39808 menuInstance.destroy();
39809 }
39810
39811 /* eslint-disable no-unused-vars */
39812 var afterClose = props.afterClose,
39813 others = (0, _objectWithoutProperties3.default)(props, ['afterClose']);
39814 /* eslint-enable no-unused-vars */
39815
39816 var div = document.createElement('div');
39817 document.body.appendChild(div);
39818
39819 var closeChain = function closeChain() {
39820 (0, _reactDom.unmountComponentAtNode)(div);
39821 document.body.removeChild(div);
39822
39823 afterClose && afterClose();
39824 };
39825
39826 var newContext = _configProvider2.default.getContext();
39827
39828 var menu = void 0;
39829 (0, _reactDom.render)(_react2.default.createElement(_configProvider2.default, newContext, _react2.default.createElement(ContextMenu, (0, _extends3.default)({
39830 ref: function ref(_ref) {
39831 menu = _ref;
39832 },
39833 afterClose: closeChain
39834 }, others))), div);
39835
39836 menuInstance = {
39837 destroy: function destroy() {
39838 if (menu) {
39839 menu.close();
39840 }
39841 }
39842 };
39843
39844 return menuInstance;
39845}
39846module.exports = exports['default'];
39847
39848/***/ }),
39849/* 299 */
39850/***/ (function(module, exports, __webpack_require__) {
39851
39852"use strict";
39853
39854
39855exports.__esModule = true;
39856
39857var _extends2 = __webpack_require__(1);
39858
39859var _extends3 = _interopRequireDefault(_extends2);
39860
39861var _objectWithoutProperties2 = __webpack_require__(8);
39862
39863var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39864
39865var _classCallCheck2 = __webpack_require__(2);
39866
39867var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39868
39869var _possibleConstructorReturn2 = __webpack_require__(3);
39870
39871var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39872
39873var _inherits2 = __webpack_require__(4);
39874
39875var _inherits3 = _interopRequireDefault(_inherits2);
39876
39877var _class, _temp;
39878
39879var _react = __webpack_require__(0);
39880
39881var _react2 = _interopRequireDefault(_react);
39882
39883var _propTypes = __webpack_require__(5);
39884
39885var _propTypes2 = _interopRequireDefault(_propTypes);
39886
39887var _classnames = __webpack_require__(7);
39888
39889var _classnames2 = _interopRequireDefault(_classnames);
39890
39891var _configProvider = __webpack_require__(9);
39892
39893var _configProvider2 = _interopRequireDefault(_configProvider);
39894
39895function _interopRequireDefault(obj) {
39896 return obj && obj.__esModule ? obj : { default: obj };
39897}
39898
39899/**
39900 * Breadcrumb.Item
39901 */
39902var Item = (_temp = _class = function (_Component) {
39903 (0, _inherits3.default)(Item, _Component);
39904
39905 function Item() {
39906 (0, _classCallCheck3.default)(this, Item);
39907 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
39908 }
39909
39910 // stateless separator component
39911 Item.Separator = function Separator(_ref) {
39912 var prefix = _ref.prefix,
39913 children = _ref.children;
39914
39915 return _react2.default.createElement('span', { className: prefix + 'breadcrumb-separator' }, children);
39916 };
39917
39918 Item.prototype.render = function render() {
39919 var _props = this.props,
39920 prefix = _props.prefix,
39921 rtl = _props.rtl,
39922 className = _props.className,
39923 children = _props.children,
39924 link = _props.link,
39925 activated = _props.activated,
39926 separator = _props.separator,
39927 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'className', 'children', 'link', 'activated', 'separator']);
39928
39929 var clazz = (0, _classnames2.default)(prefix + 'breadcrumb-text', className, {
39930 activated: activated
39931 });
39932
39933 return _react2.default.createElement('li', { dir: rtl ? 'rtl' : null, className: prefix + 'breadcrumb-item' }, link ? _react2.default.createElement('a', (0, _extends3.default)({ href: link, className: clazz }, others), children) : _react2.default.createElement('span', (0, _extends3.default)({ className: clazz }, others), children), activated ? null : Item.Separator({ prefix: prefix, children: separator }));
39934 };
39935
39936 return Item;
39937}(_react.Component), _class.propTypes = {
39938 prefix: _propTypes2.default.string,
39939 rtl: _propTypes2.default.bool,
39940 /**
39941 * 面包屑节点链接,如果设置这个属性,则该节点为`<a />` ,否则是`<span />`
39942 */
39943 link: _propTypes2.default.string,
39944 activated: _propTypes2.default.bool,
39945 separator: _propTypes2.default.node,
39946 className: _propTypes2.default.any,
39947 children: _propTypes2.default.node
39948}, _class.defaultProps = {
39949 prefix: 'next-'
39950}, _class._typeMark = 'breadcrumb_item', _temp);
39951Item.displayName = 'Item';
39952exports.default = _configProvider2.default.config(Item);
39953module.exports = exports['default'];
39954
39955/***/ }),
39956/* 300 */
39957/***/ (function(module, exports, __webpack_require__) {
39958
39959"use strict";
39960
39961
39962exports.__esModule = true;
39963exports.default = undefined;
39964
39965var _extends2 = __webpack_require__(1);
39966
39967var _extends3 = _interopRequireDefault(_extends2);
39968
39969var _typeof2 = __webpack_require__(14);
39970
39971var _typeof3 = _interopRequireDefault(_typeof2);
39972
39973var _objectWithoutProperties2 = __webpack_require__(8);
39974
39975var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
39976
39977var _classCallCheck2 = __webpack_require__(2);
39978
39979var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
39980
39981var _possibleConstructorReturn2 = __webpack_require__(3);
39982
39983var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
39984
39985var _inherits2 = __webpack_require__(4);
39986
39987var _inherits3 = _interopRequireDefault(_inherits2);
39988
39989var _class, _temp2;
39990
39991var _react = __webpack_require__(0);
39992
39993var _react2 = _interopRequireDefault(_react);
39994
39995var _propTypes = __webpack_require__(5);
39996
39997var _propTypes2 = _interopRequireDefault(_propTypes);
39998
39999var _classnames = __webpack_require__(7);
40000
40001var _classnames2 = _interopRequireDefault(_classnames);
40002
40003var _configProvider = __webpack_require__(9);
40004
40005var _configProvider2 = _interopRequireDefault(_configProvider);
40006
40007var _util = __webpack_require__(6);
40008
40009function _interopRequireDefault(obj) {
40010 return obj && obj.__esModule ? obj : { default: obj };
40011}
40012
40013function mapIconSize(size) {
40014 return {
40015 large: 'small',
40016 medium: 'xs',
40017 small: 'xs'
40018 }[size];
40019}
40020
40021/** Button */
40022var Button = (_temp2 = _class = function (_Component) {
40023 (0, _inherits3.default)(Button, _Component);
40024
40025 function Button() {
40026 var _temp, _this, _ret;
40027
40028 (0, _classCallCheck3.default)(this, Button);
40029
40030 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
40031 args[_key] = arguments[_key];
40032 }
40033
40034 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.onMouseUp = function (e) {
40035 _this.button.blur();
40036
40037 if (_this.props.onMouseUp) {
40038 _this.props.onMouseUp(e);
40039 }
40040 }, _this.buttonRefHandler = function (button) {
40041 _this.button = button;
40042 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
40043 }
40044
40045 Button.prototype.render = function render() {
40046 var _btnClsObj;
40047
40048 var _props = this.props,
40049 prefix = _props.prefix,
40050 className = _props.className,
40051 type = _props.type,
40052 size = _props.size,
40053 htmlType = _props.htmlType,
40054 loading = _props.loading,
40055 text = _props.text,
40056 warning = _props.warning,
40057 ghost = _props.ghost,
40058 component = _props.component,
40059 iconSize = _props.iconSize,
40060 icons = _props.icons,
40061 disabled = _props.disabled,
40062 onClick = _props.onClick,
40063 children = _props.children,
40064 rtl = _props.rtl,
40065 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'type', 'size', 'htmlType', 'loading', 'text', 'warning', 'ghost', 'component', 'iconSize', 'icons', 'disabled', 'onClick', 'children', 'rtl']);
40066
40067 var ghostType = ['light', 'dark'].indexOf(ghost) >= 0 ? ghost : 'dark';
40068
40069 var btnClsObj = (_btnClsObj = {}, _btnClsObj[prefix + 'btn'] = true, _btnClsObj['' + prefix + size] = size, _btnClsObj[prefix + 'btn-' + type] = type && !ghost, _btnClsObj[prefix + 'btn-text'] = text, _btnClsObj[prefix + 'btn-warning'] = warning, _btnClsObj[prefix + 'btn-loading'] = loading, _btnClsObj[prefix + 'btn-ghost'] = ghost, _btnClsObj[prefix + 'btn-' + ghostType] = ghost, _btnClsObj[className] = className, _btnClsObj);
40070
40071 var loadingIcon = null;
40072
40073 // 如果传入了 loading 的 icons,使用该节点来渲染
40074 if (icons && icons.loading && (0, _react.isValidElement)(icons.loading)) {
40075 var _classNames;
40076
40077 if (loading) {
40078 delete btnClsObj[prefix + 'btn-loading'];
40079 btnClsObj[prefix + 'btn-custom-loading'] = true;
40080 }
40081
40082 var loadingSize = iconSize || mapIconSize(size);
40083 loadingIcon = _react2.default.cloneElement(icons.loading, {
40084 className: (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'btn-custom-loading-icon'] = true, _classNames.show = loading, _classNames)),
40085 size: loadingSize
40086 });
40087 }
40088
40089 var count = _react.Children.count(children);
40090 var clonedChildren = _react.Children.map(children, function (child, index) {
40091 if (child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'icon') {
40092 var _classNames2;
40093
40094 var iconCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'btn-icon'] = !iconSize, _classNames2[prefix + 'icon-first'] = count > 1 && index === 0, _classNames2[prefix + 'icon-last'] = count > 1 && index === count - 1, _classNames2[prefix + 'icon-alone'] = count === 1, _classNames2[child.props.className] = !!child.props.className, _classNames2));
40095
40096 if ('size' in child.props) {
40097 _util.log.warning('The size of Icon will not take effect, when Icon is the [direct child element] of Button(<Button><Icon size="' + child.props.size + '" /></Button>), use <Button iconSize="' + child.props.size + '"> or <Button><div><Icon size="' + child.props.size + '" /></div></Button> instead of.');
40098 }
40099 return _react2.default.cloneElement(child, {
40100 className: iconCls,
40101 size: iconSize || mapIconSize(size)
40102 });
40103 }
40104
40105 if (!(0, _react.isValidElement)(child)) {
40106 return _react2.default.createElement('span', { className: prefix + 'btn-helper' }, child);
40107 }
40108
40109 return child;
40110 });
40111
40112 var TagName = component;
40113 var tagAttrs = (0, _extends3.default)({}, _util.obj.pickOthers(Object.keys(Button.propTypes), others), {
40114 type: htmlType,
40115 disabled: disabled,
40116 onClick: onClick,
40117 className: (0, _classnames2.default)(btnClsObj)
40118 });
40119
40120 if (TagName !== 'button') {
40121 delete tagAttrs.type;
40122
40123 if (tagAttrs.disabled) {
40124 delete tagAttrs.onClick; // a 标签的 onClick 浏览器默认不会禁用
40125 tagAttrs.href && delete tagAttrs.href; // a 标签在禁用状态下无跳转
40126 }
40127 }
40128
40129 return _react2.default.createElement(TagName, (0, _extends3.default)({}, tagAttrs, { dir: rtl ? 'rtl' : undefined, onMouseUp: this.onMouseUp, ref: this.buttonRefHandler }), loadingIcon, clonedChildren);
40130 };
40131
40132 return Button;
40133}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
40134 prefix: _propTypes2.default.string,
40135 rtl: _propTypes2.default.bool,
40136 /**
40137 * 按钮的类型
40138 */
40139 type: _propTypes2.default.oneOf(['primary', 'secondary', 'normal']),
40140 /**
40141 * 按钮的尺寸
40142 */
40143 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
40144 /**
40145 * 按钮中可配置的 Icon,格式为 { loading: <Icon type="loading" /> }
40146 */
40147 icons: _propTypes2.default.shape({
40148 loading: _propTypes2.default.node
40149 }),
40150 /**
40151 * 按钮中 Icon 的尺寸,用于替代 Icon 的默认大小
40152 */
40153 iconSize: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['xxs', 'xs', 'small', 'medium', 'large', 'xl', 'xxl', 'xxxl', 'inherit']), _propTypes2.default.number]),
40154 /**
40155 * 当 component = 'button' 时,设置 button 标签的 type 值
40156 */
40157 htmlType: _propTypes2.default.oneOf(['submit', 'reset', 'button']),
40158 /**
40159 * 设置标签类型
40160 */
40161 component: _propTypes2.default.oneOf(['button', 'a', 'div', 'span']),
40162 /**
40163 * 设置按钮的载入状态
40164 */
40165 loading: _propTypes2.default.bool,
40166 /**
40167 * 是否为幽灵按钮
40168 */
40169 ghost: _propTypes2.default.oneOf([true, false, 'light', 'dark']),
40170 /**
40171 * 是否为文本按钮
40172 */
40173 text: _propTypes2.default.bool,
40174 /**
40175 * 是否为警告按钮
40176 */
40177 warning: _propTypes2.default.bool,
40178 /**
40179 * 是否禁用
40180 */
40181 disabled: _propTypes2.default.bool,
40182 /**
40183 * 点击按钮的回调
40184 * @param {Object} e Event Object
40185 */
40186 onClick: _propTypes2.default.func,
40187 className: _propTypes2.default.string,
40188 onMouseUp: _propTypes2.default.func,
40189 children: _propTypes2.default.node
40190}), _class.defaultProps = {
40191 prefix: 'next-',
40192 type: 'normal',
40193 size: 'medium',
40194 icons: {},
40195 htmlType: 'button',
40196 component: 'button',
40197 loading: false,
40198 ghost: false,
40199 text: false,
40200 warning: false,
40201 disabled: false,
40202 onClick: function onClick() {}
40203}, _temp2);
40204Button.displayName = 'Button';
40205exports.default = Button;
40206module.exports = exports['default'];
40207
40208/***/ }),
40209/* 301 */
40210/***/ (function(module, exports, __webpack_require__) {
40211
40212"use strict";
40213
40214
40215exports.__esModule = true;
40216
40217var _extends2 = __webpack_require__(1);
40218
40219var _extends3 = _interopRequireDefault(_extends2);
40220
40221var _objectWithoutProperties2 = __webpack_require__(8);
40222
40223var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
40224
40225var _classCallCheck2 = __webpack_require__(2);
40226
40227var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40228
40229var _possibleConstructorReturn2 = __webpack_require__(3);
40230
40231var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40232
40233var _inherits2 = __webpack_require__(4);
40234
40235var _inherits3 = _interopRequireDefault(_inherits2);
40236
40237var _class, _temp;
40238
40239var _react = __webpack_require__(0);
40240
40241var _react2 = _interopRequireDefault(_react);
40242
40243var _propTypes = __webpack_require__(5);
40244
40245var _propTypes2 = _interopRequireDefault(_propTypes);
40246
40247var _classnames = __webpack_require__(7);
40248
40249var _classnames2 = _interopRequireDefault(_classnames);
40250
40251var _configProvider = __webpack_require__(9);
40252
40253var _configProvider2 = _interopRequireDefault(_configProvider);
40254
40255function _interopRequireDefault(obj) {
40256 return obj && obj.__esModule ? obj : { default: obj };
40257}
40258
40259/**
40260 * Button.Group
40261 */
40262var ButtonGroup = (_temp = _class = function (_Component) {
40263 (0, _inherits3.default)(ButtonGroup, _Component);
40264
40265 function ButtonGroup() {
40266 (0, _classCallCheck3.default)(this, ButtonGroup);
40267 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
40268 }
40269
40270 ButtonGroup.prototype.render = function render() {
40271 var _classNames;
40272
40273 var _props = this.props,
40274 prefix = _props.prefix,
40275 className = _props.className,
40276 size = _props.size,
40277 children = _props.children,
40278 rtl = _props.rtl,
40279 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'size', 'children', 'rtl']);
40280
40281 var groupCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'btn-group'] = true, _classNames[className] = className, _classNames));
40282
40283 var cloneChildren = _react.Children.map(children, function (child) {
40284 if (child) {
40285 return _react2.default.cloneElement(child, {
40286 size: size
40287 });
40288 }
40289 });
40290
40291 if (rtl) {
40292 others.dir = 'rtl';
40293 }
40294
40295 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: groupCls }), cloneChildren);
40296 };
40297
40298 return ButtonGroup;
40299}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
40300 rtl: _propTypes2.default.bool,
40301 prefix: _propTypes2.default.string,
40302 /**
40303 * 统一设置 Button 组件的按钮大小
40304 */
40305 size: _propTypes2.default.string,
40306 className: _propTypes2.default.string,
40307 children: _propTypes2.default.node
40308}), _class.defaultProps = {
40309 prefix: 'next-',
40310 size: 'medium'
40311}, _temp);
40312ButtonGroup.displayName = 'ButtonGroup';
40313exports.default = _configProvider2.default.config(ButtonGroup);
40314module.exports = exports['default'];
40315
40316/***/ }),
40317/* 302 */
40318/***/ (function(module, exports, __webpack_require__) {
40319
40320"use strict";
40321
40322
40323exports.__esModule = true;
40324
40325var _extends2 = __webpack_require__(1);
40326
40327var _extends3 = _interopRequireDefault(_extends2);
40328
40329var _objectWithoutProperties2 = __webpack_require__(8);
40330
40331var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
40332
40333var _classCallCheck2 = __webpack_require__(2);
40334
40335var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40336
40337var _possibleConstructorReturn2 = __webpack_require__(3);
40338
40339var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40340
40341var _inherits2 = __webpack_require__(4);
40342
40343var _inherits3 = _interopRequireDefault(_inherits2);
40344
40345var _class, _temp, _initialiseProps;
40346
40347var _react = __webpack_require__(0);
40348
40349var _react2 = _interopRequireDefault(_react);
40350
40351var _propTypes = __webpack_require__(5);
40352
40353var _propTypes2 = _interopRequireDefault(_propTypes);
40354
40355var _reactLifecyclesCompat = __webpack_require__(10);
40356
40357var _moment = __webpack_require__(19);
40358
40359var _moment2 = _interopRequireDefault(_moment);
40360
40361var _classnames2 = __webpack_require__(7);
40362
40363var _classnames3 = _interopRequireDefault(_classnames2);
40364
40365var _configProvider = __webpack_require__(9);
40366
40367var _configProvider2 = _interopRequireDefault(_configProvider);
40368
40369var _zhCn = __webpack_require__(13);
40370
40371var _zhCn2 = _interopRequireDefault(_zhCn);
40372
40373var _util = __webpack_require__(6);
40374
40375var _cardHeader = __webpack_require__(303);
40376
40377var _cardHeader2 = _interopRequireDefault(_cardHeader);
40378
40379var _datePanelHeader = __webpack_require__(315);
40380
40381var _datePanelHeader2 = _interopRequireDefault(_datePanelHeader);
40382
40383var _monthPanelHeader = __webpack_require__(155);
40384
40385var _monthPanelHeader2 = _interopRequireDefault(_monthPanelHeader);
40386
40387var _yearPanelHeader = __webpack_require__(156);
40388
40389var _yearPanelHeader2 = _interopRequireDefault(_yearPanelHeader);
40390
40391var _dateTable = __webpack_require__(157);
40392
40393var _dateTable2 = _interopRequireDefault(_dateTable);
40394
40395var _monthTable = __webpack_require__(158);
40396
40397var _monthTable2 = _interopRequireDefault(_monthTable);
40398
40399var _yearTable = __webpack_require__(159);
40400
40401var _yearTable2 = _interopRequireDefault(_yearTable);
40402
40403var _utils = __webpack_require__(22);
40404
40405function _interopRequireDefault(obj) {
40406 return obj && obj.__esModule ? obj : { default: obj };
40407}
40408
40409var isValueChanged = function isValueChanged(value, oldVlaue) {
40410 if (value && oldVlaue) {
40411 if (!_moment2.default.isMoment(value)) {
40412 value = (0, _moment2.default)(value);
40413 }
40414 if (!_moment2.default.isMoment(oldVlaue)) {
40415 oldVlaue = (0, _moment2.default)(oldVlaue);
40416 }
40417 return value.valueOf() !== oldVlaue.valueOf();
40418 } else {
40419 return value !== oldVlaue;
40420 }
40421};
40422
40423/** Calendar */
40424var Calendar = (_temp = _class = function (_Component) {
40425 (0, _inherits3.default)(Calendar, _Component);
40426
40427 function Calendar(props, context) {
40428 (0, _classCallCheck3.default)(this, Calendar);
40429
40430 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
40431
40432 _initialiseProps.call(_this);
40433
40434 var value = (0, _utils.formatDateValue)(props.value || props.defaultValue);
40435 var visibleMonth = (0, _utils.getVisibleMonth)(props.defaultVisibleMonth, value);
40436
40437 _this.MODES = props.modes;
40438 _this.today = (0, _moment2.default)();
40439 _this.state = {
40440 value: value,
40441 mode: props.mode || _this.MODES[0],
40442 MODES: _this.MODES,
40443 visibleMonth: visibleMonth
40444 };
40445 return _this;
40446 }
40447
40448 Calendar.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
40449 var st = {};
40450 if ('value' in props) {
40451 var value = (0, _utils.formatDateValue)(props.value);
40452 if (value && isValueChanged(props.value, state.value)) {
40453 st.visibleMonth = value;
40454 }
40455 st.value = value;
40456 }
40457
40458 if (props.mode && state.MODES.indexOf(props.mode) > -1) {
40459 st.mode = props.mode;
40460 }
40461
40462 return st;
40463 };
40464
40465 /**
40466 * 根据日期偏移量设置当前展示的月份
40467 * @param {Number} offset 日期偏移的数量
40468 * @param {String} type 日期偏移的类型 days, months, years
40469 */
40470 Calendar.prototype.changeVisibleMonthByOffset = function changeVisibleMonthByOffset(offset, type) {
40471 var cloneValue = this.state.visibleMonth.clone();
40472 cloneValue.add(offset, type);
40473 this.changeVisibleMonth(cloneValue, 'buttonClick');
40474 };
40475
40476 Calendar.prototype.render = function render() {
40477 var _classnames, _tables, _panelHeaders;
40478
40479 var _props = this.props,
40480 prefix = _props.prefix,
40481 rtl = _props.rtl,
40482 className = _props.className,
40483 shape = _props.shape,
40484 showOtherMonth = _props.showOtherMonth,
40485 format = _props.format,
40486 locale = _props.locale,
40487 dateCellRender = _props.dateCellRender,
40488 monthCellRender = _props.monthCellRender,
40489 yearCellRender = _props.yearCellRender,
40490 disabledDate = _props.disabledDate,
40491 yearRange = _props.yearRange,
40492 disableChangeMode = _props.disableChangeMode,
40493 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'className', 'shape', 'showOtherMonth', 'format', 'locale', 'dateCellRender', 'monthCellRender', 'yearCellRender', 'disabledDate', 'yearRange', 'disableChangeMode']);
40494
40495 var state = this.state;
40496
40497 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'calendar'] = true, _classnames[prefix + 'calendar-' + shape] = shape, _classnames), className);
40498
40499 if (rtl) {
40500 others.dir = 'rtl';
40501 }
40502
40503 var visibleMonth = state.visibleMonth;
40504
40505 // reset moment locale
40506 if (locale.momentLocale) {
40507 state.value && state.value.locale(locale.momentLocale);
40508 visibleMonth.locale(locale.momentLocale);
40509 }
40510
40511 var localeData = (0, _utils.getLocaleData)(locale.format || {}, visibleMonth.localeData());
40512
40513 var headerProps = {
40514 prefix: prefix,
40515 value: state.value,
40516 mode: state.mode,
40517 disableChangeMode: disableChangeMode,
40518 yearRange: yearRange,
40519 locale: locale,
40520 rtl: rtl,
40521 visibleMonth: visibleMonth,
40522 momentLocale: localeData,
40523 changeMode: this.changeMode,
40524 changeVisibleMonth: this.changeVisibleMonth,
40525 goNextDecade: this.goNextDecade,
40526 goNextYear: this.goNextYear,
40527 goNextMonth: this.goNextMonth,
40528 goPrevDecade: this.goPrevDecade,
40529 goPrevYear: this.goPrevYear,
40530 goPrevMonth: this.goPrevMonth
40531 };
40532
40533 var tableProps = {
40534 prefix: prefix,
40535 visibleMonth: visibleMonth,
40536 showOtherMonth: showOtherMonth,
40537 value: state.value,
40538 mode: state.mode,
40539 locale: locale,
40540 dateCellRender: dateCellRender,
40541 monthCellRender: monthCellRender,
40542 yearCellRender: yearCellRender,
40543 disabledDate: disabledDate,
40544 momentLocale: localeData,
40545 today: this.today,
40546 goPrevDecade: this.goPrevDecade,
40547 goNextDecade: this.goNextDecade
40548 };
40549
40550 var tables = (_tables = {}, _tables[_utils.CALENDAR_MODE_DATE] = _react2.default.createElement(_dateTable2.default, (0, _extends3.default)({ format: format }, tableProps, { onSelectDate: this.onSelectCell })), _tables[_utils.CALENDAR_MODE_MONTH] = _react2.default.createElement(_monthTable2.default, (0, _extends3.default)({}, tableProps, { onSelectMonth: this.onSelectCell })), _tables[_utils.CALENDAR_MODE_YEAR] = _react2.default.createElement(_yearTable2.default, (0, _extends3.default)({}, tableProps, { rtl: rtl, onSelectYear: this.onSelectCell })), _tables);
40551
40552 var panelHeaders = (_panelHeaders = {}, _panelHeaders[_utils.CALENDAR_MODE_DATE] = _react2.default.createElement(_datePanelHeader2.default, headerProps), _panelHeaders[_utils.CALENDAR_MODE_MONTH] = _react2.default.createElement(_monthPanelHeader2.default, headerProps), _panelHeaders[_utils.CALENDAR_MODE_YEAR] = _react2.default.createElement(_yearPanelHeader2.default, headerProps), _panelHeaders);
40553
40554 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(Calendar.propTypes, others), { className: classNames }), shape === 'panel' ? panelHeaders[state.mode] : _react2.default.createElement(_cardHeader2.default, headerProps), tables[state.mode]);
40555 };
40556
40557 return Calendar;
40558}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
40559 prefix: _propTypes2.default.string,
40560 rtl: _propTypes2.default.bool,
40561 /**
40562 * 默认选中的日期(moment 对象)
40563 */
40564 defaultValue: _utils.checkMomentObj,
40565 /**
40566 * 选中的日期值 (moment 对象)
40567 */
40568 value: _utils.checkMomentObj,
40569 /**
40570 * 面板模式
40571 */
40572 mode: _propTypes2.default.oneOf(_utils.CALENDAR_MODES), // 生成 API 文档需要手动改回 ['date', 'month', 'year']
40573 // 面板可变化的模式列表,仅初始化时接收一次
40574 modes: _propTypes2.default.array,
40575 // 禁用更改面板模式,采用 dropdown 的方式切换显示日期 (暂不正式对外透出)
40576 disableChangeMode: _propTypes2.default.bool,
40577 // 日期值的格式(用于日期title显示的格式)
40578 format: _propTypes2.default.string,
40579 /**
40580 * 是否展示非本月的日期
40581 */
40582 showOtherMonth: _propTypes2.default.bool,
40583 /**
40584 * 默认展示的月份
40585 */
40586 defaultVisibleMonth: _propTypes2.default.func,
40587 /**
40588 * 展现形态
40589 */
40590 shape: _propTypes2.default.oneOf(['card', 'fullscreen', 'panel']),
40591 /**
40592 * 选择日期单元格时的回调
40593 * @param {Object} value 对应的日期值 (moment 对象)
40594 */
40595 onSelect: _propTypes2.default.func,
40596 /**
40597 * 面板模式变化时的回调
40598 * @param {String} mode 对应面板模式 date month year
40599 */
40600 onModeChange: _propTypes2.default.func,
40601 /**
40602 * 展现的月份变化时的回调
40603 * @param {Object} value 显示的月份 (moment 对象)
40604 * @param {String} reason 触发月份改变原因
40605 */
40606 onVisibleMonthChange: _propTypes2.default.func,
40607 /**
40608 * 自定义样式类
40609 */
40610 className: _propTypes2.default.string,
40611 /**
40612 * 自定义日期渲染函数
40613 * @param {Object} value 日期值(moment对象)
40614 * @returns {ReactNode}
40615 */
40616 dateCellRender: _propTypes2.default.func,
40617 /**
40618 * 自定义月份渲染函数
40619 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
40620 * @returns {ReactNode}
40621 */
40622 monthCellRender: _propTypes2.default.func,
40623 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
40624 /**
40625 * 年份范围,[START_YEAR, END_YEAR] (只在shape 为 ‘card’, 'fullscreen' 下生效)
40626 */
40627 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
40628 /**
40629 * 不可选择的日期
40630 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
40631 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
40632 * @returns {Boolean}
40633 */
40634 disabledDate: _propTypes2.default.func,
40635 /**
40636 * 国际化配置
40637 */
40638 locale: _propTypes2.default.object
40639}), _class.defaultProps = {
40640 prefix: 'next-',
40641 rtl: false,
40642 shape: 'fullscreen',
40643 modes: _utils.CALENDAR_MODES,
40644 disableChangeMode: false,
40645 format: 'YYYY-MM-DD',
40646 onSelect: _util.func.noop,
40647 onVisibleMonthChange: _util.func.noop,
40648 onModeChange: _util.func.noop,
40649 dateCellRender: function dateCellRender(value) {
40650 return value.date();
40651 },
40652 locale: _zhCn2.default.Calendar,
40653 showOtherMonth: true
40654}, _initialiseProps = function _initialiseProps() {
40655 var _this2 = this;
40656
40657 this.onSelectCell = function (date, nextMode) {
40658 var visibleMonth = _this2.state.visibleMonth;
40659 var _props2 = _this2.props,
40660 shape = _props2.shape,
40661 showOtherMonth = _props2.showOtherMonth;
40662
40663 // 点击其他月份日期不生效
40664
40665 if (!showOtherMonth && !(0, _utils.isSameYearMonth)(visibleMonth, date)) {
40666 return;
40667 }
40668
40669 _this2.changeVisibleMonth(date, 'cellClick');
40670
40671 // 当用户所在的面板为初始化面板时,则选择动作为触发 onSelect 回调
40672 if (_this2.state.mode === _this2.MODES[0]) {
40673 _this2.props.onSelect(date);
40674 }
40675
40676 if (shape === 'panel') {
40677 _this2.changeMode(nextMode);
40678 }
40679 };
40680
40681 this.changeMode = function (nextMode) {
40682 if (nextMode && _this2.MODES.indexOf(nextMode) > -1 && nextMode !== _this2.state.mode) {
40683 _this2.setState({ mode: nextMode });
40684 _this2.props.onModeChange(nextMode);
40685 }
40686 };
40687
40688 this.changeVisibleMonth = function (date, reason) {
40689 if (!(0, _utils.isSameYearMonth)(date, _this2.state.visibleMonth)) {
40690 _this2.setState({ visibleMonth: date });
40691 _this2.props.onVisibleMonthChange(date, reason);
40692 }
40693 };
40694
40695 this.goPrevDecade = function () {
40696 _this2.changeVisibleMonthByOffset(-10, 'years');
40697 };
40698
40699 this.goNextDecade = function () {
40700 _this2.changeVisibleMonthByOffset(10, 'years');
40701 };
40702
40703 this.goPrevYear = function () {
40704 _this2.changeVisibleMonthByOffset(-1, 'years');
40705 };
40706
40707 this.goNextYear = function () {
40708 _this2.changeVisibleMonthByOffset(1, 'years');
40709 };
40710
40711 this.goPrevMonth = function () {
40712 _this2.changeVisibleMonthByOffset(-1, 'months');
40713 };
40714
40715 this.goNextMonth = function () {
40716 _this2.changeVisibleMonthByOffset(1, 'months');
40717 };
40718}, _temp);
40719Calendar.displayName = 'Calendar';
40720exports.default = (0, _reactLifecyclesCompat.polyfill)(Calendar);
40721module.exports = exports['default'];
40722
40723/***/ }),
40724/* 303 */
40725/***/ (function(module, exports, __webpack_require__) {
40726
40727"use strict";
40728
40729
40730exports.__esModule = true;
40731
40732var _classCallCheck2 = __webpack_require__(2);
40733
40734var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40735
40736var _possibleConstructorReturn2 = __webpack_require__(3);
40737
40738var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40739
40740var _inherits2 = __webpack_require__(4);
40741
40742var _inherits3 = _interopRequireDefault(_inherits2);
40743
40744var _class, _temp2;
40745
40746var _react = __webpack_require__(0);
40747
40748var _react2 = _interopRequireDefault(_react);
40749
40750var _propTypes = __webpack_require__(5);
40751
40752var _propTypes2 = _interopRequireDefault(_propTypes);
40753
40754var _select = __webpack_require__(29);
40755
40756var _select2 = _interopRequireDefault(_select);
40757
40758var _radio = __webpack_require__(50);
40759
40760var _radio2 = _interopRequireDefault(_radio);
40761
40762var _configProvider = __webpack_require__(9);
40763
40764var _configProvider2 = _interopRequireDefault(_configProvider);
40765
40766function _interopRequireDefault(obj) {
40767 return obj && obj.__esModule ? obj : { default: obj };
40768}
40769
40770var CardHeader = (_temp2 = _class = function (_React$Component) {
40771 (0, _inherits3.default)(CardHeader, _React$Component);
40772
40773 function CardHeader() {
40774 var _temp, _this, _ret;
40775
40776 (0, _classCallCheck3.default)(this, CardHeader);
40777
40778 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
40779 args[_key] = arguments[_key];
40780 }
40781
40782 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.selectContainerHandler = function (target) {
40783 var device = _this.props.device;
40784
40785 if (device === 'phone') {
40786 return document.body;
40787 }
40788 return target.parentNode;
40789 }, _this.onYearChange = function (year) {
40790 var _this$props = _this.props,
40791 visibleMonth = _this$props.visibleMonth,
40792 changeVisibleMonth = _this$props.changeVisibleMonth;
40793
40794 changeVisibleMonth(visibleMonth.clone().year(year), 'yearSelect');
40795 }, _this.changeVisibleMonth = function (month) {
40796 var _this$props2 = _this.props,
40797 visibleMonth = _this$props2.visibleMonth,
40798 changeVisibleMonth = _this$props2.changeVisibleMonth;
40799
40800 changeVisibleMonth(visibleMonth.clone().month(month), 'monthSelect');
40801 }, _this.onModePanelChange = function (mode) {
40802 _this.props.changeMode(mode);
40803 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
40804 }
40805
40806 CardHeader.prototype.getYearSelect = function getYearSelect(year) {
40807 var _props = this.props,
40808 prefix = _props.prefix,
40809 yearRangeOffset = _props.yearRangeOffset,
40810 _props$yearRange = _props.yearRange,
40811 yearRange = _props$yearRange === undefined ? [] : _props$yearRange,
40812 locale = _props.locale;
40813 var startYear = yearRange[0],
40814 endYear = yearRange[1];
40815
40816 if (!startYear || !endYear) {
40817 startYear = year - yearRangeOffset;
40818 endYear = year + yearRangeOffset;
40819 }
40820
40821 var options = [];
40822 for (var i = startYear; i <= endYear; i++) {
40823 options.push(_react2.default.createElement(_select2.default.Option, { key: i, value: i }, i));
40824 }
40825
40826 return _react2.default.createElement(_select2.default, {
40827 prefix: prefix,
40828 value: year,
40829 'aria-label': locale.yearSelectAriaLabel,
40830 onChange: this.onYearChange,
40831 popupContainer: this.selectContainerHandler
40832 }, options);
40833 };
40834
40835 CardHeader.prototype.getMonthSelect = function getMonthSelect(month) {
40836 var _props2 = this.props,
40837 prefix = _props2.prefix,
40838 momentLocale = _props2.momentLocale,
40839 locale = _props2.locale;
40840
40841 var localeMonths = momentLocale.monthsShort();
40842 var options = [];
40843 for (var i = 0; i < 12; i++) {
40844 options.push(_react2.default.createElement(_select2.default.Option, { key: i, value: i }, localeMonths[i]));
40845 }
40846 return _react2.default.createElement(_select2.default, {
40847 'aria-label': locale.monthSelectAriaLabel,
40848 prefix: prefix,
40849 value: month,
40850 onChange: this.changeVisibleMonth,
40851 popupContainer: this.selectContainerHandler
40852 }, options);
40853 };
40854
40855 CardHeader.prototype.render = function render() {
40856 var _props3 = this.props,
40857 prefix = _props3.prefix,
40858 mode = _props3.mode,
40859 locale = _props3.locale,
40860 visibleMonth = _props3.visibleMonth;
40861
40862 var yearSelect = this.getYearSelect(visibleMonth.year());
40863 var monthSelect = mode === 'month' ? null : this.getMonthSelect(visibleMonth.month());
40864 var panelSelect = _react2.default.createElement(_radio2.default.Group, { shape: 'button', size: 'medium', value: mode, onChange: this.onModePanelChange }, _react2.default.createElement(_radio2.default, { value: 'date' }, locale.month), _react2.default.createElement(_radio2.default, { value: 'month' }, locale.year));
40865
40866 return _react2.default.createElement('div', { className: prefix + 'calendar-header' }, yearSelect, monthSelect, panelSelect);
40867 };
40868
40869 return CardHeader;
40870}(_react2.default.Component), _class.propTypes = {
40871 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
40872 yearRangeOffset: _propTypes2.default.number,
40873 locale: _propTypes2.default.object
40874}, _class.defaultProps = {
40875 yearRangeOffset: 10
40876}, _temp2);
40877CardHeader.displayName = 'CardHeader';
40878exports.default = _configProvider2.default.config(CardHeader);
40879module.exports = exports['default'];
40880
40881/***/ }),
40882/* 304 */
40883/***/ (function(module, exports, __webpack_require__) {
40884
40885"use strict";
40886
40887
40888exports.__esModule = true;
40889
40890var _typeof2 = __webpack_require__(14);
40891
40892var _typeof3 = _interopRequireDefault(_typeof2);
40893
40894var _extends2 = __webpack_require__(1);
40895
40896var _extends3 = _interopRequireDefault(_extends2);
40897
40898var _classCallCheck2 = __webpack_require__(2);
40899
40900var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
40901
40902var _possibleConstructorReturn2 = __webpack_require__(3);
40903
40904var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
40905
40906var _inherits2 = __webpack_require__(4);
40907
40908var _inherits3 = _interopRequireDefault(_inherits2);
40909
40910var _class, _temp; /* eslint-disable valid-jsdoc */
40911
40912var _react = __webpack_require__(0);
40913
40914var _react2 = _interopRequireDefault(_react);
40915
40916var _propTypes = __webpack_require__(5);
40917
40918var _propTypes2 = _interopRequireDefault(_propTypes);
40919
40920var _classnames = __webpack_require__(7);
40921
40922var _classnames2 = _interopRequireDefault(_classnames);
40923
40924var _reactLifecyclesCompat = __webpack_require__(10);
40925
40926var _util = __webpack_require__(6);
40927
40928var _tag = __webpack_require__(149);
40929
40930var _tag2 = _interopRequireDefault(_tag);
40931
40932var _input = __webpack_require__(18);
40933
40934var _input2 = _interopRequireDefault(_input);
40935
40936var _icon = __webpack_require__(11);
40937
40938var _icon2 = _interopRequireDefault(_icon);
40939
40940var _zhCn = __webpack_require__(13);
40941
40942var _zhCn2 = _interopRequireDefault(_zhCn);
40943
40944var _base = __webpack_require__(153);
40945
40946var _base2 = _interopRequireDefault(_base);
40947
40948var _util2 = __webpack_require__(62);
40949
40950function _interopRequireDefault(obj) {
40951 return obj && obj.__esModule ? obj : { default: obj };
40952}
40953
40954var bindCtx = _util.func.bindCtx,
40955 noop = _util.func.noop;
40956
40957var isIE9 = _util.env.ieVersion === 9;
40958
40959/**
40960 * 无障碍化注意事项:
40961 * 1. Select 无搜索情况下,不应该让 Input 可focus,此时外层wrap必须可focus,并且需要相应focus事件让外边框发生变化
40962 *
40963 * TODO: hightLight 后续改造注意点
40964 * 1. hightLight 跟随点击变化(fixed) 2. 弹窗打开时根据 是否高亮第一个选项的 api开关设置是否hightLight 第一项
40965 */
40966
40967// 自定义弹层:1. 不需要关心Menu的点击事件 2. 不需要关心dataSource变化
40968
40969/**
40970 * Select
40971 */
40972var Select = (_temp = _class = function (_Base) {
40973 (0, _inherits3.default)(Select, _Base);
40974
40975 function Select(props) {
40976 (0, _classCallCheck3.default)(this, Select);
40977
40978 // because dataSource maybe updated while select a item, so we should cache choosen value's item
40979 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
40980
40981 _this.handleWrapClick = function (e) {
40982 // ignore click on input to choose text
40983 if (e.target.nodeName !== 'INPUT') {
40984 e.preventDefault();
40985 }
40986 _this.focusInput();
40987 };
40988
40989 _this.handleArrowClick = function (e) {
40990 e.preventDefault();
40991 _this.focusInput();
40992
40993 // because of can not close Popup by click Input while hasSearch.
40994 // so when Popup open and hasSearch, we should close Popup intentionally
40995 _this.state.visible && _this.hasSearch() && _this.setVisible(false);
40996 };
40997
40998 _this.handleClear = function (e) {
40999 e.stopPropagation();
41000 _this.selectAllYet = false;
41001 _this.handleChange(undefined, 'clear');
41002 };
41003
41004 _this.valueDataSource = {
41005 valueDS: [], // [{value,label}]
41006 mapValueDS: {} // {value: {value,label}}
41007 };
41008
41009 var searchValue = 'searchValue' in props ? props.searchValue : '';
41010
41011 _this.dataStore.setOptions({
41012 key: searchValue,
41013 addonKey: props.mode === 'tag' // tag 模式手动输入的数据
41014 });
41015
41016 (0, _extends3.default)(_this.state, {
41017 searchValue: searchValue,
41018 dataSource: _this.setDataSource(props)
41019 });
41020
41021 // 根据value和计算后的dataSource,更新value对应的详细数据valueDataSource
41022 if (typeof _this.state.value !== 'undefined') {
41023 _this.valueDataSource = (0, _util2.getValueDataSource)(_this.state.value, _this.valueDataSource.mapValueDS, _this.dataStore.getMapDS());
41024 }
41025
41026 bindCtx(_this, ['handleMenuSelect', 'handleItemClick', 'handleSearch', 'handleSearchKeyDown', 'handleSelectAll', 'maxTagPlaceholder']);
41027 return _this;
41028 }
41029
41030 Select.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
41031 var state = {};
41032
41033 if ('value' in nextProps && nextProps.value !== prevState.value) {
41034 (0, _extends3.default)(state, {
41035 value: nextProps.value
41036 });
41037 }
41038
41039 if ('highlightKey' in nextProps && nextProps.highlightKey !== prevState.highlightKey) {
41040 (0, _extends3.default)(state, {
41041 highlightKey: nextProps.highlightKey
41042 });
41043 } else if ('value' in nextProps && nextProps.value !== prevState.value && nextProps.mode === 'single') {
41044 (0, _extends3.default)(state, {
41045 highlightKey: nextProps.value
41046 });
41047 }
41048
41049 if ('searchValue' in nextProps && nextProps.searchValue !== prevState.searchValue) {
41050 var searchValue = nextProps.searchValue;
41051 (0, _extends3.default)(state, {
41052 searchValue: searchValue === undefined || searchValue === null ? '' : searchValue
41053 });
41054 }
41055
41056 if ('visible' in nextProps && nextProps.visible !== prevState.visible) {
41057 (0, _extends3.default)(state, {
41058 visible: nextProps.visible
41059 });
41060 }
41061
41062 if (Object.keys(state).length) {
41063 return state;
41064 }
41065
41066 return null;
41067 };
41068
41069 Select.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
41070 var props = this.props;
41071 if ('searchValue' in props && this.state.searchValue !== prevState.searchValue) {
41072 this.dataStore.setOptions({ key: this.state.searchValue });
41073 }
41074
41075 if (props.mode !== prevProps.mode) {
41076 this.dataStore.setOptions({
41077 addonKey: props.mode === 'tag'
41078 });
41079 }
41080 if (props.mode !== prevProps.mode) {
41081 this.dataStore.setOptions({
41082 addonKey: props.mode === 'tag'
41083 });
41084 }
41085 if (props.filter !== prevProps.filter) {
41086 this.dataStore.setOptions({
41087 filter: props.filter
41088 });
41089 }
41090 if (props.filterLocal !== prevProps.filterLocal) {
41091 this.dataStore.setOptions({
41092 filterLocal: props.filterLocal
41093 });
41094 }
41095
41096 if (prevProps.children !== props.children || prevProps.dataSource !== props.dataSource) {
41097 /* eslint-disable react/no-did-update-set-state */
41098 this.setState({
41099 dataSource: this.setDataSource(props)
41100 });
41101
41102 if (!props.popupContent) {
41103 this.setFirstHightLightKeyForMenu(this.state.searchValue);
41104 }
41105 }
41106
41107 if ('value' in props) {
41108 this.valueDataSource = (0, _util2.getValueDataSource)(props.value, this.valueDataSource.mapValueDS, this.dataStore.getMapDS());
41109 this.updateSelectAllYet(this.valueDataSource.value);
41110 } else if ('defaultValue' in props && props.defaultValue === this.valueDataSource.value && (props.children !== prevProps.children || props.dataSource !== prevProps.dataSource)) {
41111 // has defaultValue and value not changed and dataSource changed
41112 // fix: set defaultValue first, then update dataSource.
41113 this.valueDataSource = (0, _util2.getValueDataSource)(props.defaultValue, this.valueDataSource.mapValueDS, this.dataStore.getMapDS());
41114 }
41115
41116 if (prevProps.label !== this.props.label || prevState.value !== this.state.value || props.searchValue !== this.state.searchValue) {
41117 this.syncWidth();
41118 }
41119 };
41120
41121 Select.prototype.componentDidMount = function componentDidMount() {
41122 if (isIE9) {
41123 this.ie9Hack();
41124 }
41125 _Base.prototype.componentDidMount.call(this);
41126 };
41127
41128 // ie9 下 table-cell 布局不支持宽度超出隐藏
41129
41130
41131 Select.prototype.ie9Hack = function ie9Hack() {
41132 try {
41133 var width = this.selectDOM.currentStyle.width;
41134 this.setState({
41135 fixWidth: width !== 'auto'
41136 });
41137 } catch (e) {
41138 //
41139 }
41140 };
41141
41142 Select.prototype.useDetailValue = function useDetailValue() {
41143 var _props = this.props,
41144 popupContent = _props.popupContent,
41145 useDetailValue = _props.useDetailValue,
41146 dataSource = _props.dataSource;
41147
41148 return useDetailValue || popupContent && !dataSource;
41149 };
41150
41151 Select.prototype.hasSearch = function hasSearch() {
41152 var _props2 = this.props,
41153 showSearch = _props2.showSearch,
41154 mode = _props2.mode;
41155
41156 return showSearch || mode === 'tag';
41157 };
41158
41159 Select.prototype.getTagSize = function getTagSize() {
41160 var _props3 = this.props,
41161 size = _props3.size,
41162 adjustTagSize = _props3.adjustTagSize;
41163
41164 if (adjustTagSize) {
41165 return size;
41166 }
41167 return size === 'large' ? 'medium' : 'small';
41168 };
41169
41170 /**
41171 * Menu.Item onSelect
41172 * @private
41173 * @param {Array<string>} keys
41174 * @
41175 */
41176
41177 Select.prototype.handleMenuSelect = function handleMenuSelect(keys, item) {
41178 var _props4 = this.props,
41179 mode = _props4.mode,
41180 readOnly = _props4.readOnly,
41181 disabled = _props4.disabled;
41182
41183 if (readOnly || disabled) {
41184 return false;
41185 }
41186
41187 var isSingle = mode === 'single';
41188
41189 if (isSingle) {
41190 // 单选
41191 return this.handleSingleSelect(keys[0], 'itemClick');
41192 } else {
41193 // 正常多选
41194 return this.handleMultipleSelect(keys, 'itemClick', item.props && item.props._key);
41195 }
41196 };
41197
41198 Select.prototype.handleItemClick = function handleItemClick(key) {
41199 if (!this.props.popupAutoFocus) {
41200 this.focusInput();
41201 }
41202
41203 if (this.props.mode === 'single' && key === this.state.value) {
41204 this.setVisible(false, 'itemClick');
41205 }
41206 };
41207
41208 /**
41209 * 单选模式
41210 */
41211
41212 Select.prototype.handleSingleSelect = function handleSingleSelect(key, triggerType) {
41213 // TODO: 这里 cacheValue=false 有问题,dataSource 更新的时候就应该处理
41214 var cacheValue = this.props.cacheValue;
41215 // get data only from dataStore while cacheValue=false
41216
41217 var itemObj = (0, _util2.getValueDataSource)(key, cacheValue ? this.valueDataSource.mapValueDS : {}, this.dataStore.getMapDS());
41218 this.valueDataSource = itemObj;
41219
41220 this.setVisible(false, triggerType);
41221
41222 // 应在return之前传出highlightKey
41223 this.setState({
41224 highlightKey: key
41225 });
41226
41227 if (this.useDetailValue()) {
41228 return this.handleChange(itemObj.valueDS, triggerType);
41229 } else {
41230 this.handleChange(itemObj.value, triggerType, itemObj.valueDS);
41231 }
41232
41233 // 清空搜索
41234 if (!('searchValue' in this.props) && this.state.searchValue) {
41235 this.handleSearchClear(triggerType);
41236 }
41237 };
41238
41239 /**
41240 * 多选模式 multiple/tag
41241 */
41242
41243 Select.prototype.handleMultipleSelect = function handleMultipleSelect(keys, triggerType, key, keepSearchValue) {
41244 var _this2 = this;
41245
41246 var itemObj = (0, _util2.getValueDataSource)(keys, this.valueDataSource.mapValueDS, this.dataStore.getMapDS());
41247
41248 var _props5 = this.props,
41249 cacheValue = _props5.cacheValue,
41250 mode = _props5.mode,
41251 hiddenSelected = _props5.hiddenSelected;
41252
41253 // cache those value maybe not exists in dataSource
41254
41255 if (cacheValue || mode === 'tag') {
41256 this.valueDataSource = itemObj;
41257 }
41258
41259 if (hiddenSelected) {
41260 this.setVisible(false, triggerType);
41261 }
41262
41263 // 因为搜索后会设置 hightLight 为第一个item,menu渲染会自动滚动到 hightLight 的元素上面。
41264 // 所以设置 hightLight 为当前选中项避免滚动
41265 key && this.state.visible && this.setState({
41266 highlightKey: key
41267 });
41268
41269 if (this.useDetailValue()) {
41270 this.handleChange(itemObj.valueDS, triggerType);
41271 } else {
41272 this.handleChange(itemObj.value, triggerType, itemObj.valueDS);
41273 }
41274
41275 this.updateSelectAllYet(itemObj.value);
41276
41277 // 清空搜索
41278 if (!('searchValue' in this.props) && this.state.searchValue && !keepSearchValue) {
41279 // 因为 SearchValue 被 clear 后会重新渲染 Menu,所以在 Overlay 检测 safeNode 的时候 e.target 可能会找不到导致弹窗关闭
41280 setTimeout(function () {
41281 _this2.handleSearchClear(triggerType);
41282 });
41283 }
41284 };
41285
41286 Select.prototype.updateSelectAllYet = function updateSelectAllYet(value) {
41287 var _this3 = this;
41288
41289 // multiple mode
41290 // is current state select all or not
41291 this.selectAllYet = false;
41292 if (this.props.hasSelectAll && Array.isArray(value)) {
41293 var selectAllValues = this.dataStore.getEnableDS().map(function (item) {
41294 return item.value;
41295 });
41296
41297 if (selectAllValues.length <= value.length) {
41298 this.selectAllYet = true;
41299
41300 selectAllValues.forEach(function (val) {
41301 if (value.indexOf(val) === -1) {
41302 _this3.selectAllYet = false;
41303 return;
41304 }
41305 });
41306 }
41307 }
41308 };
41309
41310 Select.prototype.handleSearchValue = function handleSearchValue(value) {
41311 if (this.state.searchValue === value) {
41312 return;
41313 }
41314
41315 var filterLocal = this.props.filterLocal;
41316
41317 if (filterLocal) {
41318 if (!('searchValue' in this.props)) {
41319 this.setState({
41320 searchValue: value,
41321 dataSource: this.dataStore.updateByKey(value)
41322 });
41323 this.setFirstHightLightKeyForMenu(value);
41324 }
41325 } else if (!('searchValue' in this.props)) {
41326 this.setState({
41327 searchValue: value
41328 });
41329 }
41330 };
41331
41332 /**
41333 * Handle search input change event
41334 * @param {String} value search text
41335 * @param {Event} e change Event
41336 */
41337
41338 Select.prototype.handleSearch = function handleSearch(value, e) {
41339 this.handleSearchValue(value);
41340
41341 // inputing should trigger popup open
41342 if (!this.state.visible && value) {
41343 this.setVisible(true);
41344 }
41345
41346 this.props.onSearch(value, e);
41347 };
41348
41349 Select.prototype.handleSearchClear = function handleSearchClear(triggerType) {
41350 this.handleSearchValue('');
41351 this.props.onSearchClear(triggerType);
41352 };
41353
41354 // 搜索框 keyDown 事件
41355
41356
41357 Select.prototype.handleSearchKeyDown = function handleSearchKeyDown(e) {
41358 var _props6 = this.props,
41359 popupContent = _props6.popupContent,
41360 onKeyDown = _props6.onKeyDown,
41361 showSearch = _props6.showSearch,
41362 mode = _props6.mode,
41363 hasClear = _props6.hasClear,
41364 onToggleHighlightItem = _props6.onToggleHighlightItem,
41365 readOnly = _props6.readOnly,
41366 disabled = _props6.disabled;
41367
41368 var hasSearch = this.hasSearch();
41369
41370 if (popupContent) {
41371 // 搜索的时候不阻止冒泡会无法输入
41372 if (hasSearch && e.keyCode === _util.KEYCODE.SPACE) {
41373 e.stopPropagation();
41374 }
41375 return onKeyDown(e);
41376 }
41377
41378 var proxy = 'search';
41379
41380 switch (e.keyCode) {
41381 case _util.KEYCODE.UP:
41382 e.preventDefault();
41383 onToggleHighlightItem(this.toggleHighlightItem(-1, e), 'up');
41384 break;
41385 case _util.KEYCODE.DOWN:
41386 e.preventDefault();
41387 onToggleHighlightItem(this.toggleHighlightItem(1, e), 'down');
41388 break;
41389 case _util.KEYCODE.ENTER:
41390 e.preventDefault();
41391 if (readOnly || disabled) {
41392 break;
41393 }
41394 this.chooseHighlightItem(proxy, e);
41395 break;
41396 case _util.KEYCODE.ESC:
41397 e.preventDefault();
41398 this.state.visible && this.setVisible(false, 'keyDown');
41399 break;
41400 case _util.KEYCODE.SPACE:
41401 e.stopPropagation();
41402 !hasSearch && e.preventDefault();
41403 break;
41404 case _util.KEYCODE.BACKSPACE:
41405 if (readOnly || disabled) {
41406 break;
41407 }
41408 if (mode === 'multiple' && showSearch || mode === 'tag') {
41409 // 在多选并且有搜索的情况下,删除最后一个 tag
41410 var valueDS = this.valueDataSource.valueDS;
41411 if (valueDS && valueDS.length && !valueDS[valueDS.length - 1].disabled) {
41412 this.handleDeleteTag(e);
41413 }
41414 } else if (mode === 'single' && hasClear && !this.state.visible) {
41415 // 单选、非展开、并且可清除的情况,允许按删除键清除
41416 this.handleClear(e);
41417 }
41418 break;
41419 default:
41420 break;
41421 }
41422
41423 onKeyDown(e);
41424 };
41425
41426 Select.prototype.chooseMultipleItem = function chooseMultipleItem(key) {
41427 var value = this.state.value || [];
41428 var keys = value.map(function (v) {
41429 return (0, _util2.valueToSelectKey)(v);
41430 });
41431
41432 var keepSearchValue = false;
41433
41434 var index = keys.map(function (v) {
41435 return '' + v;
41436 }).indexOf(key);
41437
41438 if (index > -1) {
41439 // unselect
41440 keys.splice(index, 1);
41441 keepSearchValue = true; // 回车反选保留搜索值
41442 } else {
41443 // select
41444 keys.push(key);
41445 }
41446
41447 this.handleMultipleSelect(keys, 'enter', null, keepSearchValue);
41448 };
41449
41450 // 回车 选择高亮的 item
41451
41452
41453 Select.prototype.chooseHighlightItem = function chooseHighlightItem(proxy, e) {
41454 var mode = this.props.mode;
41455
41456 if (!this.state.visible) {
41457 // input tag by itself
41458 if (mode === 'tag' && this.state.searchValue) {
41459 this.chooseMultipleItem(this.state.searchValue);
41460 }
41461 return false;
41462 }
41463
41464 var highlightKey = this.state.highlightKey;
41465
41466 // 没有高亮选项 或者 没有可选菜单
41467
41468 if (highlightKey === null || !this.dataStore.getMenuDS().length) {
41469 return;
41470 }
41471
41472 if (mode === 'single') {
41473 this.handleSingleSelect(highlightKey, 'enter');
41474 } else {
41475 this.chooseMultipleItem(highlightKey);
41476 // 阻止事件冒泡到最外层,让Popup 监听到触发弹层关闭
41477 e && e.stopPropagation();
41478 }
41479 };
41480
41481 /**
41482 * Handle Tag close event
41483 * @param {Object} item
41484 * @return {Boolean} false return false to prevent auto close
41485 * ----
41486 * It MUST be multiple mode, needn't additional judgement
41487 */
41488
41489 Select.prototype.handleTagClose = function handleTagClose(item) {
41490 var readOnly = this.props.readOnly;
41491
41492 if (readOnly) return false;
41493 if (this.useDetailValue()) {
41494 var value = this.state.value.filter(function (v) {
41495 return item.value !== v.value;
41496 });
41497
41498 this.handleChange(value, 'tag');
41499 } else {
41500 // filter out current item, and then call handleMenuSelect
41501 var _value = this.state.value.filter(function (v) {
41502 return item.value !== v;
41503 });
41504
41505 this.handleMultipleSelect(_value, 'tag');
41506 }
41507
41508 this.props.onRemove(item);
41509
41510 // prevent tag close
41511 return false;
41512 };
41513
41514 // eslint-disable-next-line valid-jsdoc
41515 /**
41516 * Handle BACKSPACE key event
41517 * @param {Event} e keyDown event
41518 * ---
41519 * It MUST be multiple mode
41520 */
41521
41522 Select.prototype.handleDeleteTag = function handleDeleteTag(e) {
41523 var value = this.state.value;
41524 var searchValue = this.state.searchValue;
41525
41526 if (searchValue || !value || !value.length) {
41527 return false;
41528 }
41529
41530 e.preventDefault();
41531
41532 var nextValues = value.slice(0, value.length - 1);
41533 // 手动调用 handleMenuSelect 时直接传入原生的 value,可以减少 toString 的操作
41534
41535 if (this.useDetailValue()) {
41536 this.handleChange(nextValues, 'tag');
41537 } else {
41538 this.handleMultipleSelect(nextValues, 'tag');
41539 }
41540 };
41541
41542 /**
41543 * Handle SelectAll span click event
41544 * @param {Event} e click event
41545 */
41546
41547 Select.prototype.handleSelectAll = function handleSelectAll(e) {
41548 e && e.preventDefault();
41549 var nextValues = void 0;
41550
41551 if (this.selectAllYet) {
41552 nextValues = [];
41553 } else {
41554 nextValues = this.dataStore.getEnableDS().map(function (item) {
41555 return item.value;
41556 });
41557 }
41558
41559 // 直接传 values,减少 toString 操作
41560 this.handleMultipleSelect(nextValues, 'selectAll');
41561 };
41562
41563 Select.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
41564 this.setVisible(visible, type);
41565 };
41566
41567 Select.prototype.afterClose = function afterClose() {
41568 // 关闭的时候清空搜索值
41569 if (this.hasSearch()) {
41570 this.handleSearchClear('popupClose');
41571 }
41572 };
41573
41574 Select.prototype.maxTagPlaceholder = function maxTagPlaceholder(selectedValues, totalValues) {
41575 var locale = this.props.locale;
41576
41577 return '' + _util.str.template(locale.maxTagPlaceholder, {
41578 selected: selectedValues.length,
41579 total: totalValues.length
41580 });
41581 };
41582
41583 /**
41584 * 如果用户是自定义的弹层,则直接以 value 为准,不再校验 dataSource
41585 * TODO: 2.0 中 value 接受 string/object{value,label} 两种类型的数据,自动做识别,可以避免用户去转换,也和 date-picker 对齐
41586 * 此外 onChange 第一个参数根据 api 来控制类型是 [string] 还是 [object{value,label}]
41587 * @param {object} props
41588 */
41589
41590 Select.prototype.renderValues = function renderValues() {
41591 var _this4 = this;
41592
41593 var _props7 = this.props,
41594 prefix = _props7.prefix,
41595 mode = _props7.mode,
41596 valueRender = _props7.valueRender,
41597 fillProps = _props7.fillProps,
41598 disabled = _props7.disabled,
41599 maxTagCount = _props7.maxTagCount,
41600 maxTagPlaceholder = _props7.maxTagPlaceholder,
41601 tagInline = _props7.tagInline,
41602 tagClosable = _props7.tagClosable;
41603
41604 var tagSize = this.getTagSize();
41605 var value = this.state.value;
41606
41607 if ((0, _util2.isNull)(value)) {
41608 return null;
41609 }
41610
41611 // get detail value
41612 if (!this.useDetailValue()) {
41613 if (value === this.valueDataSource.value) {
41614 value = this.valueDataSource.valueDS;
41615 } else {
41616 value = (0, _util2.getValueDataSource)(value, this.valueDataSource.mapValueDS, this.dataStore.getMapDS()).valueDS;
41617 }
41618 }
41619
41620 if (mode === 'single') {
41621 if (!value) {
41622 return null;
41623 }
41624
41625 var retvalue = fillProps && (typeof value === 'undefined' ? 'undefined' : (0, _typeof3.default)(value)) === 'object' && fillProps in value ? value[fillProps] : valueRender(value);
41626 // 0 => '0'
41627 return typeof retvalue === 'number' ? retvalue.toString() : retvalue;
41628 } else if (value) {
41629 var limitedCountValue = value;
41630 var maxTagPlaceholderEl = void 0;
41631 var totalValue = this.dataStore.getFlattenDS();
41632 var holder = 'maxTagPlaceholder' in this.props ? maxTagPlaceholder : this.maxTagPlaceholder;
41633
41634 if (maxTagCount !== undefined && value.length > maxTagCount && !tagInline) {
41635 limitedCountValue = limitedCountValue.slice(0, maxTagCount);
41636 maxTagPlaceholderEl = _react2.default.createElement(_tag2.default, { key: '_count', type: 'primary', size: tagSize, animation: false }, holder(value, totalValue));
41637 }
41638
41639 if (value.length > 0 && tagInline) {
41640 maxTagPlaceholderEl = _react2.default.createElement('div', { className: prefix + 'select-tag-compact', key: '_count' }, holder(value, totalValue));
41641 }
41642
41643 value = limitedCountValue;
41644 if (!Array.isArray(value)) {
41645 value = [value];
41646 }
41647
41648 var selectedValueNodes = value.map(function (v) {
41649 if (!v) {
41650 return null;
41651 }
41652 var labelNode = fillProps ? v[fillProps] : valueRender(v);
41653
41654 return _react2.default.createElement(_tag2.default, {
41655 key: v.value,
41656 disabled: disabled || v.disabled,
41657 type: 'primary',
41658 size: tagSize,
41659 animation: false,
41660 onClose: _this4.handleTagClose.bind(_this4, v),
41661 closable: tagClosable
41662 }, labelNode);
41663 });
41664
41665 if (maxTagPlaceholderEl) {
41666 if (tagInline) {
41667 selectedValueNodes.unshift(maxTagPlaceholderEl);
41668 } else {
41669 selectedValueNodes.push(maxTagPlaceholderEl);
41670 }
41671 }
41672 return selectedValueNodes;
41673 }
41674
41675 return null;
41676 };
41677 /**
41678 * 1. fix flash while click <label/>
41679 * 2. fix onBlur while has clear
41680 * @returns
41681 */
41682
41683 Select.prototype.hasClear = function hasClear() {
41684 var _props8 = this.props,
41685 hasClear = _props8.hasClear,
41686 readOnly = _props8.readOnly,
41687 disabled = _props8.disabled,
41688 showSearch = _props8.showSearch;
41689 var _state = this.state,
41690 value = _state.value,
41691 visible = _state.visible;
41692
41693 return typeof value !== 'undefined' && value !== null && hasClear && !readOnly && !disabled && !(showSearch && visible);
41694 };
41695
41696 /**
41697 * render arrow
41698 * @param {object} props
41699 * @param {function} [clickHandler]
41700 */
41701
41702 Select.prototype.renderExtraNode = function renderExtraNode() {
41703 var _props9 = this.props,
41704 hasArrow = _props9.hasArrow,
41705 hasClear = _props9.hasClear,
41706 prefix = _props9.prefix;
41707
41708 var ret = [];
41709
41710 if (hasArrow) {
41711 ret.push(_react2.default.createElement('span', { key: 'arrow', 'aria-hidden': true, onClick: this.handleArrowClick, className: prefix + 'select-arrow' }, _react2.default.createElement(_icon2.default, { type: 'arrow-down', className: prefix + 'select-symbol-fold' })));
41712 }
41713
41714 // do not use this.hasClear() here, to make sure clear btn always exists, can not influenced by apis like `disabled` `readOnly`
41715 if (hasClear) {
41716 ret.push(_react2.default.createElement('span', { key: 'clear', 'aria-hidden': true, onClick: this.handleClear, className: prefix + 'select-clear' }, _react2.default.createElement(_icon2.default, { type: 'delete-filling' })));
41717 }
41718
41719 return ret;
41720 };
41721
41722 /**
41723 * 选择器
41724 * @override
41725 * @param {object} props
41726 */
41727
41728 Select.prototype.renderSelect = function renderSelect() {
41729 var _classNames,
41730 _this5 = this;
41731
41732 var _props10 = this.props,
41733 prefix = _props10.prefix,
41734 showSearch = _props10.showSearch,
41735 placeholder = _props10.placeholder,
41736 mode = _props10.mode,
41737 size = _props10.size,
41738 className = _props10.className,
41739 style = _props10.style,
41740 readOnly = _props10.readOnly,
41741 disabled = _props10.disabled,
41742 hasBorder = _props10.hasBorder,
41743 label = _props10.label,
41744 locale = _props10.locale,
41745 state = _props10.state,
41746 onBlur = _props10.onBlur,
41747 onFocus = _props10.onFocus,
41748 onMouseEnter = _props10.onMouseEnter,
41749 onMouseLeave = _props10.onMouseLeave,
41750 rtl = _props10.rtl;
41751
41752 var others = _util.obj.pickOthers(Select.propTypes, this.props);
41753 var othersData = _util.obj.pickAttrsWith(others, 'data-');
41754
41755 var visible = this.state.visible;
41756 var isSingle = mode === 'single';
41757 var hasSearch = this.hasSearch();
41758 var valueNodes = this.renderValues();
41759
41760 // compatible with selectPlaceHolder. TODO: removed in 2.0 version
41761 var _placeholder = placeholder || locale.selectPlaceholder || locale.selectPlaceHolder;
41762 if (valueNodes && valueNodes.length) {
41763 _placeholder = null;
41764 }
41765
41766 // 弹窗展开时将当前的值作为 placeholder,这个功能的前提是 valueNode 必须是一个字符串
41767 if (showSearch && visible && isSingle && typeof valueNodes === 'string') {
41768 _placeholder = valueNodes;
41769 }
41770
41771 // 下拉箭头
41772 var extra = this.renderExtraNode();
41773
41774 var triggerClazz = (0, _classnames2.default)([prefix + 'select', prefix + 'select-trigger', prefix + 'select-' + mode, '' + prefix + size, className], (_classNames = {}, _classNames[prefix + 'active'] = visible, _classNames[prefix + 'inactive'] = !visible, _classNames[prefix + 'no-search'] = !hasSearch, _classNames[prefix + 'has-search'] = hasSearch, _classNames[prefix + 'select-in-ie'] = isIE9, _classNames[prefix + 'select-in-ie-fixwidth'] = this.state.fixWidth, _classNames[prefix + 'has-clear'] = this.hasClear(), _classNames));
41775
41776 var valuetext = this.valueDataSource.valueDS ? this.valueDataSource.valueDS.label : '';
41777 return _react2.default.createElement('span', (0, _extends3.default)({}, othersData, {
41778 className: triggerClazz,
41779 style: style,
41780 dir: rtl ? 'rtl' : undefined,
41781 ref: this.saveSelectRef,
41782 onClick: this.handleWrapClick,
41783 onMouseEnter: onMouseEnter,
41784 onMouseLeave: onMouseLeave,
41785 onMouseDown: this.handleWrapClick
41786 }), _react2.default.createElement(_input2.default, (0, _extends3.default)({
41787 'aria-valuetext': valuetext
41788 }, _util.obj.pickOthers(othersData, others), {
41789 role: 'combobox',
41790 tabIndex: 0,
41791 'aria-expanded': this.state.visible,
41792 'aria-disabled': disabled,
41793 state: state,
41794 label: label,
41795 extra: extra,
41796 value: this.state.searchValue,
41797 size: size,
41798 readOnly: !this.hasSearch() || readOnly,
41799 disabled: disabled,
41800 placeholder: _placeholder,
41801 hasBorder: hasBorder,
41802 hasClear: false,
41803 htmlSize: '1',
41804 inputRender: function inputRender(inputEl) {
41805 return _this5.renderSearchInput(valueNodes, _placeholder, inputEl);
41806 },
41807 onChange: this.handleSearch,
41808 onKeyDown: this.handleSearchKeyDown,
41809 onFocus: onFocus,
41810 onBlur: onBlur,
41811 className: prefix + 'select-inner',
41812 ref: this.saveInputRef
41813 })), _react2.default.createElement('span', { className: prefix + 'sr-only', 'aria-live': 'polite' }, this.state.srReader));
41814 };
41815
41816 Select.prototype.renderSearchInput = function renderSearchInput(valueNodes, placeholder, inputEl) {
41817 var _classNames2;
41818
41819 var _props11 = this.props,
41820 prefix = _props11.prefix,
41821 mode = _props11.mode,
41822 tagInline = _props11.tagInline;
41823
41824 var isSingle = mode === 'single';
41825
41826 var mirrorText = this.state.searchValue;
41827
41828 var cls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'select-values'] = true, _classNames2[prefix + 'input-text-field'] = true, _classNames2[prefix + 'select-compact'] = !isSingle && tagInline, _classNames2));
41829 var title = typeof valueNodes === 'string' ? valueNodes : '';
41830 var searchInput = [isSingle && valueNodes ? _react2.default.createElement('em', { title: title, key: 'select-value' }, valueNodes) : valueNodes];
41831 var triggerSearch = _react2.default.createElement('span', { key: 'trigger-search', className: prefix + 'select-trigger-search' }, inputEl, _react2.default.createElement('span', { 'aria-hidden': true }, _react2.default.createElement('span', null, mirrorText || placeholder), _react2.default.createElement('span', { style: { display: 'inline-block', width: 1 } }, '\xA0')));
41832
41833 if (!isSingle && tagInline) {
41834 searchInput.unshift(triggerSearch);
41835 } else {
41836 searchInput.push(triggerSearch);
41837 }
41838
41839 return _react2.default.createElement('span', { className: cls }, searchInput);
41840 };
41841
41842 /**
41843 * 渲染弹层的 header 内容
41844 * @override
41845 * @param {object} props
41846 */
41847
41848 Select.prototype.renderMenuHeader = function renderMenuHeader() {
41849 var _classNames3, _classNames4;
41850
41851 var _props12 = this.props,
41852 prefix = _props12.prefix,
41853 hasSelectAll = _props12.hasSelectAll,
41854 mode = _props12.mode,
41855 locale = _props12.locale,
41856 menuProps = _props12.menuProps;
41857
41858 if (menuProps && 'header' in menuProps) {
41859 return menuProps.header;
41860 }
41861
41862 var sourceCount = this.dataStore.getEnableDS().length;
41863 // 多选模式下才有全选
41864 if (!hasSelectAll || mode === 'single' || !sourceCount) {
41865 return null;
41866 }
41867
41868 var text = typeof hasSelectAll === 'boolean' ? locale.selectAll : hasSelectAll;
41869
41870 var selectAllYet = this.selectAllYet;
41871
41872 var cls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'select-all'] = true, _classNames3[prefix + 'selected'] = selectAllYet, _classNames3));
41873
41874 var clsInner = (0, _classnames2.default)((_classNames4 = {}, _classNames4[prefix + 'select-all-inner'] = true, _classNames4));
41875
41876 // remove style={{'lineHeight': 'unset'}} in next Y
41877 // remove style={{'display': 'none'}} in next Y
41878 return _react2.default.createElement('div', { key: 'all', onClick: this.handleSelectAll, className: cls, style: { lineHeight: 'unset' } }, selectAllYet ? _react2.default.createElement(_icon2.default, { className: prefix + 'menu-icon-selected', style: { display: 'none' }, type: 'select' }) : null, _react2.default.createElement('span', { className: clsInner }, text));
41879 };
41880
41881 Select.prototype.render = function render() {
41882 var mode = this.props.mode;
41883
41884 var props = (0, _extends3.default)({}, this.props);
41885
41886 // forbid to close Popup by click Input while hasSearch
41887 if (this.hasSearch()) {
41888 props.canCloseByTrigger = false;
41889 }
41890 if (mode === 'single') {
41891 props.cache = true;
41892 }
41893 return _Base.prototype.render.call(this, props);
41894 };
41895
41896 return Select;
41897}(_base2.default), _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
41898 /**
41899 * 选择器模式
41900 */
41901 mode: _propTypes2.default.oneOf(['single', 'multiple', 'tag']),
41902 /**
41903 * 当前值,用于受控模式
41904 */
41905 value: _propTypes2.default.any,
41906 /**
41907 * 初始的默认值
41908 */
41909 defaultValue: _propTypes2.default.any,
41910 /**
41911 * Select发生改变时触发的回调
41912 * @param {*} value 选中的值
41913 * @param {String} actionType 触发的方式, 'itemClick', 'enter', 'tag'
41914 * @param {*} item 选中的值的对象数据 (useDetailValue=false有效)
41915 */
41916 onChange: _propTypes2.default.func,
41917 /**
41918 * 传入的数据源,可以动态渲染子项,详见 [dataSource的使用](#dataSource的使用)
41919 */
41920 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.shape({
41921 value: _propTypes2.default.any,
41922 label: _propTypes2.default.any,
41923 disabled: _propTypes2.default.bool,
41924 children: _propTypes2.default.array
41925 }), _propTypes2.default.bool, _propTypes2.default.number, _propTypes2.default.string])),
41926 /**
41927 * 是否有边框
41928 */
41929 hasBorder: _propTypes2.default.bool,
41930 /**
41931 * 是否有下拉箭头
41932 */
41933 hasArrow: _propTypes2.default.bool,
41934 /**
41935 * 展开后是否能搜索(tag 模式下固定为true)
41936 */
41937 showSearch: _propTypes2.default.bool,
41938 /**
41939 * 当搜索框值变化时回调
41940 * @param {String} value 数据
41941 */
41942 onSearch: _propTypes2.default.func,
41943 /**
41944 * 当搜索框值被(选择、弹窗关闭)导致清空时候的回调
41945 * @param {String} actionType 触发的方式, 'select'(选择清空), 'popupClose'(弹窗关闭清空)
41946 */
41947 onSearchClear: _propTypes2.default.func,
41948 /**
41949 * 多选模式下是否有全选功能
41950 */
41951 hasSelectAll: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string]),
41952 /**
41953 * 填充到选择框里的值的 key
41954 */
41955 fillProps: _propTypes2.default.string,
41956 /**
41957 * value 使用对象类型 `{value, label}`, 同时 onChange 第一个参数返回也修改为 dataSource 中的对象
41958 */
41959 useDetailValue: _propTypes2.default.bool,
41960 /**
41961 * dataSource 变化的时是否保留已选的内容
41962 */
41963 cacheValue: _propTypes2.default.bool,
41964 /**
41965 * 渲染 Select 展现内容的方法
41966 * @param {Object} item 渲染节点的item
41967 * @return {ReactNode} 展现内容
41968 * @default item => `item.label || item.value`
41969 */
41970 valueRender: _propTypes2.default.func,
41971 /**
41972 * 渲染 MenuItem 内容的方法
41973 * @param {Object} item 渲染节点的item
41974 * @param {String} searchValue 搜索关键字(如果开启搜索)
41975 * @return {ReactNode} item node
41976 */
41977 itemRender: _propTypes2.default.func,
41978 /**
41979 * 弹层内容为空的文案
41980 */
41981 notFoundContent: _propTypes2.default.node,
41982 style: _propTypes2.default.object,
41983 /**
41984 * 受控搜索值,一般不需要设置
41985 * @type {[type]}
41986 */
41987 searchValue: _propTypes2.default.string,
41988 /**
41989 * 是否一行显示,仅在 mode 为 multiple 的时候生效
41990 * @version 1.15
41991 */
41992 tagInline: _propTypes2.default.bool,
41993 /**
41994 * tag 是否可关闭
41995 * @version 1.20
41996 */
41997 tagClosable: _propTypes2.default.bool,
41998 /**
41999 * tag 尺寸是否和 select 保持一致(mode=multiple/tag 模式生效),默认false
42000 * @version 1.24
42001 */
42002 adjustTagSize: _propTypes2.default.bool,
42003 /**
42004 * 最多显示多少个 tag
42005 * @version 1.15
42006 */
42007 maxTagCount: _propTypes2.default.number,
42008 /**
42009 * 隐藏多余 tag 时显示的内容,在 maxTagCount 生效时起作用
42010 * @param {object} selectedValues 当前已选中的元素
42011 * @param {object} totalValues 总待选元素
42012 * @version 1.15
42013 */
42014 maxTagPlaceholder: _propTypes2.default.func,
42015 /**
42016 * 选择后是否立即隐藏菜单 (mode=multiple/tag 模式生效)
42017 */
42018 hiddenSelected: _propTypes2.default.bool,
42019 /**
42020 * tag 删除回调
42021 * @param {object} item 渲染节点的item
42022 */
42023 onRemove: _propTypes2.default.func,
42024 /**
42025 * 焦点事件
42026 */
42027 onFocus: _propTypes2.default.func,
42028 /**
42029 * 是否自动高亮第一个选项
42030 */
42031 // highlightFirstItem: PropTypes.bool,
42032 /**
42033 * 失去焦点事件
42034 */
42035 onBlur: _propTypes2.default.func,
42036 onMouseEnter: _propTypes2.default.func,
42037 onMouseLeave: _propTypes2.default.func,
42038 onKeyDown: _propTypes2.default.func,
42039 locale: _propTypes2.default.object,
42040 /**
42041 * 展开下拉菜单时是否自动焦点到弹层
42042 */
42043 popupAutoFocus: _propTypes2.default.bool,
42044 /**
42045 * 是否展示 dataSource 中 children
42046 */
42047 showDataSourceChildren: _propTypes2.default.bool
42048}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
42049 locale: _zhCn2.default.Select,
42050 mode: 'single',
42051 showSearch: false,
42052 cacheValue: true,
42053 tagInline: false,
42054 adjustTagSize: false,
42055 onSearch: noop,
42056 onSearchClear: noop,
42057 hasArrow: true,
42058 onRemove: noop,
42059 // highlightFirstItem: true,
42060 valueRender: function valueRender(item) {
42061 return item.label || item.value;
42062 },
42063 onKeyDown: noop,
42064 onFocus: noop,
42065 onBlur: noop,
42066 onMouseEnter: noop,
42067 onMouseLeave: noop,
42068 popupAutoFocus: false,
42069 tagClosable: true
42070}), _class.displayName = 'Select', _temp);
42071exports.default = (0, _reactLifecyclesCompat.polyfill)(Select);
42072module.exports = exports['default'];
42073
42074/***/ }),
42075/* 305 */
42076/***/ (function(module, exports, __webpack_require__) {
42077
42078"use strict";
42079
42080
42081exports.__esModule = true;
42082
42083var _extends2 = __webpack_require__(1);
42084
42085var _extends3 = _interopRequireDefault(_extends2);
42086
42087var _objectWithoutProperties2 = __webpack_require__(8);
42088
42089var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
42090
42091var _classCallCheck2 = __webpack_require__(2);
42092
42093var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42094
42095var _possibleConstructorReturn2 = __webpack_require__(3);
42096
42097var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42098
42099var _inherits2 = __webpack_require__(4);
42100
42101var _inherits3 = _interopRequireDefault(_inherits2);
42102
42103var _class, _temp;
42104
42105var _react = __webpack_require__(0);
42106
42107var _react2 = _interopRequireDefault(_react);
42108
42109var _propTypes = __webpack_require__(5);
42110
42111var _propTypes2 = _interopRequireDefault(_propTypes);
42112
42113var _classnames = __webpack_require__(7);
42114
42115var _classnames2 = _interopRequireDefault(_classnames);
42116
42117function _interopRequireDefault(obj) {
42118 return obj && obj.__esModule ? obj : { default: obj };
42119}
42120
42121var Group = (_temp = _class = function (_Component) {
42122 (0, _inherits3.default)(Group, _Component);
42123
42124 function Group() {
42125 (0, _classCallCheck3.default)(this, Group);
42126 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
42127 }
42128
42129 Group.prototype.render = function render() {
42130 var _props = this.props,
42131 className = _props.className,
42132 prefix = _props.prefix,
42133 children = _props.children,
42134 rtl = _props.rtl,
42135 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'prefix', 'children', 'rtl']);
42136
42137 var clazz = (0, _classnames2.default)((prefix || 'next-') + 'tag-group', className);
42138
42139 return _react2.default.createElement('div', (0, _extends3.default)({ className: clazz, dir: rtl ? 'rtl' : undefined }, others), children);
42140 };
42141
42142 return Group;
42143}(_react.Component), _class.propTypes = {
42144 prefix: _propTypes2.default.string,
42145 className: _propTypes2.default.any,
42146 children: _propTypes2.default.node,
42147 rtl: _propTypes2.default.bool
42148}, _class.defaultProps = {
42149 prefix: 'next-',
42150 rtl: false
42151}, _temp);
42152Group.displayName = 'Group';
42153exports.default = Group;
42154module.exports = exports['default'];
42155
42156/***/ }),
42157/* 306 */
42158/***/ (function(module, exports, __webpack_require__) {
42159
42160"use strict";
42161
42162
42163exports.__esModule = true;
42164
42165var _extends2 = __webpack_require__(1);
42166
42167var _extends3 = _interopRequireDefault(_extends2);
42168
42169var _classCallCheck2 = __webpack_require__(2);
42170
42171var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42172
42173var _possibleConstructorReturn2 = __webpack_require__(3);
42174
42175var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42176
42177var _inherits2 = __webpack_require__(4);
42178
42179var _inherits3 = _interopRequireDefault(_inherits2);
42180
42181var _class, _temp;
42182
42183var _react = __webpack_require__(0);
42184
42185var _react2 = _interopRequireDefault(_react);
42186
42187var _propTypes = __webpack_require__(5);
42188
42189var _propTypes2 = _interopRequireDefault(_propTypes);
42190
42191var _classnames = __webpack_require__(7);
42192
42193var _classnames2 = _interopRequireDefault(_classnames);
42194
42195var _reactLifecyclesCompat = __webpack_require__(10);
42196
42197var _util = __webpack_require__(6);
42198
42199var _tag = __webpack_require__(90);
42200
42201var _tag2 = _interopRequireDefault(_tag);
42202
42203function _interopRequireDefault(obj) {
42204 return obj && obj.__esModule ? obj : { default: obj };
42205}
42206
42207var noop = _util.func.noop,
42208 bindCtx = _util.func.bindCtx;
42209
42210/**
42211 * Tag.Selectable
42212 */
42213
42214var Selectable = (_temp = _class = function (_Component) {
42215 (0, _inherits3.default)(Selectable, _Component);
42216
42217 function Selectable(props) {
42218 (0, _classCallCheck3.default)(this, Selectable);
42219
42220 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
42221
42222 _this.state = {
42223 checked: 'checked' in props ? props.checked : props.defaultChecked || false
42224 };
42225
42226 bindCtx(_this, ['handleClick']);
42227 return _this;
42228 }
42229
42230 Selectable.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
42231 if (props.checked !== undefined && props.checked !== state.checked) {
42232 return {
42233 checked: props.checked
42234 };
42235 }
42236
42237 return null;
42238 };
42239
42240 Selectable.prototype.handleClick = function handleClick(e) {
42241 e && e.preventDefault();
42242 // IE9 不支持 pointer-events,还是可能会触发 click 事件
42243 if (this.props.disabled) {
42244 return false;
42245 }
42246
42247 var checked = this.state.checked;
42248
42249 this.setState({
42250 checked: !checked
42251 });
42252
42253 this.props.onChange(!checked, e);
42254 };
42255
42256 Selectable.prototype.render = function render() {
42257 var attrFilterTarget = ['checked', 'defaultChecked', 'onChange', 'className',
42258 // 防止这些额外的参数影响 tag 的类型
42259 '_shape', 'closable'];
42260
42261 var others = _util.obj.pickOthers(attrFilterTarget, this.props);
42262 var isChecked = 'checked' in this.props ? this.props.checked : this.state.checked;
42263 var clazz = (0, _classnames2.default)(this.props.className, {
42264 checked: isChecked
42265 });
42266 return _react2.default.createElement(_tag2.default, (0, _extends3.default)({}, others, {
42267 role: 'checkbox',
42268 _shape: 'checkable',
42269 'aria-checked': isChecked,
42270 className: clazz,
42271 onClick: this.handleClick
42272 }));
42273 };
42274
42275 return Selectable;
42276}(_react.Component), _class.propTypes = {
42277 /**
42278 * 标签是否被选中,受控用法
42279 * tag checked or not, a controlled way
42280 */
42281 checked: _propTypes2.default.bool,
42282 /**
42283 * 标签是否默认被选中,非受控用法
42284 * tag checked or not by default, a uncontrolled way
42285 */
42286 defaultChecked: _propTypes2.default.bool,
42287 /**
42288 * 选中状态变化时触发的事件
42289 * @param {Boolean} checked 是否选中
42290 * @param {Event} e Dom 事件对象
42291 */
42292 onChange: _propTypes2.default.func,
42293 /**
42294 * 标签是否被禁用
42295 */
42296 disabled: _propTypes2.default.bool,
42297 className: _propTypes2.default.any
42298}, _class.defaultProps = {
42299 onChange: noop
42300}, _temp);
42301Selectable.displayName = 'Selectable';
42302exports.default = (0, _reactLifecyclesCompat.polyfill)(Selectable);
42303module.exports = exports['default'];
42304
42305/***/ }),
42306/* 307 */
42307/***/ (function(module, exports, __webpack_require__) {
42308
42309"use strict";
42310
42311
42312exports.__esModule = true;
42313
42314var _extends2 = __webpack_require__(1);
42315
42316var _extends3 = _interopRequireDefault(_extends2);
42317
42318var _objectWithoutProperties2 = __webpack_require__(8);
42319
42320var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
42321
42322var _classCallCheck2 = __webpack_require__(2);
42323
42324var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42325
42326var _possibleConstructorReturn2 = __webpack_require__(3);
42327
42328var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42329
42330var _inherits2 = __webpack_require__(4);
42331
42332var _inherits3 = _interopRequireDefault(_inherits2);
42333
42334var _class, _temp;
42335
42336var _react = __webpack_require__(0);
42337
42338var _react2 = _interopRequireDefault(_react);
42339
42340var _propTypes = __webpack_require__(5);
42341
42342var _propTypes2 = _interopRequireDefault(_propTypes);
42343
42344var _tag = __webpack_require__(90);
42345
42346var _tag2 = _interopRequireDefault(_tag);
42347
42348function _interopRequireDefault(obj) {
42349 return obj && obj.__esModule ? obj : { default: obj };
42350}
42351
42352/**
42353 * Tag.Closeable
42354 */
42355var Closeable = (_temp = _class = function (_Component) {
42356 (0, _inherits3.default)(Closeable, _Component);
42357
42358 function Closeable() {
42359 (0, _classCallCheck3.default)(this, Closeable);
42360 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
42361 }
42362
42363 Closeable.prototype.render = function render() {
42364 var _props = this.props,
42365 disabled = _props.disabled,
42366 className = _props.className,
42367 closeArea = _props.closeArea,
42368 onClose = _props.onClose,
42369 afterClose = _props.afterClose,
42370 onClick = _props.onClick,
42371 type = _props.type,
42372 size = _props.size,
42373 children = _props.children,
42374 rtl = _props.rtl,
42375 others = (0, _objectWithoutProperties3.default)(_props, ['disabled', 'className', 'closeArea', 'onClose', 'afterClose', 'onClick', 'type', 'size', 'children', 'rtl']);
42376
42377 return _react2.default.createElement(_tag2.default, (0, _extends3.default)({}, others, {
42378 rtl: rtl,
42379 disabled: disabled,
42380 className: className,
42381 closeArea: closeArea,
42382 onClose: onClose,
42383 afterClose: afterClose,
42384 onClick: onClick,
42385 type: type,
42386 size: size,
42387 closable: true
42388 }), children);
42389 };
42390
42391 return Closeable;
42392}(_react.Component), _class.propTypes = {
42393 disabled: _propTypes2.default.bool,
42394 className: _propTypes2.default.any,
42395 /**
42396 * closeable 标签的 onClose 响应区域, tag: 标签体, tail(默认): 关闭按钮
42397 * @enumdesc 标签, 尾部icon
42398 */
42399 closeArea: _propTypes2.default.oneOf(['tag', 'tail']),
42400 /**
42401 * 点击关闭按钮时的回调
42402 * @param {String} from 事件来源, tag: 标签体点击, tail: 关闭按钮点击
42403 * @returns {Boolean} true则关闭, false阻止关闭
42404 */
42405 onClose: _propTypes2.default.func,
42406 /**
42407 * 标签关闭后执行的回调
42408 */
42409 afterClose: _propTypes2.default.func,
42410 /**
42411 * 点击回调
42412 */
42413 onClick: _propTypes2.default.func,
42414 type: _propTypes2.default.oneOf(['normal', 'primary']),
42415 /**
42416 * 标签的尺寸(large 尺寸为兼容表单场景 large = medium)
42417 */
42418 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
42419 children: _propTypes2.default.any,
42420 rtl: _propTypes2.default.bool
42421}, _class.defaultProps = {
42422 disabled: false,
42423 type: 'normal'
42424}, _temp);
42425Closeable.displayName = 'Closeable';
42426exports.default = Closeable;
42427module.exports = exports['default'];
42428
42429/***/ }),
42430/* 308 */
42431/***/ (function(module, exports, __webpack_require__) {
42432
42433"use strict";
42434
42435
42436exports.__esModule = true;
42437exports.default = undefined;
42438
42439var _extends2 = __webpack_require__(1);
42440
42441var _extends3 = _interopRequireDefault(_extends2);
42442
42443var _objectWithoutProperties2 = __webpack_require__(8);
42444
42445var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
42446
42447var _classCallCheck2 = __webpack_require__(2);
42448
42449var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42450
42451var _possibleConstructorReturn2 = __webpack_require__(3);
42452
42453var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42454
42455var _inherits2 = __webpack_require__(4);
42456
42457var _inherits3 = _interopRequireDefault(_inherits2);
42458
42459var _class, _temp2;
42460
42461var _react = __webpack_require__(0);
42462
42463var _react2 = _interopRequireDefault(_react);
42464
42465var _propTypes = __webpack_require__(5);
42466
42467var _propTypes2 = _interopRequireDefault(_propTypes);
42468
42469var _input = __webpack_require__(150);
42470
42471var _input2 = _interopRequireDefault(_input);
42472
42473var _index = __webpack_require__(11);
42474
42475var _index2 = _interopRequireDefault(_index);
42476
42477function _interopRequireDefault(obj) {
42478 return obj && obj.__esModule ? obj : { default: obj };
42479}
42480
42481function preventDefault(e) {
42482 e.preventDefault();
42483}
42484var Password = (_temp2 = _class = function (_Input) {
42485 (0, _inherits3.default)(Password, _Input);
42486
42487 function Password() {
42488 var _temp, _this, _ret;
42489
42490 (0, _classCallCheck3.default)(this, Password);
42491
42492 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
42493 args[_key] = arguments[_key];
42494 }
42495
42496 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Input.call.apply(_Input, [this].concat(args))), _this), _this.state = {
42497 hint: 'eye-close',
42498 htmlType: 'password'
42499 }, _this.toggleEye = function (e) {
42500 e.preventDefault();
42501 if (_this.props.disabled) return;
42502 var eyeClose = _this.state.hint === 'eye';
42503
42504 _this.setState({
42505 hint: eyeClose ? 'eye-close' : 'eye',
42506 htmlType: eyeClose || !_this.props.showToggle ? 'password' : 'text'
42507 });
42508 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
42509 }
42510
42511 Password.prototype.render = function render() {
42512 var _props = this.props,
42513 showToggle = _props.showToggle,
42514 others = (0, _objectWithoutProperties3.default)(_props, ['showToggle']);
42515 var _state = this.state,
42516 hint = _state.hint,
42517 htmlType = _state.htmlType;
42518
42519 var extra = showToggle ? _react2.default.createElement(_index2.default, { type: hint, onClick: this.toggleEye, onMouseDown: preventDefault }) : null;
42520
42521 return _react2.default.createElement(_input2.default, (0, _extends3.default)({}, others, { extra: extra, htmlType: htmlType }));
42522 };
42523
42524 return Password;
42525}(_input2.default), _class.getDerivedStateFromProps = _input2.default.getDerivedStateFromProps, _class.propTypes = (0, _extends3.default)({}, _input2.default.propTypes, {
42526 /**
42527 * 是否展示切换按钮
42528 */
42529 showToggle: _propTypes2.default.bool
42530}), _class.defaultProps = (0, _extends3.default)({}, _input2.default.defaultProps, {
42531 showToggle: true
42532}), _temp2);
42533exports.default = Password;
42534module.exports = exports['default'];
42535
42536/***/ }),
42537/* 309 */
42538/***/ (function(module, exports, __webpack_require__) {
42539
42540"use strict";
42541
42542
42543exports.__esModule = true;
42544exports.default = undefined;
42545
42546var _extends2 = __webpack_require__(1);
42547
42548var _extends3 = _interopRequireDefault(_extends2);
42549
42550var _typeof2 = __webpack_require__(14);
42551
42552var _typeof3 = _interopRequireDefault(_typeof2);
42553
42554var _classCallCheck2 = __webpack_require__(2);
42555
42556var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42557
42558var _possibleConstructorReturn2 = __webpack_require__(3);
42559
42560var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
42561
42562var _inherits2 = __webpack_require__(4);
42563
42564var _inherits3 = _interopRequireDefault(_inherits2);
42565
42566var _class, _temp, _initialiseProps;
42567
42568var _react = __webpack_require__(0);
42569
42570var _react2 = _interopRequireDefault(_react);
42571
42572var _reactDom = __webpack_require__(12);
42573
42574var _reactDom2 = _interopRequireDefault(_reactDom);
42575
42576var _propTypes = __webpack_require__(5);
42577
42578var _propTypes2 = _interopRequireDefault(_propTypes);
42579
42580var _classnames = __webpack_require__(7);
42581
42582var _classnames2 = _interopRequireDefault(_classnames);
42583
42584var _util = __webpack_require__(6);
42585
42586var _base = __webpack_require__(151);
42587
42588var _base2 = _interopRequireDefault(_base);
42589
42590function _interopRequireDefault(obj) {
42591 return obj && obj.__esModule ? obj : { default: obj };
42592}
42593
42594function onNextFrame(cb) {
42595 if (window.requestAnimationFrame) {
42596 return window.requestAnimationFrame(cb);
42597 }
42598 return window.setTimeout(cb, 1);
42599}
42600
42601function clearNextFrameAction(nextFrameId) {
42602 if (window.cancelAnimationFrame) {
42603 window.cancelAnimationFrame(nextFrameId);
42604 } else {
42605 window.clearTimeout(nextFrameId);
42606 }
42607}
42608
42609// safari in mac
42610var isMacSafari = typeof navigator !== 'undefined' && navigator && navigator.userAgent ? navigator.userAgent.match(/^((?!chrome|android|windows).)*safari/i) : false;
42611
42612var hiddenStyle = {
42613 visibility: 'hidden',
42614 position: 'absolute',
42615 zIndex: '-1000',
42616 top: '-1000px',
42617 overflowY: 'hidden',
42618 left: 0,
42619 right: 0
42620};
42621
42622/**
42623 * Input.TextArea
42624 * @order 2
42625 */
42626var TextArea = (_temp = _class = function (_Base) {
42627 (0, _inherits3.default)(TextArea, _Base);
42628
42629 function TextArea(props) {
42630 (0, _classCallCheck3.default)(this, TextArea);
42631
42632 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
42633
42634 _initialiseProps.call(_this);
42635
42636 var value = void 0;
42637 if ('value' in props) {
42638 value = props.value;
42639 } else {
42640 value = props.defaultValue;
42641 }
42642
42643 _this.state = {
42644 value: typeof value === 'undefined' ? '' : value
42645 };
42646 return _this;
42647 }
42648
42649 TextArea.prototype.componentDidMount = function componentDidMount() {
42650 var autoHeight = this.props.autoHeight;
42651 if (autoHeight) {
42652 if ((typeof autoHeight === 'undefined' ? 'undefined' : (0, _typeof3.default)(autoHeight)) === 'object') {
42653 /* eslint-disable react/no-did-mount-set-state */
42654 this.setState(this._getMinMaxHeight(autoHeight, this.state.value));
42655 } else {
42656 this.setState({
42657 height: this._getHeight(this.state.value),
42658 overflowY: 'hidden'
42659 });
42660 }
42661 }
42662 };
42663
42664 TextArea.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
42665 if (this.props.autoHeight && this.props.value !== prevProps.value) {
42666 this._resizeTextArea(this.props.value);
42667 }
42668 };
42669
42670 TextArea.prototype._getMinMaxHeight = function _getMinMaxHeight(_ref, value) {
42671 var minRows = _ref.minRows,
42672 maxRows = _ref.maxRows;
42673
42674 var node = _reactDom2.default.findDOMNode(this.helpRef);
42675 if (!node) {
42676 return {};
42677 }
42678 node.setAttribute('rows', minRows);
42679 var minHeight = node.clientHeight;
42680
42681 node.setAttribute('rows', maxRows);
42682 var maxHeight = node.clientHeight;
42683
42684 node.setAttribute('rows', '1');
42685 var height = this._getHeight(value);
42686
42687 return {
42688 minHeight: minHeight,
42689 maxHeight: maxHeight,
42690 height: height,
42691 overflowY: height <= maxHeight ? 'hidden' : undefined
42692 };
42693 };
42694
42695 TextArea.prototype._getHeight = function _getHeight(value) {
42696 var node = _reactDom2.default.findDOMNode(this.helpRef);
42697 if (!node) {
42698 return 0;
42699 }
42700 node.value = value;
42701
42702 return node.scrollHeight;
42703 };
42704
42705 TextArea.prototype.ieHack = function ieHack(value) {
42706 // Fix: textarea dit not support maxLength in ie9
42707 /* istanbul ignore if */
42708 if (_util.env.ieVersion === 9 && this.props.maxLength) {
42709 var maxLength = parseInt(this.props.maxLength);
42710 var len = this.getValueLength(value, true);
42711 if (len > maxLength && this.props.cutString) {
42712 value = value.replace(/\n/g, '\n\n');
42713 value = value.substr(0, maxLength);
42714 value = value.replace(/\n\n/g, '\n');
42715 }
42716 }
42717
42718 this.props.autoHeight && this._resizeTextArea(value);
42719
42720 return value;
42721 };
42722
42723 /**
42724 * value.length !== maxLength in ie/safari(mac) while value has `Enter`
42725 * about maxLength compute: `Enter` was considered to be one char(\n) in chrome , but two chars(\r\n) in ie/safari(mac).
42726 * so while value has `Enter`, we should let display length + 1
42727 */
42728
42729 TextArea.prototype.getValueLength = function getValueLength(value) {
42730 var _props = this.props,
42731 maxLength = _props.maxLength,
42732 cutString = _props.cutString;
42733
42734 var nv = '' + value;
42735 var strLen = this.props.getValueLength(nv);
42736 if (typeof strLen !== 'number') {
42737 strLen = nv.length;
42738 }
42739
42740 /* istanbul ignore if */
42741 if (_util.env.ieVersion || isMacSafari) {
42742 strLen = strLen + nv.split('\n').length - 1;
42743 if (strLen > maxLength && cutString) {
42744 strLen = maxLength;
42745 }
42746 }
42747
42748 return strLen;
42749 };
42750
42751 TextArea.prototype.saveTextAreaRef = function saveTextAreaRef(textArea) {
42752 this.inputRef = textArea;
42753 };
42754
42755 TextArea.prototype.saveHelpRef = function saveHelpRef(ref) {
42756 this.helpRef = ref;
42757 };
42758
42759 TextArea.prototype.render = function render() {
42760 var _classNames, _classNames2;
42761
42762 var _props2 = this.props,
42763 rows = _props2.rows,
42764 style = _props2.style,
42765 className = _props2.className,
42766 autoHeight = _props2.autoHeight,
42767 isPreview = _props2.isPreview,
42768 renderPreview = _props2.renderPreview,
42769 prefix = _props2.prefix,
42770 rtl = _props2.rtl,
42771 hasBorder = _props2.hasBorder,
42772 size = _props2.size,
42773 composition = _props2.composition;
42774
42775 var cls = (0, _classnames2.default)(this.getClass(), (_classNames = {}, _classNames['' + prefix + size] = size === 'large' || 'size' === 'small', _classNames[prefix + 'input-textarea'] = true, _classNames[prefix + 'noborder'] = !hasBorder, _classNames[className] = !!className, _classNames));
42776
42777 var props = this.getProps();
42778 // custom data attributes are assigned to the top parent node
42779 // data-类自定义数据属性分配到顶层node节点
42780 var dataProps = _util.obj.pickAttrsWith(this.props, 'data-');
42781 // Custom props are transparently transmitted to the core input node by default
42782 // 自定义属性默认透传到核心node节点:input
42783 var others = _util.obj.pickOthers((0, _extends3.default)({}, dataProps, TextArea.propTypes), this.props);
42784
42785 var textareStyle = (0, _extends3.default)({}, props.style, {
42786 height: this.state.height,
42787 minHeight: this.state.minHeight,
42788 maxHeight: this.state.maxHeight,
42789 overflowY: this.state.overflowY
42790 });
42791
42792 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'input-textarea'] = true, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
42793
42794 var wrapStyle = autoHeight ? (0, _extends3.default)({}, style, { position: 'relative' }) : style;
42795
42796 if (isPreview) {
42797 var value = props.value;
42798
42799 if ('renderPreview' in this.props) {
42800 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
42801 }
42802 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), value.split('\n').map(function (data, i) {
42803 return _react2.default.createElement('p', { key: 'p-' + i }, data);
42804 }));
42805 }
42806
42807 var compositionProps = {};
42808 if (composition) {
42809 compositionProps.onCompositionStart = this.handleCompositionStart;
42810 compositionProps.onCompositionEnd = this.handleCompositionEnd;
42811 }
42812
42813 return _react2.default.createElement('span', (0, _extends3.default)({ className: cls, style: wrapStyle, dir: rtl ? 'rtl' : undefined }, dataProps), _react2.default.createElement('textarea', (0, _extends3.default)({}, others, props, compositionProps, {
42814 'data-real': true,
42815 rows: rows,
42816 style: textareStyle,
42817 ref: this.saveRef.bind(this),
42818 onKeyDown: this.onKeyDown.bind(this)
42819 })), autoHeight ? _react2.default.createElement('textarea', {
42820 'data-fake': true,
42821 ref: this.saveHelpRef.bind(this),
42822 style: (0, _extends3.default)({}, props.style, hiddenStyle),
42823 rows: '1'
42824 }) : null, this.renderControl());
42825 };
42826
42827 return TextArea;
42828}(_base2.default), _class.getDerivedStateFromProps = _base2.default.getDerivedStateFromProps, _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
42829 /**
42830 * 是否有边框
42831 */
42832 hasBorder: _propTypes2.default.bool,
42833 /**
42834 * 状态
42835 * @enumdesc 错误
42836 */
42837 state: _propTypes2.default.oneOf(['error', 'warning']),
42838 /**
42839 * 自动高度 true / {minRows: 2, maxRows: 4}
42840 */
42841 autoHeight: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
42842 /**
42843 * 多行文本框高度 <br />(不要直接用height设置多行文本框的高度, ie9 10会有兼容性问题)
42844 */
42845 rows: _propTypes2.default.number,
42846 /**
42847 * 是否为预览态
42848 */
42849 isPreview: _propTypes2.default.bool,
42850 /**
42851 * 预览态模式下渲染的内容
42852 * @param {number} value 评分值
42853 */
42854 renderPreview: _propTypes2.default.func
42855}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
42856 hasBorder: true,
42857 isPreview: false,
42858 rows: 4,
42859 autoHeight: false
42860}), _initialiseProps = function _initialiseProps() {
42861 var _this2 = this;
42862
42863 this._resizeTextArea = function (value) {
42864 if (_this2.nextFrameActionId) {
42865 clearNextFrameAction(_this2.nextFrameActionId);
42866 }
42867 _this2.nextFrameActionId = onNextFrame(function () {
42868 var height = _this2._getHeight(value);
42869 var maxHeight = _this2.state.maxHeight ? _this2.state.maxHeight : Infinity;
42870
42871 _this2.setState({
42872 height: _this2._getHeight(value),
42873 overflowY: height <= maxHeight ? 'hidden' : undefined
42874 });
42875 });
42876 };
42877}, _temp);
42878exports.default = TextArea;
42879module.exports = exports['default'];
42880
42881/***/ }),
42882/* 310 */
42883/***/ (function(module, exports, __webpack_require__) {
42884
42885"use strict";
42886
42887
42888exports.__esModule = true;
42889
42890var _extends2 = __webpack_require__(1);
42891
42892var _extends3 = _interopRequireDefault(_extends2);
42893
42894var _classCallCheck2 = __webpack_require__(2);
42895
42896var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
42897
42898var _util = __webpack_require__(62);
42899
42900function _interopRequireDefault(obj) {
42901 return obj && obj.__esModule ? obj : { default: obj };
42902}
42903
42904/**
42905 * manage dataSource for menu list
42906 */
42907var DataStore = function () {
42908 function DataStore(options) {
42909 (0, _classCallCheck3.default)(this, DataStore);
42910
42911 this.options = (0, _extends3.default)({
42912 filter: _util.filter,
42913 key: undefined,
42914 addonKey: false,
42915 filterLocal: true,
42916 showDataSourceChildren: true
42917 }, options);
42918
42919 // origin data
42920 this.dataSource = [];
42921 // current data for menu display
42922 this.menuDataSource = [];
42923 // key=>value map for menuDataSource
42924 this.mapDataSource = {};
42925 // current data can be select (not disabled) on menu
42926 this.enabledDataSource = [];
42927 this.flattenDataSource = [];
42928 }
42929
42930 DataStore.prototype.setOptions = function setOptions(options) {
42931 (0, _extends3.default)(this.options, options);
42932 };
42933
42934 DataStore.prototype.updateByDS = function updateByDS(dataSource) {
42935 var isChildren = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
42936
42937 this.dataSource = isChildren ? (0, _util.parseDataSourceFromChildren)(dataSource) : (0, _util.normalizeDataSource)(dataSource, 0, this.options.showDataSourceChildren);
42938 return this.updateAll();
42939 };
42940
42941 DataStore.prototype.updateByKey = function updateByKey(key) {
42942 if (key === this.options.key) {
42943 return this.getMenuDS();
42944 }
42945
42946 this.options.key = key;
42947 return this.updateAll();
42948 };
42949
42950 DataStore.prototype.getOriginDS = function getOriginDS() {
42951 return this.dataSource;
42952 };
42953
42954 DataStore.prototype.getMenuDS = function getMenuDS() {
42955 return this.menuDataSource;
42956 };
42957
42958 DataStore.prototype.getFlattenDS = function getFlattenDS() {
42959 return this.flattenDataSource;
42960 };
42961
42962 DataStore.prototype.getEnableDS = function getEnableDS() {
42963 return this.enabledDataSource;
42964 };
42965
42966 DataStore.prototype.getMapDS = function getMapDS() {
42967 return this.mapDataSource;
42968 };
42969
42970 DataStore.prototype.updateAll = function updateAll() {
42971 var _this = this;
42972
42973 var _options = this.options,
42974 key = _options.key,
42975 filter = _options.filter,
42976 filterLocal = _options.filterLocal,
42977 showDataSourceChildren = _options.showDataSourceChildren;
42978
42979 this.menuDataSource = (0, _util.filterDataSource)(this.dataSource, filterLocal ? key : '', filter, this.options.addonKey);
42980
42981 this.flattenDataSource = showDataSourceChildren ? (0, _util.flattingDataSource)(this.menuDataSource) : this.menuDataSource;
42982
42983 this.mapDataSource = {};
42984 this.flattenDataSource.forEach(function (item) {
42985 _this.mapDataSource['' + item.value] = item;
42986 });
42987
42988 this.enabledDataSource = this.flattenDataSource.filter(function (item) {
42989 return !item.disabled;
42990 });
42991
42992 return this.menuDataSource;
42993 };
42994
42995 return DataStore;
42996}();
42997
42998exports.default = DataStore;
42999module.exports = exports['default'];
43000
43001/***/ }),
43002/* 311 */
43003/***/ (function(module, exports, __webpack_require__) {
43004
43005"use strict";
43006
43007
43008exports.__esModule = true;
43009
43010var _classCallCheck2 = __webpack_require__(2);
43011
43012var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
43013
43014var _possibleConstructorReturn2 = __webpack_require__(3);
43015
43016var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
43017
43018var _inherits2 = __webpack_require__(4);
43019
43020var _inherits3 = _interopRequireDefault(_inherits2);
43021
43022var _class, _temp;
43023
43024var _propTypes = __webpack_require__(5);
43025
43026var _propTypes2 = _interopRequireDefault(_propTypes);
43027
43028var _react = __webpack_require__(0);
43029
43030var _react2 = _interopRequireDefault(_react);
43031
43032var _classnames = __webpack_require__(7);
43033
43034var _classnames2 = _interopRequireDefault(_classnames);
43035
43036var _reactLifecyclesCompat = __webpack_require__(10);
43037
43038var _reactDom = __webpack_require__(12);
43039
43040var _util = __webpack_require__(6);
43041
43042function _interopRequireDefault(obj) {
43043 return obj && obj.__esModule ? obj : { default: obj };
43044}
43045
43046var NOOP = function NOOP() {};
43047var MAX_SYNC_UPDATES = 40;
43048
43049var isEqualSubset = function isEqualSubset(a, b) {
43050 for (var key in b) {
43051 if (a[key] !== b[key]) {
43052 return false;
43053 }
43054 }
43055
43056 return true;
43057};
43058
43059var getOffset = function getOffset(el) {
43060 var offset = el.clientLeft || 0;
43061 do {
43062 offset += el.offsetTop || 0;
43063 el = el.offsetParent;
43064 } while (el);
43065 return offset;
43066};
43067
43068var constrain = function constrain(from, size, _ref) {
43069 var children = _ref.children,
43070 minSize = _ref.minSize;
43071
43072 var length = children && children.length;
43073 size = Math.max(size, minSize);
43074 if (size > length) {
43075 size = length;
43076 }
43077 from = from ? Math.max(Math.min(from, length - size), 0) : 0;
43078
43079 return { from: from, size: size };
43080};
43081/** VirtualList */
43082var VirtualList = (_temp = _class = function (_Component) {
43083 (0, _inherits3.default)(VirtualList, _Component);
43084
43085 function VirtualList(props) {
43086 (0, _classCallCheck3.default)(this, VirtualList);
43087
43088 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
43089
43090 var jumpIndex = props.jumpIndex;
43091
43092 var _constrain = constrain(jumpIndex, 0, props),
43093 from = _constrain.from,
43094 size = _constrain.size;
43095
43096 _this.state = { from: from, size: size };
43097 _this.cache = {};
43098 _this.cacheAdd = {};
43099 _this.scrollTo = _this.scrollTo.bind(_this);
43100 _this.cachedScroll = null;
43101 _this.unstable = false;
43102 _this.updateCounter = 0;
43103 return _this;
43104 }
43105
43106 VirtualList.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
43107 var from = prevState.from,
43108 size = prevState.size;
43109
43110 return constrain(from, size, nextProps);
43111 };
43112
43113 VirtualList.prototype.componentDidMount = function componentDidMount() {
43114 var jumpIndex = this.props.jumpIndex;
43115
43116 this.updateFrameAndClearCache = this.updateFrameAndClearCache.bind(this);
43117
43118 _util.events.on(window, 'resize', this.updateFrameAndClearCache);
43119
43120 this.updateFrame(this.scrollTo.bind(this, jumpIndex));
43121 };
43122
43123 VirtualList.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
43124 var _this2 = this;
43125
43126 var oldIndex = prevProps.jumpIndex;
43127 var newIndex = this.props.jumpIndex;
43128
43129 if (oldIndex !== newIndex) {
43130 this.updateFrame(this.scrollTo.bind(this, newIndex));
43131 }
43132
43133 // If the list has reached an unstable state, prevent an infinite loop.
43134 if (this.unstable) {
43135 return;
43136 }
43137
43138 if (++this.updateCounter > MAX_SYNC_UPDATES) {
43139 this.unstable = true;
43140 }
43141
43142 if (!this.updateCounterTimeoutId) {
43143 this.updateCounterTimeoutId = setTimeout(function () {
43144 _this2.updateCounter = 0;
43145 delete _this2.updateCounterTimeoutId;
43146 }, 0);
43147 }
43148
43149 this.updateFrame();
43150 };
43151
43152 VirtualList.prototype.componentWillUnmount = function componentWillUnmount() {
43153 _util.events.off(window, 'resize', this.updateFrameAndClearCache);
43154
43155 _util.events.off(this.scrollParent, 'scroll', this.updateFrameAndClearCache);
43156 _util.events.off(this.scrollParent, 'mousewheel', NOOP);
43157 };
43158
43159 VirtualList.prototype.maybeSetState = function maybeSetState(b, cb) {
43160 if (isEqualSubset(this.state, b)) {
43161 return cb();
43162 }
43163
43164 this.setState(b, cb);
43165 };
43166
43167 VirtualList.prototype.getEl = function getEl() {
43168 return this.el || this.items || {};
43169 };
43170
43171 VirtualList.prototype.getScrollParent = function getScrollParent() {
43172 var el = this.getEl();
43173 el = el.parentElement;
43174
43175 switch (window.getComputedStyle(el).overflowY) {
43176 case 'auto':
43177 case 'scroll':
43178 case 'overlay':
43179 case 'visible':
43180 return el;
43181 }
43182
43183 return window;
43184 };
43185
43186 VirtualList.prototype.getScroll = function getScroll() {
43187 // Cache scroll position as this causes a forced synchronous layout.
43188 // if (typeof this.cachedScroll === 'number') {
43189 // return this.cachedScroll;
43190 // }
43191 var scrollParent = this.scrollParent;
43192
43193 var scrollKey = 'scrollTop';
43194 var actual = scrollParent === window ? // Firefox always returns document.body[scrollKey] as 0 and Chrome/Safari
43195 // always return document.documentElement[scrollKey] as 0, so take
43196 // whichever has a value.
43197 document.body[scrollKey] || document.documentElement[scrollKey] : scrollParent[scrollKey];
43198 var max = this.getScrollSize() - this.getViewportSize();
43199
43200 var scroll = Math.max(0, Math.min(actual, max));
43201 var el = this.getEl();
43202 this.cachedScroll = getOffset(scrollParent) + scroll - getOffset(el);
43203
43204 return this.cachedScroll;
43205 };
43206
43207 VirtualList.prototype.setScroll = function setScroll(offset) {
43208 var scrollParent = this.scrollParent;
43209
43210 offset += getOffset(this.getEl());
43211 if (scrollParent === window) {
43212 return window.scrollTo(0, offset);
43213 }
43214
43215 offset -= getOffset(this.scrollParent);
43216 scrollParent.scrollTop = offset;
43217 };
43218
43219 VirtualList.prototype.getViewportSize = function getViewportSize() {
43220 var scrollParent = this.scrollParent;
43221
43222 return scrollParent === window ? window.innerHeight : scrollParent.clientHeight;
43223 };
43224
43225 VirtualList.prototype.getScrollSize = function getScrollSize() {
43226 var scrollParent = this.scrollParent;
43227 var _document = document,
43228 body = _document.body,
43229 documentElement = _document.documentElement;
43230
43231 var key = 'scrollHeight';
43232 return scrollParent === window ? Math.max(body[key], documentElement[key]) : scrollParent[key];
43233 };
43234
43235 VirtualList.prototype.getStartAndEnd = function getStartAndEnd() {
43236 var threshold = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props.threshold;
43237
43238 var scroll = this.getScroll();
43239
43240 var trueScroll = scroll;
43241 var start = Math.max(0, trueScroll - threshold);
43242 var end = trueScroll + this.getViewportSize() + threshold;
43243
43244 return { start: start, end: end };
43245 };
43246
43247 // Called by 'scroll' and 'resize' events, clears scroll position cache.
43248
43249
43250 VirtualList.prototype.updateFrameAndClearCache = function updateFrameAndClearCache(cb) {
43251 this.cachedScroll = null;
43252 return this.updateFrame(cb);
43253 };
43254
43255 VirtualList.prototype.updateFrame = function updateFrame(cb) {
43256 this.updateScrollParent();
43257
43258 if (typeof cb !== 'function') {
43259 cb = NOOP;
43260 }
43261
43262 return this.updateVariableFrame(cb);
43263 };
43264
43265 VirtualList.prototype.updateScrollParent = function updateScrollParent() {
43266 var prev = this.scrollParent;
43267 this.scrollParent = this.getScrollParent();
43268
43269 if (prev === this.scrollParent) {
43270 return;
43271 }
43272 if (prev) {
43273 _util.events.off(prev, 'scroll', this.updateFrameAndClearCache);
43274 _util.events.off(prev, 'mousewheel', NOOP);
43275 }
43276
43277 _util.events.on(this.scrollParent, 'scroll', this.updateFrameAndClearCache);
43278 _util.events.on(this.scrollParent, 'mousewheel', NOOP);
43279
43280 // You have to attach mousewheel listener to the scrollable element.
43281 // Just an empty listener. After that onscroll events will be fired synchronously.
43282 };
43283
43284 VirtualList.prototype.updateVariableFrame = function updateVariableFrame(cb) {
43285 if (!this.props.itemSizeGetter) {
43286 this.cacheSizes();
43287 }
43288
43289 var _getStartAndEnd = this.getStartAndEnd(),
43290 start = _getStartAndEnd.start,
43291 end = _getStartAndEnd.end;
43292
43293 var _props = this.props,
43294 pageSize = _props.pageSize,
43295 children = _props.children;
43296
43297 var length = children.length;
43298 var space = 0;
43299 var from = 0;
43300 var size = 0;
43301 var maxFrom = length - 1;
43302
43303 while (from < maxFrom) {
43304 var itemSize = this.getSizeOf(from);
43305 if (itemSize === null || itemSize === undefined || space + itemSize > start) {
43306 break;
43307 }
43308 space += itemSize;
43309 ++from;
43310 }
43311
43312 var maxSize = length - from;
43313
43314 while (size < maxSize && space < end) {
43315 var _itemSize = this.getSizeOf(from + size);
43316 if (_itemSize === null || _itemSize === undefined) {
43317 size = Math.min(size + pageSize, maxSize);
43318 break;
43319 }
43320 space += _itemSize;
43321 ++size;
43322 }
43323
43324 this.maybeSetState({ from: from, size: size }, cb);
43325 };
43326
43327 VirtualList.prototype.getSpaceBefore = function getSpaceBefore(index) {
43328 var cache = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
43329
43330 if (!index) {
43331 return 0;
43332 }
43333 if (cache[index] !== null && cache[index] !== undefined) {
43334 return cache[index] || 0;
43335 }
43336
43337 // Find the closest space to index there is a cached value for.
43338 var from = index;
43339 while (from > 0 && (cache[from] === null || cache[from] === undefined)) {
43340 from--;
43341 }
43342
43343 // Finally, accumulate sizes of items from - index.
43344 var space = cache[from] || 0;
43345 for (var i = from; i < index; ++i) {
43346 cache[i] = space;
43347 var itemSize = this.getSizeOf(i);
43348 if (itemSize === null || itemSize === undefined) {
43349 break;
43350 }
43351 space += itemSize;
43352 }
43353
43354 cache[index] = space;
43355
43356 return cache[index] || 0;
43357 };
43358
43359 VirtualList.prototype.cacheSizes = function cacheSizes() {
43360 var cache = this.cache;
43361 var from = this.state.from;
43362 var _items = this.items,
43363 children = _items.children,
43364 _items$props = _items.props,
43365 props = _items$props === undefined ? {} : _items$props;
43366
43367 var itemEls = children || props.children || [];
43368
43369 try {
43370 // <Select useVirtual /> 模式下,在快速点击切换Tab的情况下(Select实例快速出现、消失) 有时会出现this.items不存在,导致页面报错。怀疑是Select的异步timer渲染逻辑引起的
43371 for (var i = 0, l = itemEls.length; i < l; ++i) {
43372 var ulRef = (0, _reactDom.findDOMNode)(this.items);
43373 var height = ulRef.children[i].offsetHeight;
43374 if (height > 0) {
43375 cache[from + i] = height;
43376 }
43377 }
43378 } catch (error) {
43379 // ...
43380 }
43381 };
43382
43383 VirtualList.prototype.getSizeOf = function getSizeOf(index) {
43384 var cache = this.cache;
43385 var _props2 = this.props,
43386 itemSizeGetter = _props2.itemSizeGetter,
43387 jumpIndex = _props2.jumpIndex;
43388
43389 // Try the cache.
43390
43391 if (index in cache) {
43392 return cache[index];
43393 }
43394 if (itemSizeGetter) {
43395 return itemSizeGetter(index);
43396 }
43397
43398 if (!this.defaultItemHeight && jumpIndex > -1) {
43399 var keysList = Object.keys(this.cache);
43400 var len = keysList.length;
43401 var height = this.cache[len - 1];
43402 this.defaultItemHeight = height;
43403 }
43404
43405 if (this.defaultItemHeight) {
43406 return this.defaultItemHeight;
43407 }
43408 };
43409
43410 VirtualList.prototype.scrollTo = function scrollTo(index) {
43411 this.setScroll(this.getSpaceBefore(index, this.cacheAdd));
43412 };
43413
43414 VirtualList.prototype.renderMenuItems = function renderMenuItems() {
43415 var _this3 = this;
43416
43417 var _props3 = this.props,
43418 children = _props3.children,
43419 itemsRenderer = _props3.itemsRenderer;
43420 var _state = this.state,
43421 from = _state.from,
43422 size = _state.size;
43423
43424 var items = [];
43425
43426 for (var i = 0; i < size; ++i) {
43427 items.push(children[from + i]);
43428 }
43429
43430 return itemsRenderer(items, function (c) {
43431 _this3.items = c;
43432 return _this3.items;
43433 });
43434 };
43435
43436 VirtualList.prototype.render = function render() {
43437 var _cx,
43438 _this4 = this;
43439
43440 var _props4 = this.props,
43441 _props4$children = _props4.children,
43442 children = _props4$children === undefined ? [] : _props4$children,
43443 prefix = _props4.prefix,
43444 className = _props4.className;
43445
43446 var length = children.length;
43447 var from = this.state.from;
43448
43449 var items = this.renderMenuItems();
43450
43451 var style = { position: 'relative' };
43452
43453 var size = this.getSpaceBefore(length, {});
43454
43455 if (size) {
43456 style.height = size;
43457 }
43458 var offset = this.getSpaceBefore(from, this.cacheAdd);
43459 var transform = 'translate(0px, ' + offset + 'px)';
43460 var listStyle = {
43461 msTransform: transform,
43462 WebkitTransform: transform,
43463 transform: transform
43464 };
43465
43466 var cls = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'virtual-list-wrapper'] = true, _cx[className] = !!className, _cx));
43467
43468 return _react2.default.createElement('div', {
43469 className: cls,
43470 style: style,
43471 ref: function ref(c) {
43472 _this4.el = c;
43473 return _this4.el;
43474 }
43475 }, _react2.default.createElement('div', { style: listStyle }, items));
43476 };
43477
43478 return VirtualList;
43479}(_react.Component), _class.displayName = 'VirtualList', _class.propTypes = {
43480 prefix: _propTypes2.default.string,
43481 /**
43482 * 渲染的子节点
43483 */
43484 children: _propTypes2.default.any,
43485 /**
43486 * 最小加载数量
43487 */
43488 minSize: _propTypes2.default.number,
43489 /**
43490 * 一屏数量
43491 */
43492 pageSize: _propTypes2.default.number,
43493 /**
43494 * 父渲染函数,默认为 (items, ref) => <ul ref={ref}>{items}</ul>
43495 */
43496 itemsRenderer: _propTypes2.default.func,
43497 /**
43498 * 缓冲区高度
43499 */
43500 threshold: _propTypes2.default.number,
43501 /**
43502 * 获取item高度的函数
43503 */
43504 itemSizeGetter: _propTypes2.default.func,
43505 /**
43506 * 设置跳转位置,需要设置 itemSizeGetter 才能生效, 不设置认为元素等高并取第一个元素高度作为默认高
43507 */
43508 jumpIndex: _propTypes2.default.number,
43509 className: _propTypes2.default.string
43510}, _class.defaultProps = {
43511 prefix: 'next-',
43512 itemsRenderer: function itemsRenderer(items, ref) {
43513 return _react2.default.createElement('ul', { ref: ref }, items);
43514 },
43515 minSize: 1,
43516 pageSize: 10,
43517 jumpIndex: 0,
43518 threshold: 100
43519}, _temp);
43520VirtualList.displayName = 'VirtualList';
43521exports.default = (0, _reactLifecyclesCompat.polyfill)(VirtualList);
43522module.exports = exports['default'];
43523
43524/***/ }),
43525/* 312 */
43526/***/ (function(module, exports, __webpack_require__) {
43527
43528"use strict";
43529
43530
43531exports.__esModule = true;
43532
43533var _extends2 = __webpack_require__(1);
43534
43535var _extends3 = _interopRequireDefault(_extends2);
43536
43537var _classCallCheck2 = __webpack_require__(2);
43538
43539var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
43540
43541var _possibleConstructorReturn2 = __webpack_require__(3);
43542
43543var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
43544
43545var _inherits2 = __webpack_require__(4);
43546
43547var _inherits3 = _interopRequireDefault(_inherits2);
43548
43549var _class, _temp;
43550
43551var _react = __webpack_require__(0);
43552
43553var _react2 = _interopRequireDefault(_react);
43554
43555var _propTypes = __webpack_require__(5);
43556
43557var _propTypes2 = _interopRequireDefault(_propTypes);
43558
43559var _classnames = __webpack_require__(7);
43560
43561var _classnames2 = _interopRequireDefault(_classnames);
43562
43563var _reactLifecyclesCompat = __webpack_require__(10);
43564
43565var _util = __webpack_require__(6);
43566
43567var _input = __webpack_require__(18);
43568
43569var _input2 = _interopRequireDefault(_input);
43570
43571var _base = __webpack_require__(153);
43572
43573var _base2 = _interopRequireDefault(_base);
43574
43575function _interopRequireDefault(obj) {
43576 return obj && obj.__esModule ? obj : { default: obj };
43577}
43578
43579var bindCtx = _util.func.bindCtx,
43580 noop = _util.func.noop;
43581
43582/**
43583 * Select.AutoComplete
43584 */
43585
43586var AutoComplete = (_temp = _class = function (_Base) {
43587 (0, _inherits3.default)(AutoComplete, _Base);
43588
43589 function AutoComplete(props) {
43590 (0, _classCallCheck3.default)(this, AutoComplete);
43591
43592 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
43593
43594 _this.handleChange = function (value, proxy, item) {
43595 var _this$props = _this.props,
43596 disabled = _this$props.disabled,
43597 readOnly = _this$props.readOnly,
43598 filterLocal = _this$props.filterLocal;
43599
43600 if (disabled || readOnly) {
43601 return false;
43602 }
43603
43604 var actionType = typeof proxy === 'string' ? proxy : 'change';
43605
43606 _this.isInputing = actionType === 'change';
43607
43608 if (filterLocal) {
43609 _this.setState({
43610 dataSource: _this.dataStore.updateByKey(value)
43611 });
43612
43613 _this.shouldControlPopup(_this.props, actionType);
43614 _this.setFirstHightLightKeyForMenu(value);
43615 }
43616
43617 // 非受控模式清空内部数据
43618 if (!('value' in _this.props)) {
43619 _this.setState({
43620 value: value
43621 });
43622 }
43623
43624 // 不自动高亮的情况下, highlightKey 根据value精确值走,也就是被选中元素自动高亮,这样也不会影响不在选项内的用户搜索操作
43625 if (!_this.props.autoHighlightFirstItem) {
43626 _this.setState({
43627 highlightKey: value
43628 });
43629 }
43630
43631 _this.props.onChange(value, actionType, item);
43632
43633 if (actionType === 'itemClick' || actionType === 'enter') {
43634 // 点击 item 的时候不会触发关闭,需要手动关闭,其它类型比如 keyDown 等都会有其它事件句柄处理
43635 _this.setVisible(false, actionType);
43636 }
43637 };
43638
43639 _this.isAutoComplete = true;
43640 _this.isInputing = false;
43641
43642 _this.dataStore.setOptions({ key: _this.state.value });
43643 (0, _extends3.default)(_this.state, {
43644 dataSource: _this.setDataSource(props)
43645 });
43646
43647 bindCtx(_this, ['handleTriggerKeyDown', 'handleMenuSelect', 'handleItemClick']);
43648 return _this;
43649 }
43650
43651 AutoComplete.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
43652 var state = {};
43653
43654 if ('value' in nextProps && nextProps.value !== prevState.value) {
43655 (0, _extends3.default)(state, {
43656 value: nextProps.value
43657 });
43658 }
43659
43660 if ('visible' in nextProps && nextProps.visible !== prevState.visible) {
43661 (0, _extends3.default)(state, {
43662 visible: nextProps.visible
43663 });
43664 }
43665
43666 if (Object.keys(state).length) {
43667 return state;
43668 }
43669
43670 return null;
43671 };
43672
43673 AutoComplete.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
43674 var props = this.props;
43675
43676 if ('value' in props) {
43677 this.dataStore.setOptions({ key: props.value });
43678 }
43679
43680 if (props.filter !== prevProps.filter) {
43681 this.dataStore.setOptions({
43682 filter: props.filter
43683 });
43684 }
43685 if (props.filterLocal !== prevProps.filterLocal) {
43686 this.dataStore.setOptions({
43687 filterLocal: props.filterLocal
43688 });
43689 }
43690
43691 if (prevProps.children !== props.children || prevProps.dataSource !== props.dataSource) {
43692 /* eslint-disable react/no-did-update-set-state */
43693 this.setState({
43694 dataSource: this.setDataSource(props)
43695 });
43696
43697 // remote dataSource and focused
43698 // 因为autoComplete没有下拉数据不展示,搜索并且有数据了需要自动展示下拉
43699 if (!props.filterLocal && this.isInputing) {
43700 this.shouldControlPopup(props, 'update');
43701 }
43702 if (!props.filterLocal && !props.popupContent) {
43703 this.setFirstHightLightKeyForMenu();
43704 }
43705 }
43706 };
43707
43708 AutoComplete.prototype.shouldControlPopup = function shouldControlPopup() {
43709 var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
43710 var type = arguments[1];
43711
43712 var hasPopup = props.popupContent || this.dataStore.getMenuDS().length;
43713 if (hasPopup) {
43714 this.setVisible(true, type);
43715 } else {
43716 this.setVisible(false, type);
43717 }
43718 };
43719
43720 AutoComplete.prototype.handleMenuSelect = function handleMenuSelect(keys) {
43721 var key = keys[0];
43722
43723 var mapDS = this.dataStore.getMapDS();
43724
43725 if (key in mapDS) {
43726 var item = mapDS[key];
43727 this.handleSelectEvent(key, item, 'itemClick');
43728 }
43729 };
43730
43731 AutoComplete.prototype.handleItemClick = function handleItemClick() {
43732 this.setVisible(false, 'itemClick');
43733 };
43734
43735 AutoComplete.prototype.handleSelectEvent = function handleSelectEvent(key, item, triggerType) {
43736 var value = item && item[this.props.fillProps] || key;
43737
43738 if (triggerType === 'itemClick' || triggerType === 'enter') {
43739 // 点击 item 的时候不会触发关闭,需要手动关闭,其它类型比如 keyDown 等都会有其它事件句柄处理
43740 this.setVisible(false, triggerType);
43741 }
43742
43743 this.handleChange(value, triggerType, item);
43744 };
43745
43746 AutoComplete.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
43747 if (!('visible' in this.props) && visible && !this.props.popupContent && !this.dataStore.getMenuDS().length) {
43748 return;
43749 }
43750
43751 this.setVisible(visible, type);
43752 };
43753
43754 AutoComplete.prototype.beforeClose = function beforeClose() {
43755 this.isInputing = false;
43756 };
43757
43758 /**
43759 * Handle trigger keydown event
43760 * @param {Event} e
43761 */
43762
43763 AutoComplete.prototype.handleTriggerKeyDown = function handleTriggerKeyDown(e) {
43764 var _props = this.props,
43765 popupContent = _props.popupContent,
43766 onToggleHighlightItem = _props.onToggleHighlightItem,
43767 onKeyDown = _props.onKeyDown;
43768
43769 if (popupContent) {
43770 e.stopPropagation(); //stopPropagation can make use onChange triggerd while typing space('') in Input
43771 return onKeyDown(e);
43772 }
43773
43774 switch (e.keyCode) {
43775 case _util.KEYCODE.UP:
43776 e.preventDefault();
43777 onToggleHighlightItem(this.toggleHighlightItem(-1, e), 'up');
43778 break;
43779 case _util.KEYCODE.DOWN:
43780 e.preventDefault();
43781 onToggleHighlightItem(this.toggleHighlightItem(1, e), 'down');
43782 break;
43783 case _util.KEYCODE.ENTER:
43784 e.preventDefault();
43785 this.chooseHighlightItem(e);
43786 break;
43787 case _util.KEYCODE.SPACE:
43788 // stopPropagation can make use onChange triggerd while typing space('') in Input
43789 e.stopPropagation();
43790 break;
43791 case _util.KEYCODE.ESC:
43792 e.preventDefault();
43793 this.state.visible && this.setVisible(false, 'esc');
43794 break;
43795 default:
43796 break;
43797 }
43798
43799 onKeyDown(e);
43800 };
43801
43802 // 回车 选择高亮的 item
43803
43804
43805 AutoComplete.prototype.chooseHighlightItem = function chooseHighlightItem() {
43806 if (!this.state.visible) {
43807 return false;
43808 }
43809
43810 var highlightKey = this.state.highlightKey;
43811
43812 var highlightItem = this.dataStore.getEnableDS().find(function (item) {
43813 return highlightKey === '' + item.value;
43814 });
43815
43816 if (highlightItem) {
43817 this.handleSelectEvent(highlightKey, highlightItem, 'enter');
43818 }
43819 };
43820
43821 AutoComplete.prototype.hasClear = function hasClear() {
43822 var _props2 = this.props,
43823 hasClear = _props2.hasClear,
43824 readOnly = _props2.readOnly,
43825 disabled = _props2.disabled;
43826 var value = this.state.value;
43827
43828 return value && hasClear && !readOnly && !disabled;
43829 };
43830
43831 /**
43832 * 选择器
43833 * @override
43834 * @param {object} props
43835 */
43836
43837 AutoComplete.prototype.renderSelect = function renderSelect() {
43838 var _classNames;
43839
43840 var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.props;
43841 var placeholder = props.placeholder,
43842 size = props.size,
43843 prefix = props.prefix,
43844 className = props.className,
43845 style = props.style,
43846 label = props.label,
43847 readOnly = props.readOnly,
43848 disabled = props.disabled,
43849 highlightHolder = props.highlightHolder,
43850 locale = props.locale,
43851 hasClear = props.hasClear,
43852 state = props.state,
43853 rtl = props.rtl;
43854
43855 var others = _util.obj.pickOthers(AutoComplete.propTypes, props);
43856 var othersData = _util.obj.pickAttrsWith(others, 'data-');
43857
43858 var value = this.state.value;
43859 var visible = this.state.visible;
43860
43861 // // 下拉箭头
43862 // const arrowNode = this.renderArrowNode(props, () => {
43863 // this.focusInput();
43864 // this.setVisible(!this.state.visible);
43865 // });
43866
43867 // trigger className
43868 var triggerClazz = (0, _classnames2.default)([prefix + 'select', prefix + 'select-auto-complete', prefix + 'size-' + size, className], (_classNames = {}, _classNames[prefix + 'active'] = visible, _classNames[prefix + 'disabled'] = disabled, _classNames));
43869
43870 // highlightKey into placeholder
43871 // compatible with selectPlaceHolder. TODO: removed in 2.0 version
43872 var _placeholder = placeholder || locale.autoCompletePlaceholder || locale.autoCompletePlaceHolder;
43873 if (highlightHolder && visible) {
43874 _placeholder = this.state.highlightKey || _placeholder;
43875 }
43876
43877 // Input props
43878 var _inputProps = (0, _extends3.default)({}, _util.obj.pickOthers(othersData, others), {
43879 state: state,
43880 ref: this.saveInputRef,
43881 hasClear: hasClear,
43882 value: value,
43883 size: size,
43884 disabled: disabled,
43885 readOnly: readOnly,
43886 placeholder: _placeholder,
43887 label: label,
43888 // extra: arrowNode,
43889 onChange: this.handleChange,
43890 onKeyDown: this.handleTriggerKeyDown
43891 });
43892
43893 return _react2.default.createElement('span', (0, _extends3.default)({}, othersData, {
43894 className: triggerClazz,
43895 style: style,
43896 dir: rtl ? 'rtl' : undefined,
43897 ref: this.saveSelectRef,
43898 onClick: this.focusInput
43899 }), _react2.default.createElement(_input2.default, (0, _extends3.default)({
43900 role: 'combobox',
43901 'aria-autocomplete': 'list',
43902 'aria-disabled': disabled,
43903 'aria-expanded': this.state.visible
43904 }, _inputProps)), _react2.default.createElement('span', { className: prefix + 'sr-only', 'aria-live': 'polite' }, this.state.srReader));
43905 };
43906
43907 AutoComplete.prototype.render = function render() {
43908 var _this2 = this;
43909
43910 if (this.hasClear()) {
43911 // clear 按钮点击后,会在 dom 结构中被删除掉,需要将其额外设置为安全节点,防止触发弹层的显示或隐藏
43912 var safeNode = this.props.popupProps.safeNode || [];
43913 var safeNodes = Array.isArray(safeNode) ? safeNode : [safeNode];
43914 safeNodes.push(function () {
43915 return _this2.clearNode;
43916 });
43917 this.props.popupProps.safeNode = safeNodes;
43918 }
43919
43920 return _Base.prototype.render.call(this, (0, _extends3.default)({}, this.props, { canCloseByTrigger: false }));
43921 };
43922
43923 return AutoComplete;
43924}(_base2.default), _class.propTypes = (0, _extends3.default)({}, _base2.default.propTypes, {
43925 /**
43926 * 当前值,用于受控模式
43927 */
43928 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
43929 /**
43930 * 初始化的默认值
43931 */
43932 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
43933 /**
43934 * Select发生改变时触发的回调
43935 * @param {*} value 选中的值
43936 * @param {String} actionType 触发的方式, 'itemClick', 'enter', 'change'
43937 * @param {*} item 选中的值的对象数据
43938 */
43939 onChange: _propTypes2.default.func,
43940 /**
43941 * 传入的数据源,可以动态渲染子项
43942 */
43943 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.oneOfType([_propTypes2.default.shape({
43944 value: _propTypes2.default.string,
43945 label: _propTypes2.default.any,
43946 disabled: _propTypes2.default.bool,
43947 children: _propTypes2.default.array
43948 }), _propTypes2.default.string])),
43949 /**
43950 * 填充到选择框里的值的 key,默认是 value
43951 */
43952 fillProps: _propTypes2.default.string,
43953 /**
43954 * 渲染 MenuItem 内容的方法
43955 * @param {Object} item 渲染节点的 item
43956 * @return {ReactNode} item node
43957 */
43958 itemRender: _propTypes2.default.func,
43959 // input keydown
43960 onKeyDown: _propTypes2.default.func,
43961 // 是否将当前高亮的选项作为 placeholder
43962 highlightHolder: _propTypes2.default.bool,
43963 style: _propTypes2.default.object
43964}), _class.defaultProps = (0, _extends3.default)({}, _base2.default.defaultProps, {
43965 onKeyDown: noop,
43966 fillProps: 'value'
43967}), _temp);
43968exports.default = (0, _reactLifecyclesCompat.polyfill)(AutoComplete);
43969module.exports = exports['default'];
43970
43971/***/ }),
43972/* 313 */
43973/***/ (function(module, exports, __webpack_require__) {
43974
43975"use strict";
43976
43977
43978exports.__esModule = true;
43979exports.default = undefined;
43980
43981var _classCallCheck2 = __webpack_require__(2);
43982
43983var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
43984
43985var _possibleConstructorReturn2 = __webpack_require__(3);
43986
43987var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
43988
43989var _inherits2 = __webpack_require__(4);
43990
43991var _inherits3 = _interopRequireDefault(_inherits2);
43992
43993var _class, _temp;
43994
43995var _react = __webpack_require__(0);
43996
43997var _react2 = _interopRequireDefault(_react);
43998
43999var _propTypes = __webpack_require__(5);
44000
44001var _propTypes2 = _interopRequireDefault(_propTypes);
44002
44003function _interopRequireDefault(obj) {
44004 return obj && obj.__esModule ? obj : { default: obj };
44005}
44006
44007/* istanbul ignore file */
44008
44009/**
44010 * Select.Option
44011 */
44012var Option = (_temp = _class = function (_React$Component) {
44013 (0, _inherits3.default)(Option, _React$Component);
44014
44015 function Option() {
44016 (0, _classCallCheck3.default)(this, Option);
44017 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
44018 }
44019
44020 Option.prototype.render = function render() {
44021 return this.props.children;
44022 };
44023
44024 return Option;
44025}(_react2.default.Component), _class.propTypes = {
44026 /**
44027 * 选项值
44028 */
44029 value: _propTypes2.default.any.isRequired,
44030 /**
44031 * 是否禁用
44032 */
44033 disabled: _propTypes2.default.bool,
44034 children: _propTypes2.default.any
44035}, _class._typeMark = 'next_select_option', _temp);
44036Option.displayName = 'Option';
44037exports.default = Option;
44038module.exports = exports['default'];
44039
44040/***/ }),
44041/* 314 */
44042/***/ (function(module, exports, __webpack_require__) {
44043
44044"use strict";
44045
44046
44047exports.__esModule = true;
44048exports.default = undefined;
44049
44050var _classCallCheck2 = __webpack_require__(2);
44051
44052var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44053
44054var _possibleConstructorReturn2 = __webpack_require__(3);
44055
44056var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44057
44058var _inherits2 = __webpack_require__(4);
44059
44060var _inherits3 = _interopRequireDefault(_inherits2);
44061
44062var _class, _temp;
44063
44064var _react = __webpack_require__(0);
44065
44066var _react2 = _interopRequireDefault(_react);
44067
44068var _propTypes = __webpack_require__(5);
44069
44070var _propTypes2 = _interopRequireDefault(_propTypes);
44071
44072function _interopRequireDefault(obj) {
44073 return obj && obj.__esModule ? obj : { default: obj };
44074}
44075
44076/* istanbul ignore file */
44077
44078/**
44079 * Select.OptionGroup
44080 */
44081var OptionGroup = (_temp = _class = function (_React$Component) {
44082 (0, _inherits3.default)(OptionGroup, _React$Component);
44083
44084 function OptionGroup() {
44085 (0, _classCallCheck3.default)(this, OptionGroup);
44086 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
44087 }
44088
44089 OptionGroup.prototype.render = function render() {
44090 return this.props.children;
44091 };
44092
44093 return OptionGroup;
44094}(_react2.default.Component), _class.propTypes = {
44095 /**
44096 * 设置分组的文案
44097 */
44098 label: _propTypes2.default.node,
44099 children: _propTypes2.default.any
44100}, _class._typeMark = 'next_select_option_group', _temp);
44101OptionGroup.displayName = 'OptionGroup';
44102exports.default = OptionGroup;
44103module.exports = exports['default'];
44104
44105/***/ }),
44106/* 315 */
44107/***/ (function(module, exports, __webpack_require__) {
44108
44109"use strict";
44110
44111
44112exports.__esModule = true;
44113
44114var _classCallCheck2 = __webpack_require__(2);
44115
44116var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44117
44118var _possibleConstructorReturn2 = __webpack_require__(3);
44119
44120var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44121
44122var _inherits2 = __webpack_require__(4);
44123
44124var _inherits3 = _interopRequireDefault(_inherits2);
44125
44126var _class, _temp2; /* istanbul ignore file */
44127
44128var _react = __webpack_require__(0);
44129
44130var _react2 = _interopRequireDefault(_react);
44131
44132var _icon = __webpack_require__(11);
44133
44134var _icon2 = _interopRequireDefault(_icon);
44135
44136var _dropdown = __webpack_require__(48);
44137
44138var _dropdown2 = _interopRequireDefault(_dropdown);
44139
44140var _menu = __webpack_require__(154);
44141
44142var _menu2 = _interopRequireDefault(_menu);
44143
44144var _utils = __webpack_require__(22);
44145
44146function _interopRequireDefault(obj) {
44147 return obj && obj.__esModule ? obj : { default: obj };
44148}
44149
44150/* eslint-disable */
44151var DatePanelHeader = (_temp2 = _class = function (_React$PureComponent) {
44152 (0, _inherits3.default)(DatePanelHeader, _React$PureComponent);
44153
44154 function DatePanelHeader() {
44155 var _temp, _this, _ret;
44156
44157 (0, _classCallCheck3.default)(this, DatePanelHeader);
44158
44159 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
44160 args[_key] = arguments[_key];
44161 }
44162
44163 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.selectContainerHandler = function (target) {
44164 return target.parentNode;
44165 }, _this.onYearChange = function (year) {
44166 var _this$props = _this.props,
44167 visibleMonth = _this$props.visibleMonth,
44168 changeVisibleMonth = _this$props.changeVisibleMonth;
44169
44170 changeVisibleMonth(visibleMonth.clone().year(year), 'yearSelect');
44171 }, _this.changeVisibleMonth = function (month) {
44172 var _this$props2 = _this.props,
44173 visibleMonth = _this$props2.visibleMonth,
44174 changeVisibleMonth = _this$props2.changeVisibleMonth;
44175
44176 changeVisibleMonth(visibleMonth.clone().month(month), 'monthSelect');
44177 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
44178 }
44179
44180 DatePanelHeader.prototype.render = function render() {
44181 var _this2 = this;
44182
44183 var _props = this.props,
44184 prefix = _props.prefix,
44185 visibleMonth = _props.visibleMonth,
44186 momentLocale = _props.momentLocale,
44187 locale = _props.locale,
44188 changeMode = _props.changeMode,
44189 goNextMonth = _props.goNextMonth,
44190 goNextYear = _props.goNextYear,
44191 goPrevMonth = _props.goPrevMonth,
44192 goPrevYear = _props.goPrevYear,
44193 disableChangeMode = _props.disableChangeMode,
44194 yearRangeOffset = _props.yearRangeOffset,
44195 _props$yearRange = _props.yearRange,
44196 yearRange = _props$yearRange === undefined ? [] : _props$yearRange;
44197
44198 var localedMonths = momentLocale.months();
44199 var monthLabel = localedMonths[visibleMonth.month()];
44200 var yearLabel = visibleMonth.year();
44201 var btnCls = prefix + 'calendar-btn';
44202
44203 var monthButton = _react2.default.createElement('button', {
44204 role: 'button',
44205 type: 'button',
44206 className: btnCls,
44207 title: monthLabel,
44208 onClick: function onClick() {
44209 return changeMode('month', 'start');
44210 }
44211 }, monthLabel);
44212
44213 var yearButton = _react2.default.createElement('button', {
44214 role: 'button',
44215 type: 'button',
44216 className: btnCls,
44217 title: yearLabel,
44218 onClick: function onClick() {
44219 return changeMode('year', 'start');
44220 }
44221 }, yearLabel);
44222
44223 if (disableChangeMode) {
44224 var months = (0, _utils.getMonths)(momentLocale);
44225 var years = (0, _utils.getYears)(yearRange, yearRangeOffset, visibleMonth.year());
44226
44227 monthButton = _react2.default.createElement(_dropdown2.default, {
44228 align: 'tc bc',
44229 container: this.selectContainerHandler,
44230 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: monthLabel }, monthLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44231 triggerType: 'click'
44232 }, _react2.default.createElement(_menu2.default, {
44233 prefix: prefix,
44234 value: visibleMonth.month(),
44235 dataSource: months,
44236 onChange: function onChange(value) {
44237 return _this2.changeVisibleMonth(value);
44238 }
44239 }));
44240
44241 yearButton = _react2.default.createElement(_dropdown2.default, {
44242 align: 'tc bc',
44243 container: this.selectContainerHandler,
44244 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: yearLabel }, yearLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44245 triggerType: 'click'
44246 }, _react2.default.createElement(_menu2.default, {
44247 prefix: prefix,
44248 value: visibleMonth.year(),
44249 dataSource: years,
44250 onChange: this.onYearChange
44251 }));
44252 }
44253
44254 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
44255 role: 'button',
44256 type: 'button',
44257 title: locale.prevYear,
44258 className: btnCls + ' ' + btnCls + '-prev-year',
44259 onClick: goPrevYear
44260 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-left', className: prefix + 'calendar-symbol-prev-super' })), _react2.default.createElement('button', {
44261 role: 'button',
44262 type: 'button',
44263 title: locale.prevMonth,
44264 className: btnCls + ' ' + btnCls + '-prev-month',
44265 onClick: goPrevMonth
44266 }, _react2.default.createElement(_icon2.default, { type: 'arrow-left', className: prefix + 'calendar-symbol-prev' })), _react2.default.createElement('div', { className: prefix + 'calendar-panel-header-full' }, monthButton, yearButton), _react2.default.createElement('button', {
44267 role: 'button',
44268 type: 'button',
44269 title: locale.nextMonth,
44270 className: btnCls + ' ' + btnCls + '-next-month',
44271 onClick: goNextMonth
44272 }, _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'calendar-symbol-next' })), _react2.default.createElement('button', {
44273 role: 'button',
44274 type: 'button',
44275 title: locale.nextYear,
44276 className: btnCls + ' ' + btnCls + '-next-year',
44277 onClick: goNextYear
44278 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
44279 };
44280
44281 return DatePanelHeader;
44282}(_react2.default.PureComponent), _class.defaultProps = {
44283 yearRangeOffset: 10
44284}, _temp2);
44285exports.default = DatePanelHeader;
44286module.exports = exports['default'];
44287
44288/***/ }),
44289/* 316 */
44290/***/ (function(module, exports, __webpack_require__) {
44291
44292"use strict";
44293
44294
44295exports.__esModule = true;
44296
44297var _classCallCheck2 = __webpack_require__(2);
44298
44299var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44300
44301var _possibleConstructorReturn2 = __webpack_require__(3);
44302
44303var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44304
44305var _inherits2 = __webpack_require__(4);
44306
44307var _inherits3 = _interopRequireDefault(_inherits2);
44308
44309var _react = __webpack_require__(0);
44310
44311var _react2 = _interopRequireDefault(_react);
44312
44313var _utils = __webpack_require__(22);
44314
44315function _interopRequireDefault(obj) {
44316 return obj && obj.__esModule ? obj : { default: obj };
44317}
44318
44319var DateTableHead = function (_PureComponent) {
44320 (0, _inherits3.default)(DateTableHead, _PureComponent);
44321
44322 function DateTableHead() {
44323 (0, _classCallCheck3.default)(this, DateTableHead);
44324 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
44325 }
44326
44327 DateTableHead.prototype.render = function render() {
44328 var _props = this.props,
44329 prefix = _props.prefix,
44330 momentLocale = _props.momentLocale;
44331
44332 var firstDayOfWeek = momentLocale.firstDayOfWeek();
44333 var weekdaysShort = momentLocale.weekdaysShort();
44334
44335 var elements = [];
44336 for (var i = 0; i < _utils.DAYS_OF_WEEK; i++) {
44337 var index = (firstDayOfWeek + i) % _utils.DAYS_OF_WEEK;
44338 elements.push(_react2.default.createElement('th', { key: i, className: prefix + 'calendar-th', role: 'cell' }, weekdaysShort[index]));
44339 }
44340
44341 return _react2.default.createElement('thead', { className: prefix + 'calendar-thead', role: 'rowgroup' }, _react2.default.createElement('tr', { role: 'row' }, elements));
44342 };
44343
44344 return DateTableHead;
44345}(_react.PureComponent);
44346
44347exports.default = DateTableHead;
44348module.exports = exports['default'];
44349
44350/***/ }),
44351/* 317 */
44352/***/ (function(module, exports, __webpack_require__) {
44353
44354"use strict";
44355
44356
44357exports.__esModule = true;
44358
44359var _classCallCheck2 = __webpack_require__(2);
44360
44361var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44362
44363var _possibleConstructorReturn2 = __webpack_require__(3);
44364
44365var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44366
44367var _inherits2 = __webpack_require__(4);
44368
44369var _inherits3 = _interopRequireDefault(_inherits2);
44370
44371var _class, _temp2; /* istanbul ignore file */
44372
44373var _react = __webpack_require__(0);
44374
44375var _react2 = _interopRequireDefault(_react);
44376
44377var _icon = __webpack_require__(11);
44378
44379var _icon2 = _interopRequireDefault(_icon);
44380
44381var _dropdown = __webpack_require__(48);
44382
44383var _dropdown2 = _interopRequireDefault(_dropdown);
44384
44385var _menu = __webpack_require__(154);
44386
44387var _menu2 = _interopRequireDefault(_menu);
44388
44389var _utils = __webpack_require__(22);
44390
44391function _interopRequireDefault(obj) {
44392 return obj && obj.__esModule ? obj : { default: obj };
44393}
44394
44395/* eslint-disable */
44396var RangePanelHeader = (_temp2 = _class = function (_React$PureComponent) {
44397 (0, _inherits3.default)(RangePanelHeader, _React$PureComponent);
44398
44399 function RangePanelHeader() {
44400 var _temp, _this, _ret;
44401
44402 (0, _classCallCheck3.default)(this, RangePanelHeader);
44403
44404 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
44405 args[_key] = arguments[_key];
44406 }
44407
44408 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args))), _this), _this.selectContainerHandler = function (target) {
44409 return target.parentNode;
44410 }, _this.onYearChange = function (visibleMonth, year, tag) {
44411 var changeVisibleMonth = _this.props.changeVisibleMonth;
44412
44413 var startYear = visibleMonth.clone().year(year).add(tag === 'end' ? -1 : 0, 'month');
44414 changeVisibleMonth(startYear, 'yearSelect');
44415 }, _this.changeVisibleMonth = function (visibleMonth, month, tag) {
44416 var changeVisibleMonth = _this.props.changeVisibleMonth;
44417
44418 var startMonth = tag === 'end' ? month - 1 : month;
44419 changeVisibleMonth(visibleMonth.clone().month(startMonth), 'monthSelect');
44420 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
44421 }
44422
44423 RangePanelHeader.prototype.render = function render() {
44424 var _this2 = this;
44425
44426 var _props = this.props,
44427 prefix = _props.prefix,
44428 startVisibleMonth = _props.startVisibleMonth,
44429 endVisibleMonth = _props.endVisibleMonth,
44430 _props$yearRange = _props.yearRange,
44431 yearRange = _props$yearRange === undefined ? [] : _props$yearRange,
44432 yearRangeOffset = _props.yearRangeOffset,
44433 momentLocale = _props.momentLocale,
44434 locale = _props.locale,
44435 changeMode = _props.changeMode,
44436 goNextMonth = _props.goNextMonth,
44437 goNextYear = _props.goNextYear,
44438 goPrevMonth = _props.goPrevMonth,
44439 goPrevYear = _props.goPrevYear,
44440 disableChangeMode = _props.disableChangeMode;
44441
44442 var localedMonths = momentLocale.months();
44443 var startMonthLabel = localedMonths[startVisibleMonth.month()];
44444 var endMonthLabel = localedMonths[endVisibleMonth.month()];
44445 var startYearLabel = startVisibleMonth.year();
44446 var endYearLabel = endVisibleMonth.year();
44447 var btnCls = prefix + 'calendar-btn';
44448
44449 var months = (0, _utils.getMonths)(momentLocale);
44450 var startYears = (0, _utils.getYears)(yearRange, yearRangeOffset, startVisibleMonth.year());
44451 var endYears = (0, _utils.getYears)(yearRange, yearRangeOffset, endVisibleMonth.year());
44452
44453 return _react2.default.createElement('div', { className: prefix + 'calendar-panel-header' }, _react2.default.createElement('button', {
44454 role: 'button',
44455 type: 'button',
44456 title: locale.prevYear,
44457 className: btnCls + ' ' + btnCls + '-prev-year',
44458 onClick: goPrevYear
44459 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-left', className: prefix + 'calendar-symbol-prev-super' })), _react2.default.createElement('button', {
44460 role: 'button',
44461 type: 'button',
44462 title: locale.prevMonth,
44463 className: btnCls + ' ' + btnCls + '-prev-month',
44464 onClick: goPrevMonth
44465 }, _react2.default.createElement(_icon2.default, { type: 'arrow-left', className: prefix + 'calendar-symbol-prev' })), _react2.default.createElement('div', { className: prefix + 'calendar-panel-header-left' }, disableChangeMode ? _react2.default.createElement(_dropdown2.default, {
44466 align: 'tc bc',
44467 container: this.selectContainerHandler,
44468 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: startMonthLabel }, startMonthLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44469 triggerType: 'click'
44470 }, _react2.default.createElement(_menu2.default, {
44471 prefix: prefix,
44472 value: startVisibleMonth.month(),
44473 dataSource: months,
44474 onChange: function onChange(value) {
44475 return _this2.changeVisibleMonth(startVisibleMonth, value, 'start');
44476 }
44477 })) : _react2.default.createElement('button', {
44478 role: 'button',
44479 type: 'button',
44480 title: startMonthLabel,
44481 className: btnCls,
44482 onClick: function onClick() {
44483 return changeMode('month', 'start');
44484 }
44485 }, startMonthLabel), disableChangeMode ? _react2.default.createElement(_dropdown2.default, {
44486 align: 'tc bc',
44487 container: this.selectContainerHandler,
44488 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: startYearLabel }, startYearLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44489 triggerType: 'click'
44490 }, _react2.default.createElement(_menu2.default, {
44491 prefix: prefix,
44492 value: startVisibleMonth.year(),
44493 dataSource: startYears,
44494 onChange: function onChange(v) {
44495 return _this2.onYearChange(startVisibleMonth, v, 'start');
44496 }
44497 })) : _react2.default.createElement('button', {
44498 role: 'button',
44499 type: 'button',
44500 title: startYearLabel,
44501 className: btnCls,
44502 onClick: function onClick() {
44503 return changeMode('year', 'start');
44504 }
44505 }, startYearLabel)), _react2.default.createElement('div', { className: prefix + 'calendar-panel-header-right' }, disableChangeMode ? _react2.default.createElement(_dropdown2.default, {
44506 align: 'tc bc',
44507 container: this.selectContainerHandler,
44508 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: endMonthLabel }, endMonthLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44509 triggerType: 'click'
44510 }, _react2.default.createElement(_menu2.default, {
44511 prefix: prefix,
44512 value: endVisibleMonth.month(),
44513 dataSource: months,
44514 onChange: function onChange(value) {
44515 return _this2.changeVisibleMonth(endVisibleMonth, value, 'end');
44516 }
44517 })) : _react2.default.createElement('button', {
44518 role: 'button',
44519 type: 'button',
44520 title: endMonthLabel,
44521 className: btnCls,
44522 onClick: function onClick() {
44523 return changeMode('month', 'end');
44524 }
44525 }, endMonthLabel), disableChangeMode ? _react2.default.createElement(_dropdown2.default, {
44526 align: 'tc bc',
44527 container: this.selectContainerHandler,
44528 trigger: _react2.default.createElement('button', { role: 'button', type: 'button', className: btnCls, title: endYearLabel }, endYearLabel, _react2.default.createElement(_icon2.default, { type: 'arrow-down' })),
44529 triggerType: 'click'
44530 }, _react2.default.createElement(_menu2.default, {
44531 prefix: prefix,
44532 value: endVisibleMonth.year(),
44533 dataSource: endYears,
44534 onChange: function onChange(v) {
44535 return _this2.onYearChange(endVisibleMonth, v, 'end');
44536 }
44537 })) : _react2.default.createElement('button', {
44538 role: 'button',
44539 type: 'button',
44540 title: endYearLabel,
44541 className: btnCls,
44542 onClick: function onClick() {
44543 return changeMode('year', 'end');
44544 }
44545 }, endYearLabel)), _react2.default.createElement('button', {
44546 role: 'button',
44547 type: 'button',
44548 title: locale.nextMonth,
44549 className: btnCls + ' ' + btnCls + '-next-month',
44550 onClick: goNextMonth
44551 }, _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'calendar-symbol-next' })), _react2.default.createElement('button', {
44552 role: 'button',
44553 type: 'button',
44554 title: locale.nextYear,
44555 className: btnCls + ' ' + btnCls + '-next-year',
44556 onClick: goNextYear
44557 }, _react2.default.createElement(_icon2.default, { type: 'arrow-double-right', className: prefix + 'calendar-symbol-next-super' })));
44558 };
44559
44560 return RangePanelHeader;
44561}(_react2.default.PureComponent), _class.defaultProps = {
44562 yearRangeOffset: 10
44563}, _temp2);
44564exports.default = RangePanelHeader;
44565module.exports = exports['default'];
44566
44567/***/ }),
44568/* 318 */
44569/***/ (function(module, exports, __webpack_require__) {
44570
44571"use strict";
44572
44573
44574exports.__esModule = true;
44575
44576var _extends2 = __webpack_require__(1);
44577
44578var _extends3 = _interopRequireDefault(_extends2);
44579
44580var _objectWithoutProperties2 = __webpack_require__(8);
44581
44582var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
44583
44584var _configProvider = __webpack_require__(9);
44585
44586var _configProvider2 = _interopRequireDefault(_configProvider);
44587
44588var _card = __webpack_require__(319);
44589
44590var _card2 = _interopRequireDefault(_card);
44591
44592var _header = __webpack_require__(320);
44593
44594var _header2 = _interopRequireDefault(_header);
44595
44596var _bulletHeader = __webpack_require__(161);
44597
44598var _bulletHeader2 = _interopRequireDefault(_bulletHeader);
44599
44600var _media = __webpack_require__(163);
44601
44602var _media2 = _interopRequireDefault(_media);
44603
44604var _divider = __webpack_require__(321);
44605
44606var _divider2 = _interopRequireDefault(_divider);
44607
44608var _content = __webpack_require__(322);
44609
44610var _content2 = _interopRequireDefault(_content);
44611
44612var _collapseContent = __webpack_require__(162);
44613
44614var _collapseContent2 = _interopRequireDefault(_collapseContent);
44615
44616var _actions = __webpack_require__(164);
44617
44618var _actions2 = _interopRequireDefault(_actions);
44619
44620function _interopRequireDefault(obj) {
44621 return obj && obj.__esModule ? obj : { default: obj };
44622}
44623
44624_card2.default.Header = _header2.default;
44625_card2.default.Media = _media2.default;
44626_card2.default.Divider = _divider2.default;
44627_card2.default.Content = _content2.default;
44628_card2.default.Actions = _actions2.default;
44629_card2.default.BulletHeader = _bulletHeader2.default;
44630_card2.default.CollaspeContent = _collapseContent2.default;
44631_card2.default.CollapseContent = _collapseContent2.default;
44632
44633exports.default = _configProvider2.default.config(_card2.default, {
44634 transform: /* istanbul ignore next */function transform(props, deprecated) {
44635 if ('titlePrefixLine' in props) {
44636 deprecated('titlePrefixLine', 'showTitleBullet', 'Card');
44637 var _props = props,
44638 titlePrefixLine = _props.titlePrefixLine,
44639 others = (0, _objectWithoutProperties3.default)(_props, ['titlePrefixLine']);
44640
44641 props = (0, _extends3.default)({ showTitleBullet: titlePrefixLine }, others);
44642 }
44643 if ('titleBottomLine' in props) {
44644 deprecated('titleBottomLine', 'showHeadDivider', 'Card');
44645
44646 var _props2 = props,
44647 titleBottomLine = _props2.titleBottomLine,
44648 _others = (0, _objectWithoutProperties3.default)(_props2, ['titleBottomLine']);
44649
44650 props = (0, _extends3.default)({ showHeadDivider: titleBottomLine }, _others);
44651 }
44652 if ('bodyHeight' in props) {
44653 deprecated('bodyHeight', 'contentHeight', 'Card');
44654
44655 var _props3 = props,
44656 bodyHeight = _props3.bodyHeight,
44657 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['bodyHeight']);
44658
44659 props = (0, _extends3.default)({ contentHeight: bodyHeight }, _others2);
44660 }
44661
44662 return props;
44663 }
44664});
44665module.exports = exports['default'];
44666
44667/***/ }),
44668/* 319 */
44669/***/ (function(module, exports, __webpack_require__) {
44670
44671"use strict";
44672
44673
44674exports.__esModule = true;
44675exports.default = undefined;
44676
44677var _extends2 = __webpack_require__(1);
44678
44679var _extends3 = _interopRequireDefault(_extends2);
44680
44681var _classCallCheck2 = __webpack_require__(2);
44682
44683var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44684
44685var _possibleConstructorReturn2 = __webpack_require__(3);
44686
44687var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44688
44689var _inherits2 = __webpack_require__(4);
44690
44691var _inherits3 = _interopRequireDefault(_inherits2);
44692
44693var _class, _temp; /* eslint-disable valid-jsdoc */
44694
44695var _react = __webpack_require__(0);
44696
44697var _react2 = _interopRequireDefault(_react);
44698
44699var _propTypes = __webpack_require__(5);
44700
44701var _propTypes2 = _interopRequireDefault(_propTypes);
44702
44703var _classnames = __webpack_require__(7);
44704
44705var _classnames2 = _interopRequireDefault(_classnames);
44706
44707var _configProvider = __webpack_require__(9);
44708
44709var _configProvider2 = _interopRequireDefault(_configProvider);
44710
44711var _bulletHeader = __webpack_require__(161);
44712
44713var _bulletHeader2 = _interopRequireDefault(_bulletHeader);
44714
44715var _collapseContent = __webpack_require__(162);
44716
44717var _collapseContent2 = _interopRequireDefault(_collapseContent);
44718
44719var _media = __webpack_require__(163);
44720
44721var _media2 = _interopRequireDefault(_media);
44722
44723var _actions = __webpack_require__(164);
44724
44725var _actions2 = _interopRequireDefault(_actions);
44726
44727var _util = __webpack_require__(6);
44728
44729function _interopRequireDefault(obj) {
44730 return obj && obj.__esModule ? obj : { default: obj };
44731}
44732
44733var pickOthers = _util.obj.pickOthers;
44734
44735/**
44736 * Card
44737 * @order 0
44738 */
44739
44740var Card = (_temp = _class = function (_React$Component) {
44741 (0, _inherits3.default)(Card, _React$Component);
44742
44743 function Card() {
44744 (0, _classCallCheck3.default)(this, Card);
44745 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
44746 }
44747
44748 Card.prototype.render = function render() {
44749 var _classNames;
44750
44751 var _props = this.props,
44752 prefix = _props.prefix,
44753 className = _props.className,
44754 title = _props.title,
44755 subTitle = _props.subTitle,
44756 extra = _props.extra,
44757 showTitleBullet = _props.showTitleBullet,
44758 showHeadDivider = _props.showHeadDivider,
44759 children = _props.children,
44760 rtl = _props.rtl,
44761 contentHeight = _props.contentHeight,
44762 free = _props.free,
44763 actions = _props.actions,
44764 hasBorder = _props.hasBorder,
44765 media = _props.media;
44766
44767 var cardCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'card'] = true, _classNames[prefix + 'card-free'] = free, _classNames[prefix + 'card-noborder'] = !hasBorder, _classNames[prefix + 'card-show-divider'] = showHeadDivider, _classNames[prefix + 'card-hide-divider'] = !showHeadDivider, _classNames), className);
44768
44769 var others = pickOthers(Object.keys(Card.propTypes), this.props);
44770
44771 others.dir = rtl ? 'rtl' : undefined;
44772
44773 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: cardCls }), media && _react2.default.createElement(_media2.default, null, media), _react2.default.createElement(_bulletHeader2.default, { title: title, subTitle: subTitle, extra: extra, showTitleBullet: showTitleBullet }), free ? children : _react2.default.createElement(_collapseContent2.default, { contentHeight: contentHeight }, children), actions && _react2.default.createElement(_actions2.default, null, actions));
44774 };
44775
44776 return Card;
44777}(_react2.default.Component), _class.displayName = 'Card', _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
44778 prefix: _propTypes2.default.string,
44779 rtl: _propTypes2.default.bool,
44780 /**
44781 * 卡片的上的图片 / 视频
44782 */
44783 media: _propTypes2.default.node,
44784 /**
44785 * 卡片的标题
44786 */
44787 title: _propTypes2.default.node,
44788 /**
44789 * 卡片的副标题
44790 */
44791 subTitle: _propTypes2.default.node,
44792 /**
44793 * 卡片操作组,位置在卡片底部
44794 */
44795 actions: _propTypes2.default.node,
44796 /**
44797 * 是否显示标题的项目符号
44798 */
44799 showTitleBullet: _propTypes2.default.bool,
44800 /**
44801 * 是否展示头部的分隔线
44802 */
44803 showHeadDivider: _propTypes2.default.bool,
44804 /**
44805 * 内容区域的固定高度
44806 */
44807 contentHeight: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
44808 /**
44809 * 标题区域的用户自定义内容
44810 */
44811 extra: _propTypes2.default.node,
44812 /**
44813 * 是否开启自由模式,开启后card 将使用子组件配合使用, 设置此项后 title, subtitle, 等等属性都将失效
44814 */
44815 free: _propTypes2.default.bool,
44816 /**
44817 * 是否带边框
44818 * @version 1.24
44819 */
44820 hasBorder: _propTypes2.default.bool,
44821 className: _propTypes2.default.string,
44822 children: _propTypes2.default.node
44823}), _class.defaultProps = {
44824 prefix: 'next-',
44825 free: false,
44826 showTitleBullet: true,
44827 showHeadDivider: true,
44828 hasBorder: true,
44829 contentHeight: 120
44830}, _temp);
44831Card.displayName = 'Card';
44832exports.default = Card;
44833module.exports = exports['default'];
44834
44835/***/ }),
44836/* 320 */
44837/***/ (function(module, exports, __webpack_require__) {
44838
44839"use strict";
44840
44841
44842exports.__esModule = true;
44843
44844var _extends2 = __webpack_require__(1);
44845
44846var _extends3 = _interopRequireDefault(_extends2);
44847
44848var _objectWithoutProperties2 = __webpack_require__(8);
44849
44850var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
44851
44852var _classCallCheck2 = __webpack_require__(2);
44853
44854var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44855
44856var _possibleConstructorReturn2 = __webpack_require__(3);
44857
44858var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44859
44860var _inherits2 = __webpack_require__(4);
44861
44862var _inherits3 = _interopRequireDefault(_inherits2);
44863
44864var _class, _temp;
44865
44866var _react = __webpack_require__(0);
44867
44868var _react2 = _interopRequireDefault(_react);
44869
44870var _propTypes = __webpack_require__(5);
44871
44872var _propTypes2 = _interopRequireDefault(_propTypes);
44873
44874var _classnames = __webpack_require__(7);
44875
44876var _classnames2 = _interopRequireDefault(_classnames);
44877
44878var _configProvider = __webpack_require__(9);
44879
44880var _configProvider2 = _interopRequireDefault(_configProvider);
44881
44882function _interopRequireDefault(obj) {
44883 return obj && obj.__esModule ? obj : { default: obj };
44884}
44885
44886/**
44887 * Card.Header
44888 * @order 2
44889 */
44890var CardHeader = (_temp = _class = function (_Component) {
44891 (0, _inherits3.default)(CardHeader, _Component);
44892
44893 function CardHeader() {
44894 (0, _classCallCheck3.default)(this, CardHeader);
44895 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
44896 }
44897
44898 CardHeader.prototype.render = function render() {
44899 var _props = this.props,
44900 prefix = _props.prefix,
44901 title = _props.title,
44902 subTitle = _props.subTitle,
44903 extra = _props.extra,
44904 className = _props.className,
44905 Component = _props.component,
44906 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'title', 'subTitle', 'extra', 'className', 'component']);
44907
44908 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
44909 className: (0, _classnames2.default)(prefix + 'card-header', className)
44910 }), extra && _react2.default.createElement('div', { className: prefix + 'card-header-extra' }, extra), _react2.default.createElement('div', { className: prefix + 'card-header-titles' }, title && _react2.default.createElement('div', { className: prefix + 'card-header-title' }, title), subTitle && _react2.default.createElement('div', { className: prefix + 'card-header-subtitle' }, subTitle)));
44911 };
44912
44913 return CardHeader;
44914}(_react.Component), _class.propTypes = {
44915 prefix: _propTypes2.default.string,
44916 /**
44917 * 卡片的标题
44918 */
44919 title: _propTypes2.default.node,
44920 /**
44921 * 卡片的副标题
44922 */
44923 subTitle: _propTypes2.default.node,
44924 /**
44925 * 标题区域的用户自定义内容
44926 */
44927 extra: _propTypes2.default.node,
44928 /**
44929 * 设置标签类型
44930 */
44931 component: _propTypes2.default.elementType,
44932 className: _propTypes2.default.string
44933}, _class.defaultProps = {
44934 prefix: 'next-',
44935 component: 'div'
44936}, _temp);
44937CardHeader.displayName = 'CardHeader';
44938exports.default = _configProvider2.default.config(CardHeader);
44939module.exports = exports['default'];
44940
44941/***/ }),
44942/* 321 */
44943/***/ (function(module, exports, __webpack_require__) {
44944
44945"use strict";
44946
44947
44948exports.__esModule = true;
44949
44950var _extends2 = __webpack_require__(1);
44951
44952var _extends3 = _interopRequireDefault(_extends2);
44953
44954var _objectWithoutProperties2 = __webpack_require__(8);
44955
44956var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
44957
44958var _classCallCheck2 = __webpack_require__(2);
44959
44960var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
44961
44962var _possibleConstructorReturn2 = __webpack_require__(3);
44963
44964var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
44965
44966var _inherits2 = __webpack_require__(4);
44967
44968var _inherits3 = _interopRequireDefault(_inherits2);
44969
44970var _class, _temp;
44971
44972var _react = __webpack_require__(0);
44973
44974var _react2 = _interopRequireDefault(_react);
44975
44976var _propTypes = __webpack_require__(5);
44977
44978var _propTypes2 = _interopRequireDefault(_propTypes);
44979
44980var _classnames = __webpack_require__(7);
44981
44982var _classnames2 = _interopRequireDefault(_classnames);
44983
44984var _configProvider = __webpack_require__(9);
44985
44986var _configProvider2 = _interopRequireDefault(_configProvider);
44987
44988function _interopRequireDefault(obj) {
44989 return obj && obj.__esModule ? obj : { default: obj };
44990}
44991
44992/**
44993 * Card.Divider
44994 * @order 4
44995 */
44996var CardDivider = (_temp = _class = function (_Component) {
44997 (0, _inherits3.default)(CardDivider, _Component);
44998
44999 function CardDivider() {
45000 (0, _classCallCheck3.default)(this, CardDivider);
45001 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
45002 }
45003
45004 CardDivider.prototype.render = function render() {
45005 var _classNames;
45006
45007 var _props = this.props,
45008 prefix = _props.prefix,
45009 Component = _props.component,
45010 inset = _props.inset,
45011 className = _props.className,
45012 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'component', 'inset', 'className']);
45013
45014 var dividerClassName = (0, _classnames2.default)(prefix + 'card-divider', (_classNames = {}, _classNames[prefix + 'card-divider--inset'] = inset, _classNames), className);
45015
45016 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, { className: dividerClassName }));
45017 };
45018
45019 return CardDivider;
45020}(_react.Component), _class.propTypes = {
45021 prefix: _propTypes2.default.string,
45022 /**
45023 * 设置标签类型
45024 */
45025 component: _propTypes2.default.elementType,
45026 /**
45027 * 分割线是否向内缩进
45028 */
45029 inset: _propTypes2.default.bool,
45030 className: _propTypes2.default.string
45031}, _class.defaultProps = {
45032 prefix: 'next-',
45033 component: 'hr'
45034}, _temp);
45035CardDivider.displayName = 'CardDivider';
45036exports.default = _configProvider2.default.config(CardDivider);
45037module.exports = exports['default'];
45038
45039/***/ }),
45040/* 322 */
45041/***/ (function(module, exports, __webpack_require__) {
45042
45043"use strict";
45044
45045
45046exports.__esModule = true;
45047
45048var _extends2 = __webpack_require__(1);
45049
45050var _extends3 = _interopRequireDefault(_extends2);
45051
45052var _objectWithoutProperties2 = __webpack_require__(8);
45053
45054var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
45055
45056var _classCallCheck2 = __webpack_require__(2);
45057
45058var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
45059
45060var _possibleConstructorReturn2 = __webpack_require__(3);
45061
45062var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
45063
45064var _inherits2 = __webpack_require__(4);
45065
45066var _inherits3 = _interopRequireDefault(_inherits2);
45067
45068var _class, _temp;
45069
45070var _react = __webpack_require__(0);
45071
45072var _react2 = _interopRequireDefault(_react);
45073
45074var _propTypes = __webpack_require__(5);
45075
45076var _propTypes2 = _interopRequireDefault(_propTypes);
45077
45078var _classnames = __webpack_require__(7);
45079
45080var _classnames2 = _interopRequireDefault(_classnames);
45081
45082var _configProvider = __webpack_require__(9);
45083
45084var _configProvider2 = _interopRequireDefault(_configProvider);
45085
45086function _interopRequireDefault(obj) {
45087 return obj && obj.__esModule ? obj : { default: obj };
45088}
45089
45090/**
45091 * Card.Content
45092 * @order 3
45093 */
45094var CardContent = (_temp = _class = function (_Component) {
45095 (0, _inherits3.default)(CardContent, _Component);
45096
45097 function CardContent() {
45098 (0, _classCallCheck3.default)(this, CardContent);
45099 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
45100 }
45101
45102 CardContent.prototype.render = function render() {
45103 var _props = this.props,
45104 prefix = _props.prefix,
45105 className = _props.className,
45106 Component = _props.component,
45107 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'component']);
45108
45109 return _react2.default.createElement(Component, (0, _extends3.default)({}, others, {
45110 className: (0, _classnames2.default)(prefix + 'card-content-container', className)
45111 }));
45112 };
45113
45114 return CardContent;
45115}(_react.Component), _class.propTypes = {
45116 prefix: _propTypes2.default.string,
45117 /**
45118 * 设置标签类型
45119 */
45120 component: _propTypes2.default.elementType,
45121 className: _propTypes2.default.string
45122}, _class.defaultProps = {
45123 prefix: 'next-',
45124 component: 'div'
45125}, _temp);
45126CardContent.displayName = 'CardContent';
45127exports.default = _configProvider2.default.config(CardContent);
45128module.exports = exports['default'];
45129
45130/***/ }),
45131/* 323 */
45132/***/ (function(module, exports, __webpack_require__) {
45133
45134"use strict";
45135
45136
45137exports.__esModule = true;
45138
45139var _classCallCheck2 = __webpack_require__(2);
45140
45141var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
45142
45143var _possibleConstructorReturn2 = __webpack_require__(3);
45144
45145var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
45146
45147var _inherits2 = __webpack_require__(4);
45148
45149var _inherits3 = _interopRequireDefault(_inherits2);
45150
45151var _extends2 = __webpack_require__(1);
45152
45153var _extends3 = _interopRequireDefault(_extends2);
45154
45155var _class, _temp;
45156
45157var _react = __webpack_require__(0);
45158
45159var _react2 = _interopRequireDefault(_react);
45160
45161var _propTypes = __webpack_require__(5);
45162
45163var _propTypes2 = _interopRequireDefault(_propTypes);
45164
45165var _reactLifecyclesCompat = __webpack_require__(10);
45166
45167var _lodash = __webpack_require__(166);
45168
45169var _lodash2 = _interopRequireDefault(_lodash);
45170
45171var _classnames = __webpack_require__(7);
45172
45173var _classnames2 = _interopRequireDefault(_classnames);
45174
45175var _menu = __webpack_require__(16);
45176
45177var _menu2 = _interopRequireDefault(_menu);
45178
45179var _util = __webpack_require__(6);
45180
45181var _menu3 = __webpack_require__(325);
45182
45183var _menu4 = _interopRequireDefault(_menu3);
45184
45185var _item = __webpack_require__(326);
45186
45187var _item2 = _interopRequireDefault(_item);
45188
45189var _utils = __webpack_require__(327);
45190
45191function _interopRequireDefault(obj) {
45192 return obj && obj.__esModule ? obj : { default: obj };
45193}
45194
45195var bindCtx = _util.func.bindCtx;
45196var pickOthers = _util.obj.pickOthers;
45197var addClass = _util.dom.addClass,
45198 removeClass = _util.dom.removeClass,
45199 setStyle = _util.dom.setStyle,
45200 getStyle = _util.dom.getStyle;
45201
45202// 数据打平
45203
45204var flatDataSource = function flatDataSource(data) {
45205 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
45206 var v2n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
45207 var p2n = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
45208
45209 data.forEach(function (item, index) {
45210 var value = item.value,
45211 children = item.children;
45212
45213 var pos = prefix + '-' + index;
45214 var newValue = String(value);
45215
45216 item.value = newValue;
45217
45218 v2n[newValue] = p2n[pos] = (0, _extends3.default)({}, item, {
45219 pos: pos,
45220 _source: item
45221 });
45222
45223 if (children && children.length) {
45224 flatDataSource(children, pos, v2n, p2n);
45225 }
45226 });
45227
45228 return { v2n: v2n, p2n: p2n };
45229};
45230
45231function preHandleData(data, immutable) {
45232 var _data = immutable ? (0, _lodash2.default)(data) : data;
45233
45234 try {
45235 return flatDataSource(_data);
45236 } catch (err) {
45237 if ((err.message || '').match('Cannot assign to read only property')) {
45238 // eslint-disable-next-line no-console
45239 console.error(err.message, 'try to set immutable to true to allow immutable dataSource');
45240 }
45241 throw err;
45242 }
45243}
45244
45245var getExpandedValue = function getExpandedValue(v, _v2n, _p2n) {
45246 if (!v || !_v2n[v]) {
45247 return [];
45248 }
45249
45250 var pos = _v2n[v].pos;
45251 if (pos.split('-').length === 2) {
45252 return [];
45253 }
45254
45255 var expandedMap = {};
45256 Object.keys(_p2n).forEach(function (p) {
45257 if ((0, _utils.isDescendantOrSelf)(p, pos) && p !== pos) {
45258 expandedMap[_p2n[p].value] = p;
45259 }
45260 });
45261
45262 return Object.keys(expandedMap).sort(function (prev, next) {
45263 return expandedMap[prev].split('-').length - expandedMap[next].split('-').length;
45264 });
45265};
45266
45267var normalizeValue = function normalizeValue(value) {
45268 if (value) {
45269 if (Array.isArray(value)) {
45270 return value;
45271 }
45272
45273 return [value];
45274 }
45275
45276 return [];
45277};
45278
45279/**
45280 * Cascader
45281 */
45282var Cascader = (_temp = _class = function (_Component) {
45283 (0, _inherits3.default)(Cascader, _Component);
45284
45285 function Cascader(props, context) {
45286 (0, _classCallCheck3.default)(this, Cascader);
45287
45288 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
45289
45290 var defaultValue = props.defaultValue,
45291 value = props.value,
45292 defaultExpandedValue = props.defaultExpandedValue,
45293 expandedValue = props.expandedValue,
45294 dataSource = props.dataSource,
45295 multiple = props.multiple,
45296 checkStrictly = props.checkStrictly,
45297 canOnlyCheckLeaf = props.canOnlyCheckLeaf,
45298 loadData = props.loadData,
45299 immutable = props.immutable;
45300
45301 var _preHandleData = preHandleData(dataSource, immutable),
45302 v2n = _preHandleData.v2n,
45303 p2n = _preHandleData.p2n;
45304
45305 var normalizedValue = normalizeValue(typeof value === 'undefined' ? defaultValue : value);
45306
45307 if (!loadData) {
45308 normalizedValue = normalizedValue.filter(function (v) {
45309 return v2n[v];
45310 });
45311 }
45312
45313 var realExpandedValue = typeof expandedValue === 'undefined' ? typeof defaultExpandedValue === 'undefined' ? getExpandedValue(normalizedValue[0], v2n, p2n) : normalizeValue(defaultExpandedValue) : normalizeValue(expandedValue);
45314 var st = {
45315 value: normalizedValue,
45316 expandedValue: realExpandedValue
45317 };
45318 if (multiple && !checkStrictly && !canOnlyCheckLeaf) {
45319 st.value = (0, _utils.getAllCheckedValues)(st.value, v2n, p2n);
45320 }
45321
45322 _this.lastExpandedValue = [].concat(st.expandedValue);
45323 _this.state = (0, _extends3.default)({}, st, {
45324 _v2n: v2n,
45325 _p2n: p2n
45326 });
45327
45328 bindCtx(_this, ['handleMouseLeave', 'handleFocus', 'handleFold', 'getCascaderNode', 'onBlur']);
45329 return _this;
45330 }
45331
45332 Cascader.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
45333 var _preHandleData2 = preHandleData(props.dataSource, props.immutable),
45334 v2n = _preHandleData2.v2n,
45335 p2n = _preHandleData2.p2n;
45336
45337 var states = {};
45338
45339 if ('value' in props) {
45340 states.value = normalizeValue(props.value);
45341 if (!props.loadData) {
45342 states.value = states.value.filter(function (v) {
45343 return v2n[v];
45344 });
45345 }
45346
45347 var multiple = props.multiple,
45348 checkStrictly = props.checkStrictly,
45349 canOnlyCheckLeaf = props.canOnlyCheckLeaf;
45350
45351 if (multiple && !checkStrictly && !canOnlyCheckLeaf) {
45352 states.value = (0, _utils.getAllCheckedValues)(states.value, v2n, p2n);
45353 }
45354
45355 if (!state.expandedValue.length && !('expandedValue' in props)) {
45356 states.expandedValue = getExpandedValue(states.value[0], v2n, p2n);
45357 }
45358 }
45359
45360 if ('expandedValue' in props) {
45361 states.expandedValue = normalizeValue(props.expandedValue);
45362 }
45363
45364 return (0, _extends3.default)({}, states, {
45365 _v2n: v2n,
45366 _p2n: p2n
45367 });
45368 };
45369
45370 Cascader.prototype.componentDidMount = function componentDidMount() {
45371 this.setCascaderInnerWidth();
45372 };
45373
45374 Cascader.prototype.componentDidUpdate = function componentDidUpdate() {
45375 this.setCascaderInnerWidth();
45376 };
45377
45378 Cascader.prototype.getCascaderNode = function getCascaderNode(ref) {
45379 this.cascader = ref;
45380 if (this.cascader) {
45381 this.cascaderInner = this.cascader.querySelector('.' + this.props.prefix + 'cascader-inner');
45382 }
45383 };
45384
45385 Cascader.prototype.setCascaderInnerWidth = function setCascaderInnerWidth() {
45386 if (!this.cascaderInner) {
45387 return;
45388 }
45389 var menus = [].slice.call(this.cascaderInner.querySelectorAll('.' + this.props.prefix + 'cascader-menu-wrapper'));
45390 if (menus.length === 0) {
45391 return;
45392 }
45393
45394 var menusWidth = Math.ceil(menus.reduce(function (ret, menu) {
45395 return ret + Math.ceil(menu.getBoundingClientRect().width);
45396 }, 0));
45397
45398 if (getStyle(this.cascaderInner, 'width') !== menusWidth) {
45399 setStyle(this.cascaderInner, 'width', menusWidth);
45400 }
45401
45402 if (getStyle(this.cascader, 'display') === 'inline-block') {
45403 var hasRightBorderClass = this.props.prefix + 'has-right-border';
45404 menus.forEach(function (menu) {
45405 return removeClass(menu, hasRightBorderClass);
45406 });
45407 if (this.cascader.clientWidth > menusWidth) {
45408 addClass(menus[menus.length - 1], hasRightBorderClass);
45409 }
45410 }
45411 };
45412
45413 /*eslint-enable*/
45414
45415 Cascader.prototype.flatValue = function flatValue(value) {
45416 return (0, _utils.filterChildValue)(value, this.state._v2n, this.state._p2n);
45417 };
45418
45419 Cascader.prototype.getValue = function getValue(pos) {
45420 return this.state._p2n[pos] ? this.state._p2n[pos].value : null;
45421 };
45422
45423 Cascader.prototype.getPos = function getPos(value) {
45424 return this.state._v2n[value] ? this.state._v2n[value].pos : null;
45425 };
45426
45427 Cascader.prototype.getData = function getData(value) {
45428 var _this2 = this;
45429
45430 return value.map(function (v) {
45431 return _this2.state._v2n[v];
45432 });
45433 };
45434
45435 Cascader.prototype.processValue = function processValue(value, v, checked) {
45436 var index = value.indexOf(v);
45437 if (checked && index === -1) {
45438 value.push(v);
45439 } else if (!checked && index > -1) {
45440 value.splice(index, 1);
45441 }
45442 };
45443
45444 Cascader.prototype.handleSelect = function handleSelect(v, canExpand) {
45445 var _this3 = this;
45446
45447 if (!(this.props.canOnlySelectLeaf && canExpand)) {
45448 var data = this.state._v2n[v];
45449 var nums = data.pos.split('-');
45450 var selectedPath = nums.slice(1).reduce(function (ret, num, index) {
45451 var p = nums.slice(0, index + 2).join('-');
45452 ret.push(_this3.state._p2n[p]);
45453 return ret;
45454 }, []);
45455
45456 if (this.state.value[0] !== v) {
45457 if (!('value' in this.props)) {
45458 this.setState({
45459 value: [v]
45460 });
45461 }
45462
45463 if ('onChange' in this.props) {
45464 this.props.onChange(v, data, {
45465 selectedPath: selectedPath
45466 });
45467 }
45468 }
45469
45470 if ('onSelect' in this.props) {
45471 this.props.onSelect(v, data, {
45472 selectedPath: selectedPath
45473 });
45474 }
45475 }
45476
45477 if (canExpand) {
45478 if (!this.props.canOnlySelectLeaf) {
45479 this.lastExpandedValue = this.state.expandedValue.slice(0, -1);
45480 }
45481 } else {
45482 this.lastExpandedValue = [].concat(this.state.expandedValue);
45483 }
45484 };
45485 /*eslint-disable max-statements*/
45486
45487 Cascader.prototype.handleCheck = function handleCheck(v, checked) {
45488 var _this4 = this;
45489
45490 var _props = this.props,
45491 checkStrictly = _props.checkStrictly,
45492 canOnlyCheckLeaf = _props.canOnlyCheckLeaf;
45493
45494 var value = [].concat(this.state.value);
45495
45496 if (checkStrictly || canOnlyCheckLeaf) {
45497 this.processValue(value, v, checked);
45498 } else {
45499 var pos = this.getPos(v);
45500
45501 var ps = Object.keys(this.state._p2n);
45502
45503 (0, _utils.forEachEnableNode)(this.state._v2n[v], function (node) {
45504 if (node.checkable === false) return;
45505 _this4.processValue(value, node.value, checked);
45506 });
45507
45508 var currentPos = pos;
45509 var nums = pos.split('-');
45510 for (var i = nums.length; i > 2; i--) {
45511 var parentCheck = true;
45512
45513 var parentPos = nums.slice(0, i - 1).join('-');
45514 if (this.state._p2n[parentPos].disabled || this.state._p2n[parentPos].checkboxDisabled || this.state._p2n[parentPos].checkable === false) {
45515 currentPos = parentPos;
45516 continue;
45517 }
45518
45519 var parentValue = this.state._p2n[parentPos].value;
45520 var parentChecked = value.indexOf(parentValue) > -1;
45521 if (!checked && !parentChecked) {
45522 break;
45523 }
45524
45525 for (var j = 0; j < ps.length; j++) {
45526 var p = ps[j];
45527 var pnode = this.state._p2n[p];
45528 if ((0, _utils.isSiblingOrSelf)(currentPos, p) && !pnode.disabled && !pnode.checkboxDisabled) {
45529 var k = pnode.value;
45530 // eslint-disable-next-line max-depth
45531 if (pnode.checkable === false) {
45532 // eslint-disable-next-line max-depth
45533 if (!pnode.children || pnode.children.length === 0) {
45534 continue;
45535 }
45536 // eslint-disable-next-line max-depth
45537 for (var m = 0; m < pnode.children.length; m++) {
45538 // eslint-disable-next-line max-depth
45539 if (!pnode.children.every(function (child) {
45540 return (0, _utils.isNodeChecked)(child, value);
45541 })) {
45542 parentCheck = false;
45543 break;
45544 }
45545 }
45546 } else if (value.indexOf(k) === -1) {
45547 parentCheck = false;
45548 }
45549
45550 if (!parentCheck) break;
45551 }
45552 }
45553
45554 this.processValue(value, parentValue, parentCheck);
45555
45556 currentPos = parentPos;
45557 }
45558 }
45559
45560 if (!('value' in this.props)) {
45561 this.setState({
45562 value: value
45563 });
45564 }
45565
45566 if ('onChange' in this.props) {
45567 if (checkStrictly || canOnlyCheckLeaf) {
45568 var data = this.getData(value);
45569 this.props.onChange(value, data, {
45570 checked: checked,
45571 currentData: this.state._v2n[v],
45572 checkedData: data
45573 });
45574 } else {
45575 var flatValue = this.flatValue(value);
45576 var flatData = this.getData(flatValue);
45577 var checkedData = this.getData(value);
45578 var indeterminateValue = this.getIndeterminate(value);
45579 var indeterminateData = this.getData(indeterminateValue);
45580 this.props.onChange(flatValue, flatData, {
45581 checked: checked,
45582 currentData: this.state._v2n[v],
45583 checkedData: checkedData,
45584 indeterminateData: indeterminateData
45585 });
45586 }
45587 }
45588
45589 this.lastExpandedValue = [].concat(this.state.expandedValue);
45590 };
45591
45592 Cascader.prototype.handleExpand = function handleExpand(value, level, canExpand, focusedFirstChild) {
45593 var _this5 = this;
45594
45595 var expandedValue = this.state.expandedValue;
45596
45597 if (canExpand || expandedValue.length > level) {
45598 if (canExpand) {
45599 expandedValue.splice(level, expandedValue.length - level, value);
45600 } else {
45601 expandedValue.splice(level);
45602 }
45603
45604 var callback = function callback() {
45605 _this5.setExpandValue(expandedValue);
45606
45607 if (focusedFirstChild) {
45608 var endExpandedValue = expandedValue[expandedValue.length - 1];
45609 _this5.setState({
45610 focusedValue: _this5.state._v2n[endExpandedValue].children[0].value
45611 });
45612 }
45613 };
45614
45615 var loadData = this.props.loadData;
45616
45617 if (canExpand && loadData) {
45618 var data = this.state._v2n[value];
45619 return loadData(data, data._source).then(callback);
45620 } else {
45621 return callback();
45622 }
45623 }
45624 };
45625
45626 Cascader.prototype.handleMouseLeave = function handleMouseLeave() {
45627 this.setExpandValue([].concat(this.lastExpandedValue));
45628 };
45629
45630 Cascader.prototype.setExpandValue = function setExpandValue(expandedValue) {
45631 if (!('expandedValue' in this.props)) {
45632 this.setState({
45633 expandedValue: expandedValue
45634 });
45635 }
45636
45637 if ('onExpand' in this.props) {
45638 this.props.onExpand(expandedValue);
45639 }
45640 };
45641
45642 Cascader.prototype.getFirstFocusKeyByDataSource = function getFirstFocusKeyByDataSource(dataSource) {
45643 if (!dataSource || dataSource.length === 0) {
45644 return '';
45645 }
45646
45647 for (var i = 0; i < dataSource.length; i++) {
45648 if (dataSource[i] && !dataSource[i].disabled) {
45649 return dataSource[i].value;
45650 }
45651 }
45652
45653 return '';
45654 };
45655
45656 Cascader.prototype.getFirstFocusKeyByFilteredPaths = function getFirstFocusKeyByFilteredPaths(filteredPaths) {
45657 if (!filteredPaths || filteredPaths.length === 0) {
45658 return '';
45659 }
45660
45661 for (var i = 0; i < filteredPaths.length; i++) {
45662 var path = filteredPaths[i];
45663 if (!path.some(function (item) {
45664 return item.disabled;
45665 })) {
45666 var lastItem = path[path.length - 1];
45667 return lastItem.value;
45668 }
45669 }
45670
45671 return '';
45672 };
45673
45674 Cascader.prototype.getFirstFocusKey = function getFirstFocusKey() {
45675 var _props2 = this.props,
45676 dataSource = _props2.dataSource,
45677 searchValue = _props2.searchValue,
45678 filteredPaths = _props2.filteredPaths;
45679
45680 return !searchValue ? this.getFirstFocusKeyByDataSource(dataSource) : this.getFirstFocusKeyByFilteredPaths(filteredPaths);
45681 };
45682
45683 Cascader.prototype.setFocusValue = function setFocusValue() {
45684 this.setState({
45685 focusedValue: this.getFirstFocusKey()
45686 });
45687 };
45688
45689 Cascader.prototype.handleFocus = function handleFocus(focusedValue) {
45690 this.setState({
45691 focusedValue: focusedValue
45692 });
45693 };
45694
45695 Cascader.prototype.handleFold = function handleFold() {
45696 var expandedValue = this.state.expandedValue;
45697
45698 if (expandedValue.length > 0) {
45699 this.setExpandValue(expandedValue.slice(0, -1));
45700 }
45701
45702 this.setState({
45703 focusedValue: expandedValue[expandedValue.length - 1]
45704 });
45705 };
45706
45707 Cascader.prototype.getIndeterminate = function getIndeterminate(value) {
45708 var _this6 = this;
45709
45710 var indeterminateValues = [];
45711
45712 var poss = (0, _utils.filterChildValue)(value.filter(function (v) {
45713 return !!_this6.state._v2n[v];
45714 }).filter(function (v) {
45715 return !_this6.state._v2n[v].disabled && !_this6.state._v2n[v].checkboxDisabled && _this6.state._v2n[v].checkable !== false;
45716 }), this.state._v2n, this.state._p2n).map(function (v) {
45717 return _this6.state._v2n[v].pos;
45718 });
45719 poss.forEach(function (pos) {
45720 var nums = pos.split('-');
45721 for (var i = nums.length; i > 2; i--) {
45722 var parentPos = nums.slice(0, i - 1).join('-');
45723 var parent = _this6.state._p2n[parentPos];
45724 if (parent.disabled || parent.checkboxDisabled) break;
45725 var parentValue = parent.value;
45726 if (indeterminateValues.indexOf(parentValue) === -1) {
45727 indeterminateValues.push(parentValue);
45728 }
45729 }
45730 });
45731
45732 return indeterminateValues;
45733 };
45734
45735 Cascader.prototype.onBlur = function onBlur(e) {
45736 this.setState({
45737 focusedValue: undefined
45738 });
45739
45740 this.props.onBlur && this.props.onBlur(e);
45741 };
45742
45743 Cascader.prototype.renderMenu = function renderMenu(data, level) {
45744 var _this7 = this;
45745
45746 var _props3 = this.props,
45747 prefix = _props3.prefix,
45748 multiple = _props3.multiple,
45749 useVirtual = _props3.useVirtual,
45750 checkStrictly = _props3.checkStrictly,
45751 expandTriggerType = _props3.expandTriggerType,
45752 loadData = _props3.loadData,
45753 canOnlyCheckLeaf = _props3.canOnlyCheckLeaf,
45754 listClassName = _props3.listClassName,
45755 listStyle = _props3.listStyle,
45756 itemRender = _props3.itemRender;
45757 var _state = this.state,
45758 value = _state.value,
45759 expandedValue = _state.expandedValue,
45760 focusedValue = _state.focusedValue;
45761
45762 return _react2.default.createElement(_menu4.default, {
45763 key: level,
45764 prefix: prefix,
45765 useVirtual: useVirtual,
45766 className: listClassName,
45767 style: listStyle,
45768 ref: this.saveMenuRef,
45769 focusedKey: focusedValue,
45770 onItemFocus: this.handleFocus,
45771 onBlur: this.onBlur
45772 }, data.map(function (item) {
45773 var disabled = !!item.disabled;
45774 var canExpand = !!item.children && !!item.children.length || !!loadData && !item.isLeaf;
45775 var expanded = expandedValue[level] === item.value;
45776 var props = {
45777 prefix: prefix,
45778 disabled: disabled,
45779 canExpand: canExpand,
45780 expanded: expanded,
45781 expandTriggerType: expandTriggerType,
45782 onExpand: _this7.handleExpand.bind(_this7, item.value, level, canExpand),
45783 onFold: _this7.handleFold
45784 };
45785
45786 if ('title' in item) {
45787 props.title = item.title;
45788 }
45789
45790 if (multiple) {
45791 props.checkable = !(canOnlyCheckLeaf && canExpand);
45792 props.checked = value.indexOf(item.value) > -1 || !!item.checked;
45793 props.indeterminate = (checkStrictly || canOnlyCheckLeaf ? false : _this7.indeterminate.indexOf(item.value) > -1) || !!item.indeterminate;
45794 props.checkboxDisabled = !!item.checkboxDisabled;
45795 props.onCheck = _this7.handleCheck.bind(_this7, item.value);
45796 } else {
45797 props.selected = value[0] === item.value;
45798 props.onSelect = _this7.handleSelect.bind(_this7, item.value, canExpand);
45799 }
45800
45801 var itemContent = itemRender(item, props);
45802 if (itemContent === null) {
45803 return null;
45804 }
45805 return _react2.default.createElement(_item2.default, (0, _extends3.default)({ key: item.value }, props), itemContent);
45806 }).filter(function (v) {
45807 return v;
45808 }));
45809 };
45810
45811 Cascader.prototype.renderMenus = function renderMenus() {
45812 var dataSource = this.props.dataSource;
45813 var expandedValue = this.state.expandedValue;
45814
45815 var menus = [];
45816 var data = dataSource;
45817
45818 for (var i = 0; i <= expandedValue.length; i++) {
45819 if (!data) {
45820 break;
45821 }
45822
45823 menus.push(this.renderMenu(data, i));
45824
45825 var expandedItem = void 0;
45826 for (var j = 0; j < data.length; j++) {
45827 if (data[j].value === expandedValue[i]) {
45828 expandedItem = data[j];
45829 break;
45830 }
45831 }
45832 data = expandedItem ? expandedItem.children : null;
45833 }
45834
45835 return menus;
45836 };
45837
45838 Cascader.prototype.renderFilteredItem = function renderFilteredItem(path) {
45839 var _props4 = this.props,
45840 prefix = _props4.prefix,
45841 resultRender = _props4.resultRender,
45842 searchValue = _props4.searchValue,
45843 multiple = _props4.multiple;
45844 var value = this.state.value;
45845
45846 var lastItem = path[path.length - 1];
45847
45848 var Item = void 0;
45849 var props = {
45850 key: lastItem.value,
45851 className: prefix + 'cascader-filtered-item',
45852 disabled: path.some(function (item) {
45853 return item.disabled;
45854 }),
45855 children: resultRender(searchValue, path)
45856 };
45857
45858 if (multiple) {
45859 Item = _menu2.default.CheckboxItem;
45860 var _props5 = this.props,
45861 checkStrictly = _props5.checkStrictly,
45862 canOnlyCheckLeaf = _props5.canOnlyCheckLeaf;
45863
45864 props.checked = value.indexOf(lastItem.value) > -1;
45865 props.indeterminate = !checkStrictly && !canOnlyCheckLeaf && this.indeterminate.indexOf(lastItem.value) > -1;
45866 props.checkboxDisabled = lastItem.checkboxDisabled;
45867 props.onChange = this.handleCheck.bind(this, lastItem.value);
45868 } else {
45869 Item = _menu2.default.Item;
45870 props.selected = value[0] === lastItem.value;
45871 props.onSelect = this.handleSelect.bind(this, lastItem.value, false);
45872 }
45873
45874 return _react2.default.createElement(Item, props);
45875 };
45876
45877 Cascader.prototype.renderFilteredList = function renderFilteredList() {
45878 var _this8 = this;
45879
45880 var _props6 = this.props,
45881 prefix = _props6.prefix,
45882 filteredListStyle = _props6.filteredListStyle,
45883 filteredPaths = _props6.filteredPaths,
45884 _props6$focusable = _props6.focusable,
45885 focusable = _props6$focusable === undefined ? false : _props6$focusable;
45886 var focusedValue = this.state.focusedValue;
45887
45888 return _react2.default.createElement(_menu2.default
45889 // 如果不设置为false, CascaderSelect 开启 showSearch后,弹窗展开时,光标无法到input上去,也无法输入.
45890 // TODO: set focusable=true in 2.x
45891
45892 , { focusable: focusable,
45893 focusedKey: focusedValue,
45894 onItemFocus: this.handleFocus,
45895 className: prefix + 'cascader-filtered-list',
45896 style: filteredListStyle
45897 }, filteredPaths.map(function (path) {
45898 return _this8.renderFilteredItem(path);
45899 }));
45900 };
45901
45902 Cascader.prototype.render = function render() {
45903 var _cx;
45904
45905 var _props7 = this.props,
45906 prefix = _props7.prefix,
45907 rtl = _props7.rtl,
45908 className = _props7.className,
45909 expandTriggerType = _props7.expandTriggerType,
45910 multiple = _props7.multiple,
45911 dataSource = _props7.dataSource,
45912 checkStrictly = _props7.checkStrictly,
45913 canOnlyCheckLeaf = _props7.canOnlyCheckLeaf,
45914 searchValue = _props7.searchValue;
45915
45916 var others = pickOthers(Object.keys(Cascader.propTypes), this.props);
45917 var value = this.state.value;
45918
45919 if (rtl) {
45920 others.dir = 'rtl';
45921 }
45922
45923 var props = (0, _extends3.default)({
45924 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'cascader'] = true, _cx.multiple = multiple, _cx[className] = !!className, _cx)),
45925 ref: 'cascader'
45926 }, others);
45927 if (expandTriggerType === 'hover') {
45928 props.onMouseLeave = this.handleMouseLeave;
45929 }
45930
45931 if (multiple && !checkStrictly && !canOnlyCheckLeaf) {
45932 this.indeterminate = this.getIndeterminate(value);
45933 }
45934
45935 return _react2.default.createElement('div', (0, _extends3.default)({}, props, { ref: this.getCascaderNode }), !searchValue ? _react2.default.createElement('div', { className: prefix + 'cascader-inner' }, dataSource && dataSource.length ? this.renderMenus() : null) : this.renderFilteredList());
45936 };
45937
45938 return Cascader;
45939}(_react.Component), _class.propTypes = {
45940 prefix: _propTypes2.default.string,
45941 rtl: _propTypes2.default.bool,
45942 pure: _propTypes2.default.bool,
45943 className: _propTypes2.default.string,
45944 /**
45945 * 数据源,结构可参考下方说明
45946 */
45947 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
45948 /**
45949 * (非受控)默认值
45950 */
45951 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
45952 /**
45953 * (受控)当前值
45954 */
45955 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
45956 /**
45957 * 选中值改变时触发的回调函数
45958 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组
45959 * @param {Object|Array} data 选中的数据,包括 value 和 label,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点
45960 * @param {Object} extra 额外参数
45961 * @param {Array} extra.selectedPath 单选时选中的数据的路径
45962 * @param {Boolean} extra.checked 多选时当前的操作是选中还是取消选中
45963 * @param {Object} extra.currentData 多选时当前操作的数据
45964 * @param {Array} extra.checkedData 多选时所有被选中的数据
45965 * @param {Array} extra.indeterminateData 多选时半选的数据
45966 */
45967 onChange: _propTypes2.default.func,
45968 onSelect: _propTypes2.default.func,
45969 /**
45970 * (非受控)默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置
45971 */
45972 defaultExpandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
45973 /**
45974 * (受控)当前展开值
45975 */
45976 expandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
45977 /**
45978 * 展开触发的方式
45979 */
45980 expandTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
45981 /**
45982 * 展开时触发的回调函数
45983 * @param {Array} expandedValue 各列展开值的数组
45984 */
45985 onExpand: _propTypes2.default.func,
45986 /**
45987 * 是否开启虚拟滚动
45988 */
45989 useVirtual: _propTypes2.default.bool,
45990 /**
45991 * 是否多选
45992 */
45993 multiple: _propTypes2.default.bool,
45994 /**
45995 * 单选时是否只能选中叶子节点
45996 */
45997 canOnlySelectLeaf: _propTypes2.default.bool,
45998 /**
45999 * 多选时是否只能选中叶子节点
46000 */
46001 canOnlyCheckLeaf: _propTypes2.default.bool,
46002 /**
46003 * 父子节点是否选中不关联
46004 */
46005 checkStrictly: _propTypes2.default.bool,
46006 /**
46007 * 每列列表样式对象
46008 */
46009 listStyle: _propTypes2.default.object,
46010 /**
46011 * 每列列表类名
46012 */
46013 listClassName: _propTypes2.default.string,
46014 /**
46015 * 每列列表项渲染函数
46016 * @param {Object} data 数据
46017 * @return {ReactNode} 列表项内容
46018 */
46019 itemRender: _propTypes2.default.func,
46020 /**
46021 * 异步加载数据函数
46022 * @param {Object} data 当前点击异步加载的数据
46023 * @param {Object} source 当前点击数据,source是原始对象
46024 */
46025 loadData: _propTypes2.default.func,
46026 searchValue: _propTypes2.default.string,
46027 onBlur: _propTypes2.default.func,
46028 filteredPaths: _propTypes2.default.array,
46029 filteredListStyle: _propTypes2.default.object,
46030 resultRender: _propTypes2.default.func,
46031 /**
46032 * 是否是不可变数据
46033 * @version 1.23
46034 */
46035 immutable: _propTypes2.default.bool
46036}, _class.defaultProps = {
46037 prefix: 'next-',
46038 rtl: false,
46039 pure: false,
46040 dataSource: [],
46041 defaultValue: null,
46042 canOnlySelectLeaf: false,
46043 canOnlyCheckLeaf: false,
46044 expandTriggerType: 'click',
46045 multiple: false,
46046 useVirtual: false,
46047 checkStrictly: false,
46048 itemRender: function itemRender(item) {
46049 return item.label;
46050 },
46051 immutable: false
46052}, _temp);
46053Cascader.displayName = 'Cascader';
46054exports.default = (0, _reactLifecyclesCompat.polyfill)(Cascader);
46055module.exports = exports['default'];
46056
46057/***/ }),
46058/* 324 */
46059/***/ (function(module, exports) {
46060
46061module.exports = function(module) {
46062 if(!module.webpackPolyfill) {
46063 module.deprecate = function() {};
46064 module.paths = [];
46065 // module.parent = undefined by default
46066 if(!module.children) module.children = [];
46067 Object.defineProperty(module, "loaded", {
46068 enumerable: true,
46069 get: function() {
46070 return module.l;
46071 }
46072 });
46073 Object.defineProperty(module, "id", {
46074 enumerable: true,
46075 get: function() {
46076 return module.i;
46077 }
46078 });
46079 module.webpackPolyfill = 1;
46080 }
46081 return module;
46082};
46083
46084
46085/***/ }),
46086/* 325 */
46087/***/ (function(module, exports, __webpack_require__) {
46088
46089"use strict";
46090
46091
46092exports.__esModule = true;
46093exports.default = undefined;
46094
46095var _objectWithoutProperties2 = __webpack_require__(8);
46096
46097var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
46098
46099var _extends2 = __webpack_require__(1);
46100
46101var _extends3 = _interopRequireDefault(_extends2);
46102
46103var _classCallCheck2 = __webpack_require__(2);
46104
46105var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
46106
46107var _possibleConstructorReturn2 = __webpack_require__(3);
46108
46109var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46110
46111var _inherits2 = __webpack_require__(4);
46112
46113var _inherits3 = _interopRequireDefault(_inherits2);
46114
46115var _class, _temp2;
46116
46117var _react = __webpack_require__(0);
46118
46119var _react2 = _interopRequireDefault(_react);
46120
46121var _propTypes = __webpack_require__(5);
46122
46123var _propTypes2 = _interopRequireDefault(_propTypes);
46124
46125var _reactDom = __webpack_require__(12);
46126
46127var _menu = __webpack_require__(16);
46128
46129var _menu2 = _interopRequireDefault(_menu);
46130
46131var _virtualList = __webpack_require__(51);
46132
46133var _virtualList2 = _interopRequireDefault(_virtualList);
46134
46135function _interopRequireDefault(obj) {
46136 return obj && obj.__esModule ? obj : { default: obj };
46137}
46138
46139var CascaderMenu = (_temp2 = _class = function (_Component) {
46140 (0, _inherits3.default)(CascaderMenu, _Component);
46141
46142 function CascaderMenu() {
46143 var _temp, _this, _ret;
46144
46145 (0, _classCallCheck3.default)(this, CascaderMenu);
46146
46147 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
46148 args[_key] = arguments[_key];
46149 }
46150
46151 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.saveMenuRef = function (ref) {
46152 _this.menuEl = ref;
46153 }, _this.saveVirtualRef = function (ref) {
46154 _this.virtualEl = ref;
46155 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
46156 }
46157
46158 CascaderMenu.prototype.componentDidMount = function componentDidMount() {
46159 this.scrollToSelectedItem();
46160 };
46161
46162 CascaderMenu.prototype.scrollToSelectedItem = function scrollToSelectedItem() {
46163 var _props = this.props,
46164 prefix = _props.prefix,
46165 useVirtual = _props.useVirtual,
46166 children = _props.children;
46167
46168 if (!children || children.length === 0) {
46169 return;
46170 }
46171 var selectedIndex = children.findIndex(function (item) {
46172 return !!item.props.checked || !!item.props.selected || !!item.props.expanded;
46173 });
46174
46175 if (selectedIndex === -1) {
46176 return;
46177 }
46178
46179 if (useVirtual) {
46180 var instance = this.virtualEl.getInstance();
46181 setTimeout(function () {
46182 return instance.scrollTo(selectedIndex);
46183 }, 0);
46184 } else {
46185 var itemSelector = '.' + prefix + 'menu-item';
46186 var menu = (0, _reactDom.findDOMNode)(this.menuEl);
46187 var targetItem = menu.querySelectorAll(itemSelector)[selectedIndex];
46188 if (targetItem) {
46189 menu.scrollTop = targetItem.offsetTop - Math.floor((menu.clientHeight / targetItem.clientHeight - 1) / 2) * targetItem.clientHeight;
46190 }
46191 }
46192 };
46193
46194 CascaderMenu.prototype.renderMenu = function renderMenu(items, ref, props) {
46195 var _this2 = this;
46196
46197 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({ ref: ref, role: 'listbox' }, props), items.map(function (node) {
46198 if (_react2.default.isValidElement(node) && node.type.menuChildType === 'item') {
46199 return _react2.default.cloneElement(node, {
46200 menu: _this2
46201 });
46202 }
46203
46204 return node;
46205 }));
46206 };
46207
46208 CascaderMenu.prototype.render = function render() {
46209 var _this3 = this;
46210
46211 var _props2 = this.props,
46212 prefix = _props2.prefix,
46213 useVirtual = _props2.useVirtual,
46214 className = _props2.className,
46215 style = _props2.style,
46216 children = _props2.children,
46217 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'useVirtual', 'className', 'style', 'children']);
46218
46219 var menuProps = (0, _extends3.default)({
46220 labelToggleChecked: false,
46221 className: prefix + 'cascader-menu'
46222 }, others);
46223 return _react2.default.createElement('div', {
46224 ref: this.saveMenuRef,
46225 className: prefix + 'cascader-menu-wrapper ' + (className ? className : ''),
46226 style: style
46227 }, useVirtual ? _react2.default.createElement(_virtualList2.default, {
46228 ref: this.saveVirtualRef,
46229 itemsRenderer: function itemsRenderer(items, ref) {
46230 return _this3.renderMenu(items, ref, menuProps);
46231 }
46232 }, children) : this.renderMenu(children, undefined, menuProps));
46233 };
46234
46235 return CascaderMenu;
46236}(_react.Component), _class.propTypes = {
46237 prefix: _propTypes2.default.string,
46238 className: _propTypes2.default.string,
46239 useVirtual: _propTypes2.default.bool,
46240 children: _propTypes2.default.node
46241}, _temp2);
46242CascaderMenu.displayName = 'CascaderMenu';
46243exports.default = CascaderMenu;
46244module.exports = exports['default'];
46245
46246/***/ }),
46247/* 326 */
46248/***/ (function(module, exports, __webpack_require__) {
46249
46250"use strict";
46251
46252
46253exports.__esModule = true;
46254exports.default = undefined;
46255
46256var _extends2 = __webpack_require__(1);
46257
46258var _extends3 = _interopRequireDefault(_extends2);
46259
46260var _classCallCheck2 = __webpack_require__(2);
46261
46262var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
46263
46264var _possibleConstructorReturn2 = __webpack_require__(3);
46265
46266var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46267
46268var _inherits2 = __webpack_require__(4);
46269
46270var _inherits3 = _interopRequireDefault(_inherits2);
46271
46272var _class, _temp;
46273
46274var _react = __webpack_require__(0);
46275
46276var _react2 = _interopRequireDefault(_react);
46277
46278var _propTypes = __webpack_require__(5);
46279
46280var _propTypes2 = _interopRequireDefault(_propTypes);
46281
46282var _classnames = __webpack_require__(7);
46283
46284var _classnames2 = _interopRequireDefault(_classnames);
46285
46286var _menu = __webpack_require__(16);
46287
46288var _menu2 = _interopRequireDefault(_menu);
46289
46290var _icon = __webpack_require__(11);
46291
46292var _icon2 = _interopRequireDefault(_icon);
46293
46294var _util = __webpack_require__(6);
46295
46296function _interopRequireDefault(obj) {
46297 return obj && obj.__esModule ? obj : { default: obj };
46298}
46299
46300var bindCtx = _util.func.bindCtx;
46301var pickOthers = _util.obj.pickOthers;
46302var CascaderMenuItem = (_temp = _class = function (_Component) {
46303 (0, _inherits3.default)(CascaderMenuItem, _Component);
46304
46305 function CascaderMenuItem(props) {
46306 (0, _classCallCheck3.default)(this, CascaderMenuItem);
46307
46308 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
46309
46310 _this.state = {
46311 loading: false
46312 };
46313
46314 bindCtx(_this, ['handleExpand', 'handleClick', 'handleMouseEnter', 'handleKeyDown', 'removeLoading']);
46315 return _this;
46316 }
46317
46318 CascaderMenuItem.prototype.addLoading = function addLoading() {
46319 this.setState({
46320 loading: true
46321 });
46322 };
46323
46324 CascaderMenuItem.prototype.removeLoading = function removeLoading() {
46325 this.setState({
46326 loading: false
46327 });
46328 };
46329
46330 CascaderMenuItem.prototype.setLoadingIfNeed = function setLoadingIfNeed(p) {
46331 if (p && typeof p.then === 'function') {
46332 this.addLoading();
46333 p.then(this.removeLoading).catch(this.removeLoading);
46334 }
46335 };
46336
46337 CascaderMenuItem.prototype.handleExpand = function handleExpand(focusedFirstChild) {
46338 this.setLoadingIfNeed(this.props.onExpand(focusedFirstChild));
46339 };
46340
46341 CascaderMenuItem.prototype.handleClick = function handleClick() {
46342 this.handleExpand(false);
46343 };
46344
46345 CascaderMenuItem.prototype.handleMouseEnter = function handleMouseEnter() {
46346 this.handleExpand(false);
46347 };
46348
46349 CascaderMenuItem.prototype.handleKeyDown = function handleKeyDown(e) {
46350 if (!this.props.disabled) {
46351 if (e.keyCode === _util.KEYCODE.RIGHT || e.keyCode === _util.KEYCODE.ENTER) {
46352 if (this.props.canExpand) {
46353 this.handleExpand(true);
46354 }
46355 } else if (e.keyCode === _util.KEYCODE.LEFT || e.keyCode === _util.KEYCODE.ESC) {
46356 this.props.onFold();
46357 } else if (e.keyCode === _util.KEYCODE.SPACE) {
46358 this.handleExpand(false);
46359 }
46360 }
46361 };
46362
46363 CascaderMenuItem.prototype.render = function render() {
46364 var _cx;
46365
46366 var _props = this.props,
46367 prefix = _props.prefix,
46368 className = _props.className,
46369 menu = _props.menu,
46370 disabled = _props.disabled,
46371 selected = _props.selected,
46372 onSelect = _props.onSelect,
46373 expanded = _props.expanded,
46374 canExpand = _props.canExpand,
46375 expandTriggerType = _props.expandTriggerType,
46376 checkable = _props.checkable,
46377 checked = _props.checked,
46378 indeterminate = _props.indeterminate,
46379 checkboxDisabled = _props.checkboxDisabled,
46380 onCheck = _props.onCheck,
46381 children = _props.children;
46382
46383 var others = pickOthers(Object.keys(CascaderMenuItem.propTypes), this.props);
46384 var loading = this.state.loading;
46385
46386 var itemProps = (0, _extends3.default)({
46387 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'cascader-menu-item'] = true, _cx[prefix + 'expanded'] = expanded, _cx[className] = !!className, _cx)),
46388 disabled: disabled,
46389 menu: menu,
46390 onKeyDown: this.handleKeyDown,
46391 role: 'option'
46392 }, others);
46393 if (!disabled) {
46394 if (expandTriggerType === 'hover') {
46395 itemProps.onMouseEnter = this.handleMouseEnter;
46396 } else {
46397 itemProps.onClick = this.handleClick;
46398 }
46399 }
46400
46401 var Item = void 0,
46402 title = void 0;
46403 if (checkable) {
46404 Item = _menu2.default.CheckboxItem;
46405 itemProps.checked = checked;
46406 itemProps.indeterminate = indeterminate;
46407 itemProps.checkboxDisabled = checkboxDisabled;
46408 itemProps.onChange = onCheck;
46409 } else {
46410 Item = _menu2.default.Item;
46411 itemProps.selected = selected;
46412 itemProps.onSelect = onSelect;
46413 }
46414
46415 if (typeof children === 'string') {
46416 title = children;
46417 }
46418
46419 return _react2.default.createElement(Item, (0, _extends3.default)({ title: title }, itemProps), children, canExpand ? loading ? _react2.default.createElement(_icon2.default, {
46420 className: prefix + 'cascader-menu-icon-right ' + prefix + 'cascader-menu-icon-loading',
46421 type: 'loading'
46422 }) : _react2.default.createElement(_icon2.default, {
46423 className: prefix + 'cascader-menu-icon-right ' + prefix + 'cascader-menu-icon-expand',
46424 type: 'arrow-right'
46425 }) : null);
46426 };
46427
46428 return CascaderMenuItem;
46429}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
46430 prefix: _propTypes2.default.string,
46431 className: _propTypes2.default.string,
46432 disabled: _propTypes2.default.bool,
46433 selected: _propTypes2.default.bool,
46434 onSelect: _propTypes2.default.func,
46435 expanded: _propTypes2.default.bool,
46436 canExpand: _propTypes2.default.bool,
46437 menu: _propTypes2.default.any,
46438 expandTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
46439 onExpand: _propTypes2.default.func,
46440 onFold: _propTypes2.default.func,
46441 checkable: _propTypes2.default.bool,
46442 checked: _propTypes2.default.bool,
46443 indeterminate: _propTypes2.default.bool,
46444 checkboxDisabled: _propTypes2.default.bool,
46445 onCheck: _propTypes2.default.func,
46446 children: _propTypes2.default.node
46447}, _temp);
46448CascaderMenuItem.displayName = 'CascaderMenuItem';
46449exports.default = CascaderMenuItem;
46450module.exports = exports['default'];
46451
46452/***/ }),
46453/* 327 */
46454/***/ (function(module, exports, __webpack_require__) {
46455
46456"use strict";
46457
46458
46459exports.__esModule = true;
46460exports.normalizeToArray = normalizeToArray;
46461exports.isNodeChecked = isNodeChecked;
46462exports.forEachEnableNode = forEachEnableNode;
46463exports.isNodeDisabledChecked = isNodeDisabledChecked;
46464exports.getCheckableParentNode = getCheckableParentNode;
46465exports.filterChildValue = filterChildValue;
46466exports.filterParentValue = filterParentValue;
46467exports.isDescendantOrSelf = isDescendantOrSelf;
46468exports.isSiblingOrSelf = isSiblingOrSelf;
46469exports.getAllCheckedValues = getAllCheckedValues;
46470/* eslint-disable valid-jsdoc */
46471function normalizeToArray(values) {
46472 if (values !== undefined && values !== null) {
46473 if (Array.isArray(values)) {
46474 return [].concat(values);
46475 }
46476
46477 return [values];
46478 }
46479
46480 return [];
46481}
46482
46483/**
46484 * 判断子节点是否是选中状态,如果 checkable={false} 则向下递归,
46485 * @param {Node} child
46486 * @param {Array} checkedValues
46487 */
46488function isNodeChecked(node, checkedValues) {
46489 if (node.disabled || node.checkboxDisabled) return true;
46490 /* istanbul ignore next */
46491 if (node.checkable === false) {
46492 return !node.children || node.children.length === 0 || node.children.every(function (c) {
46493 return isNodeChecked(c, checkedValues);
46494 });
46495 }
46496 return checkedValues.indexOf(node.value) > -1;
46497}
46498
46499/**
46500 * 遍历所有可用的子节点
46501 * @param {Node}
46502 * @param {Function} callback
46503 */
46504function forEachEnableNode(node) {
46505 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
46506
46507 if (node.disabled || node.checkboxDisabled) return;
46508 // eslint-disable-next-line callback-return
46509 callback(node);
46510 if (node.children && node.children.length > 0) {
46511 node.children.forEach(function (child) {
46512 return forEachEnableNode(child, callback);
46513 });
46514 }
46515}
46516/**
46517 * 判断节点是否禁用checked
46518 * @param {Node} node
46519 * @returns {Boolean}
46520 */
46521function isNodeDisabledChecked(node) {
46522 if (node.disabled || node.checkboxDisabled) return true;
46523 /* istanbul ignore next */
46524 if (node.checkable === false) {
46525 return !node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked);
46526 }
46527
46528 return false;
46529}
46530
46531/**
46532 * 递归获取一个 checkable = {true} 的父节点,当 checkable={false} 时继续往上查找
46533 * @param {Node} node
46534 * @param {Map} _p2n
46535 * @return {Node}
46536 */
46537function getCheckableParentNode(node, _p2n) {
46538 var parentPos = node.pos.split(['-']);
46539 if (parentPos.length === 2) return node;
46540 parentPos.splice(parentPos.length - 1, 1);
46541 parentPos = parentPos.join('-');
46542 var parentNode = _p2n[parentPos];
46543 if (parentNode.disabled || parentNode.checkboxDisabled) return false;
46544 /* istanbul ignore next */
46545 if (parentNode.checkable === false) {
46546 return getCheckableParentNode(parentNode, _p2n);
46547 }
46548
46549 return parentNode;
46550}
46551/**
46552 * 过滤子节点
46553 * @param {Array} values
46554 * @param {Object} _v2n
46555 */
46556function filterChildValue(values, _v2n, _p2n) {
46557 var newValues = [];
46558 values.forEach(function (value) {
46559 var node = getCheckableParentNode(_v2n[value], _p2n);
46560 if (!node || node.checkable === false || node === _v2n[value] || values.indexOf(node.value) === -1) {
46561 newValues.push(value);
46562 }
46563 });
46564 return newValues;
46565}
46566
46567function filterParentValue(values, _v2n) {
46568 var newValues = [];
46569
46570 for (var i = 0; i < values.length; i++) {
46571 var node = _v2n[values[i]];
46572 if (!node.children || node.children.length === 0 || node.children.every(isNodeDisabledChecked)) {
46573 newValues.push(values[i]);
46574 }
46575 }
46576
46577 return newValues;
46578}
46579
46580function isDescendantOrSelf(currentPos, targetPos) {
46581 if (!currentPos || !targetPos) {
46582 return false;
46583 }
46584
46585 var currentNums = currentPos.split('-');
46586 var targetNums = targetPos.split('-');
46587
46588 return currentNums.length <= targetNums.length && currentNums.every(function (num, index) {
46589 return num === targetNums[index];
46590 });
46591}
46592
46593function isSiblingOrSelf(currentPos, targetPos) {
46594 var currentNums = currentPos.split('-').slice(0, -1);
46595 var targetNums = targetPos.split('-').slice(0, -1);
46596
46597 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
46598 return num === targetNums[index];
46599 });
46600}
46601
46602// eslint-disable-next-line max-statements
46603function getAllCheckedValues(checkedValues, _v2n, _p2n) {
46604 checkedValues = normalizeToArray(checkedValues);
46605 var filteredValues = checkedValues.filter(function (value) {
46606 return !!_v2n[value];
46607 });
46608 var flatValues = [].concat(filterChildValue(filteredValues, _v2n, _p2n), filteredValues.filter(function (value) {
46609 return _v2n[value].disabled || _v2n[value].checkboxDisabled;
46610 }));
46611 var removeValue = function removeValue(child) {
46612 if (child.disabled || child.checkboxDisabled) return;
46613 if (child.checkable === false && child.children && child.children.length > 0) {
46614 return child.children.forEach(removeValue);
46615 }
46616 flatValues.splice(flatValues.indexOf(child.value), 1);
46617 };
46618
46619 var addParentValue = function addParentValue(i, parent) {
46620 return flatValues.splice(i, 0, parent.value);
46621 };
46622
46623 var values = [].concat(flatValues);
46624 for (var i = 0; i < values.length; i++) {
46625 var pos = _v2n[values[i]].pos;
46626 var nums = pos.split('-');
46627 if (nums.length === 2) {
46628 break;
46629 }
46630 for (var j = nums.length - 2; j > 0; j--) {
46631 var parentPos = nums.slice(0, j + 1).join('-');
46632 var parent = _p2n[parentPos];
46633 if (parent.checkable === false || parent.disabled || parent.checkboxDisabled) continue;
46634 var parentChecked = parent.children.every(function (child) {
46635 return isNodeChecked(child, flatValues);
46636 });
46637 if (parentChecked) {
46638 parent.children.forEach(removeValue);
46639 addParentValue(i, parent);
46640 } else {
46641 break;
46642 }
46643 }
46644 }
46645
46646 var newValues = [];
46647 flatValues.forEach(function (value) {
46648 if (_v2n[value].disabled || _v2n[value].checkboxDisabled) {
46649 newValues.push(value);
46650 return;
46651 }
46652 forEachEnableNode(_v2n[value], function (node) {
46653 if (node.checkable === false) return;
46654 newValues.push(node.value);
46655 });
46656 });
46657
46658 return newValues;
46659}
46660
46661/***/ }),
46662/* 328 */
46663/***/ (function(module, exports, __webpack_require__) {
46664
46665"use strict";
46666
46667
46668exports.__esModule = true;
46669
46670var _extends2 = __webpack_require__(1);
46671
46672var _extends3 = _interopRequireDefault(_extends2);
46673
46674var _objectWithoutProperties2 = __webpack_require__(8);
46675
46676var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
46677
46678var _configProvider = __webpack_require__(9);
46679
46680var _configProvider2 = _interopRequireDefault(_configProvider);
46681
46682var _cascaderSelect = __webpack_require__(329);
46683
46684var _cascaderSelect2 = _interopRequireDefault(_cascaderSelect);
46685
46686function _interopRequireDefault(obj) {
46687 return obj && obj.__esModule ? obj : { default: obj };
46688}
46689
46690exports.default = _configProvider2.default.config(_cascaderSelect2.default, {
46691 transform: /* istanbul ignore next */function transform(props, deprecated) {
46692 if ('shape' in props) {
46693 deprecated('shape', 'hasBorder', 'CascaderSelect');
46694 var _props = props,
46695 shape = _props.shape,
46696 others = (0, _objectWithoutProperties3.default)(_props, ['shape']);
46697
46698 props = (0, _extends3.default)({ hasBorder: shape !== 'arrow-only' }, others);
46699 }
46700
46701 if ('container' in props) {
46702 deprecated('container', 'popupContainer', 'CascaderSelect');
46703
46704 var _props2 = props,
46705 container = _props2.container,
46706 _others = (0, _objectWithoutProperties3.default)(_props2, ['container']);
46707
46708 props = (0, _extends3.default)({ popupContainer: container }, _others);
46709 }
46710
46711 if ('expandTrigger' in props) {
46712 deprecated('expandTrigger', 'expandTriggerType', 'CascaderSelect');
46713
46714 var _props3 = props,
46715 expandTrigger = _props3.expandTrigger,
46716 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['expandTrigger']);
46717
46718 props = (0, _extends3.default)({ expandTriggerType: expandTrigger }, _others2);
46719 }
46720
46721 if ('showItemCount' in props) {
46722 deprecated('showItemCount', 'listStyle | listClassName', 'CascaderSelect');
46723 }
46724 if ('labelWidth' in props) {
46725 deprecated('labelWidth', 'listStyle | listClassName', 'CascaderSelect');
46726 }
46727
46728 return props;
46729 }
46730});
46731module.exports = exports['default'];
46732
46733/***/ }),
46734/* 329 */
46735/***/ (function(module, exports, __webpack_require__) {
46736
46737"use strict";
46738
46739
46740exports.__esModule = true;
46741
46742var _extends2 = __webpack_require__(1);
46743
46744var _extends3 = _interopRequireDefault(_extends2);
46745
46746var _classCallCheck2 = __webpack_require__(2);
46747
46748var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
46749
46750var _possibleConstructorReturn2 = __webpack_require__(3);
46751
46752var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
46753
46754var _inherits2 = __webpack_require__(4);
46755
46756var _inherits3 = _interopRequireDefault(_inherits2);
46757
46758var _class, _temp;
46759
46760var _react = __webpack_require__(0);
46761
46762var _react2 = _interopRequireDefault(_react);
46763
46764var _propTypes = __webpack_require__(5);
46765
46766var _propTypes2 = _interopRequireDefault(_propTypes);
46767
46768var _reactLifecyclesCompat = __webpack_require__(10);
46769
46770var _classnames = __webpack_require__(7);
46771
46772var _classnames2 = _interopRequireDefault(_classnames);
46773
46774var _select = __webpack_require__(29);
46775
46776var _select2 = _interopRequireDefault(_select);
46777
46778var _cascader = __webpack_require__(165);
46779
46780var _cascader2 = _interopRequireDefault(_cascader);
46781
46782var _menu = __webpack_require__(16);
46783
46784var _menu2 = _interopRequireDefault(_menu);
46785
46786var _util = __webpack_require__(6);
46787
46788function _interopRequireDefault(obj) {
46789 return obj && obj.__esModule ? obj : { default: obj };
46790}
46791
46792var bindCtx = _util.func.bindCtx;
46793var pickOthers = _util.obj.pickOthers;
46794var getStyle = _util.dom.getStyle;
46795
46796var normalizeValue = function normalizeValue(value) {
46797 if (value) {
46798 if (Array.isArray(value)) {
46799 return value;
46800 }
46801
46802 return [value];
46803 }
46804
46805 return [];
46806};
46807
46808/**
46809 * CascaderSelect
46810 */
46811var CascaderSelect = (_temp = _class = function (_Component) {
46812 (0, _inherits3.default)(CascaderSelect, _Component);
46813
46814 function CascaderSelect(props) {
46815 (0, _classCallCheck3.default)(this, CascaderSelect);
46816
46817 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
46818
46819 _this.refreshValueDataCache = function (curValue) {
46820 if (curValue) {
46821 var valueArr = Array.isArray(curValue) ? curValue : [curValue];
46822
46823 valueArr.length && Object.keys(_this._valueDataCache).forEach(function (v) {
46824 if (!valueArr.includes(v)) {
46825 delete _this._valueDataCache[v];
46826 }
46827 });
46828 } else {
46829 _this._valueDataCache = {};
46830 }
46831 };
46832
46833 _this.state = {
46834 value: normalizeValue('value' in props ? props.value : props.defaultValue),
46835 searchValue: '',
46836 visible: typeof props.visible === 'undefined' ? props.defaultVisible : props.visible
46837 };
46838
46839 // 缓存选中值数据
46840 _this._valueDataCache = {};
46841
46842 bindCtx(_this, ['handleVisibleChange', 'handleAfterOpen', 'handleSelect', 'handleChange', 'handleClear', 'handleRemove', 'handleSearch', 'getPopup', 'saveSelectRef', 'saveCascaderRef', 'handleKeyDown']);
46843 return _this;
46844 }
46845
46846 CascaderSelect.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
46847 var st = {};
46848
46849 if ('value' in props) {
46850 st.value = normalizeValue(props.value);
46851 }
46852 if ('visible' in props) {
46853 st.visible = props.visible;
46854 }
46855
46856 return st;
46857 };
46858
46859 CascaderSelect.prototype.updateCache = function updateCache(dataSource) {
46860 var _this2 = this;
46861
46862 this._v2n = {};
46863 this._p2n = {};
46864 var loop = function loop(data) {
46865 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
46866 return data.forEach(function (item, index) {
46867 var value = item.value,
46868 children = item.children;
46869
46870 var pos = prefix + '-' + index;
46871 _this2._v2n[value] = _this2._p2n[pos] = (0, _extends3.default)({}, item, { pos: pos });
46872
46873 if (children && children.length) {
46874 loop(children, pos);
46875 }
46876 });
46877 };
46878
46879 loop(dataSource);
46880 };
46881
46882 CascaderSelect.prototype.flatValue = function flatValue(value) {
46883 var _this3 = this;
46884
46885 var getDepth = function getDepth(v) {
46886 var pos = _this3.getPos(v);
46887 if (!pos) {
46888 return 0;
46889 }
46890 return pos.split('-').length;
46891 };
46892 var newValue = value.slice(0).sort(function (prev, next) {
46893 return getDepth(prev) - getDepth(next);
46894 });
46895
46896 for (var i = 0; i < newValue.length; i++) {
46897 for (var j = 0; j < newValue.length; j++) {
46898 if (i !== j && this.isDescendantOrSelf(this.getPos(newValue[i]), this.getPos(newValue[j]))) {
46899 newValue.splice(j, 1);
46900 j--;
46901 }
46902 }
46903 }
46904
46905 return newValue;
46906 };
46907
46908 CascaderSelect.prototype.isDescendantOrSelf = function isDescendantOrSelf(currentPos, targetPos) {
46909 if (!currentPos || !targetPos) {
46910 return false;
46911 }
46912
46913 var currentNums = currentPos.split('-');
46914 var targetNums = targetPos.split('-');
46915
46916 return currentNums.length <= targetNums.length && currentNums.every(function (num, index) {
46917 return num === targetNums[index];
46918 });
46919 };
46920
46921 CascaderSelect.prototype.getValue = function getValue(pos) {
46922 return this._p2n[pos] ? this._p2n[pos].value : null;
46923 };
46924
46925 CascaderSelect.prototype.getPos = function getPos(value) {
46926 return this._v2n[value] ? this._v2n[value].pos : null;
46927 };
46928
46929 CascaderSelect.prototype.getData = function getData(value) {
46930 var _this4 = this;
46931
46932 return value.map(function (v) {
46933 return _this4._v2n[v] || _this4._valueDataCache[v];
46934 });
46935 };
46936
46937 CascaderSelect.prototype.getLabelPath = function getLabelPath(data) {
46938 var _this5 = this;
46939
46940 var nums = data.pos.split('-');
46941 return nums.slice(1).reduce(function (ret, num, index) {
46942 var p = nums.slice(0, index + 2).join('-');
46943 ret.push(_this5._p2n[p].label);
46944 return ret;
46945 }, []);
46946 };
46947
46948 CascaderSelect.prototype.getSingleData = function getSingleData(value) {
46949 if (!value.length) {
46950 return null;
46951 }
46952
46953 if (Array.isArray(value)) value = value[0];
46954
46955 var data = this._v2n[value];
46956
46957 if (data) {
46958 var labelPath = this.getLabelPath(data);
46959 var displayRender = this.props.displayRender || function (labels) {
46960 return labels.join(' / ');
46961 };
46962
46963 data = (0, _extends3.default)({}, data, {
46964 label: displayRender(labelPath, data)
46965 });
46966
46967 this._valueDataCache[value] = data;
46968 this.refreshValueDataCache(value);
46969 } else {
46970 data = this._valueDataCache[value];
46971 }
46972
46973 return data || {
46974 value: value
46975 };
46976 };
46977
46978 CascaderSelect.prototype.getMultipleData = function getMultipleData(value) {
46979 var _this6 = this;
46980
46981 if (!value.length) {
46982 return null;
46983 }
46984
46985 var _props = this.props,
46986 checkStrictly = _props.checkStrictly,
46987 canOnlyCheckLeaf = _props.canOnlyCheckLeaf,
46988 displayRender = _props.displayRender;
46989
46990 var flatValue = checkStrictly || canOnlyCheckLeaf ? value : this.flatValue(value);
46991 var data = flatValue.map(function (v) {
46992 var item = _this6._v2n[v];
46993
46994 if (item) {
46995 _this6._valueDataCache[v] = item;
46996 } else {
46997 item = _this6._valueDataCache[v];
46998 }
46999
47000 return item || { value: v };
47001 });
47002
47003 if (displayRender) {
47004 data = data.map(function (item) {
47005 if (!item.pos || !(item.value in _this6._v2n)) {
47006 return item;
47007 }
47008
47009 var labelPath = _this6.getLabelPath(item);
47010 var newItem = (0, _extends3.default)({}, item, {
47011 label: displayRender(labelPath, item)
47012 });
47013
47014 _this6._valueDataCache[item.value] = newItem;
47015
47016 return newItem;
47017 });
47018 }
47019
47020 return data;
47021 };
47022
47023 CascaderSelect.prototype.getIndeterminate = function getIndeterminate(value) {
47024 var _this7 = this;
47025
47026 var indeterminate = [];
47027
47028 var positions = value.map(this.getPos.bind(this));
47029 positions.forEach(function (pos) {
47030 if (!pos) {
47031 return false;
47032 }
47033 var nums = pos.split('-');
47034 for (var i = nums.length; i > 2; i--) {
47035 var parentPos = nums.slice(0, i - 1).join('-');
47036 var parentValue = _this7.getValue(parentPos);
47037 if (indeterminate.indexOf(parentValue) === -1) {
47038 indeterminate.push(parentValue);
47039 }
47040 }
47041 });
47042
47043 return indeterminate;
47044 };
47045
47046 CascaderSelect.prototype.saveSelectRef = function saveSelectRef(ref) {
47047 this.select = ref;
47048 };
47049
47050 CascaderSelect.prototype.saveCascaderRef = function saveCascaderRef(ref) {
47051 this.cascader = ref;
47052 };
47053
47054 CascaderSelect.prototype.completeValue = function completeValue(value) {
47055 var newValue = [];
47056
47057 var flatValue = this.flatValue(value).reverse();
47058 var ps = Object.keys(this._p2n);
47059 for (var i = 0; i < ps.length; i++) {
47060 for (var j = 0; j < flatValue.length; j++) {
47061 var v = flatValue[j];
47062 if (this.isDescendantOrSelf(this.getPos(v), ps[i])) {
47063 newValue.push(this.getValue(ps[i]));
47064 ps.splice(i, 1);
47065 i--;
47066 break;
47067 }
47068 }
47069 }
47070
47071 return newValue;
47072 };
47073
47074 CascaderSelect.prototype.isLeaf = function isLeaf(data) {
47075 return !(data.children && data.children.length || !!this.props.loadData && !data.isLeaf);
47076 };
47077
47078 CascaderSelect.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
47079 var _this8 = this;
47080
47081 var searchValue = this.state.searchValue;
47082
47083 if (!('visible' in this.props)) {
47084 this.setState({
47085 visible: visible
47086 });
47087 }
47088
47089 if (!visible && searchValue) {
47090 this.setState({
47091 searchValue: ''
47092 });
47093 }
47094
47095 if (['fromCascader', 'keyboard'].indexOf(type) !== -1 && !visible) {
47096 // 这里需要延迟下,showSearch 的情况下通过手动设置 menuProps={{focusable: true}} 回车 focus 会有延迟
47097 setTimeout(function () {
47098 return _this8.select.focusInput();
47099 }, 0);
47100 }
47101
47102 this.props.onVisibleChange(visible, type);
47103 };
47104
47105 CascaderSelect.prototype.handleKeyDown = function handleKeyDown(e) {
47106 var onKeyDown = this.props.onKeyDown;
47107 var visible = this.state.visible;
47108
47109 if (onKeyDown) {
47110 onKeyDown(e);
47111 }
47112
47113 if (!visible) {
47114 return;
47115 }
47116
47117 switch (e.keyCode) {
47118 case _util.KEYCODE.UP:
47119 case _util.KEYCODE.DOWN:
47120 this.cascader.setFocusValue();
47121 e.preventDefault();
47122 break;
47123 default:
47124 break;
47125 }
47126 };
47127
47128 CascaderSelect.prototype.getPopup = function getPopup(ref) {
47129 this.popup = ref;
47130 if (typeof this.props.popupProps.ref === 'function') {
47131 this.props.popupProps.ref(ref);
47132 }
47133 };
47134
47135 CascaderSelect.prototype.handleAfterOpen = function handleAfterOpen() {
47136 if (!this.popup) {
47137 return;
47138 }
47139
47140 var _props2 = this.props,
47141 prefix = _props2.prefix,
47142 popupProps = _props2.popupProps;
47143
47144 var dropDownNode = this.popup.getInstance().overlay.getInstance().getContentNode();
47145 var cascaderNode = dropDownNode.querySelector('.' + prefix + 'cascader');
47146 if (cascaderNode) {
47147 this.cascaderHeight = getStyle(cascaderNode, 'height');
47148 }
47149
47150 if (typeof popupProps.afterOpen === 'function') {
47151 popupProps.afterOpen();
47152 }
47153 };
47154
47155 CascaderSelect.prototype.handleSelect = function handleSelect(value, data) {
47156 var _props3 = this.props,
47157 multiple = _props3.multiple,
47158 changeOnSelect = _props3.changeOnSelect;
47159 var _state = this.state,
47160 visible = _state.visible,
47161 searchValue = _state.searchValue;
47162
47163 if (!multiple && (!changeOnSelect || this.isLeaf(data) || !!searchValue)) {
47164 this.handleVisibleChange(!visible, 'fromCascader');
47165 }
47166 };
47167
47168 /**
47169 * 刷新值数据缓存,删除无效值
47170 * @param {Arrary | String} curValue 当前值
47171 */
47172
47173 CascaderSelect.prototype.handleChange = function handleChange(value, data, extra) {
47174 var _this9 = this;
47175
47176 var _props4 = this.props,
47177 multiple = _props4.multiple,
47178 onChange = _props4.onChange;
47179 var _state2 = this.state,
47180 searchValue = _state2.searchValue,
47181 stateValue = _state2.value;
47182
47183 var st = {};
47184
47185 if (multiple && stateValue && Array.isArray(stateValue)) {
47186 var noExistedValues = stateValue.filter(function (v) {
47187 return !_this9._v2n[v];
47188 });
47189
47190 value = [].concat(noExistedValues, value);
47191 // onChange 中的 data 参数也应该保留不存在的 value 的数据
47192 // 在 dataSource 异步加载的情况下,会出现value重复的现象,需要去重
47193 data = [].concat(noExistedValues.map(function (v) {
47194 return _this9._valueDataCache[v];
47195 }).filter(function (v) {
47196 return v;
47197 }), data).filter(function (current, index, arr) {
47198 return index === arr.indexOf(current);
47199 });
47200 // 更新缓存
47201 this.refreshValueDataCache(value);
47202 }
47203
47204 if (!('value' in this.props)) {
47205 st.value = value;
47206 }
47207 if (!multiple && searchValue) {
47208 st.searchValue = '';
47209 }
47210 if (Object.keys(st).length) {
47211 this.setState(st);
47212 }
47213
47214 if (onChange) {
47215 onChange(value, data, extra);
47216 }
47217
47218 if (searchValue && this.select) {
47219 this.select.handleSearchClear();
47220 }
47221 };
47222
47223 CascaderSelect.prototype.handleClear = function handleClear() {
47224 // 单选时点击清空按钮
47225 var _props5 = this.props,
47226 hasClear = _props5.hasClear,
47227 multiple = _props5.multiple,
47228 treeCheckable = _props5.treeCheckable;
47229
47230 if (hasClear && (!multiple || !treeCheckable)) {
47231 if (!('value' in this.props)) {
47232 this.setState({
47233 value: []
47234 });
47235 }
47236
47237 this.props.onChange(null, null);
47238 }
47239 };
47240
47241 CascaderSelect.prototype.handleRemove = function handleRemove(currentData) {
47242 var currentValue = currentData.value;
47243
47244 var value = void 0;
47245
47246 var _props6 = this.props,
47247 multiple = _props6.multiple,
47248 checkStrictly = _props6.checkStrictly,
47249 onChange = _props6.onChange;
47250
47251 if (multiple) {
47252 value = [].concat(this.state.value);
47253 value.splice(value.indexOf(currentValue), 1);
47254
47255 if (this.props.onChange) {
47256 var data = this.getData(value);
47257 var checked = false;
47258
47259 if (checkStrictly) {
47260 this.props.onChange(value, data, {
47261 checked: checked,
47262 currentData: currentData,
47263 checkedData: data
47264 });
47265 } else {
47266 var checkedValue = this.completeValue(value);
47267 var checkedData = this.getData(checkedValue);
47268 var indeterminateValue = this.getIndeterminate(value);
47269 var indeterminateData = this.getData(indeterminateValue);
47270 this.props.onChange(value, data, {
47271 checked: checked,
47272 currentData: currentData,
47273 checkedData: checkedData,
47274 indeterminateData: indeterminateData
47275 });
47276 }
47277 }
47278 } else {
47279 value = [];
47280 onChange(null, null);
47281 }
47282
47283 if (!('value' in this.props)) {
47284 this.setState({
47285 value: value
47286 });
47287 }
47288
47289 this.refreshValueDataCache(value);
47290 };
47291
47292 CascaderSelect.prototype.handleSearch = function handleSearch(searchValue) {
47293 this.setState({
47294 searchValue: searchValue
47295 });
47296
47297 this.props.onSearch && this.props.onSearch(searchValue);
47298 };
47299
47300 CascaderSelect.prototype.getPath = function getPath(pos) {
47301 var items = [];
47302
47303 var nums = pos.split('-');
47304 if (nums === 2) {
47305 items.push(this._p2n[pos]);
47306 } else {
47307 for (var i = 1; i < nums.length; i++) {
47308 var p = nums.slice(0, i + 1).join('-');
47309 items.push(this._p2n[p]);
47310 }
47311 }
47312
47313 return items;
47314 };
47315
47316 CascaderSelect.prototype.filterItems = function filterItems() {
47317 var _this10 = this;
47318
47319 var _props7 = this.props,
47320 multiple = _props7.multiple,
47321 changeOnSelect = _props7.changeOnSelect,
47322 canOnlyCheckLeaf = _props7.canOnlyCheckLeaf,
47323 filter = _props7.filter;
47324 var searchValue = this.state.searchValue;
47325
47326 var items = Object.keys(this._p2n).map(function (p) {
47327 return _this10._p2n[p];
47328 });
47329 if (!multiple && !changeOnSelect || multiple && canOnlyCheckLeaf) {
47330 items = items.filter(function (item) {
47331 return !item.children || !item.children.length;
47332 });
47333 }
47334
47335 return items.map(function (item) {
47336 return _this10.getPath(item.pos);
47337 }).filter(function (path) {
47338 return filter(searchValue, path);
47339 });
47340 };
47341
47342 CascaderSelect.prototype.renderNotFound = function renderNotFound() {
47343 var _props8 = this.props,
47344 prefix = _props8.prefix,
47345 notFoundContent = _props8.notFoundContent;
47346
47347 return _react2.default.createElement(_menu2.default, { className: prefix + 'cascader-select-not-found' }, _react2.default.createElement(_menu2.default.Item, null, notFoundContent));
47348 };
47349
47350 CascaderSelect.prototype.renderCascader = function renderCascader() {
47351 var dataSource = this.props.dataSource;
47352
47353 if (dataSource.length === 0) {
47354 return this.renderNotFound();
47355 }
47356
47357 var searchValue = this.state.searchValue;
47358
47359 var filteredPaths = [];
47360
47361 if (searchValue) {
47362 filteredPaths = this.filterItems();
47363 if (filteredPaths.length === 0) {
47364 return this.renderNotFound();
47365 }
47366 }
47367
47368 var _props9 = this.props,
47369 multiple = _props9.multiple,
47370 useVirtual = _props9.useVirtual,
47371 changeOnSelect = _props9.changeOnSelect,
47372 checkStrictly = _props9.checkStrictly,
47373 canOnlyCheckLeaf = _props9.canOnlyCheckLeaf,
47374 defaultExpandedValue = _props9.defaultExpandedValue,
47375 expandTriggerType = _props9.expandTriggerType,
47376 onExpand = _props9.onExpand,
47377 listStyle = _props9.listStyle,
47378 listClassName = _props9.listClassName,
47379 loadData = _props9.loadData,
47380 showSearch = _props9.showSearch,
47381 resultRender = _props9.resultRender,
47382 readOnly = _props9.readOnly,
47383 itemRender = _props9.itemRender,
47384 immutable = _props9.immutable,
47385 _props9$menuProps = _props9.menuProps,
47386 menuProps = _props9$menuProps === undefined ? {} : _props9$menuProps;
47387 var value = this.state.value;
47388
47389 var props = {
47390 dataSource: dataSource,
47391 value: value,
47392 multiple: multiple,
47393 useVirtual: useVirtual,
47394 canOnlySelectLeaf: !changeOnSelect,
47395 checkStrictly: checkStrictly,
47396 canOnlyCheckLeaf: canOnlyCheckLeaf,
47397 defaultExpandedValue: defaultExpandedValue,
47398 expandTriggerType: expandTriggerType,
47399 ref: this.saveCascaderRef,
47400 onExpand: onExpand,
47401 listStyle: listStyle,
47402 listClassName: listClassName,
47403 loadData: loadData,
47404 itemRender: itemRender,
47405 immutable: immutable
47406 };
47407
47408 if ('expandedValue' in this.props) {
47409 props.expandedValue = this.props.expandedValue;
47410 }
47411
47412 if (!readOnly) {
47413 props.onChange = this.handleChange;
47414 props.onSelect = this.handleSelect;
47415 }
47416 if (showSearch) {
47417 props.searchValue = searchValue;
47418 props.filteredPaths = filteredPaths;
47419 props.resultRender = resultRender;
47420 props.filteredListStyle = { height: this.cascaderHeight };
47421 }
47422
47423 return _react2.default.createElement(_cascader2.default, (0, _extends3.default)({}, props, menuProps));
47424 };
47425
47426 CascaderSelect.prototype.renderPopupContent = function renderPopupContent() {
47427 var _props10 = this.props,
47428 prefix = _props10.prefix,
47429 header = _props10.header,
47430 footer = _props10.footer;
47431
47432 return _react2.default.createElement('div', { className: prefix + 'cascader-select-dropdown' }, header, this.renderCascader(), footer);
47433 };
47434
47435 CascaderSelect.prototype.renderPreview = function renderPreview(others) {
47436 var _props11 = this.props,
47437 prefix = _props11.prefix,
47438 multiple = _props11.multiple,
47439 className = _props11.className,
47440 renderPreview = _props11.renderPreview;
47441 var value = this.state.value;
47442
47443 var previewCls = (0, _classnames2.default)(className, prefix + 'form-preview');
47444 var items = (multiple ? this.getMultipleData(value) : this.getSingleData(value)) || [];
47445
47446 if (!Array.isArray(items)) {
47447 items = [items];
47448 }
47449
47450 if (typeof renderPreview === 'function') {
47451 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(items, this.props));
47452 }
47453
47454 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), items.map(function (_ref) {
47455 var label = _ref.label;
47456 return label;
47457 }).join(', '));
47458 };
47459
47460 CascaderSelect.prototype.render = function render() {
47461 var _props12 = this.props,
47462 prefix = _props12.prefix,
47463 size = _props12.size,
47464 hasArrow = _props12.hasArrow,
47465 hasBorder = _props12.hasBorder,
47466 hasClear = _props12.hasClear,
47467 label = _props12.label,
47468 readOnly = _props12.readOnly,
47469 placeholder = _props12.placeholder,
47470 dataSource = _props12.dataSource,
47471 disabled = _props12.disabled,
47472 multiple = _props12.multiple,
47473 className = _props12.className,
47474 showSearch = _props12.showSearch,
47475 popupStyle = _props12.popupStyle,
47476 popupClassName = _props12.popupClassName,
47477 popupContainer = _props12.popupContainer,
47478 popupProps = _props12.popupProps,
47479 followTrigger = _props12.followTrigger,
47480 isPreview = _props12.isPreview,
47481 resultAutoWidth = _props12.resultAutoWidth;
47482 var _state3 = this.state,
47483 value = _state3.value,
47484 searchValue = _state3.searchValue,
47485 visible = _state3.visible;
47486
47487 var others = pickOthers(Object.keys(CascaderSelect.propTypes), this.props);
47488
47489 this.updateCache(dataSource);
47490
47491 if (isPreview) {
47492 return this.renderPreview(others);
47493 }
47494
47495 var popupContent = this.renderPopupContent();
47496
47497 var props = {
47498 prefix: prefix,
47499 className: className,
47500 size: size,
47501 placeholder: placeholder,
47502 disabled: disabled,
47503 hasArrow: hasArrow,
47504 hasBorder: hasBorder,
47505 hasClear: hasClear,
47506 label: label,
47507 readOnly: readOnly,
47508 ref: this.saveSelectRef,
47509 autoWidth: false,
47510 mode: multiple ? 'multiple' : 'single',
47511 value: multiple ? this.getMultipleData(value) : this.getSingleData(value),
47512 onChange: this.handleClear,
47513 onRemove: this.handleRemove,
47514 visible: visible,
47515 onVisibleChange: this.handleVisibleChange,
47516 showSearch: showSearch,
47517 onSearch: this.handleSearch,
47518 onKeyDown: this.handleKeyDown,
47519 popupContent: popupContent,
47520 popupStyle: popupStyle,
47521 popupClassName: popupClassName,
47522 popupContainer: popupContainer,
47523 popupProps: popupProps,
47524 followTrigger: followTrigger
47525 };
47526
47527 if (showSearch) {
47528 props.popupProps = (0, _extends3.default)({}, popupProps, {
47529 ref: this.getPopup,
47530 afterOpen: this.handleAfterOpen
47531 });
47532 props.autoWidth = resultAutoWidth && !!searchValue;
47533 }
47534
47535 return _react2.default.createElement(_select2.default, (0, _extends3.default)({}, props, others));
47536 };
47537
47538 return CascaderSelect;
47539}(_react.Component), _class.propTypes = {
47540 prefix: _propTypes2.default.string,
47541 pure: _propTypes2.default.bool,
47542 className: _propTypes2.default.string,
47543 /**
47544 * 选择框大小
47545 */
47546 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
47547 /**
47548 * 选择框占位符
47549 */
47550 placeholder: _propTypes2.default.string,
47551 /**
47552 * 是否禁用
47553 */
47554 disabled: _propTypes2.default.bool,
47555 /**
47556 * 是否有下拉箭头
47557 */
47558 hasArrow: _propTypes2.default.bool,
47559 /**
47560 * 是否有边框
47561 */
47562 hasBorder: _propTypes2.default.bool,
47563 /**
47564 * 是否有清除按钮
47565 */
47566 hasClear: _propTypes2.default.bool,
47567 /**
47568 * 自定义内联 label
47569 */
47570 label: _propTypes2.default.node,
47571 /**
47572 * 是否只读,只读模式下可以展开弹层但不能选
47573 */
47574 readOnly: _propTypes2.default.bool,
47575 /**
47576 * 数据源,结构可参考下方说明
47577 */
47578 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
47579 /**
47580 * (非受控)默认值
47581 */
47582 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
47583 /**
47584 * (受控)当前值
47585 */
47586 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.arrayOf(_propTypes2.default.string)]),
47587 /**
47588 * 选中值改变时触发的回调函数
47589 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组
47590 * @param {Object|Array} data 选中的数据,包括 value 和 label,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点
47591 * @param {Object} extra 额外参数
47592 * @param {Array} extra.selectedPath 单选时选中的数据的路径
47593 * @param {Boolean} extra.checked 多选时当前的操作是选中还是取消选中
47594 * @param {Object} extra.currentData 多选时当前操作的数据
47595 * @param {Array} extra.checkedData 多选时所有被选中的数据
47596 * @param {Array} extra.indeterminateData 多选时半选的数据
47597 */
47598 onChange: _propTypes2.default.func,
47599 /**
47600 * 默认展开值,如果不设置,组件内部会根据 defaultValue/value 进行自动设置
47601 */
47602 defaultExpandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
47603 /**
47604 * (受控)当前展开值
47605 */
47606 expandedValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
47607 /**
47608 * 展开触发的方式
47609 */
47610 expandTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
47611 onExpand: _propTypes2.default.func,
47612 /**
47613 * 是否开启虚拟滚动
47614 */
47615 useVirtual: _propTypes2.default.bool,
47616 /**
47617 * 是否多选
47618 */
47619 multiple: _propTypes2.default.bool,
47620 /**
47621 * 是否选中即发生改变, 该属性仅在单选模式下有效
47622 */
47623 changeOnSelect: _propTypes2.default.bool,
47624 /**
47625 * 是否只能勾选叶子项的checkbox,该属性仅在多选模式下有效
47626 */
47627 canOnlyCheckLeaf: _propTypes2.default.bool,
47628 /**
47629 * 父子节点是否选中不关联
47630 */
47631 checkStrictly: _propTypes2.default.bool,
47632 /**
47633 * 每列列表样式对象
47634 */
47635 listStyle: _propTypes2.default.object,
47636 /**
47637 * 每列列表类名
47638 */
47639 listClassName: _propTypes2.default.string,
47640 /**
47641 * 选择框单选时展示结果的自定义渲染函数
47642 * @param {Array} label 选中路径的文本数组
47643 * @return {ReactNode} 渲染在选择框中的内容
47644 * @default 单选时:labelPath => labelPath.join(' / ');多选时:labelPath => labelPath[labelPath.length - 1]
47645 */
47646 displayRender: _propTypes2.default.func,
47647 /**
47648 * 渲染 item 内容的方法
47649 * @param {Object} item 渲染节点的item
47650 * @return {ReactNode} item node
47651 */
47652 itemRender: _propTypes2.default.func,
47653 /**
47654 * 是否显示搜索框
47655 */
47656 showSearch: _propTypes2.default.bool,
47657 /**
47658 * 自定义搜索函数
47659 * @param {String} searchValue 搜索的关键字
47660 * @param {Array} path 节点路径
47661 * @return {Boolean} 是否匹配
47662 * @default 根据路径所有节点的文本值模糊匹配
47663 */
47664 filter: _propTypes2.default.func,
47665 /**
47666 * 当搜索框值变化时回调
47667 * @param {String} value 数据
47668 * @version 1.23
47669 */
47670 onSearch: _propTypes2.default.func,
47671 /**
47672 * 搜索结果自定义渲染函数
47673 * @param {String} searchValue 搜索的关键字
47674 * @param {Array} path 匹配到的节点路径
47675 * @return {ReactNode} 渲染的内容
47676 * @default 按照节点文本 a / b / c 的模式渲染
47677 */
47678 resultRender: _propTypes2.default.func,
47679 /**
47680 * 搜索结果列表是否和选择框等宽
47681 */
47682 resultAutoWidth: _propTypes2.default.bool,
47683 /**
47684 * 无数据时显示内容
47685 */
47686 notFoundContent: _propTypes2.default.node,
47687 /**
47688 * 异步加载数据函数
47689 * @param {Object} data 当前点击异步加载的数据
47690 */
47691 loadData: _propTypes2.default.func,
47692 /**
47693 * 自定义下拉框头部
47694 */
47695 header: _propTypes2.default.node,
47696 /**
47697 * 自定义下拉框底部
47698 */
47699 footer: _propTypes2.default.node,
47700 /**
47701 * 初始下拉框是否显示
47702 */
47703 defaultVisible: _propTypes2.default.bool,
47704 /**
47705 * 当前下拉框是否显示
47706 */
47707 visible: _propTypes2.default.bool,
47708 /**
47709 * 下拉框显示或关闭时触发事件的回调函数
47710 * @param {Boolean} visible 是否显示
47711 * @param {String} type 触发显示关闭的操作类型, fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
47712 */
47713 onVisibleChange: _propTypes2.default.func,
47714 /**
47715 * 下拉框自定义样式对象
47716 */
47717 popupStyle: _propTypes2.default.object,
47718 /**
47719 * 下拉框样式自定义类名
47720 */
47721 popupClassName: _propTypes2.default.string,
47722 /**
47723 * 下拉框挂载的容器节点
47724 */
47725 popupContainer: _propTypes2.default.any,
47726 /**
47727 * 透传到 Popup 的属性对象
47728 */
47729 popupProps: _propTypes2.default.object,
47730 /**
47731 * 是否跟随滚动
47732 */
47733 followTrigger: _propTypes2.default.bool,
47734 /**
47735 * 是否为预览态
47736 */
47737 isPreview: _propTypes2.default.bool,
47738 /**
47739 * 预览态模式下渲染的内容
47740 * @param {Array<data>} value 选择值 { label: , value:}
47741 */
47742 renderPreview: _propTypes2.default.func,
47743 /**
47744 * 是否是不可变数据
47745 * @version 1.23
47746 */
47747 immutable: _propTypes2.default.bool
47748}, _class.defaultProps = {
47749 prefix: 'next-',
47750 pure: false,
47751 size: 'medium',
47752 disabled: false,
47753 hasArrow: true,
47754 hasBorder: true,
47755 hasClear: false,
47756 dataSource: [],
47757 defaultValue: null,
47758 expandTriggerType: 'click',
47759 onExpand: function onExpand() {},
47760 useVirtual: false,
47761 multiple: false,
47762 changeOnSelect: false,
47763 canOnlyCheckLeaf: false,
47764 checkStrictly: false,
47765 showSearch: false,
47766 filter: function filter(searchValue, path) {
47767 return path.some(function (item) {
47768 return String(item.label).toLowerCase().indexOf(String(searchValue).toLowerCase()) > -1;
47769 });
47770 },
47771 resultRender: function resultRender(searchValue, path) {
47772 var parts = [];
47773 path.forEach(function (item, i) {
47774 var reExp = searchValue.replace(/[-.+*?^$()[\]{}|\\]/g, function (v) {
47775 return '\\' + v;
47776 });
47777
47778 var re = new RegExp(reExp, 'gi');
47779 var others = item.label.split(re);
47780 var matches = item.label.match(re);
47781
47782 others.forEach(function (other, j) {
47783 if (other) {
47784 parts.push(other);
47785 }
47786 if (j < others.length - 1) {
47787 parts.push(_react2.default.createElement('em', { key: i + '-' + j }, matches[j]));
47788 }
47789 });
47790 if (i < path.length - 1) {
47791 parts.push(' / ');
47792 }
47793 });
47794 return _react2.default.createElement('span', null, parts);
47795 },
47796 resultAutoWidth: true,
47797 notFoundContent: 'Not Found',
47798 defaultVisible: false,
47799 onVisibleChange: function onVisibleChange() {},
47800 popupProps: {},
47801 immutable: false
47802}, _temp);
47803CascaderSelect.displayName = 'CascaderSelect';
47804exports.default = (0, _reactLifecyclesCompat.polyfill)(CascaderSelect);
47805module.exports = exports['default'];
47806
47807/***/ }),
47808/* 330 */
47809/***/ (function(module, exports, __webpack_require__) {
47810
47811"use strict";
47812
47813
47814exports.__esModule = true;
47815
47816var _collapse = __webpack_require__(331);
47817
47818var _collapse2 = _interopRequireDefault(_collapse);
47819
47820var _panel = __webpack_require__(167);
47821
47822var _panel2 = _interopRequireDefault(_panel);
47823
47824function _interopRequireDefault(obj) {
47825 return obj && obj.__esModule ? obj : { default: obj };
47826}
47827
47828_collapse2.default.Panel = _panel2.default;
47829
47830exports.default = _collapse2.default;
47831module.exports = exports['default'];
47832
47833/***/ }),
47834/* 331 */
47835/***/ (function(module, exports, __webpack_require__) {
47836
47837"use strict";
47838
47839
47840exports.__esModule = true;
47841
47842var _extends2 = __webpack_require__(1);
47843
47844var _extends3 = _interopRequireDefault(_extends2);
47845
47846var _classCallCheck2 = __webpack_require__(2);
47847
47848var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
47849
47850var _possibleConstructorReturn2 = __webpack_require__(3);
47851
47852var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
47853
47854var _inherits2 = __webpack_require__(4);
47855
47856var _inherits3 = _interopRequireDefault(_inherits2);
47857
47858var _class, _temp;
47859
47860var _react = __webpack_require__(0);
47861
47862var _react2 = _interopRequireDefault(_react);
47863
47864var _propTypes = __webpack_require__(5);
47865
47866var _propTypes2 = _interopRequireDefault(_propTypes);
47867
47868var _classnames = __webpack_require__(7);
47869
47870var _classnames2 = _interopRequireDefault(_classnames);
47871
47872var _reactLifecyclesCompat = __webpack_require__(10);
47873
47874var _configProvider = __webpack_require__(9);
47875
47876var _configProvider2 = _interopRequireDefault(_configProvider);
47877
47878var _util = __webpack_require__(6);
47879
47880var _panel = __webpack_require__(167);
47881
47882var _panel2 = _interopRequireDefault(_panel);
47883
47884function _interopRequireDefault(obj) {
47885 return obj && obj.__esModule ? obj : { default: obj };
47886}
47887
47888/** Collapse */
47889var Collapse = (_temp = _class = function (_React$Component) {
47890 (0, _inherits3.default)(Collapse, _React$Component);
47891
47892 function Collapse(props) {
47893 (0, _classCallCheck3.default)(this, Collapse);
47894
47895 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
47896
47897 var expandedKeys = void 0;
47898 if ('expandedKeys' in props) {
47899 expandedKeys = props.expandedKeys;
47900 } else {
47901 expandedKeys = props.defaultExpandedKeys;
47902 }
47903
47904 _this.state = {
47905 expandedKeys: typeof expandedKeys === 'undefined' ? [] : expandedKeys
47906 };
47907 return _this;
47908 }
47909
47910 Collapse.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
47911 if ('expandedKeys' in props) {
47912 return {
47913 expandedKeys: typeof props.expandedKeys === 'undefined' ? [] : props.expandedKeys
47914 };
47915 }
47916 return null;
47917 };
47918
47919 Collapse.prototype.onItemClick = function onItemClick(key) {
47920 var expandedKeys = this.state.expandedKeys;
47921 if (this.props.accordion) {
47922 expandedKeys = String(expandedKeys[0]) === String(key) ? [] : [key];
47923 } else {
47924 expandedKeys = [].concat(expandedKeys);
47925 var stringKey = String(key);
47926 var index = expandedKeys.findIndex(function (k) {
47927 return String(k) === stringKey;
47928 });
47929 var isExpanded = index > -1;
47930 if (isExpanded) {
47931 expandedKeys.splice(index, 1);
47932 } else {
47933 expandedKeys.push(key);
47934 }
47935 }
47936 this.setExpandedKey(expandedKeys);
47937 };
47938
47939 Collapse.prototype.genratePanelId = function genratePanelId(itemId, index) {
47940 var collapseId = this.props.id;
47941
47942 var id = void 0;
47943 if (itemId) {
47944 // 优先用 item自带的id
47945 id = itemId;
47946 } else if (collapseId) {
47947 // 其次用 collapseId 和 index 生成id
47948 id = collapseId + '-panel-' + index;
47949 }
47950 return id;
47951 };
47952
47953 Collapse.prototype.getProps = function getProps(item, index, key) {
47954 var _this2 = this;
47955
47956 var expandedKeys = this.state.expandedKeys;
47957 var title = item.title;
47958
47959 var disabled = this.props.disabled;
47960
47961 if (!disabled) {
47962 disabled = item.disabled;
47963 }
47964
47965 var isExpanded = false;
47966
47967 if (this.props.accordion) {
47968 isExpanded = String(expandedKeys[0]) === String(key);
47969 } else {
47970 isExpanded = expandedKeys.some(function (expandedKey) {
47971 if (expandedKey === null || expandedKey === undefined || key === null || key === undefined) {
47972 return false;
47973 }
47974
47975 if (expandedKey === key || expandedKey.toString() === key.toString()) {
47976 return true;
47977 }
47978 return false;
47979 });
47980 }
47981
47982 var id = this.genratePanelId(item.id, index);
47983 return {
47984 key: key,
47985 title: title,
47986 isExpanded: isExpanded,
47987 disabled: disabled,
47988 id: id,
47989 onClick: disabled ? null : function () {
47990 _this2.onItemClick(key);
47991 if ('onClick' in item) {
47992 item.onClick(key);
47993 }
47994 }
47995 };
47996 };
47997
47998 Collapse.prototype.getItemsByDataSource = function getItemsByDataSource() {
47999 var _this3 = this;
48000
48001 var props = this.props;
48002 var dataSource = props.dataSource;
48003 // 是否有dataSource.item传入过key
48004
48005 var hasKeys = dataSource.some(function (item) {
48006 return 'key' in item;
48007 });
48008
48009 return dataSource.map(function (item, index) {
48010 // 传入过key就用item.key 没传入则统一使用index为key
48011 var key = hasKeys ? item.key : '' + index;
48012 return _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, _this3.getProps(item, index, key), { key: key }), item.content);
48013 });
48014 };
48015
48016 Collapse.prototype.getItemsByChildren = function getItemsByChildren() {
48017 var _this4 = this;
48018
48019 // 是否有child传入过key
48020 var allKeys = _react2.default.Children.map(this.props.children, function (child) {
48021 return child && child.key;
48022 });
48023 var hasKeys = Boolean(allKeys && allKeys.length);
48024
48025 return _react2.default.Children.map(this.props.children, function (child, index) {
48026 if (child && typeof child.type === 'function' && child.type.isNextPanel) {
48027 // 传入过key就用child.key 没传入则统一使用index为key
48028 var key = hasKeys ? child.key : '' + index;
48029 return _react2.default.cloneElement(child, _this4.getProps(child.props, index, key));
48030 } else {
48031 return child;
48032 }
48033 });
48034 };
48035
48036 Collapse.prototype.setExpandedKey = function setExpandedKey(expandedKeys) {
48037 if (!('expandedKeys' in this.props)) {
48038 this.setState({ expandedKeys: expandedKeys });
48039 }
48040 this.props.onExpand(this.props.accordion ? expandedKeys[0] : expandedKeys);
48041 };
48042
48043 Collapse.prototype.render = function render() {
48044 var _classNames;
48045
48046 var _props = this.props,
48047 prefix = _props.prefix,
48048 className = _props.className,
48049 style = _props.style,
48050 disabled = _props.disabled,
48051 dataSource = _props.dataSource,
48052 id = _props.id,
48053 rtl = _props.rtl;
48054
48055 var collapseClassName = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'collapse'] = true, _classNames[prefix + 'collapse-disabled'] = disabled, _classNames[className] = Boolean(className), _classNames));
48056
48057 var others = _util.obj.pickOthers(Collapse.propTypes, this.props);
48058 return _react2.default.createElement('div', (0, _extends3.default)({
48059 id: id,
48060 className: collapseClassName,
48061 style: style
48062 }, others, {
48063 role: 'presentation',
48064 dir: rtl ? 'rtl' : undefined
48065 }), dataSource ? this.getItemsByDataSource() : this.getItemsByChildren());
48066 };
48067
48068 return Collapse;
48069}(_react2.default.Component), _class.propTypes = {
48070 /**
48071 * 样式前缀
48072 */
48073 prefix: _propTypes2.default.string,
48074 /**
48075 * 组件接受行内样式
48076 */
48077 style: _propTypes2.default.object,
48078 /**
48079 * 使用数据模型构建
48080 */
48081 dataSource: _propTypes2.default.array,
48082 /**
48083 * 默认展开keys
48084 */
48085 defaultExpandedKeys: _propTypes2.default.array,
48086 /**
48087 * 受控展开keys
48088 */
48089 expandedKeys: _propTypes2.default.array,
48090 /**
48091 * 展开状态发升变化时候的回调
48092 */
48093 onExpand: _propTypes2.default.func,
48094 /**
48095 * 所有禁用
48096 */
48097 disabled: _propTypes2.default.bool,
48098 /**
48099 * 扩展class
48100 */
48101 className: _propTypes2.default.string,
48102 /**
48103 * 手风琴模式,一次只能打开一个
48104 */
48105 accordion: _propTypes2.default.bool,
48106 children: _propTypes2.default.node,
48107 id: _propTypes2.default.string,
48108 rtl: _propTypes2.default.bool
48109}, _class.defaultProps = {
48110 accordion: false,
48111 prefix: 'next-',
48112 onExpand: _util.func.noop
48113}, _class.contextTypes = {
48114 prefix: _propTypes2.default.string
48115}, _temp);
48116Collapse.displayName = 'Collapse';
48117exports.default = (0, _reactLifecyclesCompat.polyfill)(_configProvider2.default.config(Collapse));
48118module.exports = exports['default'];
48119
48120/***/ }),
48121/* 332 */
48122/***/ (function(module, exports, __webpack_require__) {
48123
48124"use strict";
48125
48126
48127exports.__esModule = true;
48128
48129var _objectWithoutProperties2 = __webpack_require__(8);
48130
48131var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
48132
48133var _configProvider = __webpack_require__(9);
48134
48135var _configProvider2 = _interopRequireDefault(_configProvider);
48136
48137var _datePicker = __webpack_require__(333);
48138
48139var _datePicker2 = _interopRequireDefault(_datePicker);
48140
48141var _rangePicker = __webpack_require__(335);
48142
48143var _rangePicker2 = _interopRequireDefault(_rangePicker);
48144
48145var _monthPicker = __webpack_require__(336);
48146
48147var _monthPicker2 = _interopRequireDefault(_monthPicker);
48148
48149var _yearPicker = __webpack_require__(337);
48150
48151var _yearPicker2 = _interopRequireDefault(_yearPicker);
48152
48153var _weekPicker = __webpack_require__(338);
48154
48155var _weekPicker2 = _interopRequireDefault(_weekPicker);
48156
48157function _interopRequireDefault(obj) {
48158 return obj && obj.__esModule ? obj : { default: obj };
48159}
48160
48161/* istanbul ignore next */
48162var transform = function transform(props, deprecated) {
48163 var open = props.open,
48164 defaultOpen = props.defaultOpen,
48165 onOpenChange = props.onOpenChange,
48166 others = (0, _objectWithoutProperties3.default)(props, ['open', 'defaultOpen', 'onOpenChange']);
48167
48168 var newProps = others;
48169
48170 delete newProps.formater;
48171
48172 if ('open' in props) {
48173 deprecated('open', 'visible', 'DatePicker');
48174
48175 newProps.visible = open;
48176
48177 if ('visible' in props) {
48178 newProps.visible = props.visible;
48179 }
48180 }
48181
48182 if ('defaultOpen' in props) {
48183 deprecated('defaultOpen', 'defaultVisible', 'DatePicker');
48184
48185 newProps.defaultVisible = defaultOpen;
48186
48187 if ('defaultVisible' in props) {
48188 newProps.defaultVisible = props.defaultVisible;
48189 }
48190 }
48191
48192 if ('onOpenChange' in props && typeof onOpenChange === 'function') {
48193 deprecated('onOpenChange', 'onVisibleChange', 'DatePicker');
48194
48195 newProps.onVisibleChange = onOpenChange;
48196
48197 if ('onVisibleChange' in props) {
48198 newProps.onVisibleChange = props.onVisibleChange;
48199 }
48200 }
48201
48202 if ('formater' in props) {
48203 deprecated('formater', 'format showTime.format', 'DatePicker');
48204 }
48205
48206 if ('format' in props && typeof props.format !== 'string') {
48207 deprecated('format', 'format: PropTypes.string,', 'DatePicker');
48208 }
48209
48210 if ('ranges' in props) {
48211 deprecated('ranges', 'footerRender: PropTypes.func', 'RangePicker');
48212 }
48213
48214 return newProps;
48215};
48216
48217_datePicker2.default.RangePicker = _configProvider2.default.config(_rangePicker2.default, {
48218 componentName: 'DatePicker',
48219 transform: transform
48220});
48221_datePicker2.default.MonthPicker = _configProvider2.default.config(_monthPicker2.default, {
48222 componentName: 'DatePicker',
48223 transform: transform
48224});
48225_datePicker2.default.YearPicker = _configProvider2.default.config(_yearPicker2.default, {
48226 componentName: 'DatePicker',
48227 transform: transform
48228});
48229
48230_datePicker2.default.WeekPicker = _configProvider2.default.config(_weekPicker2.default, {
48231 componentName: 'DatePicker'
48232});
48233
48234exports.default = _configProvider2.default.config(_datePicker2.default, {
48235 transform: transform
48236});
48237module.exports = exports['default'];
48238
48239/***/ }),
48240/* 333 */
48241/***/ (function(module, exports, __webpack_require__) {
48242
48243"use strict";
48244
48245
48246exports.__esModule = true;
48247
48248var _typeof2 = __webpack_require__(14);
48249
48250var _typeof3 = _interopRequireDefault(_typeof2);
48251
48252var _objectWithoutProperties2 = __webpack_require__(8);
48253
48254var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
48255
48256var _extends2 = __webpack_require__(1);
48257
48258var _extends3 = _interopRequireDefault(_extends2);
48259
48260var _classCallCheck2 = __webpack_require__(2);
48261
48262var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
48263
48264var _possibleConstructorReturn2 = __webpack_require__(3);
48265
48266var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
48267
48268var _inherits2 = __webpack_require__(4);
48269
48270var _inherits3 = _interopRequireDefault(_inherits2);
48271
48272var _class, _temp, _initialiseProps;
48273
48274var _react = __webpack_require__(0);
48275
48276var _react2 = _interopRequireDefault(_react);
48277
48278var _propTypes = __webpack_require__(5);
48279
48280var _propTypes2 = _interopRequireDefault(_propTypes);
48281
48282var _reactLifecyclesCompat = __webpack_require__(10);
48283
48284var _classnames6 = __webpack_require__(7);
48285
48286var _classnames7 = _interopRequireDefault(_classnames6);
48287
48288var _moment = __webpack_require__(19);
48289
48290var _moment2 = _interopRequireDefault(_moment);
48291
48292var _configProvider = __webpack_require__(9);
48293
48294var _configProvider2 = _interopRequireDefault(_configProvider);
48295
48296var _overlay = __webpack_require__(15);
48297
48298var _overlay2 = _interopRequireDefault(_overlay);
48299
48300var _input = __webpack_require__(18);
48301
48302var _input2 = _interopRequireDefault(_input);
48303
48304var _icon = __webpack_require__(11);
48305
48306var _icon2 = _interopRequireDefault(_icon);
48307
48308var _calendar = __webpack_require__(38);
48309
48310var _calendar2 = _interopRequireDefault(_calendar);
48311
48312var _panel = __webpack_require__(91);
48313
48314var _panel2 = _interopRequireDefault(_panel);
48315
48316var _zhCn = __webpack_require__(13);
48317
48318var _zhCn2 = _interopRequireDefault(_zhCn);
48319
48320var _util = __webpack_require__(6);
48321
48322var _util2 = __webpack_require__(30);
48323
48324var _panelFooter = __webpack_require__(168);
48325
48326var _panelFooter2 = _interopRequireDefault(_panelFooter);
48327
48328function _interopRequireDefault(obj) {
48329 return obj && obj.__esModule ? obj : { default: obj };
48330}
48331
48332var Popup = _overlay2.default.Popup;
48333
48334/**
48335 * DatePicker
48336 */
48337
48338var DatePicker = (_temp = _class = function (_Component) {
48339 (0, _inherits3.default)(DatePicker, _Component);
48340
48341 function DatePicker(props, context) {
48342 (0, _classCallCheck3.default)(this, DatePicker);
48343
48344 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
48345
48346 _initialiseProps.call(_this);
48347
48348 var _getDateTimeFormat = (0, _util2.getDateTimeFormat)(props.format, props.showTime),
48349 format = _getDateTimeFormat.format,
48350 timeFormat = _getDateTimeFormat.timeFormat,
48351 dateTimeFormat = _getDateTimeFormat.dateTimeFormat;
48352
48353 _this.state = {
48354 value: (0, _util2.formatDateValue)(props.defaultValue, dateTimeFormat),
48355 dateInputStr: '',
48356 timeInputStr: '',
48357 inputing: false, // 当前是否处于输入状态
48358 visible: props.defaultVisible,
48359 inputAsString: typeof props.defaultValue === 'string',
48360 panel: _util2.PANEL.DATE,
48361 format: format,
48362 timeFormat: timeFormat,
48363 dateTimeFormat: dateTimeFormat
48364 };
48365 return _this;
48366 }
48367
48368 DatePicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
48369 var formatStates = (0, _util2.getDateTimeFormat)(props.format, props.showTime);
48370 var states = {};
48371
48372 if ('value' in props) {
48373 states.value = (0, _util2.formatDateValue)(props.value, formatStates.dateTimeFormat);
48374 states.inputAsString = typeof props.value === 'string';
48375 }
48376
48377 if ('visible' in props) {
48378 states.visible = props.visible;
48379 }
48380
48381 return (0, _extends3.default)({}, states, formatStates);
48382 };
48383
48384 DatePicker.prototype.renderPreview = function renderPreview(others) {
48385 var _props = this.props,
48386 prefix = _props.prefix,
48387 className = _props.className,
48388 renderPreview = _props.renderPreview;
48389 var _state = this.state,
48390 value = _state.value,
48391 dateTimeFormat = _state.dateTimeFormat;
48392
48393 var previewCls = (0, _classnames7.default)(className, prefix + 'form-preview');
48394
48395 var label = value ? value.format(dateTimeFormat) : '';
48396
48397 if (typeof renderPreview === 'function') {
48398 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
48399 }
48400
48401 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
48402 };
48403
48404 DatePicker.prototype.render = function render() {
48405 var _classnames, _classnames2, _classnames3, _classnames4, _PANEL$DATE$PANEL$TIM;
48406
48407 var _props2 = this.props,
48408 prefix = _props2.prefix,
48409 rtl = _props2.rtl,
48410 locale = _props2.locale,
48411 label = _props2.label,
48412 state = _props2.state,
48413 defaultVisibleMonth = _props2.defaultVisibleMonth,
48414 onVisibleMonthChange = _props2.onVisibleMonthChange,
48415 showTime = _props2.showTime,
48416 disabledDate = _props2.disabledDate,
48417 footerRender = _props2.footerRender,
48418 placeholder = _props2.placeholder,
48419 size = _props2.size,
48420 disabled = _props2.disabled,
48421 hasClear = _props2.hasClear,
48422 popupTriggerType = _props2.popupTriggerType,
48423 popupAlign = _props2.popupAlign,
48424 popupContainer = _props2.popupContainer,
48425 popupStyle = _props2.popupStyle,
48426 popupClassName = _props2.popupClassName,
48427 popupProps = _props2.popupProps,
48428 popupComponent = _props2.popupComponent,
48429 popupContent = _props2.popupContent,
48430 followTrigger = _props2.followTrigger,
48431 className = _props2.className,
48432 inputProps = _props2.inputProps,
48433 dateCellRender = _props2.dateCellRender,
48434 monthCellRender = _props2.monthCellRender,
48435 yearCellRender = _props2.yearCellRender,
48436 dateInputAriaLabel = _props2.dateInputAriaLabel,
48437 timeInputAriaLabel = _props2.timeInputAriaLabel,
48438 isPreview = _props2.isPreview,
48439 disableChangeMode = _props2.disableChangeMode,
48440 yearRange = _props2.yearRange,
48441 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'rtl', 'locale', 'label', 'state', 'defaultVisibleMonth', 'onVisibleMonthChange', 'showTime', 'disabledDate', 'footerRender', 'placeholder', 'size', 'disabled', 'hasClear', 'popupTriggerType', 'popupAlign', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'popupComponent', 'popupContent', 'followTrigger', 'className', 'inputProps', 'dateCellRender', 'monthCellRender', 'yearCellRender', 'dateInputAriaLabel', 'timeInputAriaLabel', 'isPreview', 'disableChangeMode', 'yearRange']);
48442 var _state2 = this.state,
48443 visible = _state2.visible,
48444 value = _state2.value,
48445 dateInputStr = _state2.dateInputStr,
48446 timeInputStr = _state2.timeInputStr,
48447 panel = _state2.panel,
48448 inputing = _state2.inputing,
48449 format = _state2.format,
48450 timeFormat = _state2.timeFormat,
48451 dateTimeFormat = _state2.dateTimeFormat;
48452
48453 var datePickerCls = (0, _classnames7.default)((_classnames = {}, _classnames[prefix + 'date-picker'] = true, _classnames), className);
48454
48455 var triggerInputCls = (0, _classnames7.default)((_classnames2 = {}, _classnames2[prefix + 'date-picker-input'] = true, _classnames2[prefix + 'error'] = false, _classnames2));
48456
48457 var panelBodyClassName = (0, _classnames7.default)((_classnames3 = {}, _classnames3[prefix + 'date-picker-body'] = true, _classnames3[prefix + 'date-picker-body-show-time'] = showTime, _classnames3));
48458
48459 var panelDateInputCls = (0, _classnames7.default)((_classnames4 = {}, _classnames4[prefix + 'date-picker-panel-input'] = true, _classnames4[prefix + 'focus'] = panel === _util2.PANEL.DATE, _classnames4));
48460
48461 if (rtl) {
48462 others.dir = 'rtl';
48463 }
48464
48465 if (isPreview) {
48466 return this.renderPreview(_util.obj.pickOthers(others, DatePicker.PropTypes));
48467 }
48468
48469 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
48470 size: size,
48471 disabled: disabled,
48472 onChange: this.onDateInputChange,
48473 onBlur: this.onDateInputBlur,
48474 onPressEnter: this.onDateInputBlur,
48475 onKeyDown: this.onKeyDown
48476 });
48477
48478 var dateInputValue = inputing === 'date' ? dateInputStr : value && value.format(format) || '';
48479 var triggerInputValue = dateInputValue;
48480
48481 var dateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
48482 'aria-label': dateInputAriaLabel,
48483 value: dateInputValue,
48484 onFocus: this.onFoucsDateInput,
48485 placeholder: format,
48486 className: panelDateInputCls
48487 }));
48488
48489 var datePanel = _react2.default.createElement(_calendar2.default, {
48490 shape: 'panel',
48491 value: value,
48492 format: format,
48493 dateCellRender: dateCellRender,
48494 monthCellRender: monthCellRender,
48495 yearCellRender: yearCellRender,
48496 onSelect: this.onSelectCalendarPanel,
48497 defaultVisibleMonth: defaultVisibleMonth,
48498 onVisibleMonthChange: onVisibleMonthChange,
48499 disabledDate: disabledDate,
48500 disableChangeMode: disableChangeMode,
48501 yearRange: yearRange
48502 });
48503
48504 var panelFooter = footerRender();
48505
48506 var timeInput = null;
48507 var timePanel = null;
48508
48509 if (showTime) {
48510 var _classnames5;
48511
48512 var timeInputValue = inputing === 'time' ? timeInputStr : value && value.format(timeFormat) || '';
48513 triggerInputValue = value && value.format(dateTimeFormat) || '';
48514
48515 var timePanelProps = (typeof showTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(showTime)) === 'object' ? showTime : {};
48516
48517 var showSecond = timeFormat.indexOf('s') > -1;
48518 var showMinute = timeFormat.indexOf('m') > -1;
48519
48520 var panelTimeInputCls = (0, _classnames7.default)((_classnames5 = {}, _classnames5[prefix + 'date-picker-panel-input'] = true, _classnames5[prefix + 'focus'] = panel === _util2.PANEL.TIME, _classnames5));
48521
48522 timeInput = _react2.default.createElement(_input2.default, {
48523 placeholder: timeFormat,
48524 value: timeInputValue,
48525 size: size,
48526 'aria-label': timeInputAriaLabel,
48527 disabled: disabled || !value,
48528 onChange: this.onTimeInputChange,
48529 onFocus: this.onFoucsTimeInput,
48530 onBlur: this.onTimeInputBlur,
48531 onPressEnter: this.onTimeInputBlur,
48532 onKeyDown: this.onTimeKeyDown,
48533 className: panelTimeInputCls
48534 });
48535
48536 timePanel = _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, timePanelProps, {
48537 locale: locale,
48538 className: prefix + 'date-picker-panel-time',
48539 showSecond: showSecond,
48540 showMinute: showMinute,
48541 disabled: disabled,
48542 prefix: prefix,
48543 value: value,
48544 onSelect: this.onSelectTimePanel
48545 }));
48546
48547 panelFooter = panelFooter || _react2.default.createElement(_panelFooter2.default, {
48548 prefix: prefix,
48549 locale: locale,
48550 value: value,
48551 panel: panel,
48552 onPanelChange: this.changePanel,
48553 onOk: this.onOk
48554 });
48555 }
48556
48557 var panelBody = (_PANEL$DATE$PANEL$TIM = {}, _PANEL$DATE$PANEL$TIM[_util2.PANEL.DATE] = datePanel, _PANEL$DATE$PANEL$TIM[_util2.PANEL.TIME] = timePanel, _PANEL$DATE$PANEL$TIM)[panel];
48558
48559 var allowClear = value && hasClear;
48560 var trigger = _react2.default.createElement('div', { className: prefix + 'date-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
48561 label: label,
48562 state: state,
48563 value: triggerInputValue,
48564 role: 'combobox',
48565 'aria-expanded': visible,
48566 readOnly: true,
48567 placeholder: placeholder || (showTime ? locale.datetimePlaceholder : locale.placeholder),
48568 hint: _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker-symbol-calendar-icon' }),
48569 hasClear: allowClear,
48570 className: triggerInputCls
48571 })));
48572 var PopupComponent = popupComponent ? popupComponent : Popup;
48573
48574 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(DatePicker.propTypes, others), { className: datePickerCls }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
48575 autoFocus: true,
48576 align: popupAlign
48577 }, popupProps, {
48578 followTrigger: followTrigger,
48579 disabled: disabled,
48580 visible: visible,
48581 onVisibleChange: this.onVisibleChange,
48582 triggerType: popupTriggerType,
48583 container: popupContainer,
48584 style: popupStyle,
48585 className: popupClassName,
48586 trigger: trigger
48587 }), popupContent ? popupContent : _react2.default.createElement('div', { dir: others.dir, className: panelBodyClassName }, _react2.default.createElement('div', { className: prefix + 'date-picker-panel-header' }, dateInput, timeInput), panelBody, panelFooter)));
48588 };
48589
48590 return DatePicker;
48591}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
48592 prefix: _propTypes2.default.string,
48593 rtl: _propTypes2.default.bool,
48594 /**
48595 * 输入框内置标签
48596 */
48597 label: _propTypes2.default.node,
48598 /**
48599 * 输入框状态
48600 */
48601 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
48602 /**
48603 * 输入提示
48604 */
48605 placeholder: _propTypes2.default.string,
48606 /**
48607 * 默认展现的月
48608 * @return {MomentObject} 返回包含指定月份的 moment 对象实例
48609 */
48610 defaultVisibleMonth: _propTypes2.default.func,
48611 onVisibleMonthChange: _propTypes2.default.func,
48612 /**
48613 * 日期值(受控)moment 对象
48614 */
48615 value: _util2.checkDateValue,
48616 /**
48617 * 初始日期值,moment 对象
48618 */
48619 defaultValue: _util2.checkDateValue,
48620 /**
48621 * 日期值的格式(用于限定用户输入和展示)
48622 */
48623 format: _propTypes2.default.string,
48624 /**
48625 * 是否使用时间控件,传入 TimePicker 的属性 { defaultValue, format, ... }
48626 */
48627 showTime: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
48628 /**
48629 * 每次选择日期时是否重置时间(仅在 showTime 开启时有效)
48630 */
48631 resetTime: _propTypes2.default.bool,
48632 /**
48633 * 禁用日期函数
48634 * @param {MomentObject} 日期值
48635 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
48636 * @return {Boolean} 是否禁用
48637 */
48638 disabledDate: _propTypes2.default.func,
48639 /**
48640 * 自定义面板页脚
48641 * @return {Node} 自定义的面板页脚组件
48642 */
48643 footerRender: _propTypes2.default.func,
48644 /**
48645 * 日期值改变时的回调
48646 * @param {MomentObject|String} value 日期值
48647 */
48648 onChange: _propTypes2.default.func,
48649 /**
48650 * 点击确认按钮时的回调
48651 * @param {MomentObject|String} value 日期值
48652 */
48653 onOk: _propTypes2.default.func,
48654 /**
48655 * 输入框尺寸
48656 */
48657 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
48658 /**
48659 * 是否禁用
48660 */
48661 disabled: _propTypes2.default.bool,
48662 /**
48663 * 是否显示清空按钮
48664 */
48665 hasClear: _propTypes2.default.bool,
48666 /**
48667 * 弹层显示状态
48668 */
48669 visible: _propTypes2.default.bool,
48670 /**
48671 * 弹层默认是否显示
48672 */
48673 defaultVisible: _propTypes2.default.bool,
48674 /**
48675 * 弹层展示状态变化时的回调
48676 * @param {Boolean} visible 弹层是否显示
48677 * @param {String} type 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
48678 */
48679 onVisibleChange: _propTypes2.default.func,
48680 /**
48681 * 弹层触发方式
48682 */
48683 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
48684 /**
48685 * 弹层对齐方式,具体含义见 OverLay文档
48686 */
48687 popupAlign: _propTypes2.default.string,
48688 /**
48689 * 弹层容器
48690 * @param {Element} target 目标元素
48691 * @return {Element} 弹层的容器元素
48692 */
48693 popupContainer: _propTypes2.default.any,
48694 /**
48695 * 弹层自定义样式
48696 */
48697 popupStyle: _propTypes2.default.object,
48698 /**
48699 * 弹层自定义样式类
48700 */
48701 popupClassName: _propTypes2.default.string,
48702 /**
48703 * 弹层其他属性
48704 */
48705 popupProps: _propTypes2.default.object,
48706 /**
48707 * 是否跟随滚动
48708 */
48709 followTrigger: _propTypes2.default.bool,
48710 /**
48711 * 输入框其他属性
48712 */
48713 inputProps: _propTypes2.default.object,
48714 /**
48715 * 自定义日期渲染函数
48716 * @param {Object} value 日期值(moment对象)
48717 * @returns {ReactNode}
48718 */
48719 dateCellRender: _propTypes2.default.func,
48720 /**
48721 * 自定义月份渲染函数
48722 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
48723 * @returns {ReactNode}
48724 */
48725 monthCellRender: _propTypes2.default.func,
48726 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
48727 /**
48728 * 日期输入框的 aria-label 属性
48729 */
48730 dateInputAriaLabel: _propTypes2.default.string,
48731 /**
48732 * 时间输入框的 aria-label 属性
48733 */
48734 timeInputAriaLabel: _propTypes2.default.string,
48735 /**
48736 * 是否为预览态
48737 */
48738 isPreview: _propTypes2.default.bool,
48739 /**
48740 * 预览态模式下渲染的内容
48741 * @param {MomentObject} value 日期
48742 */
48743 renderPreview: _propTypes2.default.func,
48744 locale: _propTypes2.default.object,
48745 className: _propTypes2.default.string,
48746 name: _propTypes2.default.string,
48747 popupComponent: _propTypes2.default.elementType,
48748 popupContent: _propTypes2.default.node,
48749 disableChangeMode: _propTypes2.default.bool,
48750 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number)
48751}), _class.defaultProps = {
48752 prefix: 'next-',
48753 rtl: false,
48754 format: 'YYYY-MM-DD',
48755 size: 'medium',
48756 showTime: false,
48757 resetTime: false,
48758 disabledDate: function disabledDate() {
48759 return false;
48760 },
48761 footerRender: function footerRender() {
48762 return null;
48763 },
48764 hasClear: true,
48765 popupTriggerType: 'click',
48766 popupAlign: 'tl tl',
48767 locale: _zhCn2.default.DatePicker,
48768 defaultVisible: false,
48769 onChange: _util.func.noop,
48770 onVisibleChange: _util.func.noop,
48771 onOk: _util.func.noop
48772}, _initialiseProps = function _initialiseProps() {
48773 var _this2 = this;
48774
48775 this.onValueChange = function (newValue) {
48776 var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'onChange';
48777
48778 var ret = _this2.state.inputAsString && newValue ? newValue.format(_this2.state.dateTimeFormat) : newValue;
48779 _this2.props[handler](ret);
48780 };
48781
48782 this.onSelectCalendarPanel = function (value) {
48783 var _props3 = _this2.props,
48784 showTime = _props3.showTime,
48785 resetTime = _props3.resetTime;
48786
48787 var prevValue = _this2.state.value;
48788 var newValue = value;
48789 if (showTime) {
48790 if (!prevValue) {
48791 // 第一次选择日期值时,如果设置了默认时间,则使用该默认时间
48792 if (showTime.defaultValue) {
48793 var defaultTimeValue = (0, _util2.formatDateValue)(showTime.defaultValue, _this2.state.timeFormat);
48794 newValue = (0, _util2.resetValueTime)(value, defaultTimeValue);
48795 }
48796 } else if (!resetTime) {
48797 // 非第一选择日期,如果开启了 resetTime 属性,则记住之前选择的时间值
48798 newValue = (0, _util2.resetValueTime)(value, prevValue);
48799 }
48800 }
48801
48802 _this2.handleChange(newValue, prevValue, { inputing: false });
48803
48804 if (!showTime) {
48805 _this2.onVisibleChange(false, 'calendarSelect');
48806 }
48807 };
48808
48809 this.onSelectTimePanel = function (value) {
48810 _this2.handleChange(value, _this2.state.value, { inputing: false });
48811 };
48812
48813 this.clearValue = function () {
48814 _this2.setState({
48815 dateInputStr: '',
48816 timeInputStr: ''
48817 });
48818
48819 _this2.handleChange(null, _this2.state.value, { inputing: false });
48820 };
48821
48822 this.onDateInputChange = function (inputStr, e, eventType) {
48823 if (eventType === 'clear' || !inputStr) {
48824 e.stopPropagation();
48825 _this2.clearValue();
48826 } else {
48827 _this2.setState({
48828 dateInputStr: inputStr,
48829 inputing: 'date'
48830 });
48831 }
48832 };
48833
48834 this.onTimeInputChange = function (inputStr) {
48835 _this2.setState({
48836 timeInputStr: inputStr,
48837 inputing: 'time'
48838 });
48839 };
48840
48841 this.onDateInputBlur = function () {
48842 var _state3 = _this2.state,
48843 dateInputStr = _state3.dateInputStr,
48844 value = _state3.value,
48845 format = _state3.format;
48846 var resetTime = _this2.props.resetTime;
48847
48848 if (dateInputStr) {
48849 var disabledDate = _this2.props.disabledDate;
48850
48851 var parsed = (0, _moment2.default)(dateInputStr, format, true);
48852
48853 _this2.setState({
48854 dateInputStr: '',
48855 inputing: false
48856 });
48857 if (parsed.isValid() && !disabledDate(parsed, 'date')) {
48858 parsed = resetTime ? parsed : (0, _util2.resetValueTime)(parsed, value);
48859 _this2.handleChange(parsed, value);
48860 }
48861 }
48862 };
48863
48864 this.onTimeInputBlur = function () {
48865 var _state4 = _this2.state,
48866 value = _state4.value,
48867 timeInputStr = _state4.timeInputStr,
48868 timeFormat = _state4.timeFormat;
48869
48870 if (timeInputStr) {
48871 var parsed = (0, _moment2.default)(timeInputStr, timeFormat, true);
48872
48873 _this2.setState({
48874 timeInputStr: '',
48875 inputing: false
48876 });
48877
48878 if (parsed.isValid()) {
48879 var hour = parsed.hour();
48880 var minute = parsed.minute();
48881 var second = parsed.second();
48882 var newValue = value.clone().hour(hour).minute(minute).second(second);
48883
48884 _this2.handleChange(newValue, _this2.state.value);
48885 }
48886 }
48887 };
48888
48889 this.onKeyDown = function (e) {
48890 var format = _this2.props.format;
48891 var _state5 = _this2.state,
48892 dateInputStr = _state5.dateInputStr,
48893 value = _state5.value;
48894
48895 var dateStr = (0, _util2.onDateKeydown)(e, { format: format, dateInputStr: dateInputStr, value: value }, 'day');
48896 if (!dateStr) return;
48897 _this2.onDateInputChange(dateStr);
48898 };
48899
48900 this.onTimeKeyDown = function (e) {
48901 var showTime = _this2.props.showTime;
48902 var _state6 = _this2.state,
48903 timeInputStr = _state6.timeInputStr,
48904 timeFormat = _state6.timeFormat,
48905 value = _state6.value;
48906
48907 var _ref = (typeof showTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(showTime)) === 'object' ? showTime : {},
48908 disabledMinutes = _ref.disabledMinutes,
48909 disabledSeconds = _ref.disabledSeconds,
48910 _ref$hourStep = _ref.hourStep,
48911 hourStep = _ref$hourStep === undefined ? 1 : _ref$hourStep,
48912 _ref$minuteStep = _ref.minuteStep,
48913 minuteStep = _ref$minuteStep === undefined ? 1 : _ref$minuteStep,
48914 _ref$secondStep = _ref.secondStep,
48915 secondStep = _ref$secondStep === undefined ? 1 : _ref$secondStep;
48916
48917 var unit = 'second';
48918
48919 if (disabledSeconds) {
48920 unit = disabledMinutes ? 'hour' : 'minute';
48921 }
48922
48923 var timeStr = (0, _util2.onTimeKeydown)(e, {
48924 format: timeFormat,
48925 timeInputStr: timeInputStr,
48926 value: value,
48927 steps: {
48928 hour: hourStep,
48929 minute: minuteStep,
48930 second: secondStep
48931 }
48932 }, unit);
48933
48934 if (!timeStr) return;
48935
48936 _this2.onTimeInputChange(timeStr);
48937 };
48938
48939 this.handleChange = function (newValue, prevValue) {
48940 var others = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
48941
48942 if (!('value' in _this2.props)) {
48943 _this2.setState((0, _extends3.default)({
48944 value: newValue
48945 }, others));
48946 } else {
48947 _this2.setState((0, _extends3.default)({}, others));
48948 }
48949
48950 var newValueOf = newValue ? newValue.valueOf() : null;
48951 var preValueOf = prevValue ? prevValue.valueOf() : null;
48952
48953 if (newValueOf !== preValueOf) {
48954 _this2.onValueChange(newValue);
48955 }
48956 };
48957
48958 this.onFoucsDateInput = function () {
48959 if (_this2.state.panel !== _util2.PANEL.DATE) {
48960 _this2.setState({
48961 panel: _util2.PANEL.DATE
48962 });
48963 }
48964 };
48965
48966 this.onFoucsTimeInput = function () {
48967 if (_this2.state.panel !== _util2.PANEL.TIME) {
48968 _this2.setState({
48969 panel: _util2.PANEL.TIME
48970 });
48971 }
48972 };
48973
48974 this.onVisibleChange = function (visible, type) {
48975 if (!('visible' in _this2.props)) {
48976 _this2.setState({
48977 visible: visible
48978 });
48979 }
48980 _this2.props.onVisibleChange(visible, type);
48981 };
48982
48983 this.changePanel = function (panel) {
48984 _this2.setState({
48985 panel: panel
48986 });
48987 };
48988
48989 this.onOk = function (value) {
48990 _this2.onVisibleChange(false, 'okBtnClick');
48991 _this2.onValueChange(value || _this2.state.value, 'onOk');
48992 };
48993}, _temp);
48994DatePicker.displayName = 'DatePicker';
48995exports.default = (0, _reactLifecyclesCompat.polyfill)(DatePicker);
48996module.exports = exports['default'];
48997
48998/***/ }),
48999/* 334 */
49000/***/ (function(module, exports, __webpack_require__) {
49001
49002"use strict";
49003
49004
49005exports.__esModule = true;
49006
49007var _classCallCheck2 = __webpack_require__(2);
49008
49009var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
49010
49011var _possibleConstructorReturn2 = __webpack_require__(3);
49012
49013var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
49014
49015var _inherits2 = __webpack_require__(4);
49016
49017var _inherits3 = _interopRequireDefault(_inherits2);
49018
49019var _class, _temp2;
49020
49021var _react = __webpack_require__(0);
49022
49023var _react2 = _interopRequireDefault(_react);
49024
49025var _propTypes = __webpack_require__(5);
49026
49027var _propTypes2 = _interopRequireDefault(_propTypes);
49028
49029var _classnames2 = __webpack_require__(7);
49030
49031var _classnames3 = _interopRequireDefault(_classnames2);
49032
49033var _utils = __webpack_require__(92);
49034
49035function _interopRequireDefault(obj) {
49036 return obj && obj.__esModule ? obj : { default: obj };
49037}
49038
49039function scrollTo(element, to, duration) {
49040 var requestAnimationFrame = window.requestAnimationFrame || function requestAnimationFrameTimeout() {
49041 return setTimeout(arguments.length <= 0 ? undefined : arguments[0], 10);
49042 };
49043
49044 if (duration <= 0) {
49045 element.scrollTop = to;
49046 return;
49047 }
49048
49049 var difference = to - element.scrollTop;
49050 var perTick = difference / duration * 10;
49051
49052 requestAnimationFrame(function () {
49053 element.scrollTop = element.scrollTop + perTick;
49054
49055 if (element.scrollTop === to) {
49056 return;
49057 }
49058
49059 scrollTo(element, to, duration - 10);
49060 });
49061}
49062
49063var noop = function noop() {};
49064
49065var TimeMenu = (_temp2 = _class = function (_React$Component) {
49066 (0, _inherits3.default)(TimeMenu, _React$Component);
49067
49068 function TimeMenu() {
49069 var _temp, _this, _ret;
49070
49071 (0, _classCallCheck3.default)(this, TimeMenu);
49072
49073 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
49074 args[_key] = arguments[_key];
49075 }
49076
49077 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this._menuRefHandler = function (ref) {
49078 _this.menu = ref;
49079 }, _this.createMenuItems = function (list) {
49080 var _this$props = _this.props,
49081 prefix = _this$props.prefix,
49082 mode = _this$props.mode,
49083 disabled = _this$props.disabled,
49084 disabledItems = _this$props.disabledItems,
49085 activeIndex = _this$props.activeIndex,
49086 onSelect = _this$props.onSelect,
49087 renderTimeMenuItems = _this$props.renderTimeMenuItems,
49088 timeValue = _this$props.value;
49089
49090 list = renderTimeMenuItems(list, mode, timeValue) || list;
49091
49092 return list.map(function (_ref) {
49093 var _classnames;
49094
49095 var label = _ref.label,
49096 value = _ref.value;
49097
49098 var isDisabled = disabled || disabledItems(value);
49099 var itemCls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'time-picker-menu-item'] = true, _classnames[prefix + 'disabled'] = isDisabled, _classnames[prefix + 'selected'] = value === activeIndex, _classnames));
49100 var onClick = isDisabled ? noop : function () {
49101 return onSelect(value, mode);
49102 };
49103 return _react2.default.createElement('li', {
49104 role: 'option',
49105 'aria-selected': String(value === activeIndex),
49106 key: value,
49107 title: value,
49108 className: itemCls,
49109 onClick: onClick
49110 }, label);
49111 });
49112 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
49113 }
49114
49115 TimeMenu.prototype.componentDidMount = function componentDidMount() {
49116 this.scrollToSelected(0);
49117 };
49118
49119 TimeMenu.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
49120 if (prevProps.activeIndex !== this.props.activeIndex) {
49121 this.scrollToSelected(120);
49122 }
49123 };
49124
49125 TimeMenu.prototype.scrollToSelected = function scrollToSelected() {
49126 var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
49127 var _props = this.props,
49128 activeIndex = _props.activeIndex,
49129 step = _props.step;
49130
49131 var targetIndex = Math.floor((activeIndex || 0) / step);
49132 var firstItem = this.menu.children[targetIndex];
49133 var offsetTo = firstItem.offsetTop;
49134 scrollTo(this.menu, offsetTo, duration);
49135 };
49136
49137 TimeMenu.prototype.render = function render() {
49138 var _props2 = this.props,
49139 prefix = _props2.prefix,
49140 title = _props2.title,
49141 mode = _props2.mode,
49142 step = _props2.step;
49143
49144 var total = mode === 'hour' ? 24 : 60;
49145 var list = [];
49146 for (var i = 0; i < total; i++) {
49147 if (i % step === 0) {
49148 list.push({
49149 label: i,
49150 value: i
49151 });
49152 }
49153 }
49154
49155 var menuTitle = title ? _react2.default.createElement('div', { className: prefix + 'time-picker-menu-title' }, title) : null;
49156
49157 return _react2.default.createElement('div', { className: prefix + 'time-picker-menu' }, menuTitle, _react2.default.createElement('ul', {
49158 role: 'listbox',
49159 className: prefix + 'time-picker-menu-' + mode,
49160 ref: this._menuRefHandler
49161 }, this.createMenuItems(list)));
49162 };
49163
49164 return TimeMenu;
49165}(_react2.default.Component), _class.propTypes = {
49166 prefix: _propTypes2.default.string,
49167 title: _propTypes2.default.node,
49168 mode: _propTypes2.default.oneOf(['hour', 'minute', 'second']),
49169 step: _propTypes2.default.number,
49170 activeIndex: _propTypes2.default.number,
49171 value: _utils.checkMomentObj,
49172 disabledItems: _propTypes2.default.func,
49173 renderTimeMenuItems: _propTypes2.default.func,
49174 onSelect: _propTypes2.default.func,
49175 disabled: _propTypes2.default.bool
49176}, _class.defaultProps = {
49177 step: 1,
49178 disabledItems: function disabledItems() {
49179 return false;
49180 },
49181 renderTimeMenuItems: function renderTimeMenuItems(list) {
49182 return list;
49183 },
49184 onSelect: function onSelect() {},
49185 disabled: false
49186}, _temp2);
49187TimeMenu.displayName = 'TimeMenu';
49188exports.default = TimeMenu;
49189module.exports = exports['default'];
49190
49191/***/ }),
49192/* 335 */
49193/***/ (function(module, exports, __webpack_require__) {
49194
49195"use strict";
49196
49197
49198exports.__esModule = true;
49199
49200var _typeof2 = __webpack_require__(14);
49201
49202var _typeof3 = _interopRequireDefault(_typeof2);
49203
49204var _objectWithoutProperties2 = __webpack_require__(8);
49205
49206var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
49207
49208var _extends2 = __webpack_require__(1);
49209
49210var _extends3 = _interopRequireDefault(_extends2);
49211
49212var _classCallCheck2 = __webpack_require__(2);
49213
49214var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
49215
49216var _possibleConstructorReturn2 = __webpack_require__(3);
49217
49218var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
49219
49220var _inherits2 = __webpack_require__(4);
49221
49222var _inherits3 = _interopRequireDefault(_inherits2);
49223
49224var _class, _temp, _initialiseProps;
49225
49226var _react = __webpack_require__(0);
49227
49228var _react2 = _interopRequireDefault(_react);
49229
49230var _propTypes = __webpack_require__(5);
49231
49232var _propTypes2 = _interopRequireDefault(_propTypes);
49233
49234var _reactLifecyclesCompat = __webpack_require__(10);
49235
49236var _classnames8 = __webpack_require__(7);
49237
49238var _classnames9 = _interopRequireDefault(_classnames8);
49239
49240var _moment = __webpack_require__(19);
49241
49242var _moment2 = _interopRequireDefault(_moment);
49243
49244var _configProvider = __webpack_require__(9);
49245
49246var _configProvider2 = _interopRequireDefault(_configProvider);
49247
49248var _overlay = __webpack_require__(15);
49249
49250var _overlay2 = _interopRequireDefault(_overlay);
49251
49252var _input = __webpack_require__(18);
49253
49254var _input2 = _interopRequireDefault(_input);
49255
49256var _icon = __webpack_require__(11);
49257
49258var _icon2 = _interopRequireDefault(_icon);
49259
49260var _calendar = __webpack_require__(38);
49261
49262var _calendar2 = _interopRequireDefault(_calendar);
49263
49264var _rangeCalendar = __webpack_require__(160);
49265
49266var _rangeCalendar2 = _interopRequireDefault(_rangeCalendar);
49267
49268var _panel = __webpack_require__(91);
49269
49270var _panel2 = _interopRequireDefault(_panel);
49271
49272var _zhCn = __webpack_require__(13);
49273
49274var _zhCn2 = _interopRequireDefault(_zhCn);
49275
49276var _util = __webpack_require__(6);
49277
49278var _util2 = __webpack_require__(30);
49279
49280var _panelFooter = __webpack_require__(168);
49281
49282var _panelFooter2 = _interopRequireDefault(_panelFooter);
49283
49284function _interopRequireDefault(obj) {
49285 return obj && obj.__esModule ? obj : { default: obj };
49286}
49287
49288var Popup = _overlay2.default.Popup;
49289
49290function mapInputStateName(name) {
49291 return {
49292 startValue: 'startDateInputStr',
49293 endValue: 'endDateInputStr',
49294 startTime: 'startTimeInputStr',
49295 endTime: 'endTimeInputStr'
49296 }[name];
49297}
49298
49299function mapTimeToValue(name) {
49300 return {
49301 startTime: 'startValue',
49302 endTime: 'endValue'
49303 }[name];
49304}
49305
49306function getFormatValues(values, format) {
49307 if (!Array.isArray(values)) {
49308 return [null, null];
49309 }
49310 return [(0, _util2.formatDateValue)(values[0], format), (0, _util2.formatDateValue)(values[1], format)];
49311}
49312
49313/**
49314 * DatePicker.RangePicker
49315 */
49316var RangePicker = (_temp = _class = function (_Component) {
49317 (0, _inherits3.default)(RangePicker, _Component);
49318
49319 function RangePicker(props, context) {
49320 (0, _classCallCheck3.default)(this, RangePicker);
49321
49322 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
49323
49324 _initialiseProps.call(_this);
49325
49326 var _getDateTimeFormat = (0, _util2.getDateTimeFormat)(props.format, props.showTime, props.type),
49327 format = _getDateTimeFormat.format,
49328 timeFormat = _getDateTimeFormat.timeFormat,
49329 dateTimeFormat = _getDateTimeFormat.dateTimeFormat;
49330
49331 var val = props.value || props.defaultValue;
49332 var values = getFormatValues(val, dateTimeFormat);
49333
49334 _this.state = {
49335 visible: props.visible || props.defaultVisible,
49336 startValue: values[0],
49337 endValue: values[1],
49338 startDateInputStr: '',
49339 endDateInputStr: '',
49340 activeDateInput: 'startValue',
49341 startTimeInputStr: '',
49342 endTimeInputStr: '',
49343 inputing: false, // 当前是否处于输入状态
49344 panel: _util2.PANEL.DATE,
49345 format: format,
49346 timeFormat: timeFormat,
49347 dateTimeFormat: dateTimeFormat,
49348 inputAsString: val && (typeof val[0] === 'string' || typeof val[1] === 'string')
49349 };
49350 return _this;
49351 }
49352
49353 RangePicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
49354 var formatStates = (0, _util2.getDateTimeFormat)(props.format, props.showTime, props.type);
49355 var states = {};
49356
49357 if ('value' in props) {
49358 var values = getFormatValues(props.value, formatStates.dateTimeFormat);
49359 states.startValue = values[0];
49360 states.endValue = values[1];
49361 states.inputAsString = props.value && (typeof props.value[0] === 'string' || typeof props.value[1] === 'string');
49362 }
49363
49364 if ('visible' in props) {
49365 states.visible = props.visible;
49366 }
49367
49368 return (0, _extends3.default)({}, states, formatStates);
49369 };
49370
49371 // 如果用户没有给定时间禁用逻辑,则给默认到禁用逻辑
49372
49373
49374 RangePicker.prototype.renderPreview = function renderPreview(_ref, others) {
49375 var startValue = _ref[0],
49376 endValue = _ref[1];
49377 var _props = this.props,
49378 prefix = _props.prefix,
49379 className = _props.className,
49380 renderPreview = _props.renderPreview;
49381 var dateTimeFormat = this.state.dateTimeFormat;
49382
49383 var previewCls = (0, _classnames9.default)(className, prefix + 'form-preview');
49384 var startLabel = startValue ? startValue.format(dateTimeFormat) : '';
49385 var endLabel = endValue ? endValue.format(dateTimeFormat) : '';
49386
49387 if (typeof renderPreview === 'function') {
49388 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview([startValue, endValue], this.props));
49389 }
49390
49391 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), startLabel, ' - ', endLabel);
49392 };
49393
49394 RangePicker.prototype.render = function render() {
49395 var _classnames,
49396 _classnames2,
49397 _classnames3,
49398 _classnames4,
49399 _classnames5,
49400 _this2 = this,
49401 _PANEL$DATE$PANEL$TIM;
49402
49403 var _props2 = this.props,
49404 prefix = _props2.prefix,
49405 rtl = _props2.rtl,
49406 type = _props2.type,
49407 defaultVisibleMonth = _props2.defaultVisibleMonth,
49408 onVisibleMonthChange = _props2.onVisibleMonthChange,
49409 showTime = _props2.showTime,
49410 _disabledDate = _props2.disabledDate,
49411 footerRender = _props2.footerRender,
49412 label = _props2.label,
49413 _props2$ranges = _props2.ranges,
49414 ranges = _props2$ranges === undefined ? {} : _props2$ranges,
49415 inputState = _props2.state,
49416 size = _props2.size,
49417 disabled = _props2.disabled,
49418 hasClear = _props2.hasClear,
49419 popupTriggerType = _props2.popupTriggerType,
49420 popupAlign = _props2.popupAlign,
49421 popupContainer = _props2.popupContainer,
49422 popupStyle = _props2.popupStyle,
49423 popupClassName = _props2.popupClassName,
49424 popupProps = _props2.popupProps,
49425 popupComponent = _props2.popupComponent,
49426 popupContent = _props2.popupContent,
49427 followTrigger = _props2.followTrigger,
49428 className = _props2.className,
49429 locale = _props2.locale,
49430 inputProps = _props2.inputProps,
49431 dateCellRender = _props2.dateCellRender,
49432 monthCellRender = _props2.monthCellRender,
49433 yearCellRender = _props2.yearCellRender,
49434 startDateInputAriaLabel = _props2.startDateInputAriaLabel,
49435 startTimeInputAriaLabel = _props2.startTimeInputAriaLabel,
49436 endDateInputAriaLabel = _props2.endDateInputAriaLabel,
49437 endTimeInputAriaLabel = _props2.endTimeInputAriaLabel,
49438 isPreview = _props2.isPreview,
49439 disableChangeMode = _props2.disableChangeMode,
49440 yearRange = _props2.yearRange,
49441 placeholder = _props2.placeholder,
49442 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'rtl', 'type', 'defaultVisibleMonth', 'onVisibleMonthChange', 'showTime', 'disabledDate', 'footerRender', 'label', 'ranges', 'state', 'size', 'disabled', 'hasClear', 'popupTriggerType', 'popupAlign', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'popupComponent', 'popupContent', 'followTrigger', 'className', 'locale', 'inputProps', 'dateCellRender', 'monthCellRender', 'yearCellRender', 'startDateInputAriaLabel', 'startTimeInputAriaLabel', 'endDateInputAriaLabel', 'endTimeInputAriaLabel', 'isPreview', 'disableChangeMode', 'yearRange', 'placeholder']);
49443
49444 var state = this.state;
49445
49446 var classNames = (0, _classnames9.default)((_classnames = {}, _classnames[prefix + 'range-picker'] = true, _classnames['' + prefix + size] = size, _classnames[prefix + 'disabled'] = disabled, _classnames), className);
49447
49448 var panelBodyClassName = (0, _classnames9.default)((_classnames2 = {}, _classnames2[prefix + 'range-picker-body'] = true, _classnames2[prefix + 'range-picker-body-show-time'] = showTime, _classnames2));
49449
49450 var triggerCls = (0, _classnames9.default)((_classnames3 = {}, _classnames3[prefix + 'range-picker-trigger'] = true, _classnames3[prefix + 'error'] = inputState === 'error', _classnames3));
49451
49452 var startDateInputCls = (0, _classnames9.default)((_classnames4 = {}, _classnames4[prefix + 'range-picker-panel-input-start-date'] = true, _classnames4[prefix + 'focus'] = state.activeDateInput === 'startValue', _classnames4));
49453
49454 var endDateInputCls = (0, _classnames9.default)((_classnames5 = {}, _classnames5[prefix + 'range-picker-panel-input-end-date'] = true, _classnames5[prefix + 'focus'] = state.activeDateInput === 'endValue', _classnames5));
49455
49456 if (rtl) {
49457 others.dir = 'rtl';
49458 }
49459
49460 if (isPreview) {
49461 return this.renderPreview([state.startValue, state.endValue], _util.obj.pickOthers(others, RangePicker.PropTypes));
49462 }
49463
49464 var startDateInputValue = state.inputing === 'startValue' ? state.startDateInputStr : state.startValue && state.startValue.format(state.format) || '';
49465 var endDateInputValue = state.inputing === 'endValue' ? state.endDateInputStr : state.endValue && state.endValue.format(state.format) || '';
49466
49467 var startTriggerValue = startDateInputValue;
49468 var endTriggerValue = endDateInputValue;
49469
49470 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
49471 size: size,
49472 disabled: disabled,
49473 onChange: this.onDateInputChange,
49474 onBlur: this.onDateInputBlur,
49475 onPressEnter: this.onDateInputBlur,
49476 onKeyDown: this.onDateInputKeyDown
49477 });
49478
49479 var startDateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49480 'aria-label': startDateInputAriaLabel,
49481 placeholder: state.format,
49482 value: startDateInputValue,
49483 onFocus: function onFocus() {
49484 return _this2.onFocusDateInput('startValue');
49485 },
49486 className: startDateInputCls
49487 }));
49488
49489 var endDateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49490 'aria-label': endDateInputAriaLabel,
49491 placeholder: state.format,
49492 value: endDateInputValue,
49493 onFocus: function onFocus() {
49494 return _this2.onFocusDateInput('endValue');
49495 },
49496 className: endDateInputCls
49497 }));
49498
49499 var shareCalendarProps = {
49500 showOtherMonth: true,
49501 dateCellRender: dateCellRender,
49502 monthCellRender: monthCellRender,
49503 yearCellRender: yearCellRender,
49504 format: state.format,
49505 defaultVisibleMonth: defaultVisibleMonth,
49506 onVisibleMonthChange: onVisibleMonthChange
49507 };
49508
49509 var datePanel = type === 'date' ? _react2.default.createElement(_rangeCalendar2.default, (0, _extends3.default)({}, shareCalendarProps, {
49510 yearRange: yearRange,
49511 disableChangeMode: disableChangeMode,
49512 disabledDate: _disabledDate,
49513 onSelect: this.onSelectCalendarPanel,
49514 startValue: state.startValue,
49515 endValue: state.endValue
49516 })) : _react2.default.createElement('div', { className: prefix + 'range-picker-panel-body' }, _react2.default.createElement(_calendar2.default, (0, _extends3.default)({
49517 shape: 'panel',
49518 modes: type === 'month' ? ['month', 'year'] : ['year']
49519 }, (0, _extends3.default)({}, shareCalendarProps), {
49520 disabledDate: function disabledDate(date) {
49521 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
49522 args[_key - 1] = arguments[_key];
49523 }
49524
49525 return state.endValue && date.isAfter(state.endValue, type) || _disabledDate && _disabledDate.apply(undefined, [date].concat(args));
49526 },
49527 onSelect: function onSelect(value) {
49528 var selectedValue = value.clone().date(1).hour(0).minute(0).second(0);
49529 if (type === 'year') {
49530 selectedValue.month(0);
49531 }
49532 _this2.onSelectCalendarPanel(selectedValue, 'startValue');
49533 },
49534 value: state.startValue
49535 })), _react2.default.createElement(_calendar2.default, (0, _extends3.default)({
49536 shape: 'panel',
49537 modes: type === 'month' ? ['month', 'year'] : ['year']
49538 }, shareCalendarProps, {
49539 disabledDate: function disabledDate(date) {
49540 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
49541 args[_key2 - 1] = arguments[_key2];
49542 }
49543
49544 return state.startValue && date.isBefore(state.startValue, type) || _disabledDate && _disabledDate.apply(undefined, [date].concat(args));
49545 },
49546 onSelect: function onSelect(value) {
49547 var selectedValue = value.clone().hour(23).minute(59).second(59);
49548 if (type === 'year') {
49549 selectedValue.month(11).date(31);
49550 } else {
49551 selectedValue.date(selectedValue.daysInMonth());
49552 }
49553 _this2.onSelectCalendarPanel(selectedValue, 'endValue');
49554 },
49555 value: state.endValue
49556 })));
49557
49558 var startTimeInput = null;
49559 var endTimeInput = null;
49560 var timePanel = null;
49561 var panelFooter = footerRender();
49562
49563 if (showTime) {
49564 var _classnames6, _classnames7;
49565
49566 var startTimeInputValue = state.inputing === 'startTime' ? state.startTimeInputStr : state.startValue && state.startValue.format(state.timeFormat) || '';
49567 var endTimeInputValue = state.inputing === 'endTime' ? state.endTimeInputStr : state.endValue && state.endValue.format(state.timeFormat) || '';
49568
49569 startTriggerValue = state.startValue && state.startValue.format(state.dateTimeFormat) || '';
49570 endTriggerValue = state.endValue && state.endValue.format(state.dateTimeFormat) || '';
49571
49572 var sharedTimeInputProps = {
49573 size: size,
49574 placeholder: state.timeFormat,
49575 onFocus: this.onFocusTimeInput,
49576 onBlur: this.onTimeInputBlur,
49577 onPressEnter: this.onTimeInputBlur,
49578 onChange: this.onTimeInputChange,
49579 onKeyDown: this.onTimeInputKeyDown
49580 };
49581
49582 var startTimeInputCls = (0, _classnames9.default)((_classnames6 = {}, _classnames6[prefix + 'range-picker-panel-input-start-time'] = true, _classnames6[prefix + 'focus'] = state.activeDateInput === 'startTime', _classnames6));
49583
49584 startTimeInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedTimeInputProps, {
49585 value: startTimeInputValue,
49586 'aria-label': startTimeInputAriaLabel,
49587 disabled: disabled || !state.startValue,
49588 onFocus: function onFocus() {
49589 return _this2.onFocusTimeInput('startTime');
49590 },
49591 className: startTimeInputCls
49592 }));
49593
49594 var endTimeInputCls = (0, _classnames9.default)((_classnames7 = {}, _classnames7[prefix + 'range-picker-panel-input-end-time'] = true, _classnames7[prefix + 'focus'] = state.activeDateInput === 'endTime', _classnames7));
49595
49596 endTimeInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedTimeInputProps, {
49597 value: endTimeInputValue,
49598 'aria-label': endTimeInputAriaLabel,
49599 disabled: disabled || !state.endValue,
49600 onFocus: function onFocus() {
49601 return _this2.onFocusTimeInput('endTime');
49602 },
49603 className: endTimeInputCls
49604 }));
49605
49606 var showSecond = state.timeFormat.indexOf('s') > -1;
49607 var showMinute = state.timeFormat.indexOf('m') > -1;
49608
49609 var sharedTimePickerProps = (0, _extends3.default)({}, showTime, {
49610 prefix: prefix,
49611 locale: locale,
49612 disabled: disabled,
49613 showSecond: showSecond,
49614 showMinute: showMinute
49615 });
49616
49617 var disabledTime = this.getDisabledTime(state);
49618
49619 timePanel = _react2.default.createElement('div', { className: prefix + 'range-picker-panel-time' }, _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, sharedTimePickerProps, {
49620 disabled: disabled || !state.startValue,
49621 className: prefix + 'range-picker-panel-time-start',
49622 value: state.startValue,
49623 onSelect: this.onSelectStartTime
49624 })), _react2.default.createElement(_panel2.default, (0, _extends3.default)({}, sharedTimePickerProps, disabledTime, {
49625 disabled: disabled || !state.endValue,
49626 className: prefix + 'range-picker-panel-time-end',
49627 value: state.endValue,
49628 onSelect: this.onSelectEndTime
49629 })));
49630 }
49631
49632 panelFooter = panelFooter || _react2.default.createElement(_panelFooter2.default, {
49633 prefix: prefix,
49634 value: state.startValue || state.endValue,
49635 ranges: Object.keys(ranges).map(function (key) {
49636 return {
49637 label: key,
49638 value: ranges[key],
49639 onChange: function onChange(values) {
49640 _this2.setState({
49641 startValue: values[0],
49642 endValue: values[1]
49643 });
49644 _this2.onValueChange(values);
49645 }
49646 };
49647 }),
49648 disabledOk: !state.startValue || !state.endValue || state.startValue.valueOf() > state.endValue.valueOf(),
49649 locale: locale,
49650 panel: state.panel,
49651 onPanelChange: showTime ? this.changePanel : null,
49652 onOk: this.onOk
49653 });
49654
49655 var panelBody = (_PANEL$DATE$PANEL$TIM = {}, _PANEL$DATE$PANEL$TIM[_util2.PANEL.DATE] = datePanel, _PANEL$DATE$PANEL$TIM[_util2.PANEL.TIME] = timePanel, _PANEL$DATE$PANEL$TIM)[state.panel];
49656
49657 var allowClear = state.startValue && state.endValue && hasClear;
49658
49659 var _ref2 = placeholder || [],
49660 startPlaceholder = _ref2[0],
49661 endPlaceholder = _ref2[1];
49662
49663 if (typeof placeholder === 'string') {
49664 startPlaceholder = placeholder;
49665 endPlaceholder = placeholder;
49666 }
49667
49668 var trigger = _react2.default.createElement('div', { className: triggerCls }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49669 readOnly: true,
49670 role: 'combobox',
49671 'aria-expanded': state.visible,
49672 label: label,
49673 placeholder: startPlaceholder || locale.startPlaceholder,
49674 value: startTriggerValue,
49675 hasBorder: false,
49676 className: prefix + 'range-picker-trigger-input',
49677 onFocus: function onFocus() {
49678 return _this2.onFocusDateInput('startValue');
49679 }
49680 })), _react2.default.createElement('span', { className: prefix + 'range-picker-trigger-separator' }, '-'), _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
49681 readOnly: true,
49682 role: 'combobox',
49683 'aria-expanded': state.visible,
49684 placeholder: endPlaceholder || locale.endPlaceholder,
49685 value: endTriggerValue,
49686 hasBorder: false,
49687 className: prefix + 'range-picker-trigger-input',
49688 onFocus: function onFocus() {
49689 return _this2.onFocusDateInput('endValue');
49690 },
49691 hasClear: allowClear,
49692 hint: _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker-symbol-calendar-icon' })
49693 })));
49694
49695 var PopupComponent = popupComponent ? popupComponent : Popup;
49696
49697 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(RangePicker.propTypes, others), { className: classNames }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
49698 autoFocus: true,
49699 align: popupAlign
49700 }, popupProps, {
49701 followTrigger: followTrigger,
49702 disabled: disabled,
49703 visible: state.visible,
49704 onVisibleChange: this.onVisibleChange,
49705 triggerType: popupTriggerType,
49706 container: popupContainer,
49707 style: popupStyle,
49708 className: popupClassName,
49709 trigger: trigger
49710 }), popupContent ? popupContent : _react2.default.createElement('div', { dir: others.dir, className: panelBodyClassName }, _react2.default.createElement('div', { className: prefix + 'range-picker-panel-header' }, _react2.default.createElement('div', { className: prefix + 'range-picker-panel-input' }, startDateInput, startTimeInput, _react2.default.createElement('span', { className: prefix + 'range-picker-panel-input-separator' }, '-'), endDateInput, endTimeInput)), panelBody, panelFooter)));
49711 };
49712
49713 return RangePicker;
49714}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
49715 prefix: _propTypes2.default.string,
49716 rtl: _propTypes2.default.bool,
49717 /**
49718 * 日期范围类型
49719 */
49720 type: _propTypes2.default.oneOf(['date', 'month', 'year']),
49721 /**
49722 * 默认展示的起始月份
49723 * @return {MomentObject} 返回包含指定月份的 moment 对象实例
49724 */
49725 defaultVisibleMonth: _propTypes2.default.func,
49726 onVisibleMonthChange: _propTypes2.default.func,
49727 /**
49728 * 日期范围值数组 [moment, moment]
49729 */
49730 value: _propTypes2.default.array,
49731 /**
49732 * 初始的日期范围值数组 [moment, moment]
49733 */
49734 defaultValue: _propTypes2.default.array,
49735 /**
49736 * 日期格式
49737 */
49738 format: _propTypes2.default.string,
49739 /**
49740 * 是否使用时间控件,支持传入 TimePicker 的属性
49741 */
49742 showTime: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
49743 /**
49744 * 每次选择是否重置时间(仅在 showTime 开启时有效)
49745 */
49746 resetTime: _propTypes2.default.bool,
49747 /**
49748 * 禁用日期函数
49749 * @param {MomentObject} 日期值
49750 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
49751 * @return {Boolean} 是否禁用
49752 */
49753 disabledDate: _propTypes2.default.func,
49754 /**
49755 * 自定义面板页脚
49756 * @return {Node} 自定义的面板页脚组件
49757 */
49758 footerRender: _propTypes2.default.func,
49759 /**
49760 * 日期范围值改变时的回调 [ MomentObject|String, MomentObject|String ]
49761 * @param {Array<MomentObject|String>} value 日期值
49762 */
49763 onChange: _propTypes2.default.func,
49764 /**
49765 * 点击确认按钮时的回调 返回开始时间和结束时间`[ MomentObject|String, MomentObject|String ]`
49766 * @return {Array} 日期范围
49767 */
49768 onOk: _propTypes2.default.func,
49769 /**
49770 * 输入框内置标签
49771 */
49772 label: _propTypes2.default.node,
49773 /**
49774 * 输入框状态
49775 */
49776 state: _propTypes2.default.oneOf(['error', 'loading', 'success']),
49777 /**
49778 * 输入框尺寸
49779 */
49780 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
49781 /**
49782 * 是否禁用
49783 */
49784 disabled: _propTypes2.default.bool,
49785 /**
49786 * 是否显示清空按钮
49787 */
49788 hasClear: _propTypes2.default.bool,
49789 /**
49790 * 弹层显示状态
49791 */
49792 visible: _propTypes2.default.bool,
49793 /**
49794 * 弹层默认是否显示
49795 */
49796 defaultVisible: _propTypes2.default.bool,
49797 /**
49798 * 弹层展示状态变化时的回调
49799 * @param {Boolean} visible 弹层是否显示
49800 * @param {String} type 触发弹层显示和隐藏的来源 okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
49801 */
49802 onVisibleChange: _propTypes2.default.func,
49803 /**
49804 * 弹层触发方式
49805 */
49806 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
49807 /**
49808 * 弹层对齐方式, 具体含义见 OverLay文档
49809 */
49810 popupAlign: _propTypes2.default.string,
49811 /**
49812 * 弹层容器
49813 * @param {Element} target 目标元素
49814 * @return {Element} 弹层的容器元素
49815 */
49816 popupContainer: _propTypes2.default.any,
49817 /**
49818 * 弹层自定义样式
49819 */
49820 popupStyle: _propTypes2.default.object,
49821 /**
49822 * 弹层自定义样式类
49823 */
49824 popupClassName: _propTypes2.default.string,
49825 /**
49826 * 弹层其他属性
49827 */
49828 popupProps: _propTypes2.default.object,
49829 /**
49830 * 是否跟随滚动
49831 */
49832 followTrigger: _propTypes2.default.bool,
49833 /**
49834 * 输入框其他属性
49835 */
49836 inputProps: _propTypes2.default.object,
49837 /**
49838 * 自定义日期单元格渲染
49839 */
49840 dateCellRender: _propTypes2.default.func,
49841 /**
49842 * 自定义月份渲染函数
49843 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
49844 * @returns {ReactNode}
49845 */
49846 monthCellRender: _propTypes2.default.func,
49847 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
49848 /**
49849 * 开始日期输入框的 aria-label 属性
49850 */
49851 startDateInputAriaLabel: _propTypes2.default.string,
49852 /**
49853 * 开始时间输入框的 aria-label 属性
49854 */
49855 startTimeInputAriaLabel: _propTypes2.default.string,
49856 /**
49857 * 结束日期输入框的 aria-label 属性
49858 */
49859 endDateInputAriaLabel: _propTypes2.default.string,
49860 /**
49861 * 结束时间输入框的 aria-label 属性
49862 */
49863 endTimeInputAriaLabel: _propTypes2.default.string,
49864 /**
49865 * 是否为预览态
49866 */
49867 isPreview: _propTypes2.default.bool,
49868 /**
49869 * 预览态模式下渲染的内容
49870 * @param {Array<MomentObject, MomentObject>} value 日期区间
49871 */
49872 renderPreview: _propTypes2.default.func,
49873 disableChangeMode: _propTypes2.default.bool,
49874 yearRange: _propTypes2.default.arrayOf(_propTypes2.default.number),
49875 ranges: _propTypes2.default.object, // 兼容0.x版本
49876 locale: _propTypes2.default.object,
49877 className: _propTypes2.default.string,
49878 name: _propTypes2.default.string,
49879 popupComponent: _propTypes2.default.elementType,
49880 popupContent: _propTypes2.default.node,
49881 placeholder: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.string])
49882}), _class.defaultProps = {
49883 prefix: 'next-',
49884 rtl: false,
49885 type: 'date',
49886 size: 'medium',
49887 showTime: false,
49888 resetTime: false,
49889 disabledDate: function disabledDate() {
49890 return false;
49891 },
49892 footerRender: function footerRender() {
49893 return null;
49894 },
49895 hasClear: true,
49896 defaultVisible: false,
49897 popupTriggerType: 'click',
49898 popupAlign: 'tl tl',
49899 locale: _zhCn2.default.DatePicker,
49900 disableChangeMode: false,
49901 onChange: _util.func.noop,
49902 onOk: _util.func.noop,
49903 onVisibleChange: _util.func.noop
49904}, _initialiseProps = function _initialiseProps() {
49905 var _this3 = this;
49906
49907 this.onValueChange = function (values) {
49908 var handler = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'onChange';
49909
49910 var ret = void 0;
49911 if (!values.length || !_this3.state.inputAsString) {
49912 ret = values;
49913 } else {
49914 ret = [values[0] ? values[0].format(_this3.state.dateTimeFormat) : null, values[1] ? values[1].format(_this3.state.dateTimeFormat) : null];
49915 }
49916 _this3.props[handler](ret);
49917 };
49918
49919 this.onSelectCalendarPanel = function (value, active) {
49920 var _props3 = _this3.props,
49921 showTime = _props3.showTime,
49922 resetTime = _props3.resetTime;
49923 var _state = _this3.state,
49924 prevActiveDateInput = _state.activeDateInput,
49925 prevStartValue = _state.startValue,
49926 prevEndValue = _state.endValue,
49927 timeFormat = _state.timeFormat;
49928
49929 var newState = {
49930 activeDateInput: active || prevActiveDateInput,
49931 inputing: false
49932 };
49933
49934 var newValue = value;
49935
49936 switch (active || prevActiveDateInput) {
49937 case 'startValue':
49938 {
49939 if (!prevEndValue || value.valueOf() <= prevEndValue.valueOf()) {
49940 newState.activeDateInput = 'endValue';
49941 }
49942
49943 if (showTime) {
49944 if (!prevStartValue) {
49945 // 第一次选择,如果设置了时间默认值,则使用该默认时间
49946 if (showTime.defaultValue) {
49947 var defaultTimeValue = (0, _util2.formatDateValue)(Array.isArray(showTime.defaultValue) ? showTime.defaultValue[0] : showTime.defaultValue, timeFormat);
49948 newValue = (0, _util2.resetValueTime)(value, defaultTimeValue);
49949 }
49950 } else if (!resetTime) {
49951 // 非第一次选择,如果开启了 resetTime ,则记住之前选择的时间值
49952 newValue = (0, _util2.resetValueTime)(value, prevStartValue);
49953 }
49954 }
49955
49956 newState.startValue = newValue;
49957
49958 // 如果起始日期大于结束日期
49959 if (prevEndValue && newValue.valueOf() > prevEndValue.valueOf()) {
49960 // 将结束日期设置为起始日期 如果需要的话保留时间
49961 newState.endValue = resetTime ? newValue : (0, _util2.resetValueTime)(value, prevEndValue);
49962
49963 // 如果结束日期不大于起始日期则将结束日期设置为等于开始日期
49964 if (newState.endValue.valueOf() < newState.startValue.valueOf()) {
49965 newState.endValue = (0, _moment2.default)(newState.startValue);
49966 }
49967 newState.activeDateInput = 'endValue';
49968 }
49969 break;
49970 }
49971
49972 case 'endValue':
49973 if (!prevStartValue) {
49974 newState.activeDateInput = 'startValue';
49975 }
49976
49977 if (showTime) {
49978 if (!prevEndValue) {
49979 // 第一次选择,如果设置了时间默认值,则使用该默认时间
49980 if (showTime.defaultValue) {
49981 var _defaultTimeValue = (0, _util2.formatDateValue)(Array.isArray(showTime.defaultValue) ? showTime.defaultValue[1] || showTime.defaultValue[0] : showTime.defaultValue, timeFormat);
49982 newValue = (0, _util2.resetValueTime)(value, _defaultTimeValue);
49983 }
49984 } else if (!resetTime) {
49985 // 非第一次选择,如果开启了 resetTime ,则记住之前选择的时间值
49986 newValue = (0, _util2.resetValueTime)(value, prevEndValue);
49987 }
49988 }
49989
49990 newState.endValue = newValue;
49991
49992 // 选择了一个比开始日期更小的结束日期,此时表示用户重新选择了
49993 if (prevStartValue && newValue.valueOf() <= prevStartValue.valueOf()) {
49994 newState.startValue = resetTime ? value : (0, _util2.resetValueTime)(value, prevStartValue);
49995 newState.endValue = resetTime ? value : (0, _util2.resetValueTime)(value, prevEndValue);
49996
49997 // 如果结束日期不大于起始日期则将结束日期设置为等于开始日期
49998 if (newState.endValue.valueOf() < newState.startValue.valueOf()) {
49999 newState.endValue = (0, _moment2.default)(newState.startValue);
50000 }
50001 }
50002 break;
50003 }
50004
50005 var newStartValue = 'startValue' in newState ? newState.startValue : prevStartValue;
50006 var newEndValue = 'endValue' in newState ? newState.endValue : prevEndValue;
50007
50008 // 受控状态选择不更新值
50009 if ('value' in _this3.props) {
50010 delete newState.startValue;
50011 delete newState.endValue;
50012 }
50013
50014 _this3.setState(newState);
50015
50016 _this3.onValueChange([newStartValue, newEndValue]);
50017 };
50018
50019 this.clearRange = function () {
50020 _this3.setState({
50021 startDateInputStr: '',
50022 endDateInputStr: '',
50023 startTimeInputStr: '',
50024 endTimeInputStr: ''
50025 });
50026
50027 if (!('value' in _this3.props)) {
50028 _this3.setState({
50029 startValue: null,
50030 endValue: null
50031 });
50032 }
50033
50034 _this3.onValueChange([]);
50035 };
50036
50037 this.onDateInputChange = function (inputStr, e, eventType) {
50038 if (eventType === 'clear' || !inputStr) {
50039 e.stopPropagation();
50040 _this3.clearRange();
50041 } else {
50042 var _this3$setState;
50043
50044 var stateName = mapInputStateName(_this3.state.activeDateInput);
50045 _this3.setState((_this3$setState = {}, _this3$setState[stateName] = inputStr, _this3$setState.inputing = _this3.state.activeDateInput, _this3$setState));
50046 }
50047 };
50048
50049 this.onDateInputBlur = function () {
50050 var resetTime = _this3.props.resetTime;
50051 var activeDateInput = _this3.state.activeDateInput;
50052
50053 var stateName = mapInputStateName(activeDateInput);
50054 var dateInputStr = _this3.state[stateName];
50055
50056 if (dateInputStr) {
50057 var _this3$setState2;
50058
50059 var _props4 = _this3.props,
50060 format = _props4.format,
50061 disabledDate = _props4.disabledDate;
50062
50063 var parsed = (0, _moment2.default)(dateInputStr, format, true);
50064
50065 _this3.setState((_this3$setState2 = {}, _this3$setState2[stateName] = '', _this3$setState2.inputing = false, _this3$setState2));
50066
50067 if (parsed.isValid() && !disabledDate(parsed, 'date')) {
50068 var valueName = activeDateInput;
50069 var newValue = resetTime ? parsed : (0, _util2.resetValueTime)(parsed, _this3.state[activeDateInput]);
50070
50071 _this3.handleChange(valueName, newValue);
50072 }
50073 }
50074 };
50075
50076 this.onDateInputKeyDown = function (e) {
50077 var type = _this3.props.type;
50078 var _state2 = _this3.state,
50079 activeDateInput = _state2.activeDateInput,
50080 format = _state2.format;
50081
50082 var stateName = mapInputStateName(activeDateInput);
50083 var dateInputStr = _this3.state[stateName];
50084 var dateStr = (0, _util2.onDateKeydown)(e, {
50085 format: format,
50086 value: _this3.state[activeDateInput],
50087 dateInputStr: dateInputStr
50088 }, type === 'date' ? 'day' : type);
50089 if (!dateStr) return;
50090
50091 return _this3.onDateInputChange(dateStr);
50092 };
50093
50094 this.onFocusDateInput = function (type) {
50095 if (type !== _this3.state.activeDateInput) {
50096 _this3.setState({
50097 activeDateInput: type
50098 });
50099 }
50100 if (_this3.state.panel !== _util2.PANEL.DATE) {
50101 _this3.setState({
50102 panel: _util2.PANEL.DATE
50103 });
50104 }
50105 };
50106
50107 this.onFocusTimeInput = function (type) {
50108 if (type !== _this3.state.activeDateInput) {
50109 _this3.setState({
50110 activeDateInput: type
50111 });
50112 }
50113
50114 if (_this3.state.panel !== _util2.PANEL.TIME) {
50115 _this3.setState({
50116 panel: _util2.PANEL.TIME
50117 });
50118 }
50119 };
50120
50121 this.onSelectStartTime = function (value) {
50122 if (!('value' in _this3.props)) {
50123 _this3.setState({
50124 startValue: value,
50125 inputing: false,
50126 activeDateInput: 'startTime'
50127 });
50128 }
50129
50130 if (value.valueOf() !== _this3.state.startValue.valueOf()) {
50131 _this3.onValueChange([value, _this3.state.endValue]);
50132 }
50133 };
50134
50135 this.onSelectEndTime = function (value) {
50136 if (!('value' in _this3.props)) {
50137 _this3.setState({
50138 endValue: value,
50139 inputing: false,
50140 activeDateInput: 'endTime'
50141 });
50142 }
50143 if (value.valueOf() !== _this3.state.endValue.valueOf()) {
50144 _this3.onValueChange([_this3.state.startValue, value]);
50145 }
50146 };
50147
50148 this.onTimeInputChange = function (inputStr) {
50149 var _this3$setState3;
50150
50151 var stateName = mapInputStateName(_this3.state.activeDateInput);
50152 _this3.setState((_this3$setState3 = {}, _this3$setState3[stateName] = inputStr, _this3$setState3.inputing = _this3.state.activeDateInput, _this3$setState3));
50153 };
50154
50155 this.onTimeInputBlur = function () {
50156 var _this3$setState4;
50157
50158 var stateName = mapInputStateName(_this3.state.activeDateInput);
50159 var timeInputStr = _this3.state[stateName];
50160
50161 var parsed = (0, _moment2.default)(timeInputStr, _this3.state.timeFormat, true);
50162
50163 _this3.setState((_this3$setState4 = {}, _this3$setState4[stateName] = '', _this3$setState4.inputing = false, _this3$setState4));
50164
50165 if (parsed.isValid()) {
50166 var hour = parsed.hour();
50167 var minute = parsed.minute();
50168 var second = parsed.second();
50169 var valueName = mapTimeToValue(_this3.state.activeDateInput);
50170 var newValue = _this3.state[valueName].clone().hour(hour).minute(minute).second(second);
50171
50172 _this3.handleChange(valueName, newValue);
50173 }
50174 };
50175
50176 this.onTimeInputKeyDown = function (e) {
50177 var showTime = _this3.props.showTime;
50178 var _state3 = _this3.state,
50179 activeDateInput = _state3.activeDateInput,
50180 timeFormat = _state3.timeFormat;
50181
50182 var stateName = mapInputStateName(activeDateInput);
50183 var timeInputStr = _this3.state[stateName];
50184
50185 var _ref3 = (typeof showTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(showTime)) === 'object' ? showTime : {},
50186 disabledMinutes = _ref3.disabledMinutes,
50187 disabledSeconds = _ref3.disabledSeconds,
50188 _ref3$hourStep = _ref3.hourStep,
50189 hourStep = _ref3$hourStep === undefined ? 1 : _ref3$hourStep,
50190 _ref3$minuteStep = _ref3.minuteStep,
50191 minuteStep = _ref3$minuteStep === undefined ? 1 : _ref3$minuteStep,
50192 _ref3$secondStep = _ref3.secondStep,
50193 secondStep = _ref3$secondStep === undefined ? 1 : _ref3$secondStep;
50194
50195 var unit = 'second';
50196
50197 if (disabledSeconds) {
50198 unit = disabledMinutes ? 'hour' : 'minute';
50199 }
50200
50201 var timeStr = (0, _util2.onTimeKeydown)(e, {
50202 format: timeFormat,
50203 timeInputStr: timeInputStr,
50204 value: _this3.state[activeDateInput.indexOf('start') ? 'startValue' : 'endValue'],
50205 steps: {
50206 hour: hourStep,
50207 minute: minuteStep,
50208 second: secondStep
50209 }
50210 }, unit);
50211
50212 if (!timeStr) return;
50213
50214 _this3.onTimeInputChange(timeStr);
50215 };
50216
50217 this.handleChange = function (valueName, newValue) {
50218 var values = ['startValue', 'endValue'].map(function (name) {
50219 return valueName === name ? newValue : _this3.state[name];
50220 });
50221
50222 // 判断起始时间是否大于结束时间
50223 if (values[0] && values[1] && values[0].valueOf() > values[1].valueOf()) {
50224 return;
50225 }
50226
50227 if (!('value' in _this3.props)) {
50228 var _this3$setState5;
50229
50230 _this3.setState((_this3$setState5 = {}, _this3$setState5[valueName] = newValue, _this3$setState5));
50231 }
50232
50233 _this3.onValueChange(values);
50234 };
50235
50236 this.onVisibleChange = function (visible, type) {
50237 if (!('visible' in _this3.props)) {
50238 _this3.setState({
50239 visible: visible
50240 });
50241 }
50242 _this3.props.onVisibleChange(visible, type);
50243 };
50244
50245 this.changePanel = function (panel) {
50246 var _state4 = _this3.state,
50247 startValue = _state4.startValue,
50248 endValue = _state4.endValue;
50249
50250 _this3.setState({
50251 panel: panel,
50252 activeDateInput: panel === _util2.PANEL.DATE ? !!startValue && !endValue ? 'endValue' : 'startValue' : 'startTime'
50253 });
50254 };
50255
50256 this.onOk = function (value) {
50257 _this3.onVisibleChange(false, 'okBtnClick');
50258 _this3.onValueChange(value || [_this3.state.startValue, _this3.state.endValue], 'onOk');
50259 };
50260
50261 this.getDisabledTime = function (_ref4) {
50262 var startValue = _ref4.startValue,
50263 endValue = _ref4.endValue;
50264
50265 var _ref5 = _this3.props.showTime || {},
50266 disabledHours = _ref5.disabledHours,
50267 disabledMinutes = _ref5.disabledMinutes,
50268 disabledSeconds = _ref5.disabledSeconds;
50269
50270 var disabledTime = {};
50271
50272 if (startValue && endValue) {
50273 var isSameDay = startValue.format('L') === endValue.format('L');
50274 var newDisabledHours = (0, _util2.isFunction)(disabledHours) ? disabledHours : function (index) {
50275 if (isSameDay && index < startValue.hour()) {
50276 return true;
50277 }
50278 };
50279
50280 var newDisabledMinutes = (0, _util2.isFunction)(disabledMinutes) ? disabledMinutes : function (index) {
50281 if (isSameDay && startValue.hour() === endValue.hour() && index < startValue.minute()) {
50282 return true;
50283 }
50284 };
50285
50286 var newDisabledSeconds = (0, _util2.isFunction)(disabledSeconds) ? disabledSeconds : function (index) {
50287 if (isSameDay && startValue.hour() === endValue.hour() && startValue.minute() === endValue.minute() && index < startValue.second()) {
50288 return true;
50289 }
50290 };
50291 disabledTime = {
50292 disabledHours: newDisabledHours,
50293 disabledMinutes: newDisabledMinutes,
50294 disabledSeconds: newDisabledSeconds
50295 };
50296 }
50297
50298 return disabledTime;
50299 };
50300}, _temp);
50301RangePicker.displayName = 'RangePicker';
50302exports.default = (0, _reactLifecyclesCompat.polyfill)(RangePicker);
50303module.exports = exports['default'];
50304
50305/***/ }),
50306/* 336 */
50307/***/ (function(module, exports, __webpack_require__) {
50308
50309"use strict";
50310
50311
50312exports.__esModule = true;
50313
50314var _objectWithoutProperties2 = __webpack_require__(8);
50315
50316var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
50317
50318var _extends2 = __webpack_require__(1);
50319
50320var _extends3 = _interopRequireDefault(_extends2);
50321
50322var _classCallCheck2 = __webpack_require__(2);
50323
50324var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
50325
50326var _possibleConstructorReturn2 = __webpack_require__(3);
50327
50328var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
50329
50330var _inherits2 = __webpack_require__(4);
50331
50332var _inherits3 = _interopRequireDefault(_inherits2);
50333
50334var _class, _temp;
50335
50336var _react = __webpack_require__(0);
50337
50338var _react2 = _interopRequireDefault(_react);
50339
50340var _propTypes = __webpack_require__(5);
50341
50342var _propTypes2 = _interopRequireDefault(_propTypes);
50343
50344var _reactLifecyclesCompat = __webpack_require__(10);
50345
50346var _classnames4 = __webpack_require__(7);
50347
50348var _classnames5 = _interopRequireDefault(_classnames4);
50349
50350var _moment = __webpack_require__(19);
50351
50352var _moment2 = _interopRequireDefault(_moment);
50353
50354var _configProvider = __webpack_require__(9);
50355
50356var _configProvider2 = _interopRequireDefault(_configProvider);
50357
50358var _overlay = __webpack_require__(15);
50359
50360var _overlay2 = _interopRequireDefault(_overlay);
50361
50362var _input = __webpack_require__(18);
50363
50364var _input2 = _interopRequireDefault(_input);
50365
50366var _icon = __webpack_require__(11);
50367
50368var _icon2 = _interopRequireDefault(_icon);
50369
50370var _calendar = __webpack_require__(38);
50371
50372var _calendar2 = _interopRequireDefault(_calendar);
50373
50374var _zhCn = __webpack_require__(13);
50375
50376var _zhCn2 = _interopRequireDefault(_zhCn);
50377
50378var _util = __webpack_require__(6);
50379
50380var _util2 = __webpack_require__(30);
50381
50382function _interopRequireDefault(obj) {
50383 return obj && obj.__esModule ? obj : { default: obj };
50384}
50385
50386var Popup = _overlay2.default.Popup;
50387
50388/**
50389 * DatePicker.MonthPicker
50390 */
50391
50392var MonthPicker = (_temp = _class = function (_Component) {
50393 (0, _inherits3.default)(MonthPicker, _Component);
50394
50395 function MonthPicker(props, context) {
50396 (0, _classCallCheck3.default)(this, MonthPicker);
50397
50398 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
50399
50400 _this.onValueChange = function (newValue) {
50401 var ret = _this.state.inputAsString && newValue ? newValue.format(_this.props.format) : newValue;
50402 _this.props.onChange(ret);
50403 };
50404
50405 _this.onSelectCalendarPanel = function (value) {
50406 // const { format } = this.props;
50407 var prevSelectedMonth = _this.state.value;
50408 var selectedMonth = value.clone().date(1).hour(0).minute(0).second(0);
50409
50410 _this.handleChange(selectedMonth, prevSelectedMonth, { inputing: false }, function () {
50411 _this.onVisibleChange(false, 'calendarSelect');
50412 });
50413 };
50414
50415 _this.clearValue = function () {
50416 _this.setState({
50417 dateInputStr: ''
50418 });
50419
50420 _this.handleChange(null, _this.state.value);
50421 };
50422
50423 _this.onDateInputChange = function (inputStr, e, eventType) {
50424 if (eventType === 'clear' || !inputStr) {
50425 e.stopPropagation();
50426 _this.clearValue();
50427 } else {
50428 _this.setState({
50429 dateInputStr: inputStr,
50430 inputing: true
50431 });
50432 }
50433 };
50434
50435 _this.onDateInputBlur = function () {
50436 var dateInputStr = _this.state.dateInputStr;
50437
50438 if (dateInputStr) {
50439 var _this$props = _this.props,
50440 disabledDate = _this$props.disabledDate,
50441 format = _this$props.format;
50442
50443 var parsed = (0, _moment2.default)(dateInputStr, format, true);
50444
50445 _this.setState({
50446 dateInputStr: '',
50447 inputing: false
50448 });
50449
50450 if (parsed.isValid() && !disabledDate(parsed, 'month')) {
50451 _this.handleChange(parsed, _this.state.value);
50452 }
50453 }
50454 };
50455
50456 _this.onKeyDown = function (e) {
50457 var format = _this.props.format;
50458 var _this$state = _this.state,
50459 dateInputStr = _this$state.dateInputStr,
50460 value = _this$state.value;
50461
50462 var dateStr = (0, _util2.onDateKeydown)(e, { format: format, dateInputStr: dateInputStr, value: value }, 'month');
50463 if (!dateStr) return;
50464 _this.onDateInputChange(dateStr);
50465 };
50466
50467 _this.handleChange = function (newValue, prevValue) {
50468 var others = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
50469 var callback = arguments[3];
50470
50471 if (!('value' in _this.props)) {
50472 _this.setState((0, _extends3.default)({
50473 value: newValue
50474 }, others));
50475 } else {
50476 _this.setState((0, _extends3.default)({}, others));
50477 }
50478
50479 var format = _this.props.format;
50480
50481 var newValueOf = newValue ? newValue.format(format) : null;
50482 var preValueOf = prevValue ? prevValue.format(format) : null;
50483
50484 if (newValueOf !== preValueOf) {
50485 _this.onValueChange(newValue);
50486 if (typeof callback === 'function') {
50487 return callback();
50488 }
50489 }
50490 };
50491
50492 _this.onVisibleChange = function (visible, type) {
50493 if (!('visible' in _this.props)) {
50494 _this.setState({
50495 visible: visible
50496 });
50497 }
50498 _this.props.onVisibleChange(visible, type);
50499 };
50500
50501 _this.state = {
50502 value: (0, _util2.formatDateValue)(props.defaultValue, props.format),
50503 dateInputStr: '',
50504 inputing: false,
50505 visible: props.defaultVisible,
50506 inputAsString: typeof props.defaultValue === 'string'
50507 };
50508 return _this;
50509 }
50510
50511 MonthPicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
50512 var states = {};
50513 if ('value' in props) {
50514 states.value = (0, _util2.formatDateValue)(props.value, props.format);
50515 states.inputAsString = typeof props.value === 'string';
50516 }
50517
50518 if ('visible' in props) {
50519 states.visible = props.visible;
50520 }
50521
50522 return states;
50523 };
50524
50525 MonthPicker.prototype.renderPreview = function renderPreview(others) {
50526 var _props = this.props,
50527 prefix = _props.prefix,
50528 format = _props.format,
50529 className = _props.className,
50530 renderPreview = _props.renderPreview;
50531 var value = this.state.value;
50532
50533 var previewCls = (0, _classnames5.default)(className, prefix + 'form-preview');
50534
50535 var label = value ? value.format(format) : '';
50536
50537 if (typeof renderPreview === 'function') {
50538 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
50539 }
50540
50541 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
50542 };
50543
50544 MonthPicker.prototype.render = function render() {
50545 var _classnames, _classnames2, _classnames3;
50546
50547 var _props2 = this.props,
50548 prefix = _props2.prefix,
50549 rtl = _props2.rtl,
50550 locale = _props2.locale,
50551 label = _props2.label,
50552 state = _props2.state,
50553 format = _props2.format,
50554 defaultVisibleYear = _props2.defaultVisibleYear,
50555 disabledDate = _props2.disabledDate,
50556 footerRender = _props2.footerRender,
50557 placeholder = _props2.placeholder,
50558 size = _props2.size,
50559 disabled = _props2.disabled,
50560 hasClear = _props2.hasClear,
50561 popupTriggerType = _props2.popupTriggerType,
50562 popupAlign = _props2.popupAlign,
50563 popupContainer = _props2.popupContainer,
50564 popupStyle = _props2.popupStyle,
50565 popupClassName = _props2.popupClassName,
50566 popupProps = _props2.popupProps,
50567 popupComponent = _props2.popupComponent,
50568 popupContent = _props2.popupContent,
50569 followTrigger = _props2.followTrigger,
50570 className = _props2.className,
50571 inputProps = _props2.inputProps,
50572 monthCellRender = _props2.monthCellRender,
50573 yearCellRender = _props2.yearCellRender,
50574 dateInputAriaLabel = _props2.dateInputAriaLabel,
50575 isPreview = _props2.isPreview,
50576 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'rtl', 'locale', 'label', 'state', 'format', 'defaultVisibleYear', 'disabledDate', 'footerRender', 'placeholder', 'size', 'disabled', 'hasClear', 'popupTriggerType', 'popupAlign', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'popupComponent', 'popupContent', 'followTrigger', 'className', 'inputProps', 'monthCellRender', 'yearCellRender', 'dateInputAriaLabel', 'isPreview']);
50577 var _state = this.state,
50578 visible = _state.visible,
50579 value = _state.value,
50580 dateInputStr = _state.dateInputStr,
50581 inputing = _state.inputing;
50582
50583 var monthPickerCls = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'month-picker'] = true, _classnames), className);
50584
50585 var triggerInputCls = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'month-picker-input'] = true, _classnames2[prefix + 'error'] = false, _classnames2));
50586
50587 var panelBodyClassName = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'month-picker-body'] = true, _classnames3));
50588
50589 if (rtl) {
50590 others.dir = 'rtl';
50591 }
50592
50593 if (isPreview) {
50594 return this.renderPreview(_util.obj.pickOthers(others, MonthPicker.PropTypes));
50595 }
50596
50597 var panelInputCls = prefix + 'month-picker-panel-input';
50598
50599 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
50600 size: size,
50601 disabled: disabled,
50602 onChange: this.onDateInputChange,
50603 onBlur: this.onDateInputBlur,
50604 onPressEnter: this.onDateInputBlur,
50605 onKeyDown: this.onKeyDown
50606 });
50607
50608 var dateInputValue = inputing ? dateInputStr : value && value.format(format) || '';
50609 var triggerInputValue = dateInputValue;
50610
50611 var dateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
50612 value: dateInputValue,
50613 'aria-label': dateInputAriaLabel,
50614 onFocus: this.onFoucsDateInput,
50615 placeholder: format,
50616 className: panelInputCls
50617 }));
50618
50619 var datePanel = _react2.default.createElement(_calendar2.default, {
50620 shape: 'panel',
50621 modes: ['month', 'year'],
50622 monthCellRender: monthCellRender,
50623 yearCellRender: yearCellRender,
50624 value: value,
50625 onSelect: this.onSelectCalendarPanel,
50626 defaultVisibleMonth: defaultVisibleYear,
50627 disabledDate: disabledDate
50628 });
50629
50630 var panelBody = datePanel;
50631 var panelFooter = footerRender();
50632
50633 var allowClear = value && hasClear;
50634 var trigger = _react2.default.createElement('div', { className: prefix + 'month-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
50635 label: label,
50636 state: state,
50637 readOnly: true,
50638 value: triggerInputValue,
50639 placeholder: placeholder || locale.monthPlaceholder,
50640 hint: _react2.default.createElement(_icon2.default, {
50641 type: 'calendar',
50642 className: prefix + 'date-picker-symbol-calendar-icon'
50643 }),
50644 hasClear: allowClear,
50645 className: triggerInputCls
50646 })));
50647
50648 var PopupComponent = popupComponent ? popupComponent : Popup;
50649
50650 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(MonthPicker.propTypes, others), {
50651 className: monthPickerCls
50652 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
50653 autoFocus: true,
50654 align: popupAlign
50655 }, popupProps, {
50656 followTrigger: followTrigger,
50657 role: 'combobox',
50658 'aria-expanded': visible,
50659 disabled: disabled,
50660 visible: visible,
50661 onVisibleChange: this.onVisibleChange,
50662 triggerType: popupTriggerType,
50663 container: popupContainer,
50664 style: popupStyle,
50665 className: popupClassName,
50666 trigger: trigger
50667 }), popupContent ? popupContent : _react2.default.createElement('div', { className: panelBodyClassName, dir: others.dir }, _react2.default.createElement('div', {
50668 className: prefix + 'month-picker-panel-header'
50669 }, dateInput), panelBody, panelFooter)));
50670 };
50671
50672 return MonthPicker;
50673}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
50674 prefix: _propTypes2.default.string,
50675 rtl: _propTypes2.default.bool,
50676 /**
50677 * 输入框内置标签
50678 */
50679 label: _propTypes2.default.node,
50680 /**
50681 * 输入框状态
50682 */
50683 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
50684 /**
50685 * 输入提示
50686 */
50687 placeholder: _propTypes2.default.string,
50688 /**
50689 * 默认展现的年
50690 * @return {MomentObject} 返回包含指定年份的 moment 对象实例
50691 */
50692 defaultVisibleYear: _propTypes2.default.func,
50693 /**
50694 * 日期值(受控)moment 对象
50695 */
50696 value: _util2.checkDateValue,
50697 /**
50698 * 初始日期值,moment 对象
50699 */
50700 defaultValue: _util2.checkDateValue,
50701 /**
50702 * 日期值的格式(用于限定用户输入和展示)
50703 */
50704 format: _propTypes2.default.string,
50705 /**
50706 * 禁用日期函数
50707 * @param {MomentObject} 日期值
50708 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
50709 * @return {Boolean} 是否禁用
50710 */
50711 disabledDate: _propTypes2.default.func,
50712 /**
50713 * 自定义面板页脚
50714 * @return {Node} 自定义的面板页脚组件
50715 */
50716 footerRender: _propTypes2.default.func,
50717 /**
50718 * 日期值改变时的回调
50719 * @param {MomentObject|String} value 日期值
50720 */
50721 onChange: _propTypes2.default.func,
50722 /**
50723 * 输入框尺寸
50724 */
50725 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
50726 /**
50727 * 是否禁用
50728 */
50729 disabled: _propTypes2.default.bool,
50730 /**
50731 * 是否显示清空按钮
50732 */
50733 hasClear: _propTypes2.default.bool,
50734 /**
50735 * 弹层显示状态
50736 */
50737 visible: _propTypes2.default.bool,
50738 /**
50739 * 弹层默认是否显示
50740 */
50741 defaultVisible: _propTypes2.default.bool,
50742 /**
50743 * 弹层展示状态变化时的回调
50744 * @param {Boolean} visible 弹层是否显示
50745 * @param {String} type 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
50746 */
50747 onVisibleChange: _propTypes2.default.func,
50748 /**
50749 * 弹层触发方式
50750 */
50751 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
50752 /**
50753 * 弹层对齐方式, 具体含义见 OverLay文档
50754 */
50755 popupAlign: _propTypes2.default.string,
50756 /**
50757 * 弹层容器
50758 * @param {Element} target 目标元素
50759 * @return {Element} 弹层的容器元素
50760 */
50761 popupContainer: _propTypes2.default.any,
50762 /**
50763 * 弹层自定义样式
50764 */
50765 popupStyle: _propTypes2.default.object,
50766 /**
50767 * 弹层自定义样式类
50768 */
50769 popupClassName: _propTypes2.default.string,
50770 /**
50771 * 弹层其他属性
50772 */
50773 popupProps: _propTypes2.default.object,
50774 /**
50775 * 是否跟随滚动
50776 */
50777 followTrigger: _propTypes2.default.bool,
50778 /**
50779 * 输入框其他属性
50780 */
50781 inputProps: _propTypes2.default.object,
50782 /**
50783 * 自定义月份渲染函数
50784 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
50785 * @returns {ReactNode}
50786 */
50787 monthCellRender: _propTypes2.default.func,
50788 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
50789 /**
50790 * 日期输入框的 aria-label 属性
50791 */
50792 dateInputAriaLabel: _propTypes2.default.string,
50793 /**
50794 * 是否为预览态
50795 */
50796 isPreview: _propTypes2.default.bool,
50797 /**
50798 * 预览态模式下渲染的内容
50799 * @param {MomentObject} value 月份
50800 */
50801 renderPreview: _propTypes2.default.func,
50802 locale: _propTypes2.default.object,
50803 className: _propTypes2.default.string,
50804 name: _propTypes2.default.string,
50805 popupComponent: _propTypes2.default.elementType,
50806 popupContent: _propTypes2.default.node
50807}), _class.defaultProps = {
50808 prefix: 'next-',
50809 rtl: false,
50810 format: 'YYYY-MM',
50811 size: 'medium',
50812 disabledDate: function disabledDate() {
50813 return false;
50814 },
50815 footerRender: function footerRender() {
50816 return null;
50817 },
50818 hasClear: true,
50819 popupTriggerType: 'click',
50820 popupAlign: 'tl tl',
50821 locale: _zhCn2.default.DatePicker,
50822 onChange: _util.func.noop,
50823 onVisibleChange: _util.func.noop
50824}, _temp);
50825MonthPicker.displayName = 'MonthPicker';
50826exports.default = (0, _reactLifecyclesCompat.polyfill)(MonthPicker);
50827module.exports = exports['default'];
50828
50829/***/ }),
50830/* 337 */
50831/***/ (function(module, exports, __webpack_require__) {
50832
50833"use strict";
50834
50835
50836exports.__esModule = true;
50837
50838var _objectWithoutProperties2 = __webpack_require__(8);
50839
50840var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
50841
50842var _extends2 = __webpack_require__(1);
50843
50844var _extends3 = _interopRequireDefault(_extends2);
50845
50846var _classCallCheck2 = __webpack_require__(2);
50847
50848var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
50849
50850var _possibleConstructorReturn2 = __webpack_require__(3);
50851
50852var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
50853
50854var _inherits2 = __webpack_require__(4);
50855
50856var _inherits3 = _interopRequireDefault(_inherits2);
50857
50858var _class, _temp;
50859
50860var _react = __webpack_require__(0);
50861
50862var _react2 = _interopRequireDefault(_react);
50863
50864var _propTypes = __webpack_require__(5);
50865
50866var _propTypes2 = _interopRequireDefault(_propTypes);
50867
50868var _reactLifecyclesCompat = __webpack_require__(10);
50869
50870var _classnames4 = __webpack_require__(7);
50871
50872var _classnames5 = _interopRequireDefault(_classnames4);
50873
50874var _moment = __webpack_require__(19);
50875
50876var _moment2 = _interopRequireDefault(_moment);
50877
50878var _overlay = __webpack_require__(15);
50879
50880var _overlay2 = _interopRequireDefault(_overlay);
50881
50882var _input = __webpack_require__(18);
50883
50884var _input2 = _interopRequireDefault(_input);
50885
50886var _icon = __webpack_require__(11);
50887
50888var _icon2 = _interopRequireDefault(_icon);
50889
50890var _calendar = __webpack_require__(38);
50891
50892var _calendar2 = _interopRequireDefault(_calendar);
50893
50894var _zhCn = __webpack_require__(13);
50895
50896var _zhCn2 = _interopRequireDefault(_zhCn);
50897
50898var _util = __webpack_require__(6);
50899
50900var _util2 = __webpack_require__(30);
50901
50902function _interopRequireDefault(obj) {
50903 return obj && obj.__esModule ? obj : { default: obj };
50904}
50905
50906var Popup = _overlay2.default.Popup;
50907
50908/**
50909 * DatePicker.YearPicker
50910 */
50911
50912var YearPicker = (_temp = _class = function (_Component) {
50913 (0, _inherits3.default)(YearPicker, _Component);
50914
50915 function YearPicker(props, context) {
50916 (0, _classCallCheck3.default)(this, YearPicker);
50917
50918 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
50919
50920 _this.onValueChange = function (newValue) {
50921 var ret = _this.state.inputAsString && newValue ? newValue.format(_this.props.format) : newValue;
50922 _this.props.onChange(ret);
50923 };
50924
50925 _this.onSelectCalendarPanel = function (value) {
50926 // const { format } = this.props;
50927 var prevSelectedMonth = _this.state.value;
50928 var selectedMonth = value.clone().month(0).date(1).hour(0).minute(0).second(0);
50929
50930 _this.handleChange(selectedMonth, prevSelectedMonth, { inputing: false }, function () {
50931 _this.onVisibleChange(false, 'calendarSelect');
50932 });
50933 };
50934
50935 _this.clearValue = function () {
50936 _this.setState({
50937 dateInputStr: ''
50938 });
50939
50940 _this.handleChange(null, _this.state.value);
50941 };
50942
50943 _this.onDateInputChange = function (inputStr, e, eventType) {
50944 if (eventType === 'clear' || !inputStr) {
50945 e.stopPropagation();
50946 _this.clearValue();
50947 } else {
50948 _this.setState({
50949 dateInputStr: inputStr,
50950 inputing: true
50951 });
50952 }
50953 };
50954
50955 _this.onDateInputBlur = function () {
50956 var dateInputStr = _this.state.dateInputStr;
50957
50958 if (dateInputStr) {
50959 var _this$props = _this.props,
50960 disabledDate = _this$props.disabledDate,
50961 format = _this$props.format;
50962
50963 var parsed = (0, _moment2.default)(dateInputStr, format, true);
50964
50965 _this.setState({
50966 dateInputStr: '',
50967 inputing: false
50968 });
50969
50970 if (parsed.isValid() && !disabledDate(parsed, 'year')) {
50971 _this.handleChange(parsed, _this.state.value);
50972 }
50973 }
50974 };
50975
50976 _this.onKeyDown = function (e) {
50977 var format = _this.props.format;
50978 var _this$state = _this.state,
50979 dateInputStr = _this$state.dateInputStr,
50980 value = _this$state.value;
50981
50982 var dateStr = (0, _util2.onDateKeydown)(e, { format: format, dateInputStr: dateInputStr, value: value }, 'year');
50983 if (!dateStr) return;
50984 _this.onDateInputChange(dateStr);
50985 };
50986
50987 _this.handleChange = function (newValue, prevValue) {
50988 var others = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
50989 var callback = arguments[3];
50990
50991 if (!('value' in _this.props)) {
50992 _this.setState((0, _extends3.default)({
50993 value: newValue
50994 }, others));
50995 } else {
50996 _this.setState((0, _extends3.default)({}, others));
50997 }
50998
50999 var format = _this.props.format;
51000
51001 var newValueOf = newValue ? newValue.format(format) : null;
51002 var preValueOf = prevValue ? prevValue.format(format) : null;
51003
51004 if (newValueOf !== preValueOf) {
51005 _this.onValueChange(newValue);
51006 if (typeof callback === 'function') {
51007 return callback();
51008 }
51009 }
51010 };
51011
51012 _this.onVisibleChange = function (visible, reason) {
51013 if (!('visible' in _this.props)) {
51014 _this.setState({
51015 visible: visible
51016 });
51017 }
51018 _this.props.onVisibleChange(visible, reason);
51019 };
51020
51021 _this.state = {
51022 value: (0, _util2.formatDateValue)(props.defaultValue, props.format),
51023 dateInputStr: '',
51024 inputing: false,
51025 visible: props.defaultVisible,
51026 inputAsString: typeof props.defaultValue === 'string' // 判断用户输入是否是字符串
51027 };
51028 return _this;
51029 }
51030
51031 YearPicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
51032 var states = {};
51033 if ('value' in props) {
51034 states.value = (0, _util2.formatDateValue)(props.value, props.format);
51035 states.inputAsString = typeof props.value === 'string';
51036 }
51037
51038 if ('visible' in props) {
51039 states.visible = props.visible;
51040 }
51041
51042 return states;
51043 };
51044
51045 YearPicker.prototype.renderPreview = function renderPreview(others) {
51046 var _props = this.props,
51047 prefix = _props.prefix,
51048 format = _props.format,
51049 className = _props.className,
51050 renderPreview = _props.renderPreview;
51051 var value = this.state.value;
51052
51053 var previewCls = (0, _classnames5.default)(className, prefix + 'form-preview');
51054
51055 var label = value ? value.format(format) : '';
51056
51057 if (typeof renderPreview === 'function') {
51058 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
51059 }
51060
51061 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
51062 };
51063
51064 YearPicker.prototype.render = function render() {
51065 var _classnames, _classnames2, _classnames3;
51066
51067 var _props2 = this.props,
51068 prefix = _props2.prefix,
51069 rtl = _props2.rtl,
51070 locale = _props2.locale,
51071 label = _props2.label,
51072 state = _props2.state,
51073 format = _props2.format,
51074 disabledDate = _props2.disabledDate,
51075 footerRender = _props2.footerRender,
51076 placeholder = _props2.placeholder,
51077 size = _props2.size,
51078 disabled = _props2.disabled,
51079 hasClear = _props2.hasClear,
51080 popupTriggerType = _props2.popupTriggerType,
51081 popupAlign = _props2.popupAlign,
51082 popupContainer = _props2.popupContainer,
51083 popupStyle = _props2.popupStyle,
51084 popupClassName = _props2.popupClassName,
51085 popupProps = _props2.popupProps,
51086 popupComponent = _props2.popupComponent,
51087 popupContent = _props2.popupContent,
51088 followTrigger = _props2.followTrigger,
51089 className = _props2.className,
51090 inputProps = _props2.inputProps,
51091 dateInputAriaLabel = _props2.dateInputAriaLabel,
51092 yearCellRender = _props2.yearCellRender,
51093 isPreview = _props2.isPreview,
51094 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'rtl', 'locale', 'label', 'state', 'format', 'disabledDate', 'footerRender', 'placeholder', 'size', 'disabled', 'hasClear', 'popupTriggerType', 'popupAlign', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'popupComponent', 'popupContent', 'followTrigger', 'className', 'inputProps', 'dateInputAriaLabel', 'yearCellRender', 'isPreview']);
51095 var _state = this.state,
51096 visible = _state.visible,
51097 value = _state.value,
51098 dateInputStr = _state.dateInputStr,
51099 inputing = _state.inputing;
51100
51101 var yearPickerCls = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'year-picker'] = true, _classnames), className);
51102
51103 var triggerInputCls = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'year-picker-input'] = true, _classnames2[prefix + 'error'] = false, _classnames2));
51104
51105 var panelBodyClassName = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'year-picker-body'] = true, _classnames3));
51106
51107 if (rtl) {
51108 others.dir = 'rtl';
51109 }
51110
51111 if (isPreview) {
51112 return this.renderPreview(_util.obj.pickOthers(others, YearPicker.PropTypes));
51113 }
51114
51115 var panelInputCls = prefix + 'year-picker-panel-input';
51116
51117 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
51118 size: size,
51119 disabled: disabled,
51120 onChange: this.onDateInputChange,
51121 onBlur: this.onDateInputBlur,
51122 onPressEnter: this.onDateInputBlur,
51123 onKeyDown: this.onKeyDown
51124 });
51125
51126 var dateInputValue = inputing ? dateInputStr : value && value.format(format) || '';
51127 var triggerInputValue = dateInputValue;
51128
51129 var dateInput = _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
51130 'aria-label': dateInputAriaLabel,
51131 value: dateInputValue,
51132 placeholder: format,
51133 className: panelInputCls
51134 }));
51135
51136 var datePanel = _react2.default.createElement(_calendar2.default, {
51137 shape: 'panel',
51138 modes: ['year'],
51139 value: value,
51140 yearCellRender: yearCellRender,
51141 onSelect: this.onSelectCalendarPanel,
51142 disabledDate: disabledDate
51143 });
51144
51145 var panelBody = datePanel;
51146 var panelFooter = footerRender();
51147
51148 var allowClear = value && hasClear;
51149 var trigger = _react2.default.createElement('div', { className: prefix + 'year-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
51150 label: label,
51151 state: state,
51152 value: triggerInputValue,
51153 role: 'combobox',
51154 'aria-expanded': visible,
51155 readOnly: true,
51156 placeholder: placeholder || locale.yearPlaceholder,
51157 hint: _react2.default.createElement(_icon2.default, {
51158 type: 'calendar',
51159 className: prefix + 'date-picker-symbol-calendar-icon'
51160 }),
51161 hasClear: allowClear,
51162 className: triggerInputCls
51163 })));
51164
51165 var PopupComponent = popupComponent ? popupComponent : Popup;
51166
51167 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(YearPicker.propTypes, others), {
51168 className: yearPickerCls
51169 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
51170 autoFocus: true,
51171 align: popupAlign
51172 }, popupProps, {
51173 followTrigger: followTrigger,
51174 disabled: disabled,
51175 visible: visible,
51176 onVisibleChange: this.onVisibleChange,
51177 triggerType: popupTriggerType,
51178 container: popupContainer,
51179 style: popupStyle,
51180 className: popupClassName,
51181 trigger: trigger
51182 }), popupContent ? popupContent : _react2.default.createElement('div', { dir: others.dir, className: panelBodyClassName }, _react2.default.createElement('div', {
51183 className: prefix + 'year-picker-panel-header'
51184 }, dateInput), panelBody, panelFooter)));
51185 };
51186
51187 return YearPicker;
51188}(_react.Component), _class.propTypes = {
51189 prefix: _propTypes2.default.string,
51190 rtl: _propTypes2.default.bool,
51191 /**
51192 * 输入框内置标签
51193 */
51194 label: _propTypes2.default.node,
51195 /**
51196 * 输入框状态
51197 */
51198 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
51199 /**
51200 * 输入提示
51201 */
51202 placeholder: _propTypes2.default.string,
51203 /**
51204 * 日期值(受控)moment 对象
51205 */
51206 value: _util2.checkDateValue,
51207 /**
51208 * 初始日期值,moment 对象
51209 */
51210 defaultValue: _util2.checkDateValue,
51211 /**
51212 * 日期值的格式(用于限定用户输入和展示)
51213 */
51214 format: _propTypes2.default.string,
51215 /**
51216 * 禁用日期函数
51217 * @param {MomentObject} 日期值
51218 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
51219 * @return {Boolean} 是否禁用
51220 */
51221 disabledDate: _propTypes2.default.func,
51222 /**
51223 * 自定义面板页脚
51224 * @return {Node} 自定义的面板页脚组件
51225 */
51226 footerRender: _propTypes2.default.func,
51227 /**
51228 * 日期值改变时的回调
51229 * @param {MomentObject|String} value 日期值
51230 */
51231 onChange: _propTypes2.default.func,
51232 /**
51233 * 输入框尺寸
51234 */
51235 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
51236 /**
51237 * 是否禁用
51238 */
51239 disabled: _propTypes2.default.bool,
51240 /**
51241 * 是否显示清空按钮
51242 */
51243 hasClear: _propTypes2.default.bool,
51244 /**
51245 * 弹层显示状态
51246 */
51247 visible: _propTypes2.default.bool,
51248 /**
51249 * 弹层默认是否显示
51250 */
51251 defaultVisible: _propTypes2.default.bool,
51252 /**
51253 * 弹层展示状态变化时的回调
51254 * @param {Boolean} visible 弹层是否显示
51255 * @param {String} reason 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
51256 */
51257 onVisibleChange: _propTypes2.default.func,
51258 /**
51259 * 弹层触发方式
51260 */
51261 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
51262 /**
51263 * 弹层对齐方式, 具体含义见 OverLay文档
51264 */
51265 popupAlign: _propTypes2.default.string,
51266 /**
51267 * 弹层容器
51268 * @param {Element} target 目标元素
51269 * @return {Element} 弹层的容器元素
51270 */
51271 popupContainer: _propTypes2.default.any,
51272 /**
51273 * 弹层自定义样式
51274 */
51275 popupStyle: _propTypes2.default.object,
51276 /**
51277 * 弹层自定义样式类
51278 */
51279 popupClassName: _propTypes2.default.string,
51280 /**
51281 * 弹层其他属性
51282 */
51283 popupProps: _propTypes2.default.object,
51284 /**
51285 * 是否跟随滚动
51286 */
51287 followTrigger: _propTypes2.default.bool,
51288 /**
51289 * 输入框其他属性
51290 */
51291 inputProps: _propTypes2.default.object,
51292 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
51293 /**
51294 * 日期输入框的 aria-label 属性
51295 */
51296 dateInputAriaLabel: _propTypes2.default.string,
51297 /**
51298 * 是否为预览态
51299 */
51300 isPreview: _propTypes2.default.bool,
51301 /**
51302 * 预览态模式下渲染的内容
51303 * @param {MomentObject} value 年份
51304 */
51305 renderPreview: _propTypes2.default.func,
51306 locale: _propTypes2.default.object,
51307 className: _propTypes2.default.string,
51308 name: _propTypes2.default.string,
51309 popupComponent: _propTypes2.default.elementType,
51310 popupContent: _propTypes2.default.node
51311}, _class.defaultProps = {
51312 prefix: 'next-',
51313 rtl: false,
51314 format: 'YYYY',
51315 size: 'medium',
51316 disabledDate: function disabledDate() {
51317 return false;
51318 },
51319 footerRender: function footerRender() {
51320 return null;
51321 },
51322 hasClear: true,
51323 popupTriggerType: 'click',
51324 popupAlign: 'tl tl',
51325 locale: _zhCn2.default.DatePicker,
51326 onChange: _util.func.noop,
51327 onVisibleChange: _util.func.noop
51328}, _temp);
51329YearPicker.displayName = 'YearPicker';
51330exports.default = (0, _reactLifecyclesCompat.polyfill)(YearPicker);
51331module.exports = exports['default'];
51332
51333/***/ }),
51334/* 338 */
51335/***/ (function(module, exports, __webpack_require__) {
51336
51337"use strict";
51338
51339
51340exports.__esModule = true;
51341
51342var _objectWithoutProperties2 = __webpack_require__(8);
51343
51344var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
51345
51346var _extends2 = __webpack_require__(1);
51347
51348var _extends3 = _interopRequireDefault(_extends2);
51349
51350var _classCallCheck2 = __webpack_require__(2);
51351
51352var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
51353
51354var _possibleConstructorReturn2 = __webpack_require__(3);
51355
51356var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
51357
51358var _inherits2 = __webpack_require__(4);
51359
51360var _inherits3 = _interopRequireDefault(_inherits2);
51361
51362var _class, _temp, _initialiseProps;
51363
51364var _react = __webpack_require__(0);
51365
51366var _react2 = _interopRequireDefault(_react);
51367
51368var _propTypes = __webpack_require__(5);
51369
51370var _propTypes2 = _interopRequireDefault(_propTypes);
51371
51372var _classnames2 = __webpack_require__(7);
51373
51374var _classnames3 = _interopRequireDefault(_classnames2);
51375
51376var _moment = __webpack_require__(19);
51377
51378var _moment2 = _interopRequireDefault(_moment);
51379
51380var _reactLifecyclesCompat = __webpack_require__(10);
51381
51382var _overlay = __webpack_require__(15);
51383
51384var _overlay2 = _interopRequireDefault(_overlay);
51385
51386var _input = __webpack_require__(18);
51387
51388var _input2 = _interopRequireDefault(_input);
51389
51390var _icon = __webpack_require__(11);
51391
51392var _icon2 = _interopRequireDefault(_icon);
51393
51394var _calendar = __webpack_require__(38);
51395
51396var _calendar2 = _interopRequireDefault(_calendar);
51397
51398var _configProvider = __webpack_require__(9);
51399
51400var _configProvider2 = _interopRequireDefault(_configProvider);
51401
51402var _zhCn = __webpack_require__(13);
51403
51404var _zhCn2 = _interopRequireDefault(_zhCn);
51405
51406var _util = __webpack_require__(6);
51407
51408var _util2 = __webpack_require__(30);
51409
51410function _interopRequireDefault(obj) {
51411 return obj && obj.__esModule ? obj : { default: obj };
51412}
51413
51414var Popup = _overlay2.default.Popup;
51415
51416/**
51417 * DatePicker.WeekPicker
51418 */
51419
51420var WeekPicker = (_temp = _class = function (_Component) {
51421 (0, _inherits3.default)(WeekPicker, _Component);
51422
51423 function WeekPicker(props, context) {
51424 (0, _classCallCheck3.default)(this, WeekPicker);
51425
51426 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
51427
51428 _initialiseProps.call(_this);
51429
51430 var value = (0, _util2.formatDateValue)(props.value || props.defaultValue, props.format);
51431
51432 _this.state = {
51433 value: value,
51434 visible: props.visible || props.defaultVisible
51435 };
51436 return _this;
51437 }
51438
51439 WeekPicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
51440 var st = {};
51441 if ('value' in props) {
51442 st.value = (0, _util2.formatDateValue)(props.value, props.format);
51443 }
51444
51445 if ('visible' in props) {
51446 st.visible = props.visible;
51447 }
51448
51449 return st;
51450 };
51451
51452 WeekPicker.prototype.renderPreview = function renderPreview(others) {
51453 var _props = this.props,
51454 prefix = _props.prefix,
51455 format = _props.format,
51456 className = _props.className,
51457 renderPreview = _props.renderPreview;
51458 var value = this.state.value;
51459
51460 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
51461
51462 var label = value ? value.format(format) : '';
51463
51464 if (typeof renderPreview === 'function') {
51465 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
51466 }
51467
51468 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
51469 };
51470
51471 WeekPicker.prototype.render = function render() {
51472 var _props2 = this.props,
51473 prefix = _props2.prefix,
51474 rtl = _props2.rtl,
51475 locale = _props2.locale,
51476 label = _props2.label,
51477 state = _props2.state,
51478 format = _props2.format,
51479 defaultVisibleMonth = _props2.defaultVisibleMonth,
51480 onVisibleMonthChange = _props2.onVisibleMonthChange,
51481 disabledDate = _props2.disabledDate,
51482 footerRender = _props2.footerRender,
51483 placeholder = _props2.placeholder,
51484 size = _props2.size,
51485 disabled = _props2.disabled,
51486 hasClear = _props2.hasClear,
51487 popupTriggerType = _props2.popupTriggerType,
51488 popupAlign = _props2.popupAlign,
51489 popupContainer = _props2.popupContainer,
51490 popupStyle = _props2.popupStyle,
51491 popupClassName = _props2.popupClassName,
51492 popupProps = _props2.popupProps,
51493 popupComponent = _props2.popupComponent,
51494 popupContent = _props2.popupContent,
51495 followTrigger = _props2.followTrigger,
51496 className = _props2.className,
51497 inputProps = _props2.inputProps,
51498 monthCellRender = _props2.monthCellRender,
51499 yearCellRender = _props2.yearCellRender,
51500 isPreview = _props2.isPreview,
51501 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'rtl', 'locale', 'label', 'state', 'format', 'defaultVisibleMonth', 'onVisibleMonthChange', 'disabledDate', 'footerRender', 'placeholder', 'size', 'disabled', 'hasClear', 'popupTriggerType', 'popupAlign', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'popupComponent', 'popupContent', 'followTrigger', 'className', 'inputProps', 'monthCellRender', 'yearCellRender', 'isPreview']);
51502 var _state = this.state,
51503 visible = _state.visible,
51504 value = _state.value;
51505
51506 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
51507 size: size,
51508 disabled: disabled,
51509 onChange: this.onDateInputChange,
51510 onKeyDown: this.onKeyDown
51511 });
51512
51513 if (rtl) {
51514 others.dir = 'rtl';
51515 }
51516
51517 if (isPreview) {
51518 return this.renderPreview(_util.obj.pickOthers(others, WeekPicker.PropTypes));
51519 }
51520
51521 var trigger = _react2.default.createElement('div', { className: prefix + 'week-picker-trigger' }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
51522 label: label,
51523 state: state,
51524 value: value ? value.format(format) : '',
51525 role: 'combobox',
51526 'aria-expanded': visible,
51527 readOnly: true,
51528 placeholder: placeholder || locale.weekPlaceholder,
51529 hint: _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker-symbol-calendar-icon' }),
51530 hasClear: value && hasClear,
51531 className: prefix + 'week-picker-input'
51532 })));
51533
51534 var PopupComponent = popupComponent ? popupComponent : Popup;
51535
51536 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(WeekPicker.propTypes, others), {
51537 className: (0, _classnames3.default)(prefix + 'week-picker', className)
51538 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
51539 align: popupAlign
51540 }, popupProps, {
51541 followTrigger: followTrigger,
51542 disabled: disabled,
51543 visible: visible,
51544 onVisibleChange: this.onVisibleChange,
51545 triggerType: popupTriggerType,
51546 container: popupContainer,
51547 style: popupStyle,
51548 className: popupClassName,
51549 trigger: trigger
51550 }), popupContent ? popupContent : _react2.default.createElement('div', { dir: others.dir, className: prefix + 'week-picker-body' }, _react2.default.createElement(_calendar2.default, {
51551 shape: 'panel',
51552 value: value,
51553 format: format,
51554 className: prefix + 'calendar-week',
51555 dateCellRender: this.dateRender,
51556 monthCellRender: monthCellRender,
51557 yearCellRender: yearCellRender,
51558 onSelect: this.onSelectCalendarPanel,
51559 defaultVisibleMonth: defaultVisibleMonth,
51560 onVisibleMonthChange: onVisibleMonthChange,
51561 disabledDate: disabledDate
51562 }), footerRender())));
51563 };
51564
51565 return WeekPicker;
51566}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
51567 prefix: _propTypes2.default.string,
51568 rtl: _propTypes2.default.bool,
51569 /**
51570 * 输入框内置标签
51571 */
51572 label: _propTypes2.default.node,
51573 /**
51574 * 输入框状态
51575 */
51576 state: _propTypes2.default.oneOf(['success', 'loading', 'error']),
51577 /**
51578 * 输入提示
51579 */
51580 placeholder: _propTypes2.default.string,
51581 /**
51582 * 默认展现的月
51583 * @return {MomentObject} 返回包含指定月份的 moment 对象实例
51584 */
51585 defaultVisibleMonth: _propTypes2.default.func,
51586 onVisibleMonthChange: _propTypes2.default.func,
51587 /**
51588 * 日期值(受控)moment 对象
51589 */
51590 value: _util2.checkDateValue,
51591 /**
51592 * 初始日期值,moment 对象
51593 */
51594 defaultValue: _util2.checkDateValue,
51595 /**
51596 * 日期值的格式(用于限定用户输入和展示)
51597 */
51598 format: _propTypes2.default.string,
51599 /**
51600 * 禁用日期函数
51601 * @param {MomentObject} 日期值
51602 * @param {String} view 当前视图类型,year: 年, month: 月, date: 日
51603 * @return {Boolean} 是否禁用
51604 */
51605 disabledDate: _propTypes2.default.func,
51606 /**
51607 * 自定义面板页脚
51608 * @return {Node} 自定义的面板页脚组件
51609 */
51610 footerRender: _propTypes2.default.func,
51611 /**
51612 * 日期值改变时的回调
51613 * @param {MomentObject|String} value 日期值
51614 */
51615 onChange: _propTypes2.default.func,
51616 /**
51617 * 输入框尺寸
51618 */
51619 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
51620 /**
51621 * 是否禁用
51622 */
51623 disabled: _propTypes2.default.bool,
51624 /**
51625 * 是否显示清空按钮
51626 */
51627 hasClear: _propTypes2.default.bool,
51628 /**
51629 * 弹层显示状态
51630 */
51631 visible: _propTypes2.default.bool,
51632 /**
51633 * 弹层默认是否显示
51634 */
51635 defaultVisible: _propTypes2.default.bool,
51636 /**
51637 * 弹层展示状态变化时的回调
51638 * @param {Boolean} visible 弹层是否显示
51639 * @param {String} type 触发弹层显示和隐藏的来源 calendarSelect 表示由日期表盘的选择触发; okBtnClick 表示由确认按钮触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
51640 */
51641 onVisibleChange: _propTypes2.default.func,
51642 /**
51643 * 弹层触发方式
51644 */
51645 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
51646 /**
51647 * 弹层对齐方式,具体含义见 OverLay文档
51648 */
51649 popupAlign: _propTypes2.default.string,
51650 /**
51651 * 弹层容器
51652 * @param {Element} target 目标元素
51653 * @return {Element} 弹层的容器元素
51654 */
51655 popupContainer: _propTypes2.default.any,
51656 /**
51657 * 弹层自定义样式
51658 */
51659 popupStyle: _propTypes2.default.object,
51660 /**
51661 * 弹层自定义样式类
51662 */
51663 popupClassName: _propTypes2.default.string,
51664 /**
51665 * 弹层其他属性
51666 */
51667 popupProps: _propTypes2.default.object,
51668 /**
51669 * 是否跟随滚动
51670 */
51671 followTrigger: _propTypes2.default.bool,
51672 /**
51673 * 输入框其他属性
51674 */
51675 inputProps: _propTypes2.default.object,
51676 /**
51677 * 自定义日期渲染函数
51678 * @param {Object} value 日期值(moment对象)
51679 * @returns {ReactNode}
51680 */
51681 dateCellRender: _propTypes2.default.func,
51682 /**
51683 * 自定义月份渲染函数
51684 * @param {Object} calendarDate 对应 Calendar 返回的自定义日期对象
51685 * @returns {ReactNode}
51686 */
51687 monthCellRender: _propTypes2.default.func,
51688 /**
51689 * 是否为预览态
51690 */
51691 isPreview: _propTypes2.default.bool,
51692 /**
51693 * 预览态模式下渲染的内容
51694 * @param {MomentObject} value 年份
51695 */
51696 renderPreview: _propTypes2.default.func,
51697 yearCellRender: _propTypes2.default.func, // 兼容 0.x yearCellRender
51698 locale: _propTypes2.default.object,
51699 className: _propTypes2.default.string,
51700 name: _propTypes2.default.string,
51701 popupComponent: _propTypes2.default.elementType,
51702 popupContent: _propTypes2.default.node
51703}), _class.defaultProps = {
51704 prefix: 'next-',
51705 rtl: false,
51706 format: 'GGGG-Wo',
51707 size: 'medium',
51708 disabledDate: function disabledDate() {
51709 return false;
51710 },
51711 footerRender: function footerRender() {
51712 return null;
51713 },
51714 hasClear: true,
51715 popupTriggerType: 'click',
51716 popupAlign: 'tl tl',
51717 locale: _zhCn2.default.DatePicker,
51718 defaultVisible: false,
51719 onChange: _util.func.noop,
51720 onVisibleChange: _util.func.noop
51721}, _initialiseProps = function _initialiseProps() {
51722 var _this2 = this;
51723
51724 this.handleChange = function (newValue, prevValue) {
51725 if (!('value' in _this2.props)) {
51726 _this2.setState({
51727 value: newValue
51728 });
51729 }
51730
51731 var newValueOf = newValue ? newValue.valueOf() : null;
51732 var preValueOf = prevValue ? prevValue.valueOf() : null;
51733
51734 if (newValueOf !== preValueOf) {
51735 _this2.props.onChange(newValue);
51736 }
51737 };
51738
51739 this.onDateInputChange = function (value, e, eventType) {
51740 if (eventType === 'clear' || !value) {
51741 e.stopPropagation();
51742 _this2.handleChange(null, _this2.state.value);
51743 }
51744 };
51745
51746 this.onKeyDown = function (e) {
51747 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) {
51748 return;
51749 }
51750
51751 if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) {
51752 return;
51753 }
51754
51755 var date = _this2.state.value;
51756
51757 if (date && date.isValid()) {
51758 var stepUnit = e.altKey ? 'year' : 'month';
51759 switch (e.keyCode) {
51760 case _util.KEYCODE.UP:
51761 date.subtract(1, 'w');
51762 break;
51763 case _util.KEYCODE.DOWN:
51764 date.add(1, 'w');
51765 break;
51766 case _util.KEYCODE.PAGE_UP:
51767 date.subtract(1, stepUnit);
51768 break;
51769 case _util.KEYCODE.PAGE_DOWN:
51770 date.add(1, stepUnit);
51771 break;
51772 }
51773 } else {
51774 date = (0, _moment2.default)();
51775 }
51776
51777 e.preventDefault();
51778
51779 _this2.handleChange(date, _this2.state.value);
51780 };
51781
51782 this.onVisibleChange = function (visible, type) {
51783 if (!('visible' in _this2.props)) {
51784 _this2.setState({
51785 visible: visible
51786 });
51787 }
51788 _this2.props.onVisibleChange(visible, type);
51789 };
51790
51791 this.onSelectCalendarPanel = function (value) {
51792 _this2.handleChange(value, _this2.state.value);
51793 _this2.onVisibleChange(false, 'calendarSelect');
51794 };
51795
51796 this.dateRender = function (value) {
51797 var _props3 = _this2.props,
51798 prefix = _props3.prefix,
51799 dateCellRender = _props3.dateCellRender;
51800
51801 var selectedValue = _this2.state.value;
51802 var content = dateCellRender && typeof dateCellRender === 'function' ? dateCellRender(value) : value.dates();
51803 if (selectedValue && selectedValue.years() === value.years() && selectedValue.weeks() === value.weeks()) {
51804 var _classnames;
51805
51806 var firstDay = _moment2.default.localeData().firstDayOfWeek();
51807 var endDay = firstDay - 1 < 0 ? 6 : firstDay - 1;
51808 return _react2.default.createElement('div', {
51809 className: (0, _classnames3.default)(prefix + 'calendar-week-active-date', (_classnames = {}, _classnames[prefix + 'calendar-week-active-start'] = value.days() === _moment2.default.localeData().firstDayOfWeek(), _classnames[prefix + 'calendar-week-active-end'] = value.days() === endDay, _classnames))
51810 }, _react2.default.createElement('span', null, content));
51811 }
51812
51813 return content;
51814 };
51815}, _temp);
51816WeekPicker.displayName = 'WeekPicker';
51817exports.default = (0, _reactLifecyclesCompat.polyfill)(WeekPicker);
51818module.exports = exports['default'];
51819
51820/***/ }),
51821/* 339 */
51822/***/ (function(module, exports, __webpack_require__) {
51823
51824"use strict";
51825
51826
51827exports.__esModule = true;
51828
51829var _extends3 = __webpack_require__(1);
51830
51831var _extends4 = _interopRequireDefault(_extends3);
51832
51833var _objectWithoutProperties2 = __webpack_require__(8);
51834
51835var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
51836
51837var _classCallCheck2 = __webpack_require__(2);
51838
51839var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
51840
51841var _possibleConstructorReturn2 = __webpack_require__(3);
51842
51843var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
51844
51845var _inherits2 = __webpack_require__(4);
51846
51847var _inherits3 = _interopRequireDefault(_inherits2);
51848
51849var _react = __webpack_require__(0);
51850
51851var _react2 = _interopRequireDefault(_react);
51852
51853var _configProvider = __webpack_require__(9);
51854
51855var _configProvider2 = _interopRequireDefault(_configProvider);
51856
51857var _util = __webpack_require__(6);
51858
51859var _dialog = __webpack_require__(169);
51860
51861var _dialog2 = _interopRequireDefault(_dialog);
51862
51863var _dialogV = __webpack_require__(170);
51864
51865var _dialogV2 = _interopRequireDefault(_dialogV);
51866
51867var _inner = __webpack_require__(93);
51868
51869var _inner2 = _interopRequireDefault(_inner);
51870
51871var _show = __webpack_require__(341);
51872
51873function _interopRequireDefault(obj) {
51874 return obj && obj.__esModule ? obj : { default: obj };
51875}
51876
51877var Dialog = function (_React$Component) {
51878 (0, _inherits3.default)(Dialog, _React$Component);
51879
51880 function Dialog() {
51881 (0, _classCallCheck3.default)(this, Dialog);
51882 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
51883 }
51884
51885 Dialog.prototype.render = function render() {
51886 var _props = this.props,
51887 v2 = _props.v2,
51888 others = (0, _objectWithoutProperties3.default)(_props, ['v2']);
51889
51890 if (v2) {
51891 return _react2.default.createElement(_dialogV2.default, others);
51892 } else {
51893 return _react2.default.createElement(_dialog2.default, others);
51894 }
51895 };
51896
51897 return Dialog;
51898}(_react2.default.Component);
51899
51900Dialog.displayName = 'Dialog';
51901
51902Dialog.Inner = _inner2.default;
51903Dialog.show = function (config) {
51904 var _ConfigProvider$getCo = _configProvider2.default.getContextProps(config, 'Dialog'),
51905 warning = _ConfigProvider$getCo.warning;
51906
51907 if (warning !== false) {
51908 config = processProps(config, _util.log.deprecated);
51909 }
51910 return (0, _show.show)(config);
51911};
51912Dialog.alert = function (config) {
51913 var _ConfigProvider$getCo2 = _configProvider2.default.getContextProps(config, 'Dialog'),
51914 warning = _ConfigProvider$getCo2.warning;
51915
51916 if (warning !== false) {
51917 config = processProps(config, _util.log.deprecated);
51918 }
51919 return (0, _show.alert)(config);
51920};
51921Dialog.confirm = function (config) {
51922 var _ConfigProvider$getCo3 = _configProvider2.default.getContextProps(config, 'Dialog'),
51923 warning = _ConfigProvider$getCo3.warning;
51924
51925 if (warning !== false) {
51926 config = processProps(config, _util.log.deprecated);
51927 }
51928 return (0, _show.confirm)(config);
51929};
51930Dialog.success = function (config) {
51931 return (0, _show.success)(config);
51932};
51933Dialog.error = function (config) {
51934 return (0, _show.error)(config);
51935};
51936Dialog.notice = function (config) {
51937 return (0, _show.notice)(config);
51938};
51939Dialog.warning = function (config) {
51940 return (0, _show.warning)(config);
51941};
51942Dialog.help = function (config) {
51943 return (0, _show.help)(config);
51944};
51945
51946Dialog.withContext = _show.withContext;
51947
51948/* istanbul ignore next */
51949function processProps(props, deprecated) {
51950 if ('closable' in props) {
51951 deprecated('closable', 'closeable', 'Dialog');
51952 var _props2 = props,
51953 closable = _props2.closable,
51954 others = (0, _objectWithoutProperties3.default)(_props2, ['closable']);
51955
51956 props = (0, _extends4.default)({ closeable: closable }, others);
51957 }
51958
51959 if ('v2' in props) {
51960 var nProps = (0, _extends4.default)({}, props);
51961 if ('align' in props) {
51962 delete nProps.align;
51963 deprecated('align', 'centered', '<Dialog v2 />');
51964 }
51965 if ('shouldUpdatePosition' in props) {
51966 delete nProps.shouldUpdatePosition;
51967 _util.log.warning('Warning: [ shouldUpdatePosition ] is deprecated at [ <Dialog v2 /> ]');
51968 }
51969 if ('minMargin' in props) {
51970 // delete nProps.minMargin;
51971 deprecated('minMargin', 'top/bottom', '<Dialog v2 />');
51972 }
51973 if ('isFullScreen' in props) {
51974 props.overFlowScroll = !props.isFullScreen;
51975 delete nProps.isFullScreen;
51976 deprecated('isFullScreen', 'overFlowScroll', '<Dialog v2 />');
51977 }
51978
51979 return nProps;
51980 }
51981
51982 var overlayPropNames = ['target', 'offset', 'beforeOpen', 'onOpen', 'afterOpen', 'beforePosition', 'onPosition', 'cache', 'safeNode', 'wrapperClassName', 'container'];
51983 overlayPropNames.forEach(function (name) {
51984 if (name in props) {
51985 var _extends2;
51986
51987 deprecated(name, 'overlayProps.' + name, 'Dialog');
51988
51989 var _props3 = props,
51990 overlayProps = _props3.overlayProps,
51991 _others = (0, _objectWithoutProperties3.default)(_props3, ['overlayProps']);
51992
51993 var newOverlayProps = (0, _extends4.default)((_extends2 = {}, _extends2[name] = props[name], _extends2), overlayProps || {});
51994 delete _others[name];
51995 props = (0, _extends4.default)({ overlayProps: newOverlayProps }, _others);
51996 }
51997 });
51998
51999 return props;
52000}
52001
52002exports.default = _configProvider2.default.config(Dialog, {
52003 transform: function transform(props, deprecated) {
52004 return processProps(props, deprecated);
52005 }
52006});
52007module.exports = exports['default'];
52008
52009/***/ }),
52010/* 340 */
52011/***/ (function(module, exports, __webpack_require__) {
52012
52013"use strict";
52014
52015
52016exports.__esModule = true;
52017
52018var _util = __webpack_require__(6);
52019
52020/**
52021 * https://github.com/alibaba-fusion/next/issues/3638
52022 * 通过栈的形式:解决弹窗关闭的时候对 document.body 上面的 style 恢复顺序问题
52023 * 问题复现步骤:
52024 * 1. dialog1 进来,把 body.style=overflow:hidden,如果关闭应该恢复 body.style=""
52025 * 2. dialog2 进来,把 body.style=overflow:hidden, 因为此时 body.style是verflow:hidden,所以如果关闭应该恢复 body.style="verflow:hidden"
52026 * 3. dialog1 关闭,恢复 body.style=""。造成问题:dialog2 页面可滚动
52027 * 4. dialog2 关闭,恢复 body.style="verflow:hidden"。造成问题:页面不可滚动
52028 * 解决方案:
52029 * 1. 每个 dialog 修改 body.style 的时候都 push 入栈
52030 * 2. 如果dialog1 先退出,发现 dialog2 存在则不做任何操作,把自己的恢复值给到 dialog2
52031 */
52032
52033var lockcache = [];
52034
52035function lock(container, style) {
52036 var originStyle = container.getAttribute('style');
52037 var uuid = (0, _util.guid)();
52038 lockcache.push({
52039 uuid: uuid,
52040 container: container,
52041 originStyle: originStyle
52042 });
52043 _util.dom.setStyle(container, style);
52044 return uuid;
52045}
52046
52047function unlock(container, uuid) {
52048 var list = lockcache.filter(function (i) {
52049 return i.container === container;
52050 });
52051 var item = list.find(function (i) {
52052 return i.uuid === uuid;
52053 });
52054 if (item) {
52055 var idx = list.indexOf(item);
52056 // 解锁的时候,链表有新增。说明 container style 已经被其他 Dialog 修改过了
52057 if (idx !== -1 && idx < list.length - 1) {
52058 var originStyle = item.originStyle;
52059 // 下一个 dialog 解锁的时候直接替换为
52060 list[idx + 1].originStyle = originStyle;
52061 lockcache.splice(lockcache.indexOf(item), 1);
52062
52063 return;
52064 }
52065
52066 container.setAttribute('style', item.originStyle || '');
52067 lockcache.pop();
52068 }
52069}
52070
52071exports.default = {
52072 lock: lock,
52073 unlock: unlock
52074};
52075module.exports = exports['default'];
52076
52077/***/ }),
52078/* 341 */
52079/***/ (function(module, exports, __webpack_require__) {
52080
52081"use strict";
52082
52083
52084exports.__esModule = true;
52085exports.withContext = exports.confirm = exports.help = exports.warning = exports.notice = exports.error = exports.success = exports.alert = exports.show = exports.ModalInner = undefined;
52086
52087var _objectWithoutProperties2 = __webpack_require__(8);
52088
52089var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
52090
52091var _classCallCheck2 = __webpack_require__(2);
52092
52093var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
52094
52095var _possibleConstructorReturn2 = __webpack_require__(3);
52096
52097var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
52098
52099var _inherits2 = __webpack_require__(4);
52100
52101var _inherits3 = _interopRequireDefault(_inherits2);
52102
52103var _extends2 = __webpack_require__(1);
52104
52105var _extends3 = _interopRequireDefault(_extends2);
52106
52107var _class, _temp2;
52108
52109var _react = __webpack_require__(0);
52110
52111var _react2 = _interopRequireDefault(_react);
52112
52113var _reactDom = __webpack_require__(12);
52114
52115var _reactDom2 = _interopRequireDefault(_reactDom);
52116
52117var _propTypes = __webpack_require__(5);
52118
52119var _propTypes2 = _interopRequireDefault(_propTypes);
52120
52121var _classnames = __webpack_require__(7);
52122
52123var _classnames2 = _interopRequireDefault(_classnames);
52124
52125var _configProvider = __webpack_require__(9);
52126
52127var _configProvider2 = _interopRequireDefault(_configProvider);
52128
52129var _message = __webpack_require__(94);
52130
52131var _message2 = _interopRequireDefault(_message);
52132
52133var _zhCn = __webpack_require__(13);
52134
52135var _zhCn2 = _interopRequireDefault(_zhCn);
52136
52137var _dialog = __webpack_require__(169);
52138
52139var _dialog2 = _interopRequireDefault(_dialog);
52140
52141var _dialogV = __webpack_require__(170);
52142
52143var _dialogV2 = _interopRequireDefault(_dialogV);
52144
52145function _interopRequireDefault(obj) {
52146 return obj && obj.__esModule ? obj : { default: obj };
52147}
52148
52149var Dialog = _configProvider2.default.config(_dialog2.default);
52150var Dialog2 = _configProvider2.default.config(_dialogV2.default);
52151
52152var noop = function noop() {};
52153var MESSAGE_TYPE = {
52154 alert: 'warning', // deprecated in 2.x
52155 confirm: 'help',
52156
52157 success: 'success',
52158 error: 'error',
52159 warning: 'warning',
52160 notice: 'notice',
52161 help: 'help'
52162};
52163
52164var ModalInner = exports.ModalInner = function ModalInner(_ref) {
52165 var type = _ref.type,
52166 _ref$messageProps = _ref.messageProps,
52167 messageProps = _ref$messageProps === undefined ? {} : _ref$messageProps,
52168 title = _ref.title,
52169 rtl = _ref.rtl,
52170 _ref$prefix = _ref.prefix,
52171 prefix = _ref$prefix === undefined ? 'next-' : _ref$prefix,
52172 content = _ref.content;
52173
52174 return _react2.default.createElement(_message2.default, (0, _extends3.default)({
52175 size: 'large',
52176 shape: 'addon',
52177 type: MESSAGE_TYPE[type]
52178 }, messageProps, {
52179 title: title,
52180 rtl: rtl,
52181 className: (0, _classnames2.default)(prefix + 'dialog-message', messageProps.className)
52182 }), content);
52183};
52184
52185var Modal = (_temp2 = _class = function (_Component) {
52186 (0, _inherits3.default)(Modal, _Component);
52187
52188 function Modal() {
52189 var _temp, _this, _ret;
52190
52191 (0, _classCallCheck3.default)(this, Modal);
52192
52193 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
52194 args[_key] = arguments[_key];
52195 }
52196
52197 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
52198 visible: true,
52199 loading: false
52200 }, _this.close = function () {
52201 _this.setState({
52202 visible: false
52203 });
52204 }, _this.loading = function (loading) {
52205 _this.setState({
52206 loading: loading
52207 });
52208 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
52209 }
52210
52211 Modal.prototype.wrapper = function wrapper(fn, callback) {
52212 var _this2 = this;
52213
52214 return function () {
52215 var res = fn.apply(undefined, arguments);
52216 if (res && res.then) {
52217 _this2.loading(true);
52218
52219 res.then(function (result) {
52220 _this2.loading(false);
52221
52222 if (result !== false) {
52223 return callback();
52224 }
52225 }).catch(function (e) {
52226 _this2.loading(false);
52227 throw e;
52228 });
52229 } else if (res !== false) {
52230 return callback();
52231 }
52232 };
52233 };
52234
52235 Modal.prototype.render = function render() {
52236 var _props = this.props,
52237 prefix = _props.prefix,
52238 type = _props.type,
52239 title = _props.title,
52240 content = _props.content,
52241 messageProps = _props.messageProps,
52242 footerActions = _props.footerActions,
52243 onOk = _props.onOk,
52244 onCancel = _props.onCancel,
52245 onClose = _props.onClose,
52246 okProps = _props.okProps,
52247 needWrapper = _props.needWrapper,
52248 rtl = _props.rtl,
52249 className = _props.className,
52250 v2 = _props.v2,
52251 _props$width = _props.width,
52252 width = _props$width === undefined ? 420 : _props$width,
52253 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'type', 'title', 'content', 'messageProps', 'footerActions', 'onOk', 'onCancel', 'onClose', 'okProps', 'needWrapper', 'rtl', 'className', 'v2', 'width']);
52254
52255 var newTitle = needWrapper && type ? null : title;
52256
52257 var newContent = needWrapper && type ? _react2.default.createElement(ModalInner, {
52258 type: type,
52259 messageProps: messageProps,
52260 title: title,
52261 rtl: rtl,
52262 prefix: prefix,
52263 content: content
52264 }) : content;
52265
52266 var newFooterActions = footerActions || (type === 'confirm' ? ['ok', 'cancel'] : ['alert', 'success', 'error', 'notice', 'warning', 'help'].indexOf(type) > -1 ? ['ok'] : undefined);
52267 var newOnOk = this.wrapper(onOk, this.close);
52268 var newOnCancel = this.wrapper(onCancel, this.close);
52269 var newOnClose = this.wrapper(onClose, this.close);
52270
52271 var _state = this.state,
52272 visible = _state.visible,
52273 loading = _state.loading;
52274 // 不能直接改,这里修改相当于改了全局 okProps
52275 // okProps.loading = loading;
52276
52277 var newOkProps = (0, _extends3.default)({}, okProps);
52278 if (!('loading' in okProps)) {
52279 newOkProps.loading = loading;
52280 }
52281
52282 var classNames = (0, _classnames2.default)(prefix + 'dialog-quick', className);
52283
52284 var Tag = v2 ? Dialog2 : Dialog;
52285
52286 return _react2.default.createElement(Tag, (0, _extends3.default)({
52287 prefix: prefix,
52288 role: 'alertdialog'
52289 }, others, {
52290 visible: visible,
52291 title: newTitle,
52292 rtl: rtl,
52293 footerActions: newFooterActions,
52294 onOk: this.state.loading ? noop : newOnOk,
52295 onCancel: newOnCancel,
52296 onClose: newOnClose,
52297 okProps: newOkProps,
52298 className: classNames,
52299 width: v2 ? width : undefined
52300 }), newContent);
52301 };
52302
52303 return Modal;
52304}(_react.Component), _class.propTypes = {
52305 prefix: _propTypes2.default.string,
52306 pure: _propTypes2.default.bool,
52307 rtl: _propTypes2.default.bool,
52308 type: _propTypes2.default.oneOf(['alert', 'confirm', 'success', 'error', 'notice', 'warning', 'help']),
52309 title: _propTypes2.default.node,
52310 content: _propTypes2.default.node,
52311 messageProps: _propTypes2.default.object,
52312 footerActions: _propTypes2.default.array,
52313 /**
52314 * Callback function triggered when Ok button is clicked
52315 * @param {Object} event click event object
52316 * @returns {Promise} Optionally handles a Promise return object
52317 */
52318 onOk: _propTypes2.default.func,
52319 /**
52320 * Callback function triggered when Cancel button is clicked
52321 * @param {Object} event click event object
52322 * @returns {Promise} Optionally handles a Promise return object
52323 */
52324 onCancel: _propTypes2.default.func,
52325 /**
52326 * Callback function triggered when Close button is clicked
52327 * @param {Object} event click event object
52328 * @returns {Promise} Optionally handles a Promise return object
52329 */
52330 onClose: _propTypes2.default.func,
52331 okProps: _propTypes2.default.object,
52332 locale: _propTypes2.default.object,
52333 needWrapper: _propTypes2.default.bool,
52334 className: _propTypes2.default.string
52335}, _class.defaultProps = {
52336 prefix: 'next-',
52337 pure: false,
52338 messageProps: {},
52339 onOk: noop,
52340 onCancel: noop,
52341 onClose: noop,
52342 okProps: {},
52343 locale: _zhCn2.default.Dialog,
52344 needWrapper: true
52345}, _temp2);
52346Modal.displayName = 'Modal';
52347
52348var ConfigModal = _configProvider2.default.config(Modal, { componentName: 'Dialog' });
52349
52350/**
52351 * 创建对话框
52352 * @exportName show
52353 * @param {Object} config 配置项
52354 * @returns {Object} 包含有 hide 方法,可用来关闭对话框
52355 */
52356var _show = function _show() {
52357 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52358
52359 var container = document.createElement('div');
52360 var unmount = function unmount() {
52361 if (config.afterClose) {
52362 config.afterClose();
52363 }
52364 _reactDom2.default.unmountComponentAtNode(container);
52365 container.parentNode.removeChild(container);
52366 };
52367
52368 document.body.appendChild(container);
52369 var newContext = config.contextConfig;
52370 if (!newContext) newContext = _configProvider2.default.getContext();
52371
52372 var instance = void 0,
52373 myRef = void 0;
52374
52375 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, newContext, _react2.default.createElement(ConfigModal, (0, _extends3.default)({}, config, {
52376 afterClose: unmount,
52377 ref: function ref(_ref2) {
52378 myRef = _ref2;
52379 }
52380 }))), container, function () {
52381 instance = myRef;
52382 });
52383 return {
52384 hide: function hide() {
52385 var inc = instance && instance.getInstance();
52386 inc && inc.close();
52387 }
52388 };
52389};
52390
52391exports.show = _show;
52392var methodFactory = function methodFactory(type) {
52393 return function () {
52394 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52395
52396 config.type = type;
52397 return _show(config);
52398 };
52399};
52400
52401/**
52402 * 创建警示对话框
52403 * @exportName alert
52404 * @param {Object} config 配置项
52405 * @returns {Object} 包含有 hide 方法,可用来关闭对话框
52406 */
52407var _alert = methodFactory('alert');
52408
52409exports.alert = _alert;
52410var _success = methodFactory('success');
52411exports.success = _success;
52412var _error = methodFactory('error');
52413exports.error = _error;
52414var _notice = methodFactory('notice');
52415exports.notice = _notice;
52416var _warning = methodFactory('warning');
52417exports.warning = _warning;
52418var _help = methodFactory('help');
52419
52420/**
52421 * 创建确认对话框
52422 * @exportName confirm
52423 * @param {Object} config 配置项
52424 * @returns {Object} 包含有 hide 方法,可用来关闭对话框
52425 */
52426exports.help = _help;
52427var _confirm = methodFactory('confirm');
52428
52429exports.confirm = _confirm;
52430var withContext = exports.withContext = function withContext(WrappedComponent) {
52431 var HOC = function HOC(props) {
52432 return _react2.default.createElement(_configProvider2.default.Consumer, null, function (contextConfig) {
52433 return _react2.default.createElement(WrappedComponent, (0, _extends3.default)({}, props, {
52434 contextDialog: {
52435 show: function show() {
52436 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52437 return _show((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52438 },
52439 alert: function alert() {
52440 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52441 return _alert((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52442 },
52443 confirm: function confirm() {
52444 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52445 return _confirm((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52446 },
52447 success: function success() {
52448 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52449 return _success((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52450 },
52451 error: function error() {
52452 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52453 return _error((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52454 },
52455 warning: function warning() {
52456 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52457 return _warning((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52458 },
52459 notice: function notice() {
52460 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52461 return _notice((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52462 },
52463 help: function help() {
52464 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52465 return _help((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52466 }
52467 }
52468 }));
52469 });
52470 };
52471 return HOC;
52472};
52473
52474/***/ }),
52475/* 342 */
52476/***/ (function(module, exports, __webpack_require__) {
52477
52478"use strict";
52479
52480
52481exports.__esModule = true;
52482exports.withContext = undefined;
52483
52484var _extends2 = __webpack_require__(1);
52485
52486var _extends3 = _interopRequireDefault(_extends2);
52487
52488var _objectWithoutProperties2 = __webpack_require__(8);
52489
52490var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
52491
52492var _classCallCheck2 = __webpack_require__(2);
52493
52494var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
52495
52496var _possibleConstructorReturn2 = __webpack_require__(3);
52497
52498var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
52499
52500var _inherits2 = __webpack_require__(4);
52501
52502var _inherits3 = _interopRequireDefault(_inherits2);
52503
52504var _class, _temp2;
52505
52506var _react = __webpack_require__(0);
52507
52508var _react2 = _interopRequireDefault(_react);
52509
52510var _reactDom = __webpack_require__(12);
52511
52512var _reactDom2 = _interopRequireDefault(_reactDom);
52513
52514var _propTypes = __webpack_require__(5);
52515
52516var _propTypes2 = _interopRequireDefault(_propTypes);
52517
52518var _overlay = __webpack_require__(15);
52519
52520var _overlay2 = _interopRequireDefault(_overlay);
52521
52522var _configProvider = __webpack_require__(9);
52523
52524var _configProvider2 = _interopRequireDefault(_configProvider);
52525
52526var _util = __webpack_require__(6);
52527
52528var _message = __webpack_require__(95);
52529
52530var _message2 = _interopRequireDefault(_message);
52531
52532function _interopRequireDefault(obj) {
52533 return obj && obj.__esModule ? obj : { default: obj };
52534}
52535
52536var config = _configProvider2.default.config;
52537
52538var instance = void 0;
52539var timeouts = {};
52540
52541var Mask = (_temp2 = _class = function (_React$Component) {
52542 (0, _inherits3.default)(Mask, _React$Component);
52543
52544 function Mask() {
52545 var _temp, _this, _ret;
52546
52547 (0, _classCallCheck3.default)(this, Mask);
52548
52549 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
52550 args[_key] = arguments[_key];
52551 }
52552
52553 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
52554 visible: true
52555 }, _this.handleClose = function () {
52556 var silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
52557
52558 _this.setState({
52559 visible: false
52560 });
52561
52562 if (!silent) {
52563 _this.props.onClose && _this.props.onClose();
52564 }
52565 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
52566 }
52567
52568 Mask.prototype.componentWillUnmount = function componentWillUnmount() {
52569 var timeoutId = this.props.timeoutId;
52570
52571 if (timeoutId in timeouts) {
52572 var timeout = timeouts[timeoutId];
52573 clearTimeout(timeout);
52574 delete timeouts[timeoutId];
52575 }
52576 };
52577
52578 Mask.prototype.render = function render() {
52579 /* eslint-disable no-unused-vars */
52580 var _props = this.props,
52581 prefix = _props.prefix,
52582 type = _props.type,
52583 title = _props.title,
52584 content = _props.content,
52585 align = _props.align,
52586 offset = _props.offset,
52587 hasMask = _props.hasMask,
52588 afterClose = _props.afterClose,
52589 animation = _props.animation,
52590 overlayProps = _props.overlayProps,
52591 timeoutId = _props.timeoutId,
52592 className = _props.className,
52593 style = _props.style,
52594 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'type', 'title', 'content', 'align', 'offset', 'hasMask', 'afterClose', 'animation', 'overlayProps', 'timeoutId', 'className', 'style']);
52595 /* eslint-enable */
52596
52597 var visible = this.state.visible;
52598
52599 return _react2.default.createElement(_overlay2.default, (0, _extends3.default)({}, overlayProps, {
52600 prefix: prefix,
52601 animation: animation,
52602 visible: visible,
52603 align: align,
52604 offset: offset,
52605 hasMask: hasMask,
52606 afterClose: afterClose
52607 }), _react2.default.createElement(_message2.default, (0, _extends3.default)({}, others, {
52608 prefix: prefix,
52609 visible: true,
52610 type: type,
52611 shape: 'toast',
52612 title: title,
52613 style: style,
52614 className: prefix + 'message-wrapper ' + className,
52615 onClose: this.handleClose
52616 }), content));
52617 };
52618
52619 return Mask;
52620}(_react2.default.Component), _class.contextTypes = {
52621 prefix: _propTypes2.default.string
52622}, _class.propTypes = {
52623 prefix: _propTypes2.default.string,
52624 type: _propTypes2.default.string,
52625 title: _propTypes2.default.node,
52626 content: _propTypes2.default.node,
52627 align: _propTypes2.default.string,
52628 offset: _propTypes2.default.array,
52629 hasMask: _propTypes2.default.bool,
52630 afterClose: _propTypes2.default.func,
52631 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
52632 overlayProps: _propTypes2.default.object,
52633 onClose: _propTypes2.default.func,
52634 timeoutId: _propTypes2.default.string,
52635 style: _propTypes2.default.object,
52636 className: _propTypes2.default.string
52637}, _class.defaultProps = {
52638 prefix: 'next-',
52639 align: 'tc tc',
52640 offset: [0, 30],
52641 hasMask: false,
52642 animation: {
52643 in: 'pulse',
52644 out: 'zoomOut'
52645 },
52646 style: {},
52647 className: ''
52648}, _temp2);
52649Mask.displayName = 'Mask';
52650
52651var NewMask = config(Mask);
52652
52653var create = function create(props) {
52654 /* eslint-disable no-unused-vars */
52655 var duration = props.duration,
52656 afterClose = props.afterClose,
52657 contextConfig = props.contextConfig,
52658 others = (0, _objectWithoutProperties3.default)(props, ['duration', 'afterClose', 'contextConfig']);
52659 /* eslint-enable no-unused-vars */
52660
52661 var div = document.createElement('div');
52662 document.body.appendChild(div);
52663 var closeChain = function closeChain() {
52664 _reactDom2.default.unmountComponentAtNode(div);
52665 document.body.removeChild(div);
52666 afterClose && afterClose();
52667 };
52668
52669 var newContext = contextConfig;
52670 if (!newContext) newContext = _configProvider2.default.getContext();
52671
52672 var mask = void 0,
52673 myRef = void 0,
52674 destroyed = false;
52675 var destroy = function destroy() {
52676 var inc = mask && mask.getInstance();
52677 inc && inc.handleClose(true);
52678 destroyed = true;
52679 };
52680
52681 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, newContext, _react2.default.createElement(NewMask, (0, _extends3.default)({
52682 afterClose: closeChain
52683 }, others, {
52684 ref: function ref(_ref) {
52685 myRef = _ref;
52686 }
52687 }))), div, function () {
52688 mask = myRef;
52689 if (mask && destroyed) {
52690 destroy();
52691 }
52692 });
52693
52694 return {
52695 component: mask,
52696 destroy: destroy
52697 };
52698};
52699
52700function handleConfig(config, type) {
52701 var newConfig = {};
52702
52703 if (typeof config === 'string' || _react2.default.isValidElement(config)) {
52704 newConfig.title = config;
52705 } else if (isObject(config)) {
52706 newConfig = (0, _extends3.default)({}, config);
52707 }
52708 if (typeof newConfig.duration !== 'number') {
52709 newConfig.duration = 3000;
52710 }
52711 if (type) {
52712 newConfig.type = type;
52713 }
52714
52715 return newConfig;
52716}
52717
52718function isObject(obj) {
52719 return {}.toString.call(obj) === '[object Object]';
52720}
52721
52722function open(config, type) {
52723 close();
52724 config = handleConfig(config, type);
52725 var timeoutId = (0, _util.guid)();
52726 instance = create((0, _extends3.default)({}, config, { timeoutId: timeoutId }));
52727
52728 if (config.duration > 0) {
52729 var timeout = setTimeout(close, config.duration);
52730 timeouts[timeoutId] = timeout;
52731 }
52732}
52733
52734function close() {
52735 if (instance) {
52736 instance.destroy();
52737 instance = null;
52738 }
52739}
52740
52741/**
52742 * 创建提示弹层
52743 * @exportName show
52744 * @param {Object} props 属性对象
52745 */
52746function _show(config) {
52747 open(config);
52748}
52749
52750/**
52751 * 关闭提示弹层
52752 * @exportName hide
52753 */
52754function hide() {
52755 close();
52756}
52757
52758/**
52759 * 创建成功提示弹层
52760 * @exportName success
52761 * @param {Object} props 属性对象
52762 */
52763function _success(config) {
52764 open(config, 'success');
52765}
52766
52767/**
52768 * 创建警告提示弹层
52769 * @exportName warning
52770 * @param {Object} props 属性对象
52771 */
52772function _warning(config) {
52773 open(config, 'warning');
52774}
52775
52776/**
52777 * 创建错误提示弹层
52778 * @exportName error
52779 * @param {Object} props 属性对象
52780 */
52781function _error(config) {
52782 open(config, 'error');
52783}
52784
52785/**
52786 * 创建帮助提示弹层
52787 * @exportName help
52788 * @param {Object} props 属性对象
52789 */
52790function _help(config) {
52791 open(config, 'help');
52792}
52793
52794/**
52795 * 创建加载中提示弹层
52796 * @exportName loading
52797 * @param {Object} props 属性对象
52798 */
52799function _loading(config) {
52800 open(config, 'loading');
52801}
52802
52803/**
52804 * 创建通知提示弹层
52805 * @exportName notice
52806 * @param {Object} props 属性对象
52807 */
52808function _notice(config) {
52809 open(config, 'notice');
52810}
52811
52812exports.default = {
52813 show: _show,
52814 hide: hide,
52815 success: _success,
52816 warning: _warning,
52817 error: _error,
52818 help: _help,
52819 loading: _loading,
52820 notice: _notice
52821};
52822var withContext = exports.withContext = function withContext(WrappedComponent) {
52823 var HOC = function HOC(props) {
52824 return _react2.default.createElement(_configProvider2.default.Consumer, null, function (contextConfig) {
52825 return _react2.default.createElement(WrappedComponent, (0, _extends3.default)({}, props, {
52826 contextMessage: {
52827 show: function show() {
52828 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52829 return _show((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52830 },
52831 hide: hide,
52832 success: function success() {
52833 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52834 return _success((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52835 },
52836 warning: function warning() {
52837 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52838 return _warning((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52839 },
52840 error: function error() {
52841 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52842 return _error((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52843 },
52844 help: function help() {
52845 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52846 return _help((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52847 },
52848 loading: function loading() {
52849 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52850 return _loading((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52851 },
52852 notice: function notice() {
52853 var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52854 return _notice((0, _extends3.default)({}, config, { contextConfig: contextConfig }));
52855 }
52856 }
52857 }));
52858 });
52859 };
52860 return HOC;
52861};
52862
52863/***/ }),
52864/* 343 */
52865/***/ (function(module, exports, __webpack_require__) {
52866
52867"use strict";
52868
52869
52870exports.__esModule = true;
52871
52872var _extends2 = __webpack_require__(1);
52873
52874var _extends3 = _interopRequireDefault(_extends2);
52875
52876var _objectWithoutProperties2 = __webpack_require__(8);
52877
52878var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
52879
52880var _react = __webpack_require__(0);
52881
52882var _react2 = _interopRequireDefault(_react);
52883
52884var _reactDom = __webpack_require__(12);
52885
52886var _reactDom2 = _interopRequireDefault(_reactDom);
52887
52888var _configProvider = __webpack_require__(9);
52889
52890var _configProvider2 = _interopRequireDefault(_configProvider);
52891
52892var _animate = __webpack_require__(20);
52893
52894var _animate2 = _interopRequireDefault(_animate);
52895
52896var _message = __webpack_require__(95);
52897
52898var _message2 = _interopRequireDefault(_message);
52899
52900var _util = __webpack_require__(6);
52901
52902function _interopRequireDefault(obj) {
52903 return obj && obj.__esModule ? obj : { default: obj };
52904}
52905
52906var _config = {
52907 top: 8,
52908 maxCount: 0,
52909 duration: 3000
52910};
52911
52912var MessageWrapper = function MessageWrapper(props) {
52913 // eslint-disable-next-line
52914 var _props$prefix = props.prefix,
52915 prefix = _props$prefix === undefined ? 'next-' : _props$prefix,
52916 _props$dataSource = props.dataSource,
52917 dataSource = _props$dataSource === undefined ? [] : _props$dataSource;
52918
52919 var _useState = (0, _react.useState)(),
52920 forceUpdate = _useState[1];
52921
52922 dataSource.forEach(function (i) {
52923 if (!i.timer) {
52924 i.timer = setTimeout(function () {
52925 var idx = dataSource.indexOf(i);
52926 if (idx > -1) {
52927 var item = dataSource[idx];
52928 typeof item.onClose === 'function' && item.onClose();
52929 dataSource.splice(idx, 1);
52930 forceUpdate({});
52931 }
52932 }, i.duration);
52933 }
52934 });
52935
52936 return _react2.default.createElement('div', { className: prefix + 'message-wrapper-v2', style: { top: _config.top } }, _react2.default.createElement(_animate2.default, {
52937 animationAppear: true,
52938 animation: {
52939 appear: 'pulse',
52940 enter: 'pulse',
52941 leave: prefix + 'message-fade-leave'
52942 },
52943 singleMode: false
52944 }, dataSource.map(function (i) {
52945 var key = i.key,
52946 className = i.className,
52947 type = i.type,
52948 title = i.title,
52949 content = i.content,
52950 style = i.style,
52951 others = (0, _objectWithoutProperties3.default)(i, ['key', 'className', 'type', 'title', 'content', 'style']);
52952
52953 return _react2.default.createElement('div', { className: prefix + 'message-list', key: key }, _react2.default.createElement(_message2.default, (0, _extends3.default)({}, others, {
52954 className: className,
52955 prefix: prefix,
52956 visible: true,
52957 type: type,
52958 shape: 'toast',
52959 title: title,
52960 style: style
52961 }), content));
52962 })));
52963};
52964
52965var ConfigedMessages = _configProvider2.default.config(MessageWrapper);
52966
52967var messageRootNode = void 0;
52968var messageList = [];
52969
52970var createMessage = function createMessage(props) {
52971 var _props$key = props.key,
52972 key = _props$key === undefined ? (0, _util.guid)('message-') : _props$key,
52973 others = (0, _objectWithoutProperties3.default)(props, ['key']);
52974
52975 if (!messageRootNode) {
52976 messageRootNode = document.createElement('div');
52977 document.body.appendChild(messageRootNode);
52978 }
52979
52980 var maxCount = _config.maxCount,
52981 duration = _config.duration;
52982
52983 var item = (0, _extends3.default)({
52984 key: key,
52985 duration: duration
52986 }, others);
52987
52988 messageList.push(item);
52989
52990 if (maxCount && messageList.length > maxCount) {
52991 messageList.shift();
52992 }
52993
52994 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedMessages, { dataSource: messageList })), messageRootNode);
52995
52996 return {
52997 key: key,
52998 close: function close() {
52999 if (item.timer) {
53000 clearTimeout(item.timer);
53001 }
53002 var idx = messageList.indexOf(item);
53003 if (idx > -1) {
53004 typeof item.onClose === 'function' && item.onClose();
53005 messageList.splice(idx, 1);
53006
53007 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedMessages, { dataSource: messageList })), messageRootNode);
53008 }
53009 }
53010 };
53011};
53012
53013function close(key) {
53014 if (key) {
53015 var index = messageList.findIndex(function (item) {
53016 return item.key === key;
53017 });
53018 messageList.splice(index, 1);
53019 } else {
53020 messageList = [];
53021 }
53022
53023 if (messageRootNode) {
53024 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedMessages, { dataSource: messageList })), messageRootNode);
53025 }
53026}
53027
53028function handleConfig(config, type) {
53029 var newConfig = {};
53030
53031 if (typeof config === 'string' || _react2.default.isValidElement(config)) {
53032 newConfig.title = config;
53033 } else if (_util.obj.typeOf(config) === 'Object') {
53034 newConfig = (0, _extends3.default)({}, config);
53035 }
53036
53037 if (type) {
53038 newConfig.type = type;
53039 }
53040
53041 return newConfig;
53042}
53043
53044function open(type) {
53045 return function (config) {
53046 config = handleConfig(config, type);
53047 return createMessage(config);
53048 };
53049}
53050
53051function destory() {
53052 if (!messageRootNode) return;
53053 if (messageRootNode) {
53054 _reactDom2.default.unmountComponentAtNode(messageRootNode);
53055 messageRootNode.parentNode.removeChild(messageRootNode);
53056 messageRootNode = null;
53057 }
53058}
53059
53060exports.default = {
53061 open: open(),
53062 success: open('success'),
53063 warning: open('warning'),
53064 error: open('error'),
53065 help: open('help'),
53066 loading: open('loading'),
53067 notice: open('notice'),
53068 close: close,
53069 destory: destory,
53070 config: function config() {
53071 if (!_react.useState) {
53072 _util.log.warning('need react version > 16.8.0');
53073 return;
53074 }
53075
53076 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
53077 args[_key] = arguments[_key];
53078 }
53079
53080 return _extends3.default.apply(undefined, [_config].concat(args));
53081 }
53082};
53083module.exports = exports['default'];
53084
53085/***/ }),
53086/* 344 */
53087/***/ (function(module, exports, __webpack_require__) {
53088
53089"use strict";
53090
53091
53092exports.__esModule = true;
53093
53094var _configProvider = __webpack_require__(9);
53095
53096var _configProvider2 = _interopRequireDefault(_configProvider);
53097
53098var _drawer = __webpack_require__(345);
53099
53100var _drawer2 = _interopRequireDefault(_drawer);
53101
53102var _inner = __webpack_require__(171);
53103
53104var _inner2 = _interopRequireDefault(_inner);
53105
53106function _interopRequireDefault(obj) {
53107 return obj && obj.__esModule ? obj : { default: obj };
53108}
53109
53110_drawer2.default.Inner = _inner2.default;
53111exports.default = _configProvider2.default.config(_drawer2.default);
53112module.exports = exports['default'];
53113
53114/***/ }),
53115/* 345 */
53116/***/ (function(module, exports, __webpack_require__) {
53117
53118"use strict";
53119
53120
53121exports.__esModule = true;
53122exports.default = undefined;
53123
53124var _objectWithoutProperties2 = __webpack_require__(8);
53125
53126var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
53127
53128var _extends2 = __webpack_require__(1);
53129
53130var _extends3 = _interopRequireDefault(_extends2);
53131
53132var _classCallCheck2 = __webpack_require__(2);
53133
53134var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
53135
53136var _possibleConstructorReturn2 = __webpack_require__(3);
53137
53138var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
53139
53140var _inherits2 = __webpack_require__(4);
53141
53142var _inherits3 = _interopRequireDefault(_inherits2);
53143
53144var _class, _temp2;
53145
53146var _propTypes = __webpack_require__(5);
53147
53148var _propTypes2 = _interopRequireDefault(_propTypes);
53149
53150var _react = __webpack_require__(0);
53151
53152var _react2 = _interopRequireDefault(_react);
53153
53154var _overlay = __webpack_require__(15);
53155
53156var _overlay2 = _interopRequireDefault(_overlay);
53157
53158var _inner = __webpack_require__(171);
53159
53160var _inner2 = _interopRequireDefault(_inner);
53161
53162var _zhCn = __webpack_require__(13);
53163
53164var _zhCn2 = _interopRequireDefault(_zhCn);
53165
53166var _util = __webpack_require__(6);
53167
53168function _interopRequireDefault(obj) {
53169 return obj && obj.__esModule ? obj : { default: obj };
53170}
53171
53172var noop = function noop() {};
53173var Popup = _overlay2.default.Popup;
53174var pickOthers = _util.obj.pickOthers;
53175
53176/**
53177 * Drawer
53178 * @description 继承 Overlay.Popup 的 API,除非特别说明
53179 * */
53180
53181var Drawer = (_temp2 = _class = function (_Component) {
53182 (0, _inherits3.default)(Drawer, _Component);
53183
53184 function Drawer() {
53185 var _temp, _this, _ret;
53186
53187 (0, _classCallCheck3.default)(this, Drawer);
53188
53189 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
53190 args[_key] = arguments[_key];
53191 }
53192
53193 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.getAlign = function (placement) {
53194 var align = void 0;
53195 switch (placement) {
53196 case 'top':
53197 align = 'tl tl';
53198 break;
53199 case 'bottom':
53200 align = 'bl bl';
53201 break;
53202 case 'left':
53203 align = 'tl tl';
53204 break;
53205 case 'right':
53206 default:
53207 align = 'tr tr';
53208 break;
53209 }
53210
53211 return align;
53212 }, _this.getAnimation = function (placement) {
53213 if ('animation' in _this.props) {
53214 return _this.props.animation;
53215 }
53216
53217 var animation = void 0;
53218 switch (placement) {
53219 case 'top':
53220 animation = {
53221 in: 'slideInDown',
53222 out: 'slideOutUp'
53223 };
53224 break;
53225 case 'bottom':
53226 animation = {
53227 in: 'slideInUp',
53228 out: 'slideOutDown'
53229 };
53230 break;
53231 case 'left':
53232 animation = {
53233 in: 'slideInLeft',
53234 out: 'slideOutLeft'
53235 };
53236 break;
53237 case 'right':
53238 default:
53239 animation = {
53240 in: 'slideInRight',
53241 out: 'slideOutRight'
53242 };
53243 break;
53244 }
53245
53246 return animation;
53247 }, _this.getOverlayRef = function (ref) {
53248 _this.overlay = ref;
53249 }, _this.mapcloseableToConfig = function (closeable) {
53250 return ['esc', 'close', 'mask'].reduce(function (ret, option) {
53251 var key = option.charAt(0).toUpperCase() + option.substr(1);
53252 var value = typeof closeable === 'boolean' ? closeable : closeable.split(',').indexOf(option) > -1;
53253
53254 if (option === 'esc' || option === 'mask') {
53255 ret['canCloseBy' + key] = value;
53256 } else {
53257 ret['canCloseBy' + key + 'Click'] = value;
53258 }
53259
53260 return ret;
53261 }, {});
53262 }, _this.handleVisibleChange = function (visible, reason, e) {
53263 var _this$props = _this.props,
53264 onClose = _this$props.onClose,
53265 onVisibleChange = _this$props.onVisibleChange;
53266
53267 if (visible === false) {
53268 onClose && onClose(reason, e);
53269 }
53270
53271 onVisibleChange && onVisibleChange(visible, reason, e);
53272 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
53273 }
53274
53275 Drawer.prototype.renderInner = function renderInner(closeable) {
53276 var _props = this.props,
53277 prefix = _props.prefix,
53278 className = _props.className,
53279 children = _props.children,
53280 title = _props.title,
53281 onClose = _props.onClose,
53282 locale = _props.locale,
53283 headerStyle = _props.headerStyle,
53284 bodyStyle = _props.bodyStyle,
53285 placement = _props.placement,
53286 rtl = _props.rtl;
53287
53288 var others = pickOthers(Object.keys(Drawer.propTypes), this.props);
53289
53290 return _react2.default.createElement(_inner2.default, (0, _extends3.default)({
53291 prefix: prefix,
53292 title: title,
53293 className: className,
53294 locale: locale,
53295 closeable: closeable,
53296 rtl: rtl,
53297 headerStyle: headerStyle,
53298 bodyStyle: bodyStyle,
53299 placement: placement,
53300 onClose: onClose.bind(this, 'closeClick')
53301 }, others), children);
53302 };
53303
53304 Drawer.prototype.render = function render() {
53305 var _props2 = this.props,
53306 prefix = _props2.prefix,
53307 style = _props2.style,
53308 width = _props2.width,
53309 height = _props2.height,
53310 trigger = _props2.trigger,
53311 triggerType = _props2.triggerType,
53312 animation = _props2.animation,
53313 hasMask = _props2.hasMask,
53314 visible = _props2.visible,
53315 placement = _props2.placement,
53316 onClose = _props2.onClose,
53317 onVisibleChange = _props2.onVisibleChange,
53318 closeable = _props2.closeable,
53319 closeMode = _props2.closeMode,
53320 rtl = _props2.rtl,
53321 popupContainer = _props2.popupContainer,
53322 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'style', 'width', 'height', 'trigger', 'triggerType', 'animation', 'hasMask', 'visible', 'placement', 'onClose', 'onVisibleChange', 'closeable', 'closeMode', 'rtl', 'popupContainer']);
53323
53324 var newStyle = (0, _extends3.default)({
53325 width: width,
53326 height: height
53327 }, style);
53328
53329 var newCloseable = 'closeMode' in this.props ? Array.isArray(closeMode) ? closeMode.join(',') : closeMode : closeable;
53330
53331 var _mapcloseableToConfig = this.mapcloseableToConfig(newCloseable),
53332 canCloseByCloseClick = _mapcloseableToConfig.canCloseByCloseClick,
53333 closeConfig = (0, _objectWithoutProperties3.default)(_mapcloseableToConfig, ['canCloseByCloseClick']);
53334
53335 var newPopupProps = (0, _extends3.default)({
53336 prefix: prefix,
53337 visible: visible,
53338 trigger: trigger,
53339 triggerType: triggerType,
53340 onVisibleChange: this.handleVisibleChange,
53341 animation: this.getAnimation(placement),
53342 hasMask: hasMask,
53343 align: this.getAlign(placement)
53344 }, closeConfig, {
53345 canCloseByOutSideClick: false,
53346 disableScroll: true,
53347 ref: this.getOverlayRef,
53348 rtl: rtl,
53349 target: 'viewport',
53350 style: newStyle,
53351 needAdjust: false,
53352 container: popupContainer
53353 });
53354
53355 var inner = this.renderInner(canCloseByCloseClick);
53356
53357 return _react2.default.createElement(Popup, (0, _extends3.default)({}, newPopupProps, others), inner);
53358 };
53359
53360 return Drawer;
53361}(_react.Component), _class.displayName = 'Drawer', _class.propTypes = (0, _extends3.default)({}, Popup.propTypes || {}, {
53362 prefix: _propTypes2.default.string,
53363 pure: _propTypes2.default.bool,
53364 rtl: _propTypes2.default.bool,
53365 // 不建议使用trigger
53366 trigger: _propTypes2.default.element,
53367 triggerType: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
53368 /**
53369 * 宽度,仅在 placement是 left right 的时候生效
53370 */
53371 width: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
53372 /**
53373 * 高度,仅在 placement是 top bottom 的时候生效
53374 */
53375 height: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
53376 /**
53377 * [废弃]同closeMode, 控制对话框关闭的方式,值可以为字符串或者布尔值,其中字符串是由以下值组成:
53378 * **close** 表示点击关闭按钮可以关闭对话框
53379 * **mask** 表示点击遮罩区域可以关闭对话框
53380 * **esc** 表示按下 esc 键可以关闭对话框
53381 * 如 'close' 或 'close,esc,mask'
53382 * 如果设置为 true,则以上关闭方式全部生效
53383 * 如果设置为 false,则以上关闭方式全部失效
53384 */
53385 closeable: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
53386 /**
53387 * 隐藏时是否保留子节点,不销毁
53388 */
53389 cache: _propTypes2.default.bool,
53390 /**
53391 * [推荐]控制对话框关闭的方式,值可以为字符串或者数组,其中字符串、数组均为以下值的枚举:
53392 * **close** 表示点击关闭按钮可以关闭对话框
53393 * **mask** 表示点击遮罩区域可以关闭对话框
53394 * **esc** 表示按下 esc 键可以关闭对话框
53395 * 如 'close' 或 ['close','esc','mask'], []
53396 * @version 1.21
53397 */
53398 closeMode: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.oneOf(['close', 'mask', 'esc'])), _propTypes2.default.oneOf(['close', 'mask', 'esc'])]),
53399 /**
53400 * 对话框关闭时触发的回调函数
53401 * @param {String} trigger 关闭触发行为的描述字符串
53402 * @param {Object} event 关闭时事件对象
53403 */
53404 onClose: _propTypes2.default.func,
53405 /**
53406 * 对话框打开后的回调函数
53407 */
53408 afterOpen: _propTypes2.default.func,
53409 /**
53410 * 位于页面的位置
53411 */
53412 placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),
53413 /**
53414 * 标题
53415 */
53416 title: _propTypes2.default.node,
53417 /**
53418 * header上的样式
53419 */
53420 headerStyle: _propTypes2.default.object,
53421 /**
53422 * body上的样式
53423 */
53424 bodyStyle: _propTypes2.default.object,
53425 /**
53426 * 是否显示
53427 */
53428 visible: _propTypes2.default.bool,
53429 /**
53430 * 是否显示遮罩
53431 */
53432 hasMask: _propTypes2.default.bool,
53433 // 受控模式下(没有 trigger 的时候),只会在关闭时触发,相当于onClose
53434 onVisibleChange: _propTypes2.default.func,
53435 /**
53436 * 显示隐藏时动画的播放方式,支持 { in: 'enter-class', out: 'leave-class' } 的对象参数,如果设置为 false,则不播放动画。 请参考 Animate 组件的文档获取可用的动画名
53437 * @default { in: 'expandInDown', out: 'expandOutUp' }
53438 */
53439 animation: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.bool]),
53440 locale: _propTypes2.default.object,
53441 // for ConfigProvider
53442 popupContainer: _propTypes2.default.any
53443}), _class.defaultProps = {
53444 prefix: 'next-',
53445 triggerType: 'click',
53446 trigger: null,
53447 closeable: true,
53448 onClose: noop,
53449 hasMask: true,
53450 placement: 'right',
53451 locale: _zhCn2.default.Drawer
53452}, _temp2);
53453Drawer.displayName = 'Drawer';
53454exports.default = Drawer;
53455module.exports = exports['default'];
53456
53457/***/ }),
53458/* 346 */
53459/***/ (function(module, exports, __webpack_require__) {
53460
53461"use strict";
53462
53463
53464var _interopRequireDefault = __webpack_require__(28);
53465
53466Object.defineProperty(exports, "__esModule", {
53467 value: true
53468});
53469exports.default = void 0;
53470
53471var _regenerator = _interopRequireDefault(__webpack_require__(96));
53472
53473var _slicedToArray2 = _interopRequireDefault(__webpack_require__(348));
53474
53475var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(97));
53476
53477var _typeof2 = _interopRequireDefault(__webpack_require__(39));
53478
53479var _defineProperty2 = _interopRequireDefault(__webpack_require__(98));
53480
53481var _extends2 = _interopRequireDefault(__webpack_require__(61));
53482
53483var _classCallCheck2 = _interopRequireDefault(__webpack_require__(173));
53484
53485var _createClass2 = _interopRequireDefault(__webpack_require__(174));
53486
53487var _validate2 = _interopRequireDefault(__webpack_require__(354));
53488
53489var _utils = __webpack_require__(363);
53490
53491var initMeta = {
53492 state: '',
53493 valueName: 'value',
53494 trigger: 'onChange',
53495 inputValues: []
53496};
53497
53498var Field = /*#__PURE__*/function () {
53499 function Field(com) {
53500 var _this = this;
53501
53502 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
53503 (0, _classCallCheck2.default)(this, Field);
53504
53505 if (!com) {
53506 (0, _utils.warning)('`this` is missing in `Field`, you should use like `new Field(this)`');
53507 }
53508
53509 this.com = com;
53510 this.fieldsMeta = {};
53511 this.cachedBind = {};
53512 this.instance = {};
53513 this.instanceCount = {}; // holds constructor values. Used for setting field defaults on init if no other value or initValue is passed.
53514 // Also used caching values when using `parseName: true` before a field is initialized
53515
53516 this.values = (0, _extends2.default)({}, options.values);
53517 this.processErrorMessage = options.processErrorMessage;
53518 this.afterValidateRerender = options.afterValidateRerender;
53519 this.options = (0, _extends2.default)({
53520 parseName: false,
53521 forceUpdate: false,
53522 scrollToFirstError: true,
53523 first: false,
53524 onChange: function onChange() {},
53525 autoUnmount: true,
53526 autoValidate: true
53527 }, options);
53528 ['init', 'getValue', 'getValues', 'setValue', 'setValues', 'getError', 'getErrors', 'setError', 'setErrors', 'validateCallback', 'validatePromise', 'getState', 'reset', 'resetToDefault', 'remove', 'spliceArray', 'addArrayValue', 'deleteArrayValue', 'getNames'].forEach(function (m) {
53529 _this[m] = _this[m].bind(_this);
53530 });
53531 }
53532
53533 (0, _createClass2.default)(Field, [{
53534 key: "setOptions",
53535 value: function setOptions(options) {
53536 (0, _extends2.default)(this.options, options);
53537 }
53538 /**
53539 * Controlled Component
53540 * @param {String} name
53541 * @param {Object} fieldOption
53542 * @returns {Object} {value, onChange}
53543 */
53544
53545 }, {
53546 key: "init",
53547 value: function init(name) {
53548 var _this2 = this;
53549
53550 var fieldOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
53551 var rprops = arguments.length > 2 ? arguments[2] : undefined;
53552 var id = fieldOption.id,
53553 initValue = fieldOption.initValue,
53554 _fieldOption$valueNam = fieldOption.valueName,
53555 valueName = _fieldOption$valueNam === void 0 ? 'value' : _fieldOption$valueNam,
53556 _fieldOption$trigger = fieldOption.trigger,
53557 trigger = _fieldOption$trigger === void 0 ? 'onChange' : _fieldOption$trigger,
53558 _fieldOption$rules = fieldOption.rules,
53559 rules = _fieldOption$rules === void 0 ? [] : _fieldOption$rules,
53560 _fieldOption$props = fieldOption.props,
53561 props = _fieldOption$props === void 0 ? {} : _fieldOption$props,
53562 _fieldOption$getValue = fieldOption.getValueFromEvent,
53563 getValueFromEvent = _fieldOption$getValue === void 0 ? null : _fieldOption$getValue,
53564 _fieldOption$getValue2 = fieldOption.getValueFormatter,
53565 getValueFormatter = _fieldOption$getValue2 === void 0 ? getValueFromEvent : _fieldOption$getValue2,
53566 setValueFormatter = fieldOption.setValueFormatter,
53567 _fieldOption$autoVali = fieldOption.autoValidate,
53568 autoValidate = _fieldOption$autoVali === void 0 ? true : _fieldOption$autoVali;
53569 var parseName = this.options.parseName;
53570
53571 if (getValueFromEvent) {
53572 (0, _utils.warning)('`getValueFromEvent` has been deprecated in `Field`, use `getValueFormatter` instead of it');
53573 }
53574
53575 var originalProps = (0, _extends2.default)({}, props, rprops);
53576 var defaultValueName = "default".concat(valueName[0].toUpperCase()).concat(valueName.slice(1));
53577 var defaultValue;
53578
53579 if (typeof initValue !== 'undefined') {
53580 defaultValue = initValue;
53581 } else if (typeof originalProps[defaultValueName] !== 'undefined') {
53582 // here use typeof, in case of defaultValue={0}
53583 defaultValue = originalProps[defaultValueName];
53584 } // get field from this.fieldsMeta or new one
53585
53586
53587 var field = this._getInitMeta(name);
53588
53589 (0, _extends2.default)(field, {
53590 valueName: valueName,
53591 initValue: defaultValue,
53592 disabled: 'disabled' in originalProps ? originalProps.disabled : false,
53593 getValueFormatter: getValueFormatter,
53594 setValueFormatter: setValueFormatter,
53595 rules: Array.isArray(rules) ? rules : [rules],
53596 ref: originalProps.ref
53597 }); // Controlled Component, should always equal props.value
53598
53599 if (valueName in originalProps) {
53600 field.value = originalProps[valueName]; // When rerendering set the values from props.value
53601
53602 if (parseName) {
53603 this.values = (0, _utils.setIn)(this.values, name, field.value);
53604 } else {
53605 this.values[name] = field.value;
53606 }
53607 }
53608 /**
53609 * first init field (value not in field)
53610 * should get field.value from this.values or defaultValue
53611 */
53612
53613
53614 if (!('value' in field)) {
53615 if (parseName) {
53616 var cachedValue = (0, _utils.getIn)(this.values, name);
53617
53618 if (typeof cachedValue !== 'undefined') {
53619 field.value = cachedValue;
53620 } else {
53621 // save struct to this.values even defaultValue is undefiend
53622 field.value = defaultValue;
53623 this.values = (0, _utils.setIn)(this.values, name, field.value);
53624 }
53625 } else {
53626 var _cachedValue = this.values[name];
53627
53628 if (typeof _cachedValue !== 'undefined') {
53629 field.value = _cachedValue;
53630 } else if (typeof defaultValue !== 'undefined') {
53631 // should be same with parseName, but compatible with old versions
53632 field.value = defaultValue;
53633 this.values[name] = field.value;
53634 }
53635 }
53636 } // Component props
53637
53638
53639 var inputProps = (0, _defineProperty2.default)({
53640 'data-meta': 'Field',
53641 id: id || name,
53642 ref: this._getCacheBind(name, "".concat(name, "__ref"), this._saveRef)
53643 }, valueName, setValueFormatter ? setValueFormatter(field.value, field.inputValues) : field.value);
53644 var rulesMap = {};
53645
53646 if (this.options.autoValidate && autoValidate !== false) {
53647 // trigger map in rules,
53648 rulesMap = (0, _utils.mapValidateRules)(field.rules, trigger); // step1 : validate hooks
53649
53650 var _loop = function _loop(action) {
53651 // skip default trigger, which will trigger in step2
53652 if (action === trigger) {
53653 return "continue";
53654 }
53655
53656 var actionRule = rulesMap[action];
53657
53658 inputProps[action] = function () {
53659 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
53660 args[_key] = arguments[_key];
53661 }
53662
53663 _this2._callNativePropsEvent.apply(_this2, [action, originalProps].concat(args));
53664
53665 _this2._validate(name, actionRule, action);
53666 };
53667 };
53668
53669 for (var action in rulesMap) {
53670 var _ret = _loop(action);
53671
53672 if (_ret === "continue") continue;
53673 }
53674 } // step2: onChange(trigger=onChange by default) hack
53675
53676
53677 inputProps[trigger] = function () {
53678 for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
53679 args[_key2] = arguments[_key2];
53680 }
53681
53682 _this2._updateFieldValue.apply(_this2, [name].concat(args)); // clear validate error
53683
53684
53685 _this2._resetError(name);
53686
53687 _this2._callNativePropsEvent.apply(_this2, [trigger, originalProps].concat(args)); // call global onChange
53688
53689
53690 _this2.options.onChange(name, field.value); // validate while onChange
53691
53692
53693 var rule = rulesMap[trigger];
53694 rule && _this2._validate(name, rule, trigger);
53695
53696 _this2._reRender();
53697 };
53698
53699 delete originalProps[defaultValueName];
53700 return (0, _extends2.default)({}, originalProps, inputProps);
53701 }
53702 /**
53703 * call native event from props.onXx
53704 * eg: props.onChange props.onBlur props.onFocus
53705 */
53706
53707 }, {
53708 key: "_callNativePropsEvent",
53709 value: function _callNativePropsEvent(action, props) {
53710 for (var _len3 = arguments.length, args = new Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {
53711 args[_key3 - 2] = arguments[_key3];
53712 }
53713
53714 action in props && typeof props[action] === 'function' && props[action].apply(props, args);
53715 }
53716 }, {
53717 key: "_getInitMeta",
53718 value: function _getInitMeta(name) {
53719 if (!(name in this.fieldsMeta)) {
53720 this.fieldsMeta[name] = (0, _extends2.default)({}, initMeta);
53721 }
53722
53723 return this.fieldsMeta[name];
53724 }
53725 /**
53726 * update field.value and validate
53727 */
53728
53729 }, {
53730 key: "_updateFieldValue",
53731 value: function _updateFieldValue(name) {
53732 for (var _len4 = arguments.length, others = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {
53733 others[_key4 - 1] = arguments[_key4];
53734 }
53735
53736 var e = others[0];
53737
53738 var field = this._get(name);
53739
53740 if (!field) {
53741 return;
53742 }
53743
53744 field.value = field.getValueFormatter ? field.getValueFormatter.apply(this, others) : (0, _utils.getValueFromEvent)(e);
53745 field.inputValues = others;
53746
53747 if (this.options.parseName) {
53748 this.values = (0, _utils.setIn)(this.values, name, field.value);
53749 } else {
53750 this.values[name] = field.value;
53751 }
53752 }
53753 /**
53754 * ref must always be the same function, or if not it will be triggerd every time.
53755 * @param {String} name name of component
53756 * @param {String} action key to find ref
53757 * @param {Function} fn saveRef
53758 */
53759
53760 }, {
53761 key: "_getCacheBind",
53762 value: function _getCacheBind(name, action, fn) {
53763 var cache = this.cachedBind[name] = this.cachedBind[name] || {};
53764
53765 if (!cache[action]) {
53766 cache[action] = fn.bind(this, name);
53767 }
53768
53769 return cache[action];
53770 }
53771 }, {
53772 key: "_setCache",
53773 value: function _setCache(name, action, hander) {
53774 var cache = this.cachedBind[name] = this.cachedBind[name] || {};
53775 cache[action] = hander;
53776 }
53777 }, {
53778 key: "_getCache",
53779 value: function _getCache(name, action) {
53780 var cache = this.cachedBind[name] || {};
53781 return cache[action];
53782 }
53783 /**
53784 * NOTE: saveRef is async function. it will be called after render
53785 * @param {String} name name of component
53786 * @param {Function} component ref
53787 */
53788
53789 }, {
53790 key: "_saveRef",
53791 value: function _saveRef(name, component) {
53792 var key = "".concat(name, "_field");
53793 var autoUnmount = this.options.autoUnmount;
53794
53795 if (!component && autoUnmount) {
53796 // more than one component, do nothing
53797 this.instanceCount[name] && this.instanceCount[name]--;
53798
53799 if (this.instanceCount[name] > 0) {
53800 return;
53801 } // component with same name (eg: type ? <A name="n"/>:<B name="n"/>)
53802 // while type changed, B will render before A unmount. so we should cached value for B
53803 // step: render -> B mount -> 1. _saveRef(A, null) -> 2. _saveRef(B, ref) -> render
53804 // 1. _saveRef(A, null)
53805
53806
53807 var cache = this.fieldsMeta[name];
53808 cache && this._setCache(name, key, cache); // after destroy, delete data
53809
53810 delete this.instance[name];
53811 this.remove(name);
53812 return;
53813 } // 2. _saveRef(B, ref) (eg: same name but different compoent may be here)
53814
53815
53816 if (autoUnmount && !this.fieldsMeta[name] && this._getCache(name, key)) {
53817 this.fieldsMeta[name] = this._getCache(name, key);
53818 this.setValue(name, this.fieldsMeta[name] && this.fieldsMeta[name].value, false);
53819 } // only one time here
53820
53821
53822 var field = this._get(name);
53823
53824 if (field) {
53825 var ref = field.ref;
53826
53827 if (ref) {
53828 if (typeof ref === 'string') {
53829 throw new Error("can not set string ref for ".concat(name));
53830 } else if (typeof ref === 'function') {
53831 ref(component);
53832 } else if ((0, _typeof2.default)(ref) === 'object' && 'current' in ref) {
53833 // while ref = React.createRef() ref={ current: null}
53834 ref.current = component;
53835 }
53836 } // mount
53837
53838
53839 if (autoUnmount && component) {
53840 var cnt = this.instanceCount[name];
53841
53842 if (!cnt) {
53843 cnt = 0;
53844 }
53845
53846 this.instanceCount[name] = cnt + 1;
53847 }
53848
53849 this.instance[name] = component;
53850 }
53851 }
53852 /**
53853 * validate one Component
53854 * @param {String} name name of Component
53855 * @param {Array} rule
53856 * @param {String} trigger onChange/onBlur/onItemClick/...
53857 */
53858
53859 }, {
53860 key: "_validate",
53861 value: function _validate(name, rule, trigger) {
53862 var _this3 = this;
53863
53864 var field = this._get(name);
53865
53866 if (!field) {
53867 return;
53868 }
53869
53870 var value = field.value;
53871 field.state = 'loading';
53872
53873 var validate = this._getCache(name, trigger);
53874
53875 if (validate && typeof validate.abort === 'function') {
53876 validate.abort();
53877 }
53878
53879 validate = new _validate2.default((0, _defineProperty2.default)({}, name, rule), {
53880 messages: this.options.messages
53881 });
53882
53883 this._setCache(name, trigger, validate);
53884
53885 validate.validate((0, _defineProperty2.default)({}, name, value), function (errors) {
53886 var newErrors, newState;
53887
53888 if (errors && errors.length) {
53889 newErrors = (0, _utils.getErrorStrs)(errors, _this3.processErrorMessage);
53890 newState = 'error';
53891 } else {
53892 newErrors = [];
53893 newState = 'success';
53894 }
53895
53896 var reRender = false; // only status or errors changed, Rerender
53897
53898 if (newState !== field.state || !field.errors || newErrors.length !== field.errors.length || newErrors.find(function (e, idx) {
53899 return e !== field.errors[idx];
53900 })) {
53901 reRender = true;
53902 }
53903
53904 field.errors = newErrors;
53905 field.state = newState;
53906 reRender && _this3._reRender();
53907 });
53908 }
53909 }, {
53910 key: "getValue",
53911 value: function getValue(name) {
53912 if (this.options.parseName) {
53913 return (0, _utils.getIn)(this.values, name);
53914 }
53915
53916 return this.values[name];
53917 }
53918 /**
53919 * 1. get values by names.
53920 * 2. If no names passed, return shallow copy of `field.values`
53921 * @param {Array} names
53922 */
53923
53924 }, {
53925 key: "getValues",
53926 value: function getValues(names) {
53927 var _this4 = this;
53928
53929 var allValues = {};
53930
53931 if (names && names.length) {
53932 names.forEach(function (name) {
53933 allValues[name] = _this4.getValue(name);
53934 });
53935 } else {
53936 (0, _extends2.default)(allValues, this.values);
53937 }
53938
53939 return allValues;
53940 }
53941 }, {
53942 key: "setValue",
53943 value: function setValue(name, value) {
53944 var reRender = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
53945
53946 if (name in this.fieldsMeta) {
53947 this.fieldsMeta[name].value = value;
53948 }
53949
53950 if (this.options.parseName) {
53951 this.values = (0, _utils.setIn)(this.values, name, value);
53952 } else {
53953 this.values[name] = value;
53954 }
53955
53956 reRender && this._reRender();
53957 }
53958 }, {
53959 key: "setValues",
53960 value: function setValues() {
53961 var _this5 = this;
53962
53963 var fieldsValue = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
53964 var reRender = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
53965
53966 if (!this.options.parseName) {
53967 Object.keys(fieldsValue).forEach(function (name) {
53968 _this5.setValue(name, fieldsValue[name], false);
53969 });
53970 } else {
53971 // NOTE: this is a shallow merge
53972 // Ex. we have two values a.b.c=1 ; a.b.d=2, and use setValues({a:{b:{c:3}}}) , then because of shallow merge a.b.d will be lost, we will get only {a:{b:{c:3}}}
53973 this.values = (0, _extends2.default)({}, this.values, fieldsValue);
53974 var fields = this.getNames();
53975 fields.forEach(function (name) {
53976 var value = (0, _utils.getIn)(_this5.values, name);
53977
53978 if (value !== undefined) {
53979 // copy over values that are in this.values
53980 _this5.fieldsMeta[name].value = value;
53981 } else {
53982 // because of shallow merge
53983 // if no value then copy values from fieldsMeta to keep initialized component data
53984 _this5.values = (0, _utils.setIn)(_this5.values, name, _this5.fieldsMeta[name].value);
53985 }
53986 });
53987 }
53988
53989 reRender && this._reRender();
53990 }
53991 }, {
53992 key: "setError",
53993 value: function setError(name, errors) {
53994 var err = Array.isArray(errors) ? errors : errors ? [errors] : [];
53995
53996 if (name in this.fieldsMeta) {
53997 this.fieldsMeta[name].errors = err;
53998 } else {
53999 this.fieldsMeta[name] = {
54000 errors: err
54001 };
54002 }
54003
54004 if (this.fieldsMeta[name].errors && this.fieldsMeta[name].errors.length > 0) {
54005 this.fieldsMeta[name].state = 'error';
54006 } else {
54007 this.fieldsMeta[name].state = '';
54008 }
54009
54010 this._reRender();
54011 }
54012 }, {
54013 key: "setErrors",
54014 value: function setErrors() {
54015 var _this6 = this;
54016
54017 var fieldsErrors = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
54018 Object.keys(fieldsErrors).forEach(function (name) {
54019 _this6.setError(name, fieldsErrors[name]);
54020 });
54021 }
54022 }, {
54023 key: "getError",
54024 value: function getError(name) {
54025 var field = this._get(name);
54026
54027 if (field && field.errors && field.errors.length) {
54028 return field.errors;
54029 }
54030
54031 return null;
54032 }
54033 }, {
54034 key: "getErrors",
54035 value: function getErrors(names) {
54036 var _this7 = this;
54037
54038 var fields = names || this.getNames();
54039 var allErrors = {};
54040 fields.forEach(function (f) {
54041 allErrors[f] = _this7.getError(f);
54042 });
54043 return allErrors;
54044 }
54045 }, {
54046 key: "getState",
54047 value: function getState(name) {
54048 var field = this._get(name);
54049
54050 if (field && field.state) {
54051 return field.state;
54052 }
54053
54054 return '';
54055 }
54056 /**
54057 * Get errors using `getErrors` and format to match the structure of errors returned in field.validate
54058 * @param {Array} fieldNames
54059 * @return {Object || null} map of inputs and their errors
54060 */
54061
54062 }, {
54063 key: "formatGetErrors",
54064 value: function formatGetErrors(fieldNames) {
54065 var errors = this.getErrors(fieldNames);
54066 var formattedErrors = null;
54067
54068 for (var field in errors) {
54069 if (errors.hasOwnProperty(field) && errors[field]) {
54070 var errorsObj = errors[field];
54071
54072 if (!formattedErrors) {
54073 formattedErrors = {};
54074 }
54075
54076 formattedErrors[field] = {
54077 errors: errorsObj
54078 };
54079 }
54080 }
54081
54082 return formattedErrors;
54083 }
54084 /**
54085 * validate by trigger
54086 * @param {Array} ns names
54087 * @param {Function} cb callback after validate
54088 */
54089
54090 }, {
54091 key: "validateCallback",
54092 value: function validateCallback(ns, cb) {
54093 var _this8 = this;
54094
54095 var _getParams = (0, _utils.getParams)(ns, cb),
54096 names = _getParams.names,
54097 callback = _getParams.callback;
54098
54099 var fieldNames = names || this.getNames();
54100 var descriptor = {};
54101 var values = {};
54102 var hasRule = false;
54103
54104 for (var i = 0; i < fieldNames.length; i++) {
54105 var name = fieldNames[i];
54106
54107 var field = this._get(name);
54108
54109 if (!field) {
54110 continue;
54111 }
54112
54113 if (field.rules && field.rules.length) {
54114 descriptor[name] = field.rules;
54115 values[name] = this.getValue(name);
54116 hasRule = true; // clear error
54117
54118 field.errors = [];
54119 field.state = '';
54120 }
54121 }
54122
54123 if (!hasRule) {
54124 var errors = this.formatGetErrors(fieldNames);
54125 callback && callback(errors, this.getValues(names ? fieldNames : []));
54126 return;
54127 }
54128
54129 var validate = new _validate2.default(descriptor, {
54130 first: this.options.first,
54131 messages: this.options.messages
54132 });
54133 validate.validate(values, function (errors) {
54134 var errorsGroup = null;
54135
54136 if (errors && errors.length) {
54137 errorsGroup = {};
54138 errors.forEach(function (e) {
54139 var fieldName = e.field;
54140
54141 if (!errorsGroup[fieldName]) {
54142 errorsGroup[fieldName] = {
54143 errors: []
54144 };
54145 }
54146
54147 var fieldErrors = errorsGroup[fieldName].errors;
54148 fieldErrors.push(e.message);
54149 });
54150 }
54151
54152 if (errorsGroup) {
54153 // update error in every Field
54154 Object.keys(errorsGroup).forEach(function (i) {
54155 var field = _this8._get(i);
54156
54157 if (field) {
54158 field.errors = (0, _utils.getErrorStrs)(errorsGroup[i].errors, _this8.processErrorMessage);
54159 field.state = 'error';
54160 }
54161 });
54162 }
54163
54164 var formattedGetErrors = _this8.formatGetErrors(fieldNames);
54165
54166 if (formattedGetErrors) {
54167 errorsGroup = (0, _extends2.default)({}, formattedGetErrors, errorsGroup);
54168 } // update to success which has no error
54169
54170
54171 for (var _i = 0; _i < fieldNames.length; _i++) {
54172 var _name = fieldNames[_i];
54173
54174 var _field = _this8._get(_name);
54175
54176 if (_field && _field.rules && !(errorsGroup && _name in errorsGroup)) {
54177 _field.state = 'success';
54178 }
54179 } // eslint-disable-next-line callback-return
54180
54181
54182 callback && callback(errorsGroup, _this8.getValues(names ? fieldNames : []));
54183
54184 _this8._reRender();
54185
54186 if (typeof _this8.afterValidateRerender === 'function') {
54187 _this8.afterValidateRerender({
54188 errorsGroup: errorsGroup,
54189 options: _this8.options,
54190 instance: _this8.instance
54191 });
54192 }
54193 });
54194 }
54195 /**
54196 * validate by trigger - Promise version
54197 * NOTES:
54198 * - `afterValidateRerender` is not called in `validatePromise`. The rerender is called just before this function
54199 * returns a promise, so use the returned promise to call any after rerender logic.
54200 *
54201 * @param {Array} ns names
54202 * @param {Function} cb (Optional) callback after validate, must return a promise or a value
54203 * - ({errors, values}) => Promise({errors, values}) | {errors, values}
54204 * @returns {Promise} - resolves with {errors, values}
54205 */
54206
54207 }, {
54208 key: "validatePromise",
54209 value: function () {
54210 var _validatePromise = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(ns, cb) {
54211 var _getParams2, names, callback, fieldNames, descriptor, values, hasRule, i, name, field, _errors, validate, results, errors, errorsGroup, callbackResults;
54212
54213 return _regenerator.default.wrap(function _callee$(_context) {
54214 while (1) {
54215 switch (_context.prev = _context.next) {
54216 case 0:
54217 _getParams2 = (0, _utils.getParams)(ns, cb), names = _getParams2.names, callback = _getParams2.callback;
54218 fieldNames = names || this.getNames();
54219 descriptor = {};
54220 values = {};
54221 hasRule = false;
54222 i = 0;
54223
54224 case 6:
54225 if (!(i < fieldNames.length)) {
54226 _context.next = 15;
54227 break;
54228 }
54229
54230 name = fieldNames[i];
54231 field = this._get(name);
54232
54233 if (field) {
54234 _context.next = 11;
54235 break;
54236 }
54237
54238 return _context.abrupt("continue", 12);
54239
54240 case 11:
54241 if (field.rules && field.rules.length) {
54242 descriptor[name] = field.rules;
54243 values[name] = this.getValue(name);
54244 hasRule = true; // clear error
54245
54246 field.errors = [];
54247 field.state = '';
54248 }
54249
54250 case 12:
54251 i++;
54252 _context.next = 6;
54253 break;
54254
54255 case 15:
54256 if (hasRule) {
54257 _context.next = 22;
54258 break;
54259 }
54260
54261 _errors = this.formatGetErrors(fieldNames);
54262
54263 if (!callback) {
54264 _context.next = 21;
54265 break;
54266 }
54267
54268 return _context.abrupt("return", callback({
54269 errors: _errors,
54270 values: this.getValues(names ? fieldNames : [])
54271 }));
54272
54273 case 21:
54274 return _context.abrupt("return", {
54275 errors: _errors,
54276 values: this.getValues(names ? fieldNames : [])
54277 });
54278
54279 case 22:
54280 validate = new _validate2.default(descriptor, {
54281 first: this.options.first,
54282 messages: this.options.messages
54283 });
54284 _context.next = 25;
54285 return validate.validatePromise(values);
54286
54287 case 25:
54288 results = _context.sent;
54289 errors = results && results.errors || [];
54290 errorsGroup = this._getErrorsGroup({
54291 errors: errors,
54292 fieldNames: fieldNames
54293 });
54294 callbackResults = {
54295 errors: errorsGroup,
54296 values: this.getValues(names ? fieldNames : [])
54297 };
54298 _context.prev = 29;
54299
54300 if (!callback) {
54301 _context.next = 34;
54302 break;
54303 }
54304
54305 _context.next = 33;
54306 return callback(callbackResults);
54307
54308 case 33:
54309 callbackResults = _context.sent;
54310
54311 case 34:
54312 _context.next = 39;
54313 break;
54314
54315 case 36:
54316 _context.prev = 36;
54317 _context.t0 = _context["catch"](29);
54318 return _context.abrupt("return", _context.t0);
54319
54320 case 39:
54321 this._reRender();
54322
54323 return _context.abrupt("return", callbackResults);
54324
54325 case 41:
54326 case "end":
54327 return _context.stop();
54328 }
54329 }
54330 }, _callee, this, [[29, 36]]);
54331 }));
54332
54333 function validatePromise(_x, _x2) {
54334 return _validatePromise.apply(this, arguments);
54335 }
54336
54337 return validatePromise;
54338 }()
54339 }, {
54340 key: "_getErrorsGroup",
54341 value: function _getErrorsGroup(_ref) {
54342 var _this9 = this;
54343
54344 var errors = _ref.errors,
54345 fieldNames = _ref.fieldNames;
54346 var errorsGroup = null;
54347
54348 if (errors && errors.length) {
54349 errorsGroup = {};
54350 errors.forEach(function (e) {
54351 var fieldName = e.field;
54352
54353 if (!errorsGroup[fieldName]) {
54354 errorsGroup[fieldName] = {
54355 errors: []
54356 };
54357 }
54358
54359 var fieldErrors = errorsGroup[fieldName].errors;
54360 fieldErrors.push(e.message);
54361 });
54362 }
54363
54364 if (errorsGroup) {
54365 // update error in every Field
54366 Object.keys(errorsGroup).forEach(function (i) {
54367 var field = _this9._get(i);
54368
54369 if (field) {
54370 field.errors = (0, _utils.getErrorStrs)(errorsGroup[i].errors, _this9.processErrorMessage);
54371 field.state = 'error';
54372 }
54373 });
54374 }
54375
54376 var formattedGetErrors = this.formatGetErrors(fieldNames);
54377
54378 if (formattedGetErrors) {
54379 errorsGroup = (0, _extends2.default)({}, formattedGetErrors, errorsGroup);
54380 } // update to success which has no error
54381
54382
54383 for (var i = 0; i < fieldNames.length; i++) {
54384 var name = fieldNames[i];
54385
54386 var field = this._get(name);
54387
54388 if (field && field.rules && !(errorsGroup && name in errorsGroup)) {
54389 field.state = 'success';
54390 }
54391 }
54392
54393 return errorsGroup;
54394 }
54395 }, {
54396 key: "_reset",
54397 value: function _reset(ns, backToDefault) {
54398 var _this10 = this;
54399
54400 if (typeof ns === 'string') {
54401 ns = [ns];
54402 }
54403
54404 var changed = false;
54405 var names = ns || Object.keys(this.fieldsMeta);
54406
54407 if (!ns) {
54408 this.values = {};
54409 }
54410
54411 names.forEach(function (name) {
54412 var field = _this10._get(name);
54413
54414 if (field) {
54415 changed = true;
54416 field.value = backToDefault ? field.initValue : undefined;
54417 field.state = '';
54418 delete field.errors;
54419 delete field.rules;
54420 delete field.rulesMap;
54421
54422 if (_this10.options.parseName) {
54423 _this10.values = (0, _utils.setIn)(_this10.values, name, field.value);
54424 } else {
54425 _this10.values[name] = field.value;
54426 }
54427 }
54428 });
54429
54430 if (changed) {
54431 this._reRender();
54432 }
54433 }
54434 }, {
54435 key: "reset",
54436 value: function reset(ns) {
54437 this._reset(ns, false);
54438 }
54439 }, {
54440 key: "resetToDefault",
54441 value: function resetToDefault(ns) {
54442 this._reset(ns, true);
54443 }
54444 }, {
54445 key: "getNames",
54446 value: function getNames() {
54447 var fieldsMeta = this.fieldsMeta;
54448 return Object.keys(fieldsMeta).filter(function () {
54449 return true;
54450 });
54451 }
54452 }, {
54453 key: "remove",
54454 value: function remove(ns) {
54455 var _this11 = this;
54456
54457 if (typeof ns === 'string') {
54458 ns = [ns];
54459 }
54460
54461 if (!ns) {
54462 this.values = {};
54463 }
54464
54465 var names = ns || Object.keys(this.fieldsMeta);
54466 names.forEach(function (name) {
54467 if (name in _this11.fieldsMeta) {
54468 delete _this11.fieldsMeta[name];
54469 }
54470
54471 if (_this11.options.parseName) {
54472 _this11.values = (0, _utils.deleteIn)(_this11.values, name);
54473 } else {
54474 delete _this11.values[name];
54475 }
54476 });
54477 }
54478 }, {
54479 key: "addArrayValue",
54480 value: function addArrayValue(key, index) {
54481 for (var _len5 = arguments.length, argv = new Array(_len5 > 2 ? _len5 - 2 : 0), _key5 = 2; _key5 < _len5; _key5++) {
54482 argv[_key5 - 2] = arguments[_key5];
54483 }
54484
54485 return this._spliceArrayValue.apply(this, [key, index, 0].concat(argv));
54486 }
54487 }, {
54488 key: "deleteArrayValue",
54489 value: function deleteArrayValue(key, index) {
54490 var howmany = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
54491 return this._spliceArrayValue(key, index, howmany);
54492 }
54493 /**
54494 * splice array
54495 * @param {String} key
54496 * @param {Number} startIndex
54497 * @param {Number} howmany
54498 * @param {Array} argv
54499 * @param {*} value
54500 */
54501
54502 }, {
54503 key: "_spliceArrayValue",
54504 value: function _spliceArrayValue(key, index, howmany) {
54505 var _this12 = this;
54506
54507 for (var _len6 = arguments.length, argv = new Array(_len6 > 3 ? _len6 - 3 : 0), _key6 = 3; _key6 < _len6; _key6++) {
54508 argv[_key6 - 3] = arguments[_key6];
54509 }
54510
54511 var argc = argv.length;
54512 var offset = howmany - argc; // how the reset fieldMeta move
54513
54514 var startIndex = index + howmany; // 计算起点
54515
54516 /**
54517 * eg: call _spliceArrayValue('key', 1) to delete 'key.1':
54518 * case 1: names=['key.0', 'key.1']; delete 'key.1';
54519 * case 2: names=['key.0', 'key.1', 'key.2']; key.1= key.2; delete key.2;
54520 * case 3: names=['key.0.name', 'key.0.email', 'key.1.name', 'key.1.email'], should delete 'key.1.name', 'key.1.email'
54521 * eg: call _spliceArrayValue('key', 1, item) to add 'key.1':
54522 * case 1: names=['key.0']; add 'key.1' = item;
54523 * case 2: names=['key.0', 'key.1']; key.2= key.1; delete key.1; add key.1 = item;
54524 */
54525
54526 var listMap = {}; // eg: {1:[{from: 'key.2.name', to: 'key.1.name'}, {from: 'key.2.email', to: 'key.1.email'}]}
54527
54528 var keyReg = new RegExp("^(".concat(key, ".)(\\d+)"));
54529 var replaceArgv = [];
54530 var names = this.getNames(); // logic of offset fix begin
54531
54532 names.forEach(function (n) {
54533 var ret = keyReg.exec(n);
54534
54535 if (ret) {
54536 var idx = parseInt(ret[2]); // get index of 'key.0.name'
54537
54538 if (idx >= startIndex) {
54539 var l = listMap[idx];
54540 var item = {
54541 from: n,
54542 to: n.replace(keyReg, function (match, p1) {
54543 return "".concat(p1).concat(idx - offset);
54544 })
54545 };
54546
54547 if (!l) {
54548 listMap[idx] = [item];
54549 } else {
54550 l.push(item);
54551 }
54552 } // in case of offsetList.length = 0, eg: delete last element
54553
54554
54555 if (offset > 0 && idx >= index && idx < index + howmany) {
54556 replaceArgv.push(n);
54557 }
54558 }
54559 }); // sort with index eg: [{index:1, list: [{from: 'key.2.name', to: 'key.1.name'}]}, {index:2, list: [...]}]
54560
54561 var offsetList = Object.keys(listMap).map(function (i) {
54562 return {
54563 index: Number(i),
54564 list: listMap[i]
54565 };
54566 }).sort(function (a, b) {
54567 return offset > 0 ? a.index - b.index : b.index - a.index;
54568 });
54569 offsetList.forEach(function (l) {
54570 var list = l.list;
54571 list.forEach(function (i) {
54572 _this12.fieldsMeta[i.to] = _this12.fieldsMeta[i.from];
54573 });
54574 }); // delete copy data
54575
54576 if (offsetList.length > 0) {
54577 var removeList = offsetList.slice(offsetList.length - (offset < 0 ? -offset : offset), offsetList.length);
54578 removeList.forEach(function (item) {
54579 item.list.forEach(function (i) {
54580 delete _this12.fieldsMeta[i.from];
54581 });
54582 });
54583 } else {
54584 // will get from this.values while rerender
54585 replaceArgv.forEach(function (i) {
54586 delete _this12.fieldsMeta[i];
54587 });
54588 }
54589
54590 var p = this.getValue(key);
54591
54592 if (p) {
54593 p.splice.apply(p, [index, howmany].concat(argv));
54594 }
54595
54596 this._reRender();
54597 }
54598 /**
54599 * splice in a Array [deprecated]
54600 * @param {String} keyMatch like name.{index}
54601 * @param {Number} startIndex index
54602 */
54603
54604 }, {
54605 key: "spliceArray",
54606 value: function spliceArray(keyMatch, startIndex, howmany) {
54607 var _this13 = this;
54608
54609 if (keyMatch.match(/{index}$/) === -1) {
54610 (0, _utils.warning)('key should match /{index}$/');
54611 return;
54612 } // regex to match field names in the same target array
54613
54614
54615 var reg = keyMatch.replace('{index}', '(\\d+)');
54616 var keyReg = new RegExp("^".concat(reg));
54617 var listMap = {};
54618 /**
54619 * keyMatch='key.{index}'
54620 * case 1: names=['key.0', 'key.1'], should delete 'key.1'
54621 * case 2: names=['key.0.name', 'key.0.email', 'key.1.name', 'key.1.email'], should delete 'key.1.name', 'key.1.email'
54622 */
54623
54624 var names = this.getNames();
54625 names.forEach(function (n) {
54626 // is name in the target array?
54627 var ret = keyReg.exec(n);
54628
54629 if (ret) {
54630 var index = parseInt(ret[1]);
54631
54632 if (index > startIndex) {
54633 var l = listMap[index];
54634 var item = {
54635 from: n,
54636 to: "".concat(keyMatch.replace('{index}', index - 1)).concat(n.replace(ret[0], ''))
54637 };
54638
54639 if (!l) {
54640 listMap[index] = [item];
54641 } else {
54642 l.push(item);
54643 }
54644 }
54645 }
54646 });
54647 var idxList = Object.keys(listMap).map(function (i) {
54648 return {
54649 index: Number(i),
54650 list: listMap[i]
54651 };
54652 }).sort(function (a, b) {
54653 return a.index < b.index;
54654 }); // should be continuous array
54655
54656 if (idxList.length > 0 && idxList[0].index === startIndex + 1) {
54657 idxList.forEach(function (l) {
54658 var list = l.list;
54659 list.forEach(function (i) {
54660 var v = _this13.getValue(i.from); // get index value
54661
54662
54663 _this13.setValue(i.to, v, false); // set value to index - 1
54664
54665 });
54666 });
54667 var lastIdxList = idxList[idxList.length - 1];
54668 lastIdxList.list.forEach(function (i) {
54669 _this13.remove(i.from);
54670 });
54671 var parentName = keyMatch.replace('.{index}', '');
54672 parentName = parentName.replace('[{index}]', '');
54673 var parent = this.getValue(parentName);
54674
54675 if (parent) {
54676 // if parseName=true then parent is an Array object but does not know an element was removed
54677 // this manually decrements the array length
54678 parent.length--;
54679 }
54680 }
54681 }
54682 }, {
54683 key: "_resetError",
54684 value: function _resetError(name) {
54685 var field = this._get(name);
54686
54687 if (field) {
54688 delete field.errors; //清空错误
54689
54690 field.state = '';
54691 }
54692 } //trigger rerender
54693
54694 }, {
54695 key: "_reRender",
54696 value: function _reRender() {
54697 if (this.com) {
54698 if (!this.options.forceUpdate && this.com.setState) {
54699 this.com.setState({});
54700 } else if (this.com.forceUpdate) {
54701 this.com.forceUpdate(); //forceUpdate 对性能有较大的影响,成指数上升
54702 }
54703 }
54704 }
54705 }, {
54706 key: "_get",
54707 value: function _get(name) {
54708 return name in this.fieldsMeta ? this.fieldsMeta[name] : null;
54709 }
54710 }, {
54711 key: "get",
54712 value: function get(name) {
54713 if (name) {
54714 return this._get(name);
54715 } else {
54716 return this.fieldsMeta;
54717 }
54718 }
54719 }], [{
54720 key: "create",
54721 value: function create(com) {
54722 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
54723 return new this(com, options);
54724 }
54725 }, {
54726 key: "getUseField",
54727 value: function getUseField(_ref2) {
54728 var _this14 = this;
54729
54730 var useState = _ref2.useState,
54731 useMemo = _ref2.useMemo;
54732 return function () {
54733 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
54734
54735 var _useState = useState(),
54736 _useState2 = (0, _slicedToArray2.default)(_useState, 2),
54737 setState = _useState2[1];
54738
54739 var field = useMemo(function () {
54740 return _this14.create({
54741 setState: setState
54742 }, options);
54743 }, [setState]);
54744 return field;
54745 };
54746 }
54747 }]);
54748 return Field;
54749}();
54750
54751var _default = Field;
54752exports.default = _default;
54753
54754/***/ }),
54755/* 347 */
54756/***/ (function(module, exports, __webpack_require__) {
54757
54758/**
54759 * Copyright (c) 2014-present, Facebook, Inc.
54760 *
54761 * This source code is licensed under the MIT license found in the
54762 * LICENSE file in the root directory of this source tree.
54763 */
54764
54765var runtime = (function (exports) {
54766 "use strict";
54767
54768 var Op = Object.prototype;
54769 var hasOwn = Op.hasOwnProperty;
54770 var undefined; // More compressible than void 0.
54771 var $Symbol = typeof Symbol === "function" ? Symbol : {};
54772 var iteratorSymbol = $Symbol.iterator || "@@iterator";
54773 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
54774 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
54775
54776 function define(obj, key, value) {
54777 Object.defineProperty(obj, key, {
54778 value: value,
54779 enumerable: true,
54780 configurable: true,
54781 writable: true
54782 });
54783 return obj[key];
54784 }
54785 try {
54786 // IE 8 has a broken Object.defineProperty that only works on DOM objects.
54787 define({}, "");
54788 } catch (err) {
54789 define = function(obj, key, value) {
54790 return obj[key] = value;
54791 };
54792 }
54793
54794 function wrap(innerFn, outerFn, self, tryLocsList) {
54795 // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
54796 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
54797 var generator = Object.create(protoGenerator.prototype);
54798 var context = new Context(tryLocsList || []);
54799
54800 // The ._invoke method unifies the implementations of the .next,
54801 // .throw, and .return methods.
54802 generator._invoke = makeInvokeMethod(innerFn, self, context);
54803
54804 return generator;
54805 }
54806 exports.wrap = wrap;
54807
54808 // Try/catch helper to minimize deoptimizations. Returns a completion
54809 // record like context.tryEntries[i].completion. This interface could
54810 // have been (and was previously) designed to take a closure to be
54811 // invoked without arguments, but in all the cases we care about we
54812 // already have an existing method we want to call, so there's no need
54813 // to create a new function object. We can even get away with assuming
54814 // the method takes exactly one argument, since that happens to be true
54815 // in every case, so we don't have to touch the arguments object. The
54816 // only additional allocation required is the completion record, which
54817 // has a stable shape and so hopefully should be cheap to allocate.
54818 function tryCatch(fn, obj, arg) {
54819 try {
54820 return { type: "normal", arg: fn.call(obj, arg) };
54821 } catch (err) {
54822 return { type: "throw", arg: err };
54823 }
54824 }
54825
54826 var GenStateSuspendedStart = "suspendedStart";
54827 var GenStateSuspendedYield = "suspendedYield";
54828 var GenStateExecuting = "executing";
54829 var GenStateCompleted = "completed";
54830
54831 // Returning this object from the innerFn has the same effect as
54832 // breaking out of the dispatch switch statement.
54833 var ContinueSentinel = {};
54834
54835 // Dummy constructor functions that we use as the .constructor and
54836 // .constructor.prototype properties for functions that return Generator
54837 // objects. For full spec compliance, you may wish to configure your
54838 // minifier not to mangle the names of these two functions.
54839 function Generator() {}
54840 function GeneratorFunction() {}
54841 function GeneratorFunctionPrototype() {}
54842
54843 // This is a polyfill for %IteratorPrototype% for environments that
54844 // don't natively support it.
54845 var IteratorPrototype = {};
54846 define(IteratorPrototype, iteratorSymbol, function () {
54847 return this;
54848 });
54849
54850 var getProto = Object.getPrototypeOf;
54851 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
54852 if (NativeIteratorPrototype &&
54853 NativeIteratorPrototype !== Op &&
54854 hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
54855 // This environment has a native %IteratorPrototype%; use it instead
54856 // of the polyfill.
54857 IteratorPrototype = NativeIteratorPrototype;
54858 }
54859
54860 var Gp = GeneratorFunctionPrototype.prototype =
54861 Generator.prototype = Object.create(IteratorPrototype);
54862 GeneratorFunction.prototype = GeneratorFunctionPrototype;
54863 define(Gp, "constructor", GeneratorFunctionPrototype);
54864 define(GeneratorFunctionPrototype, "constructor", GeneratorFunction);
54865 GeneratorFunction.displayName = define(
54866 GeneratorFunctionPrototype,
54867 toStringTagSymbol,
54868 "GeneratorFunction"
54869 );
54870
54871 // Helper for defining the .next, .throw, and .return methods of the
54872 // Iterator interface in terms of a single ._invoke method.
54873 function defineIteratorMethods(prototype) {
54874 ["next", "throw", "return"].forEach(function(method) {
54875 define(prototype, method, function(arg) {
54876 return this._invoke(method, arg);
54877 });
54878 });
54879 }
54880
54881 exports.isGeneratorFunction = function(genFun) {
54882 var ctor = typeof genFun === "function" && genFun.constructor;
54883 return ctor
54884 ? ctor === GeneratorFunction ||
54885 // For the native GeneratorFunction constructor, the best we can
54886 // do is to check its .name property.
54887 (ctor.displayName || ctor.name) === "GeneratorFunction"
54888 : false;
54889 };
54890
54891 exports.mark = function(genFun) {
54892 if (Object.setPrototypeOf) {
54893 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
54894 } else {
54895 genFun.__proto__ = GeneratorFunctionPrototype;
54896 define(genFun, toStringTagSymbol, "GeneratorFunction");
54897 }
54898 genFun.prototype = Object.create(Gp);
54899 return genFun;
54900 };
54901
54902 // Within the body of any async function, `await x` is transformed to
54903 // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
54904 // `hasOwn.call(value, "__await")` to determine if the yielded value is
54905 // meant to be awaited.
54906 exports.awrap = function(arg) {
54907 return { __await: arg };
54908 };
54909
54910 function AsyncIterator(generator, PromiseImpl) {
54911 function invoke(method, arg, resolve, reject) {
54912 var record = tryCatch(generator[method], generator, arg);
54913 if (record.type === "throw") {
54914 reject(record.arg);
54915 } else {
54916 var result = record.arg;
54917 var value = result.value;
54918 if (value &&
54919 typeof value === "object" &&
54920 hasOwn.call(value, "__await")) {
54921 return PromiseImpl.resolve(value.__await).then(function(value) {
54922 invoke("next", value, resolve, reject);
54923 }, function(err) {
54924 invoke("throw", err, resolve, reject);
54925 });
54926 }
54927
54928 return PromiseImpl.resolve(value).then(function(unwrapped) {
54929 // When a yielded Promise is resolved, its final value becomes
54930 // the .value of the Promise<{value,done}> result for the
54931 // current iteration.
54932 result.value = unwrapped;
54933 resolve(result);
54934 }, function(error) {
54935 // If a rejected Promise was yielded, throw the rejection back
54936 // into the async generator function so it can be handled there.
54937 return invoke("throw", error, resolve, reject);
54938 });
54939 }
54940 }
54941
54942 var previousPromise;
54943
54944 function enqueue(method, arg) {
54945 function callInvokeWithMethodAndArg() {
54946 return new PromiseImpl(function(resolve, reject) {
54947 invoke(method, arg, resolve, reject);
54948 });
54949 }
54950
54951 return previousPromise =
54952 // If enqueue has been called before, then we want to wait until
54953 // all previous Promises have been resolved before calling invoke,
54954 // so that results are always delivered in the correct order. If
54955 // enqueue has not been called before, then it is important to
54956 // call invoke immediately, without waiting on a callback to fire,
54957 // so that the async generator function has the opportunity to do
54958 // any necessary setup in a predictable way. This predictability
54959 // is why the Promise constructor synchronously invokes its
54960 // executor callback, and why async functions synchronously
54961 // execute code before the first await. Since we implement simple
54962 // async functions in terms of async generators, it is especially
54963 // important to get this right, even though it requires care.
54964 previousPromise ? previousPromise.then(
54965 callInvokeWithMethodAndArg,
54966 // Avoid propagating failures to Promises returned by later
54967 // invocations of the iterator.
54968 callInvokeWithMethodAndArg
54969 ) : callInvokeWithMethodAndArg();
54970 }
54971
54972 // Define the unified helper method that is used to implement .next,
54973 // .throw, and .return (see defineIteratorMethods).
54974 this._invoke = enqueue;
54975 }
54976
54977 defineIteratorMethods(AsyncIterator.prototype);
54978 define(AsyncIterator.prototype, asyncIteratorSymbol, function () {
54979 return this;
54980 });
54981 exports.AsyncIterator = AsyncIterator;
54982
54983 // Note that simple async functions are implemented on top of
54984 // AsyncIterator objects; they just return a Promise for the value of
54985 // the final result produced by the iterator.
54986 exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {
54987 if (PromiseImpl === void 0) PromiseImpl = Promise;
54988
54989 var iter = new AsyncIterator(
54990 wrap(innerFn, outerFn, self, tryLocsList),
54991 PromiseImpl
54992 );
54993
54994 return exports.isGeneratorFunction(outerFn)
54995 ? iter // If outerFn is a generator, return the full iterator.
54996 : iter.next().then(function(result) {
54997 return result.done ? result.value : iter.next();
54998 });
54999 };
55000
55001 function makeInvokeMethod(innerFn, self, context) {
55002 var state = GenStateSuspendedStart;
55003
55004 return function invoke(method, arg) {
55005 if (state === GenStateExecuting) {
55006 throw new Error("Generator is already running");
55007 }
55008
55009 if (state === GenStateCompleted) {
55010 if (method === "throw") {
55011 throw arg;
55012 }
55013
55014 // Be forgiving, per 25.3.3.3.3 of the spec:
55015 // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
55016 return doneResult();
55017 }
55018
55019 context.method = method;
55020 context.arg = arg;
55021
55022 while (true) {
55023 var delegate = context.delegate;
55024 if (delegate) {
55025 var delegateResult = maybeInvokeDelegate(delegate, context);
55026 if (delegateResult) {
55027 if (delegateResult === ContinueSentinel) continue;
55028 return delegateResult;
55029 }
55030 }
55031
55032 if (context.method === "next") {
55033 // Setting context._sent for legacy support of Babel's
55034 // function.sent implementation.
55035 context.sent = context._sent = context.arg;
55036
55037 } else if (context.method === "throw") {
55038 if (state === GenStateSuspendedStart) {
55039 state = GenStateCompleted;
55040 throw context.arg;
55041 }
55042
55043 context.dispatchException(context.arg);
55044
55045 } else if (context.method === "return") {
55046 context.abrupt("return", context.arg);
55047 }
55048
55049 state = GenStateExecuting;
55050
55051 var record = tryCatch(innerFn, self, context);
55052 if (record.type === "normal") {
55053 // If an exception is thrown from innerFn, we leave state ===
55054 // GenStateExecuting and loop back for another invocation.
55055 state = context.done
55056 ? GenStateCompleted
55057 : GenStateSuspendedYield;
55058
55059 if (record.arg === ContinueSentinel) {
55060 continue;
55061 }
55062
55063 return {
55064 value: record.arg,
55065 done: context.done
55066 };
55067
55068 } else if (record.type === "throw") {
55069 state = GenStateCompleted;
55070 // Dispatch the exception by looping back around to the
55071 // context.dispatchException(context.arg) call above.
55072 context.method = "throw";
55073 context.arg = record.arg;
55074 }
55075 }
55076 };
55077 }
55078
55079 // Call delegate.iterator[context.method](context.arg) and handle the
55080 // result, either by returning a { value, done } result from the
55081 // delegate iterator, or by modifying context.method and context.arg,
55082 // setting context.delegate to null, and returning the ContinueSentinel.
55083 function maybeInvokeDelegate(delegate, context) {
55084 var method = delegate.iterator[context.method];
55085 if (method === undefined) {
55086 // A .throw or .return when the delegate iterator has no .throw
55087 // method always terminates the yield* loop.
55088 context.delegate = null;
55089
55090 if (context.method === "throw") {
55091 // Note: ["return"] must be used for ES3 parsing compatibility.
55092 if (delegate.iterator["return"]) {
55093 // If the delegate iterator has a return method, give it a
55094 // chance to clean up.
55095 context.method = "return";
55096 context.arg = undefined;
55097 maybeInvokeDelegate(delegate, context);
55098
55099 if (context.method === "throw") {
55100 // If maybeInvokeDelegate(context) changed context.method from
55101 // "return" to "throw", let that override the TypeError below.
55102 return ContinueSentinel;
55103 }
55104 }
55105
55106 context.method = "throw";
55107 context.arg = new TypeError(
55108 "The iterator does not provide a 'throw' method");
55109 }
55110
55111 return ContinueSentinel;
55112 }
55113
55114 var record = tryCatch(method, delegate.iterator, context.arg);
55115
55116 if (record.type === "throw") {
55117 context.method = "throw";
55118 context.arg = record.arg;
55119 context.delegate = null;
55120 return ContinueSentinel;
55121 }
55122
55123 var info = record.arg;
55124
55125 if (! info) {
55126 context.method = "throw";
55127 context.arg = new TypeError("iterator result is not an object");
55128 context.delegate = null;
55129 return ContinueSentinel;
55130 }
55131
55132 if (info.done) {
55133 // Assign the result of the finished delegate to the temporary
55134 // variable specified by delegate.resultName (see delegateYield).
55135 context[delegate.resultName] = info.value;
55136
55137 // Resume execution at the desired location (see delegateYield).
55138 context.next = delegate.nextLoc;
55139
55140 // If context.method was "throw" but the delegate handled the
55141 // exception, let the outer generator proceed normally. If
55142 // context.method was "next", forget context.arg since it has been
55143 // "consumed" by the delegate iterator. If context.method was
55144 // "return", allow the original .return call to continue in the
55145 // outer generator.
55146 if (context.method !== "return") {
55147 context.method = "next";
55148 context.arg = undefined;
55149 }
55150
55151 } else {
55152 // Re-yield the result returned by the delegate method.
55153 return info;
55154 }
55155
55156 // The delegate iterator is finished, so forget it and continue with
55157 // the outer generator.
55158 context.delegate = null;
55159 return ContinueSentinel;
55160 }
55161
55162 // Define Generator.prototype.{next,throw,return} in terms of the
55163 // unified ._invoke helper method.
55164 defineIteratorMethods(Gp);
55165
55166 define(Gp, toStringTagSymbol, "Generator");
55167
55168 // A Generator should always return itself as the iterator object when the
55169 // @@iterator function is called on it. Some browsers' implementations of the
55170 // iterator prototype chain incorrectly implement this, causing the Generator
55171 // object to not be returned from this call. This ensures that doesn't happen.
55172 // See https://github.com/facebook/regenerator/issues/274 for more details.
55173 define(Gp, iteratorSymbol, function() {
55174 return this;
55175 });
55176
55177 define(Gp, "toString", function() {
55178 return "[object Generator]";
55179 });
55180
55181 function pushTryEntry(locs) {
55182 var entry = { tryLoc: locs[0] };
55183
55184 if (1 in locs) {
55185 entry.catchLoc = locs[1];
55186 }
55187
55188 if (2 in locs) {
55189 entry.finallyLoc = locs[2];
55190 entry.afterLoc = locs[3];
55191 }
55192
55193 this.tryEntries.push(entry);
55194 }
55195
55196 function resetTryEntry(entry) {
55197 var record = entry.completion || {};
55198 record.type = "normal";
55199 delete record.arg;
55200 entry.completion = record;
55201 }
55202
55203 function Context(tryLocsList) {
55204 // The root entry object (effectively a try statement without a catch
55205 // or a finally block) gives us a place to store values thrown from
55206 // locations where there is no enclosing try statement.
55207 this.tryEntries = [{ tryLoc: "root" }];
55208 tryLocsList.forEach(pushTryEntry, this);
55209 this.reset(true);
55210 }
55211
55212 exports.keys = function(object) {
55213 var keys = [];
55214 for (var key in object) {
55215 keys.push(key);
55216 }
55217 keys.reverse();
55218
55219 // Rather than returning an object with a next method, we keep
55220 // things simple and return the next function itself.
55221 return function next() {
55222 while (keys.length) {
55223 var key = keys.pop();
55224 if (key in object) {
55225 next.value = key;
55226 next.done = false;
55227 return next;
55228 }
55229 }
55230
55231 // To avoid creating an additional object, we just hang the .value
55232 // and .done properties off the next function object itself. This
55233 // also ensures that the minifier will not anonymize the function.
55234 next.done = true;
55235 return next;
55236 };
55237 };
55238
55239 function values(iterable) {
55240 if (iterable) {
55241 var iteratorMethod = iterable[iteratorSymbol];
55242 if (iteratorMethod) {
55243 return iteratorMethod.call(iterable);
55244 }
55245
55246 if (typeof iterable.next === "function") {
55247 return iterable;
55248 }
55249
55250 if (!isNaN(iterable.length)) {
55251 var i = -1, next = function next() {
55252 while (++i < iterable.length) {
55253 if (hasOwn.call(iterable, i)) {
55254 next.value = iterable[i];
55255 next.done = false;
55256 return next;
55257 }
55258 }
55259
55260 next.value = undefined;
55261 next.done = true;
55262
55263 return next;
55264 };
55265
55266 return next.next = next;
55267 }
55268 }
55269
55270 // Return an iterator with no values.
55271 return { next: doneResult };
55272 }
55273 exports.values = values;
55274
55275 function doneResult() {
55276 return { value: undefined, done: true };
55277 }
55278
55279 Context.prototype = {
55280 constructor: Context,
55281
55282 reset: function(skipTempReset) {
55283 this.prev = 0;
55284 this.next = 0;
55285 // Resetting context._sent for legacy support of Babel's
55286 // function.sent implementation.
55287 this.sent = this._sent = undefined;
55288 this.done = false;
55289 this.delegate = null;
55290
55291 this.method = "next";
55292 this.arg = undefined;
55293
55294 this.tryEntries.forEach(resetTryEntry);
55295
55296 if (!skipTempReset) {
55297 for (var name in this) {
55298 // Not sure about the optimal order of these conditions:
55299 if (name.charAt(0) === "t" &&
55300 hasOwn.call(this, name) &&
55301 !isNaN(+name.slice(1))) {
55302 this[name] = undefined;
55303 }
55304 }
55305 }
55306 },
55307
55308 stop: function() {
55309 this.done = true;
55310
55311 var rootEntry = this.tryEntries[0];
55312 var rootRecord = rootEntry.completion;
55313 if (rootRecord.type === "throw") {
55314 throw rootRecord.arg;
55315 }
55316
55317 return this.rval;
55318 },
55319
55320 dispatchException: function(exception) {
55321 if (this.done) {
55322 throw exception;
55323 }
55324
55325 var context = this;
55326 function handle(loc, caught) {
55327 record.type = "throw";
55328 record.arg = exception;
55329 context.next = loc;
55330
55331 if (caught) {
55332 // If the dispatched exception was caught by a catch block,
55333 // then let that catch block handle the exception normally.
55334 context.method = "next";
55335 context.arg = undefined;
55336 }
55337
55338 return !! caught;
55339 }
55340
55341 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55342 var entry = this.tryEntries[i];
55343 var record = entry.completion;
55344
55345 if (entry.tryLoc === "root") {
55346 // Exception thrown outside of any try block that could handle
55347 // it, so set the completion value of the entire function to
55348 // throw the exception.
55349 return handle("end");
55350 }
55351
55352 if (entry.tryLoc <= this.prev) {
55353 var hasCatch = hasOwn.call(entry, "catchLoc");
55354 var hasFinally = hasOwn.call(entry, "finallyLoc");
55355
55356 if (hasCatch && hasFinally) {
55357 if (this.prev < entry.catchLoc) {
55358 return handle(entry.catchLoc, true);
55359 } else if (this.prev < entry.finallyLoc) {
55360 return handle(entry.finallyLoc);
55361 }
55362
55363 } else if (hasCatch) {
55364 if (this.prev < entry.catchLoc) {
55365 return handle(entry.catchLoc, true);
55366 }
55367
55368 } else if (hasFinally) {
55369 if (this.prev < entry.finallyLoc) {
55370 return handle(entry.finallyLoc);
55371 }
55372
55373 } else {
55374 throw new Error("try statement without catch or finally");
55375 }
55376 }
55377 }
55378 },
55379
55380 abrupt: function(type, arg) {
55381 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55382 var entry = this.tryEntries[i];
55383 if (entry.tryLoc <= this.prev &&
55384 hasOwn.call(entry, "finallyLoc") &&
55385 this.prev < entry.finallyLoc) {
55386 var finallyEntry = entry;
55387 break;
55388 }
55389 }
55390
55391 if (finallyEntry &&
55392 (type === "break" ||
55393 type === "continue") &&
55394 finallyEntry.tryLoc <= arg &&
55395 arg <= finallyEntry.finallyLoc) {
55396 // Ignore the finally entry if control is not jumping to a
55397 // location outside the try/catch block.
55398 finallyEntry = null;
55399 }
55400
55401 var record = finallyEntry ? finallyEntry.completion : {};
55402 record.type = type;
55403 record.arg = arg;
55404
55405 if (finallyEntry) {
55406 this.method = "next";
55407 this.next = finallyEntry.finallyLoc;
55408 return ContinueSentinel;
55409 }
55410
55411 return this.complete(record);
55412 },
55413
55414 complete: function(record, afterLoc) {
55415 if (record.type === "throw") {
55416 throw record.arg;
55417 }
55418
55419 if (record.type === "break" ||
55420 record.type === "continue") {
55421 this.next = record.arg;
55422 } else if (record.type === "return") {
55423 this.rval = this.arg = record.arg;
55424 this.method = "return";
55425 this.next = "end";
55426 } else if (record.type === "normal" && afterLoc) {
55427 this.next = afterLoc;
55428 }
55429
55430 return ContinueSentinel;
55431 },
55432
55433 finish: function(finallyLoc) {
55434 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55435 var entry = this.tryEntries[i];
55436 if (entry.finallyLoc === finallyLoc) {
55437 this.complete(entry.completion, entry.afterLoc);
55438 resetTryEntry(entry);
55439 return ContinueSentinel;
55440 }
55441 }
55442 },
55443
55444 "catch": function(tryLoc) {
55445 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
55446 var entry = this.tryEntries[i];
55447 if (entry.tryLoc === tryLoc) {
55448 var record = entry.completion;
55449 if (record.type === "throw") {
55450 var thrown = record.arg;
55451 resetTryEntry(entry);
55452 }
55453 return thrown;
55454 }
55455 }
55456
55457 // The context.catch method must only be called with a location
55458 // argument that corresponds to a known catch block.
55459 throw new Error("illegal catch attempt");
55460 },
55461
55462 delegateYield: function(iterable, resultName, nextLoc) {
55463 this.delegate = {
55464 iterator: values(iterable),
55465 resultName: resultName,
55466 nextLoc: nextLoc
55467 };
55468
55469 if (this.method === "next") {
55470 // Deliberately forget the last sent value so that we don't
55471 // accidentally pass it on to the delegate.
55472 this.arg = undefined;
55473 }
55474
55475 return ContinueSentinel;
55476 }
55477 };
55478
55479 // Regardless of whether this script is executing as a CommonJS module
55480 // or not, return the runtime object so that we can declare the variable
55481 // regeneratorRuntime in the outer scope, which allows this module to be
55482 // injected easily by `bin/regenerator --include-runtime script.js`.
55483 return exports;
55484
55485}(
55486 // If this script is executing as a CommonJS module, use module.exports
55487 // as the regeneratorRuntime namespace. Otherwise create a new empty
55488 // object. Either way, the resulting object will be used to initialize
55489 // the regeneratorRuntime variable at the top of this file.
55490 true ? module.exports : {}
55491));
55492
55493try {
55494 regeneratorRuntime = runtime;
55495} catch (accidentalStrictMode) {
55496 // This module should not be running in strict mode, so the above
55497 // assignment should always work unless something is misconfigured. Just
55498 // in case runtime.js accidentally runs in strict mode, in modern engines
55499 // we can explicitly access globalThis. In older engines we can escape
55500 // strict mode using a global Function call. This could conceivably fail
55501 // if a Content Security Policy forbids using Function, but in that case
55502 // the proper solution is to fix the accidental strict mode problem. If
55503 // you've misconfigured your bundler to force strict mode and applied a
55504 // CSP to forbid Function, and you're not willing to fix either of those
55505 // problems, please detail your unique predicament in a GitHub issue.
55506 if (typeof globalThis === "object") {
55507 globalThis.regeneratorRuntime = runtime;
55508 } else {
55509 Function("r", "regeneratorRuntime = r")(runtime);
55510 }
55511}
55512
55513
55514/***/ }),
55515/* 348 */
55516/***/ (function(module, exports, __webpack_require__) {
55517
55518var arrayWithHoles = __webpack_require__(349);
55519
55520var iterableToArrayLimit = __webpack_require__(350);
55521
55522var unsupportedIterableToArray = __webpack_require__(351);
55523
55524var nonIterableRest = __webpack_require__(353);
55525
55526function _slicedToArray(arr, i) {
55527 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();
55528}
55529
55530module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
55531
55532/***/ }),
55533/* 349 */
55534/***/ (function(module, exports) {
55535
55536function _arrayWithHoles(arr) {
55537 if (Array.isArray(arr)) return arr;
55538}
55539
55540module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
55541
55542/***/ }),
55543/* 350 */
55544/***/ (function(module, exports) {
55545
55546function _iterableToArrayLimit(arr, i) {
55547 var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
55548
55549 if (_i == null) return;
55550 var _arr = [];
55551 var _n = true;
55552 var _d = false;
55553
55554 var _s, _e;
55555
55556 try {
55557 for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {
55558 _arr.push(_s.value);
55559
55560 if (i && _arr.length === i) break;
55561 }
55562 } catch (err) {
55563 _d = true;
55564 _e = err;
55565 } finally {
55566 try {
55567 if (!_n && _i["return"] != null) _i["return"]();
55568 } finally {
55569 if (_d) throw _e;
55570 }
55571 }
55572
55573 return _arr;
55574}
55575
55576module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
55577
55578/***/ }),
55579/* 351 */
55580/***/ (function(module, exports, __webpack_require__) {
55581
55582var arrayLikeToArray = __webpack_require__(352);
55583
55584function _unsupportedIterableToArray(o, minLen) {
55585 if (!o) return;
55586 if (typeof o === "string") return arrayLikeToArray(o, minLen);
55587 var n = Object.prototype.toString.call(o).slice(8, -1);
55588 if (n === "Object" && o.constructor) n = o.constructor.name;
55589 if (n === "Map" || n === "Set") return Array.from(o);
55590 if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);
55591}
55592
55593module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
55594
55595/***/ }),
55596/* 352 */
55597/***/ (function(module, exports) {
55598
55599function _arrayLikeToArray(arr, len) {
55600 if (len == null || len > arr.length) len = arr.length;
55601
55602 for (var i = 0, arr2 = new Array(len); i < len; i++) {
55603 arr2[i] = arr[i];
55604 }
55605
55606 return arr2;
55607}
55608
55609module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
55610
55611/***/ }),
55612/* 353 */
55613/***/ (function(module, exports) {
55614
55615function _nonIterableRest() {
55616 throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
55617}
55618
55619module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
55620
55621/***/ }),
55622/* 354 */
55623/***/ (function(module, exports, __webpack_require__) {
55624
55625"use strict";
55626
55627
55628var _interopRequireDefault = __webpack_require__(28);
55629
55630Object.defineProperty(exports, "__esModule", {
55631 value: true
55632});
55633exports.default = void 0;
55634
55635var _regenerator = _interopRequireDefault(__webpack_require__(96));
55636
55637var _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(97));
55638
55639var _defineProperty2 = _interopRequireDefault(__webpack_require__(98));
55640
55641var _classCallCheck2 = _interopRequireDefault(__webpack_require__(173));
55642
55643var _createClass2 = _interopRequireDefault(__webpack_require__(174));
55644
55645var _util = __webpack_require__(40);
55646
55647var _messages2 = _interopRequireDefault(__webpack_require__(355));
55648
55649var _validator = __webpack_require__(356);
55650
55651function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
55652
55653function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
55654
55655function noop() {}
55656/**
55657 * @param {Object} source {name: value, name2: value2}
55658 * @param {Object} rules {name: [rule1, rule2]}
55659 * @returns {Object} {name:[{value,rule1},{value, rule2}]}
55660 */
55661
55662
55663function serializeRules(source, rules) {
55664 // serialize rules
55665 var arr;
55666 var value;
55667 var series = {};
55668 var names = Object.keys(rules);
55669 names.forEach(function (name) {
55670 arr = rules[name];
55671 value = source[name];
55672
55673 if (!Array.isArray(arr)) {
55674 arr = [arr];
55675 }
55676
55677 arr.forEach(function (rule) {
55678 rule.validator = (0, _validator.getValidationMethod)(rule);
55679 rule.field = name;
55680
55681 if (!rule.validator) {
55682 return;
55683 }
55684
55685 series[name] = series[name] || [];
55686 series[name].push({
55687 rule: rule,
55688 value: value,
55689 source: source,
55690 field: name
55691 });
55692 });
55693 });
55694 return series;
55695}
55696
55697var Schema = /*#__PURE__*/function () {
55698 function Schema(rules) {
55699 var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
55700 (0, _classCallCheck2.default)(this, Schema);
55701 this._rules = rules;
55702 this._options = _objectSpread(_objectSpread({}, options), {}, {
55703 messages: _objectSpread(_objectSpread({}, _messages2.default), options.messages)
55704 });
55705 this.complete = [];
55706 }
55707
55708 (0, _createClass2.default)(Schema, [{
55709 key: "abort",
55710 value: function abort() {
55711 for (var i = 0; i < this.complete.length; i++) {
55712 this.complete[i] = noop;
55713 }
55714 }
55715 }, {
55716 key: "messages",
55717 value: function messages(_messages) {
55718 this._options.messages = Object.assign({}, this._options.messages, _messages);
55719 }
55720 /**
55721 *
55722 * @param {Object} source - map of field names and values to use in validation
55723 * @param {Function} callback - OPTIONAL - callback to run after all
55724 * @returns {null | Promise}
55725 * - { null } - if using callbacks
55726 * - { Promise }
55727 * - { errors: null } - if no rules or no errors
55728 * - { errors: Array, fields: Object } - errors from validation and fields that have errors
55729 */
55730
55731 }, {
55732 key: "validate",
55733 value: function validate(source, callback) {
55734 var _this = this;
55735
55736 if (!callback) {
55737 return this.validatePromise(source);
55738 }
55739
55740 if (!this._rules || Object.keys(this._rules).length === 0) {
55741 if (callback) {
55742 callback(null);
55743 }
55744
55745 return;
55746 }
55747
55748 var series = serializeRules(source, this._rules);
55749
55750 if (Object.keys(series).length === 0) {
55751 callback(null);
55752 } // callback function for all rules return
55753
55754
55755 function complete(results) {
55756 var i;
55757 var field;
55758 var errors = [];
55759 var fields = {};
55760
55761 function add(e) {
55762 if (Array.isArray(e)) {
55763 errors = errors.concat(e);
55764 } else {
55765 errors.push(e);
55766 }
55767 }
55768
55769 for (i = 0; i < results.length; i++) {
55770 add(results[i]);
55771 }
55772
55773 if (!errors.length) {
55774 errors = null;
55775 fields = null;
55776 } else {
55777 for (i = 0; i < errors.length; i++) {
55778 field = errors[i].field;
55779 fields[field] = fields[field] || [];
55780 fields[field].push(errors[i]);
55781 }
55782 }
55783
55784 callback(errors, fields);
55785 } // 这里用数组的原因,是为了方便外部做 abort 调用
55786 // eg: input onChange 时调用有 异步 validator 被异步调用多次,我们只取最后一次调用。否则可能出现 前一个 validator 返回导致
55787
55788
55789 this.complete.push(complete);
55790 var idx = this.complete.length; // async validate
55791
55792 (0, _util.asyncMap)(series, this._options, function (data, next) {
55793 var rule = data.rule;
55794 rule.field = data.field;
55795
55796 function cb(e) {
55797 var errors = e; // fix e=/""/null/undefiend.
55798 // ignore e=true/false;
55799
55800 if (typeof errors !== 'boolean' && !errors) {
55801 errors = [];
55802 }
55803
55804 if (!Array.isArray(errors)) {
55805 errors = [errors];
55806 } // 自定义错误
55807
55808
55809 if (errors.length && rule.message) {
55810 errors = [].concat(rule.message);
55811 }
55812
55813 errors = errors.map((0, _util.complementError)(rule));
55814 next(errors);
55815 }
55816
55817 var res = rule.validator(rule, data.value, cb, _this._options);
55818
55819 if (res && res.then) {
55820 res.then(function () {
55821 return cb();
55822 }, function (e) {
55823 return cb(e);
55824 });
55825 }
55826 }, function (results) {
55827 _this.complete[idx - 1](results);
55828 });
55829 }
55830 /**
55831 *
55832 * @param {Object} source - map of field names and values to use in validation
55833 * @returns {Promise}
55834 * - { errors: null } if no rules or no errors
55835 * - { errors: Array, fields: Object } - errors from validation and fields that have errors
55836 */
55837
55838 }, {
55839 key: "validatePromise",
55840 value: function () {
55841 var _validatePromise = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(source) {
55842 var _this2 = this;
55843
55844 var series, results;
55845 return _regenerator.default.wrap(function _callee2$(_context2) {
55846 while (1) {
55847 switch (_context2.prev = _context2.next) {
55848 case 0:
55849 if (!(!this._rules || Object.keys(this._rules).length === 0)) {
55850 _context2.next = 2;
55851 break;
55852 }
55853
55854 return _context2.abrupt("return", {
55855 errors: null
55856 });
55857
55858 case 2:
55859 series = serializeRules(source, this._rules);
55860
55861 if (!(Object.keys(series).length === 0)) {
55862 _context2.next = 5;
55863 break;
55864 }
55865
55866 return _context2.abrupt("return", {
55867 errors: null
55868 });
55869
55870 case 5:
55871 _context2.next = 7;
55872 return (0, _util.asyncMapPromise)(series, this._options, /*#__PURE__*/function () {
55873 var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(data) {
55874 var rule, errors;
55875 return _regenerator.default.wrap(function _callee$(_context) {
55876 while (1) {
55877 switch (_context.prev = _context.next) {
55878 case 0:
55879 rule = data.rule;
55880 rule.field = data.field;
55881 _context.prev = 2;
55882 _context.next = 5;
55883 return new Promise(function (resolve, reject) {
55884 function cb(e) {
55885 resolve(e);
55886 }
55887
55888 var res = rule.validator(rule, data.value, cb, _this2._options);
55889
55890 if (res && res.then) {
55891 res.then(function () {
55892 return cb();
55893 }, function (e) {
55894 return cb(e);
55895 });
55896 }
55897 });
55898
55899 case 5:
55900 errors = _context.sent;
55901 _context.next = 11;
55902 break;
55903
55904 case 8:
55905 _context.prev = 8;
55906 _context.t0 = _context["catch"](2);
55907 errors = _context.t0;
55908
55909 case 11:
55910 if (!errors) {
55911 _context.next = 18;
55912 break;
55913 }
55914
55915 // fix e=/""/null/undefiend.
55916 // ignore e=true/false;
55917 if (typeof errors !== 'boolean' && !errors) {
55918 errors = [];
55919 }
55920
55921 if (!Array.isArray(errors)) {
55922 errors = [errors];
55923 } // 自定义错误
55924
55925
55926 // 自定义错误
55927 if (errors.length && rule.message) {
55928 errors = [].concat(rule.message);
55929 }
55930
55931 return _context.abrupt("return", errors.map((0, _util.complementError)(rule)));
55932
55933 case 18:
55934 return _context.abrupt("return", []);
55935
55936 case 19:
55937 case "end":
55938 return _context.stop();
55939 }
55940 }
55941 }, _callee, null, [[2, 8]]);
55942 }));
55943
55944 return function (_x2) {
55945 return _ref.apply(this, arguments);
55946 };
55947 }());
55948
55949 case 7:
55950 results = _context2.sent;
55951 return _context2.abrupt("return", (0, _util.processErrorResults)(results));
55952
55953 case 9:
55954 case "end":
55955 return _context2.stop();
55956 }
55957 }
55958 }, _callee2, this);
55959 }));
55960
55961 function validatePromise(_x) {
55962 return _validatePromise.apply(this, arguments);
55963 }
55964
55965 return validatePromise;
55966 }()
55967 }]);
55968 return Schema;
55969}();
55970
55971var _default = Schema;
55972exports.default = _default;
55973
55974/***/ }),
55975/* 355 */
55976/***/ (function(module, exports, __webpack_require__) {
55977
55978"use strict";
55979
55980
55981Object.defineProperty(exports, "__esModule", {
55982 value: true
55983});
55984exports.default = void 0;
55985var _default = {
55986 default: '%s 校验失败',
55987 required: '%s 是必填字段',
55988 format: {
55989 number: '%s 不是合法的数字',
55990 email: '%s 不是合法的 email 地址',
55991 url: '%s 不是合法的 URL 地址',
55992 tel: '%s 不是合法的电话号码',
55993 IDNumber: '%s 不是合法的身份证号码'
55994 },
55995 number: {
55996 length: '%s 长度必须是 %s',
55997 min: '%s 字段数值不得小于 %s',
55998 max: '%s 字段数值不得大于 %s',
55999 minLength: '%s 字段字符长度不得少于 %s',
56000 maxLength: '%s 字段字符长度不得超过 %s'
56001 },
56002 string: {
56003 length: '%s 长度必须是 %s',
56004 min: '%s 字段数值不得小于 %s',
56005 max: '%s 字段数值不得大于 %s',
56006 minLength: '%s 字段字符长度不得少于 %s',
56007 maxLength: '%s 字段字符长度不得超过 %s'
56008 },
56009 array: {
56010 length: '%s 个数必须是 %s',
56011 minLength: '%s 个数不得少于 %s',
56012 maxLength: '%s 个数不得超过 %s'
56013 },
56014 pattern: '%s 字段数值 %s 不匹配正则 %s'
56015};
56016exports.default = _default;
56017
56018/***/ }),
56019/* 356 */
56020/***/ (function(module, exports, __webpack_require__) {
56021
56022"use strict";
56023
56024
56025var _interopRequireDefault = __webpack_require__(28);
56026
56027Object.defineProperty(exports, "__esModule", {
56028 value: true
56029});
56030exports.getValidationMethod = getValidationMethod;
56031exports.validateFunc = validateFunc;
56032
56033var _rules = _interopRequireDefault(__webpack_require__(357));
56034
56035/* eslint-disable callback-return */
56036
56037/**
56038 * {required, format} => format; {required} => required
56039 * If a promise is wanted from the validator, either return a promise from the callback,
56040 * or do not pass a callback
56041 *
56042 * @param {function} validator [description]
56043 * @param {string} ruleType [description]
56044 * @return {function} [description]
56045 */
56046function validateFunc(validator, ruleType) {
56047 return function (rule, value, cb, options) {
56048 var errors = []; // 如果是非required校验
56049
56050 if (ruleType !== 'required') {
56051 var _errors = [];
56052
56053 _rules.default.required(rule, value, _errors, options); // 空数据
56054
56055
56056 if (_errors.length > 0) {
56057 if ('required' in rule && rule.required) {
56058 if (cb) {
56059 return cb(_errors);
56060 } else {
56061 return Promise.reject(_errors);
56062 }
56063 } else if (cb) {
56064 return cb([]); //空数据,并且没有require要求,则忽略
56065 } else {
56066 return Promise.resolve(null);
56067 }
56068 }
56069 }
56070
56071 validator(rule, value, errors, options);
56072
56073 if (cb) {
56074 return cb(errors);
56075 }
56076
56077 if (Promise) {
56078 return Promise.resolve(errors);
56079 }
56080 };
56081}
56082/**
56083 * {required, format} => format; {required} => required
56084 * @param {object} rule [description]
56085 * @return {function} [description]
56086 */
56087
56088
56089function getValidationMethod(rule) {
56090 if (typeof rule.validator === 'function') {
56091 return rule.validator;
56092 }
56093
56094 var keys = Object.keys(rule); //required和其他校验规则共存
56095 //{required, format} {required, unknown}
56096
56097 for (var i = 0; i < keys.length; i++) {
56098 var ruleType = keys[i];
56099
56100 if (ruleType === 'required') {
56101 continue;
56102 }
56103
56104 if (ruleType in _rules.default) {
56105 return validateFunc(_rules.default[ruleType], ruleType);
56106 }
56107 } // 有其他位置参数
56108
56109
56110 if ('required' in rule && rule.required) {
56111 return validateFunc(_rules.default.required, 'required');
56112 }
56113
56114 return null;
56115}
56116
56117/***/ }),
56118/* 357 */
56119/***/ (function(module, exports, __webpack_require__) {
56120
56121"use strict";
56122
56123
56124var _interopRequireDefault = __webpack_require__(28);
56125
56126Object.defineProperty(exports, "__esModule", {
56127 value: true
56128});
56129exports.default = void 0;
56130
56131var _required = _interopRequireDefault(__webpack_require__(358));
56132
56133var _format = _interopRequireDefault(__webpack_require__(359));
56134
56135var _size = _interopRequireDefault(__webpack_require__(360));
56136
56137var _length = _interopRequireDefault(__webpack_require__(361));
56138
56139var _pattern = _interopRequireDefault(__webpack_require__(362));
56140
56141var _default = {
56142 required: _required.default,
56143 format: _format.default,
56144 min: _size.default,
56145 max: _size.default,
56146 minLength: _length.default,
56147 maxLength: _length.default,
56148 length: _length.default,
56149 pattern: _pattern.default
56150};
56151exports.default = _default;
56152
56153/***/ }),
56154/* 358 */
56155/***/ (function(module, exports, __webpack_require__) {
56156
56157"use strict";
56158
56159
56160var _typeof = __webpack_require__(39);
56161
56162Object.defineProperty(exports, "__esModule", {
56163 value: true
56164});
56165exports.default = void 0;
56166
56167var util = _interopRequireWildcard(__webpack_require__(40));
56168
56169function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
56170
56171function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
56172
56173/**
56174 * Rule for validating required fields.
56175 *
56176 * @param rule The validation rule.
56177 * @param value The value of the field on the source object.
56178 * @param errors An array of errors that this rule may add
56179 * validation errors to.
56180 * @param options The validation options.
56181 * @param options.messages The validation messages.
56182 */
56183function required(rule, value, errors, options) {
56184 if (value === undefined || value === null || value === '' || value.length === 0) {
56185 errors.push(util.format(options.messages.required, rule.aliasName || rule.field));
56186 }
56187}
56188
56189var _default = required;
56190exports.default = _default;
56191
56192/***/ }),
56193/* 359 */
56194/***/ (function(module, exports, __webpack_require__) {
56195
56196"use strict";
56197
56198
56199var _typeof = __webpack_require__(39);
56200
56201Object.defineProperty(exports, "__esModule", {
56202 value: true
56203});
56204exports.default = void 0;
56205
56206var util = _interopRequireWildcard(__webpack_require__(40));
56207
56208function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
56209
56210function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
56211
56212var pattern = {
56213 email: /[\w\u4E00-\u9FA5]+([-+.][\w\u4E00-\u9FA5]+)*@[\w\u4E00-\u9FA5]+([-.][\w\u4E00-\u9FA5]+)*\.[\w\u4E00-\u9FA5]+([-.][\w\u4E00-\u9FA5]+)*/,
56214 url: /^(?:(?:http|https|ftp):\/\/|\/\/)(?:(?:(?:[-\w\u00a1-\uffff]+)(?:\.[-\w\u00a1-\uffff]+)+|localhost)(?::\d{2,5})?(?:(?:\/|#)[^\s]*)?)$/,
56215 number: /\d*/,
56216 tel: /^(1\d{10})$|(((400)-(\d{3})-(\d{4}))|^((\d{7,8})|(\d{3,4})-(\d{7,8})|(\d{7,8})-(\d{1,4}))$)$|^([ ]?)$/
56217};
56218var types = {
56219 number: function number(value) {
56220 if (isNaN(value)) {
56221 return false;
56222 }
56223
56224 return typeof value === 'number' || typeof value === 'string' && !!value.match(pattern.number);
56225 },
56226 email: function email(value) {
56227 return typeof value === 'string' && !!value.match(pattern.email) && value.length < 255;
56228 },
56229 url: function url(value) {
56230 return typeof value === 'string' && !!value.match(pattern.url);
56231 },
56232 tel: function tel(value) {
56233 return typeof value === 'string' && !!value.match(pattern.tel);
56234 },
56235 IDNumber: function IDNumber(value) {
56236 return validatorIDNumber(value);
56237 }
56238};
56239/**
56240 * Rule for validating the type of a value.
56241 *
56242 * @param rule The validation rule.
56243 * @param value The value of the field on the source object.
56244 * @param errors An array of errors that this rule may add
56245 * validation errors to.
56246 * @param options The validation options.
56247 * @param options.messages The validation messages.
56248 */
56249
56250function format(rule, value, errors, options) {
56251 var custom = ['email', 'number', 'url', 'tel', 'IDNumber'];
56252 var ruleType = rule.format;
56253
56254 if (custom.indexOf(ruleType) > -1 && !types[ruleType](value)) {
56255 errors.push(util.format(options.messages.format[ruleType], rule.aliasName || rule.field, rule.format));
56256 }
56257}
56258/**
56259 * @params {string} idcode
56260 *
56261 * 函数参数必须是字符串,因为二代身份证号码是十八位,而在javascript中,十八位的数值会超出计算范围,造成不精确的结果,
56262 * 导致最后两位和计算的值不一致,从而该函数出现错误(详情查看javascript的数值范围)。
56263 * 为了避免这一误差,idcode必须是字符串
56264 *
56265 * 正则思路:
56266 * 第一位不可能是0
56267 * 第二位到第六位可以是0-9
56268 * 第七位到第十位是年份,所以七八位为19或者20
56269 * 十一位和十二位是月份,这两位是01-12之间的数值
56270 * 十三位和十四位是日期,是从01-31之间的数值
56271 * 十五,十六,十七都是数字0-9
56272 * 十八位可能是数字0-9,也可能是X
56273 * */
56274
56275
56276function validatorIDNumber(idCode) {
56277 if (typeof idCode !== 'string') {
56278 return false;
56279 }
56280
56281 var idCardPatter = /^[1-9][0-9]{5}([1][9][0-9]{2}|[2][0][0|1][0-9])([0][1-9]|[1][0|1|2])([0][1-9]|[1|2][0-9]|[3][0|1])[0-9]{3}([0-9]|[X])$/; // 判断格式是否正确
56282
56283 var format = idCardPatter.test(idCode);
56284
56285 if (!format) {
56286 return false;
56287 } // 加权因子
56288
56289
56290 var weightFactor = [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2]; // 校验码
56291
56292 var checkCode = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];
56293 var last = idCode[17]; //最后一位
56294
56295 var seventeen = idCode.substring(0, 17); // ISO 7064:1983.MOD 11-2
56296 // 判断最后一位校验码是否正确
56297
56298 var arr = seventeen.split('');
56299 var len = arr.length;
56300 var num = 0;
56301
56302 for (var i = 0; i < len; i++) {
56303 num += arr[i] * weightFactor[i];
56304 } // 获取余数
56305
56306
56307 var lastNo = checkCode[num % 11]; // 返回验证结果,校验码和格式同时正确才算是合法的身份证号码
56308
56309 return last === lastNo;
56310}
56311
56312var _default = format;
56313exports.default = _default;
56314
56315/***/ }),
56316/* 360 */
56317/***/ (function(module, exports, __webpack_require__) {
56318
56319"use strict";
56320
56321
56322var _typeof = __webpack_require__(39);
56323
56324Object.defineProperty(exports, "__esModule", {
56325 value: true
56326});
56327exports.default = void 0;
56328
56329var util = _interopRequireWildcard(__webpack_require__(40));
56330
56331function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
56332
56333function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
56334
56335/**
56336 * Rule for validating minimum and maximum allowed values.
56337 *
56338 * @param rule The validation rule.
56339 * @param value The value of the field on the source object.
56340 * @param errors An array of errors that this rule may add
56341 * validation errors to.
56342 * @param options The validation options.
56343 * @param options.messages The validation messages.
56344 */
56345function size(rule, value, errors, options) {
56346 var key = null;
56347 var isNum = typeof value === 'number';
56348 var isStr = typeof value === 'string';
56349
56350 if (isNum) {
56351 key = 'number';
56352 } else if (isStr) {
56353 key = 'string';
56354 }
56355
56356 if (!key) {
56357 return false;
56358 } // TODO: 2.x change to typeof rule.min === 'number' || typeof rule.max === 'number'
56359
56360
56361 if (typeof rule.min !== 'undefined' || typeof rule.max !== 'undefined') {
56362 var val = value;
56363 var max = Number(rule.max);
56364 var min = Number(rule.min);
56365
56366 if (isStr) {
56367 val = Number(val);
56368 }
56369
56370 if (val < min) {
56371 errors.push(util.format(options.messages[key].min, rule.aliasName || rule.field, rule.min));
56372 } else if (val > max) {
56373 errors.push(util.format(options.messages[key].max, rule.aliasName || rule.field, rule.max));
56374 }
56375 }
56376}
56377
56378var _default = size;
56379exports.default = _default;
56380
56381/***/ }),
56382/* 361 */
56383/***/ (function(module, exports, __webpack_require__) {
56384
56385"use strict";
56386
56387
56388var _typeof = __webpack_require__(39);
56389
56390Object.defineProperty(exports, "__esModule", {
56391 value: true
56392});
56393exports.default = void 0;
56394
56395var util = _interopRequireWildcard(__webpack_require__(40));
56396
56397function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
56398
56399function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
56400
56401/**
56402 * Rule for validating minimum and maximum allowed values.
56403 *
56404 * @param rule The validation rule.
56405 * @param value The value of the field on the source object.
56406 * @param errors An array of errors that this rule may add
56407 * validation errors to.
56408 * @param options The validation options.
56409 * @param options.messages The validation messages.
56410 */
56411function length(rule, value, errors, options) {
56412 var key = null;
56413 var isNum = typeof value === 'number';
56414 var isStr = typeof value === 'string';
56415 var isArr = Array.isArray(value);
56416
56417 if (isNum) {
56418 key = 'number';
56419 } else if (isStr) {
56420 key = 'string';
56421 } else if (isArr) {
56422 key = 'array';
56423 }
56424
56425 if (!key) {
56426 return false;
56427 }
56428
56429 var val = value;
56430 var length = Number(rule.length);
56431 var maxLength = Number(rule.maxLength);
56432 var minLength = Number(rule.minLength);
56433
56434 if (minLength || maxLength || length) {
56435 if (isNum) {
56436 val = "".concat(val);
56437 }
56438
56439 val = val.length;
56440
56441 if (length && val !== rule.length) {
56442 errors.push(util.format(options.messages[key].length, rule.aliasName || rule.field, rule.length));
56443 } else if (val < minLength) {
56444 errors.push(util.format(options.messages[key].minLength, rule.aliasName || rule.field, rule.minLength));
56445 } else if (val > maxLength) {
56446 errors.push(util.format(options.messages[key].maxLength, rule.aliasName || rule.field, rule.maxLength));
56447 }
56448 }
56449}
56450
56451var _default = length;
56452exports.default = _default;
56453
56454/***/ }),
56455/* 362 */
56456/***/ (function(module, exports, __webpack_require__) {
56457
56458"use strict";
56459
56460
56461var _typeof = __webpack_require__(39);
56462
56463Object.defineProperty(exports, "__esModule", {
56464 value: true
56465});
56466exports.default = void 0;
56467
56468var util = _interopRequireWildcard(__webpack_require__(40));
56469
56470function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
56471
56472function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
56473
56474/**
56475 * Rule for validating a regular expression pattern.
56476 *
56477 * @param rule The validation rule.
56478 * @param value The value of the field on the source object.
56479 * @param errors An array of errors that this rule may add
56480 * validation errors to.
56481 * @param options The validation options.
56482 * @param options.messages The validation messages.
56483 */
56484function pattern(rule, value, errors, options) {
56485 if (rule.pattern) {
56486 if (rule.pattern instanceof RegExp) {
56487 if (!rule.pattern.test(value)) {
56488 errors.push(util.format(options.messages.pattern, rule.aliasName || rule.field, value, rule.pattern));
56489 }
56490 } else if (typeof rule.pattern === 'string') {
56491 var _pattern = new RegExp(rule.pattern);
56492
56493 if (!_pattern.test(value)) {
56494 errors.push(util.format(options.messages.pattern, rule.aliasName || rule.field, value, rule.pattern));
56495 }
56496 }
56497 }
56498}
56499
56500var _default = pattern;
56501exports.default = _default;
56502
56503/***/ }),
56504/* 363 */
56505/***/ (function(module, exports, __webpack_require__) {
56506
56507"use strict";
56508/* WEBPACK VAR INJECTION */(function(process) {
56509
56510var _interopRequireDefault = __webpack_require__(28);
56511
56512Object.defineProperty(exports, "__esModule", {
56513 value: true
56514});
56515exports.getIn = getIn;
56516exports.setIn = setIn;
56517exports.deleteIn = deleteIn;
56518exports.getErrorStrs = getErrorStrs;
56519exports.getParams = getParams;
56520exports.getValueFromEvent = getValueFromEvent;
56521exports.mapValidateRules = mapValidateRules;
56522exports.warning = void 0;
56523
56524var _defineProperty2 = _interopRequireDefault(__webpack_require__(98));
56525
56526var _extends3 = _interopRequireDefault(__webpack_require__(61));
56527
56528function getIn(state, name) {
56529 if (!state) {
56530 return state;
56531 }
56532
56533 var path = typeof name === 'string' ? name.replace(/\[/, '.').replace(/\]/, '').split('.') : '';
56534 var length = path.length;
56535
56536 if (!length) {
56537 return undefined;
56538 }
56539
56540 var result = state;
56541
56542 for (var i = 0; i < length && !!result; ++i) {
56543 result = result[path[i]];
56544 }
56545
56546 return result;
56547}
56548
56549var setInWithPath = function setInWithPath(state, value, path, pathIndex) {
56550 if (pathIndex >= path.length) {
56551 return value;
56552 }
56553
56554 var first = path[pathIndex];
56555 var next = setInWithPath(state && state[first], value, path, pathIndex + 1);
56556
56557 if (!state) {
56558 var initialized = isNaN(first) ? {} : [];
56559 initialized[first] = next;
56560 return initialized;
56561 }
56562
56563 if (Array.isArray(state)) {
56564 var copy = [].concat(state);
56565 copy[first] = next;
56566 return copy;
56567 }
56568
56569 return (0, _extends3.default)({}, state, (0, _defineProperty2.default)({}, first, next));
56570};
56571
56572function setIn(state, name, value) {
56573 return setInWithPath(state, value, typeof name === 'string' ? name.replace(/\[/, '.').replace(/\]/, '').split('.') : '', 0);
56574}
56575
56576function deleteIn(state, name) {
56577 if (!state) {
56578 return;
56579 }
56580
56581 var path = typeof name === 'string' ? name.replace(/\[/, '.').replace(/\]/, '').split('.') : '';
56582 var length = path.length;
56583
56584 if (!length) {
56585 return state;
56586 }
56587
56588 var result = state;
56589
56590 for (var i = 0; i < length && !!result; ++i) {
56591 if (i === length - 1) {
56592 delete result[path[i]];
56593 } else {
56594 result = result[path[i]];
56595 }
56596 }
56597
56598 return state;
56599}
56600
56601function getErrorStrs(errors, processErrorMessage) {
56602 if (errors) {
56603 return errors.map(function (e) {
56604 var message = typeof e.message !== 'undefined' ? e.message : e;
56605
56606 if (typeof processErrorMessage === 'function') {
56607 return processErrorMessage(message);
56608 }
56609
56610 return message;
56611 });
56612 }
56613
56614 return errors;
56615}
56616
56617function getParams(ns, cb) {
56618 var names = typeof ns === 'string' ? [ns] : ns;
56619 var callback = cb;
56620
56621 if (cb === undefined && typeof names === 'function') {
56622 callback = names;
56623 names = undefined;
56624 }
56625
56626 return {
56627 names: names,
56628 callback: callback
56629 };
56630}
56631/**
56632 * 从组件事件中获取数据
56633 * @param e Event或者value
56634 * @returns value
56635 */
56636
56637
56638function getValueFromEvent(e) {
56639 // support custom element
56640 if (!e || !e.target) {
56641 return e;
56642 }
56643
56644 var target = e.target;
56645
56646 if (target.type === 'checkbox') {
56647 return target.checked;
56648 } else if (target.type === 'radio') {
56649 //兼容原生radioGroup
56650 if (target.value) {
56651 return target.value;
56652 } else {
56653 return target.checked;
56654 }
56655 }
56656
56657 return target.value;
56658}
56659
56660function validateMap(rulesMap, rule, defaultTrigger) {
56661 var nrule = (0, _extends3.default)({}, rule);
56662
56663 if (!nrule.trigger) {
56664 nrule.trigger = [defaultTrigger];
56665 }
56666
56667 if (typeof nrule.trigger === 'string') {
56668 nrule.trigger = [nrule.trigger];
56669 }
56670
56671 for (var i = 0; i < nrule.trigger.length; i++) {
56672 var trigger = nrule.trigger[i];
56673
56674 if (trigger in rulesMap) {
56675 rulesMap[trigger].push(nrule);
56676 } else {
56677 rulesMap[trigger] = [nrule];
56678 }
56679 }
56680
56681 delete nrule.trigger;
56682}
56683/**
56684 * 提取rule里面的trigger并且做映射
56685 * @param {Array} rules 规则
56686 * @param {String} defaultTrigger 默认触发
56687 * @return {Object} {onChange:rule1, onBlur: rule2}
56688 */
56689
56690
56691function mapValidateRules(rules, defaultTrigger) {
56692 var rulesMap = {};
56693 rules.forEach(function (rule) {
56694 validateMap(rulesMap, rule, defaultTrigger);
56695 });
56696 return rulesMap;
56697}
56698
56699var warn = function warn() {};
56700
56701if (typeof process !== 'undefined' && process.env && "production" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {
56702 warn = function warn() {
56703 /* eslint-disable no-console */
56704 if (typeof console !== 'undefined' && console.error) {
56705 var _console;
56706
56707 (_console = console).error.apply(_console, arguments);
56708 }
56709 };
56710}
56711
56712var warning = warn;
56713exports.warning = warning;
56714/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(364)))
56715
56716/***/ }),
56717/* 364 */
56718/***/ (function(module, exports) {
56719
56720// shim for using process in browser
56721var process = module.exports = {};
56722
56723// cached from whatever global is present so that test runners that stub it
56724// don't break things. But we need to wrap it in a try catch in case it is
56725// wrapped in strict mode code which doesn't define any globals. It's inside a
56726// function because try/catches deoptimize in certain engines.
56727
56728var cachedSetTimeout;
56729var cachedClearTimeout;
56730
56731function defaultSetTimout() {
56732 throw new Error('setTimeout has not been defined');
56733}
56734function defaultClearTimeout () {
56735 throw new Error('clearTimeout has not been defined');
56736}
56737(function () {
56738 try {
56739 if (typeof setTimeout === 'function') {
56740 cachedSetTimeout = setTimeout;
56741 } else {
56742 cachedSetTimeout = defaultSetTimout;
56743 }
56744 } catch (e) {
56745 cachedSetTimeout = defaultSetTimout;
56746 }
56747 try {
56748 if (typeof clearTimeout === 'function') {
56749 cachedClearTimeout = clearTimeout;
56750 } else {
56751 cachedClearTimeout = defaultClearTimeout;
56752 }
56753 } catch (e) {
56754 cachedClearTimeout = defaultClearTimeout;
56755 }
56756} ())
56757function runTimeout(fun) {
56758 if (cachedSetTimeout === setTimeout) {
56759 //normal enviroments in sane situations
56760 return setTimeout(fun, 0);
56761 }
56762 // if setTimeout wasn't available but was latter defined
56763 if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
56764 cachedSetTimeout = setTimeout;
56765 return setTimeout(fun, 0);
56766 }
56767 try {
56768 // when when somebody has screwed with setTimeout but no I.E. maddness
56769 return cachedSetTimeout(fun, 0);
56770 } catch(e){
56771 try {
56772 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
56773 return cachedSetTimeout.call(null, fun, 0);
56774 } catch(e){
56775 // 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
56776 return cachedSetTimeout.call(this, fun, 0);
56777 }
56778 }
56779
56780
56781}
56782function runClearTimeout(marker) {
56783 if (cachedClearTimeout === clearTimeout) {
56784 //normal enviroments in sane situations
56785 return clearTimeout(marker);
56786 }
56787 // if clearTimeout wasn't available but was latter defined
56788 if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
56789 cachedClearTimeout = clearTimeout;
56790 return clearTimeout(marker);
56791 }
56792 try {
56793 // when when somebody has screwed with setTimeout but no I.E. maddness
56794 return cachedClearTimeout(marker);
56795 } catch (e){
56796 try {
56797 // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
56798 return cachedClearTimeout.call(null, marker);
56799 } catch (e){
56800 // 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.
56801 // Some versions of I.E. have different rules for clearTimeout vs setTimeout
56802 return cachedClearTimeout.call(this, marker);
56803 }
56804 }
56805
56806
56807
56808}
56809var queue = [];
56810var draining = false;
56811var currentQueue;
56812var queueIndex = -1;
56813
56814function cleanUpNextTick() {
56815 if (!draining || !currentQueue) {
56816 return;
56817 }
56818 draining = false;
56819 if (currentQueue.length) {
56820 queue = currentQueue.concat(queue);
56821 } else {
56822 queueIndex = -1;
56823 }
56824 if (queue.length) {
56825 drainQueue();
56826 }
56827}
56828
56829function drainQueue() {
56830 if (draining) {
56831 return;
56832 }
56833 var timeout = runTimeout(cleanUpNextTick);
56834 draining = true;
56835
56836 var len = queue.length;
56837 while(len) {
56838 currentQueue = queue;
56839 queue = [];
56840 while (++queueIndex < len) {
56841 if (currentQueue) {
56842 currentQueue[queueIndex].run();
56843 }
56844 }
56845 queueIndex = -1;
56846 len = queue.length;
56847 }
56848 currentQueue = null;
56849 draining = false;
56850 runClearTimeout(timeout);
56851}
56852
56853process.nextTick = function (fun) {
56854 var args = new Array(arguments.length - 1);
56855 if (arguments.length > 1) {
56856 for (var i = 1; i < arguments.length; i++) {
56857 args[i - 1] = arguments[i];
56858 }
56859 }
56860 queue.push(new Item(fun, args));
56861 if (queue.length === 1 && !draining) {
56862 runTimeout(drainQueue);
56863 }
56864};
56865
56866// v8 likes predictible objects
56867function Item(fun, array) {
56868 this.fun = fun;
56869 this.array = array;
56870}
56871Item.prototype.run = function () {
56872 this.fun.apply(null, this.array);
56873};
56874process.title = 'browser';
56875process.browser = true;
56876process.env = {};
56877process.argv = [];
56878process.version = ''; // empty string to avoid regexp issues
56879process.versions = {};
56880
56881function noop() {}
56882
56883process.on = noop;
56884process.addListener = noop;
56885process.once = noop;
56886process.off = noop;
56887process.removeListener = noop;
56888process.removeAllListeners = noop;
56889process.emit = noop;
56890process.prependListener = noop;
56891process.prependOnceListener = noop;
56892
56893process.listeners = function (name) { return [] }
56894
56895process.binding = function (name) {
56896 throw new Error('process.binding is not supported');
56897};
56898
56899process.cwd = function () { return '/' };
56900process.chdir = function (dir) {
56901 throw new Error('process.chdir is not supported');
56902};
56903process.umask = function() { return 0; };
56904
56905
56906/***/ }),
56907/* 365 */
56908/***/ (function(module, exports, __webpack_require__) {
56909
56910"use strict";
56911
56912
56913exports.__esModule = true;
56914exports.cloneAndAddKey = cloneAndAddKey;
56915exports.scrollToFirstError = scrollToFirstError;
56916
56917var _react = __webpack_require__(0);
56918
56919var _reactDom = __webpack_require__(12);
56920
56921var _reactDom2 = _interopRequireDefault(_reactDom);
56922
56923function _interopRequireDefault(obj) {
56924 return obj && obj.__esModule ? obj : { default: obj };
56925}
56926
56927function cloneAndAddKey(element) {
56928 if (element && (0, _react.isValidElement)(element)) {
56929 var key = element.key || 'error';
56930 return (0, _react.cloneElement)(element, { key: key });
56931 }
56932 return element;
56933}
56934
56935function scrollToFirstError(_ref) {
56936 var errorsGroup = _ref.errorsGroup,
56937 options = _ref.options,
56938 instance = _ref.instance;
56939
56940 if (errorsGroup && options.scrollToFirstError) {
56941 var firstNode = void 0;
56942 var firstTop = void 0;
56943 for (var i in errorsGroup) {
56944 if (errorsGroup.hasOwnProperty(i)) {
56945 var node = _reactDom2.default.findDOMNode(instance[i]);
56946 if (!node) {
56947 return;
56948 }
56949 var top = node.offsetTop;
56950 if (firstTop === undefined || firstTop > top) {
56951 firstTop = top;
56952 firstNode = node;
56953 }
56954 }
56955 }
56956
56957 if (firstNode) {
56958 if (typeof options.scrollToFirstError === 'number' && window && typeof window.scrollTo === 'function') {
56959 var offsetLeft = document && document.body && document.body.offsetLeft ? document.body.offsetLeft : 0;
56960 window.scrollTo(offsetLeft, firstTop + options.scrollToFirstError);
56961 } else if (firstNode.scrollIntoViewIfNeeded) {
56962 firstNode.scrollIntoViewIfNeeded(true);
56963 }
56964 }
56965 }
56966}
56967
56968/***/ }),
56969/* 366 */
56970/***/ (function(module, exports, __webpack_require__) {
56971
56972"use strict";
56973
56974
56975exports.__esModule = true;
56976
56977var _extends2 = __webpack_require__(1);
56978
56979var _extends3 = _interopRequireDefault(_extends2);
56980
56981var _objectWithoutProperties2 = __webpack_require__(8);
56982
56983var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
56984
56985var _configProvider = __webpack_require__(9);
56986
56987var _configProvider2 = _interopRequireDefault(_configProvider);
56988
56989var _form = __webpack_require__(367);
56990
56991var _form2 = _interopRequireDefault(_form);
56992
56993var _item = __webpack_require__(370);
56994
56995var _item2 = _interopRequireDefault(_item);
56996
56997var _submit = __webpack_require__(374);
56998
56999var _submit2 = _interopRequireDefault(_submit);
57000
57001var _reset = __webpack_require__(375);
57002
57003var _reset2 = _interopRequireDefault(_reset);
57004
57005var _error = __webpack_require__(178);
57006
57007var _error2 = _interopRequireDefault(_error);
57008
57009function _interopRequireDefault(obj) {
57010 return obj && obj.__esModule ? obj : { default: obj };
57011}
57012
57013_form2.default.Item = _configProvider2.default.config(_item2.default, {
57014 transform: /* istanbul ignore next */function transform(props, deprecated) {
57015 if ('validateStatus' in props) {
57016 deprecated('validateStatus', 'validateState', 'Form.Item');
57017
57018 var _props = props,
57019 validateStatus = _props.validateStatus,
57020 others = (0, _objectWithoutProperties3.default)(_props, ['validateStatus']);
57021
57022 props = (0, _extends3.default)({ validateState: validateStatus }, others);
57023 }
57024
57025 return props;
57026 }
57027});
57028_form2.default.Submit = _submit2.default;
57029_form2.default.Reset = _reset2.default;
57030_form2.default.Error = _error2.default;
57031
57032exports.default = _configProvider2.default.config(_form2.default, {
57033 transform: /* istanbul ignore next */function transform(props, deprecated) {
57034 if ('direction' in props) {
57035 deprecated('direction', 'inline', 'Form');
57036 var _props2 = props,
57037 direction = _props2.direction,
57038 others = (0, _objectWithoutProperties3.default)(_props2, ['direction']);
57039
57040 if (direction === 'hoz') {
57041 props = (0, _extends3.default)({ inline: true }, others);
57042 }
57043 }
57044
57045 return props;
57046 }
57047});
57048module.exports = exports['default'];
57049
57050/***/ }),
57051/* 367 */
57052/***/ (function(module, exports, __webpack_require__) {
57053
57054"use strict";
57055
57056
57057exports.__esModule = true;
57058exports.default = undefined;
57059
57060var _extends2 = __webpack_require__(1);
57061
57062var _extends3 = _interopRequireDefault(_extends2);
57063
57064var _classCallCheck2 = __webpack_require__(2);
57065
57066var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
57067
57068var _possibleConstructorReturn2 = __webpack_require__(3);
57069
57070var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
57071
57072var _inherits2 = __webpack_require__(4);
57073
57074var _inherits3 = _interopRequireDefault(_inherits2);
57075
57076var _typeof2 = __webpack_require__(14);
57077
57078var _typeof3 = _interopRequireDefault(_typeof2);
57079
57080var _class, _temp;
57081
57082var _react = __webpack_require__(0);
57083
57084var _react2 = _interopRequireDefault(_react);
57085
57086var _propTypes = __webpack_require__(5);
57087
57088var _propTypes2 = _interopRequireDefault(_propTypes);
57089
57090var _classnames = __webpack_require__(7);
57091
57092var _classnames2 = _interopRequireDefault(_classnames);
57093
57094var _util = __webpack_require__(6);
57095
57096var _field = __webpack_require__(172);
57097
57098var _field2 = _interopRequireDefault(_field);
57099
57100var _responsiveGrid = __webpack_require__(99);
57101
57102var _responsiveGrid2 = _interopRequireDefault(_responsiveGrid);
57103
57104function _interopRequireDefault(obj) {
57105 return obj && obj.__esModule ? obj : { default: obj };
57106}
57107
57108function pickerDefined(obj) {
57109 var newObj = {};
57110 Object.keys(obj).forEach(function (i) {
57111 if (typeof obj[i] !== 'undefined') {
57112 newObj[i] = obj[i];
57113 }
57114 });
57115 return newObj;
57116}
57117
57118function preventDefault(e) {
57119 e.preventDefault();
57120}
57121var getNewChildren = function getNewChildren(children, props) {
57122 var size = props.size,
57123 device = props.device,
57124 labelAlign = props.labelAlign,
57125 labelTextAlign = props.labelTextAlign,
57126 labelCol = props.labelCol,
57127 wrapperCol = props.wrapperCol,
57128 responsive = props.responsive,
57129 colon = props.colon;
57130
57131 return _react2.default.Children.map(children, function (child) {
57132 if (_util.obj.isReactFragment(child)) {
57133 return getNewChildren(child.props.children, props);
57134 }
57135
57136 if (child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark === 'form_item') {
57137 var childrenProps = {
57138 labelCol: child.props.labelCol ? child.props.labelCol : labelCol,
57139 wrapperCol: child.props.wrapperCol ? child.props.wrapperCol : wrapperCol,
57140 labelAlign: child.props.labelAlign ? child.props.labelAlign : device === 'phone' ? 'top' : labelAlign,
57141 labelTextAlign: child.props.labelTextAlign ? child.props.labelTextAlign : labelTextAlign,
57142 colon: 'colon' in child.props ? child.props.colon : colon,
57143 size: child.props.size ? child.props.size : size,
57144 responsive: responsive
57145 };
57146 return _react2.default.cloneElement(child, pickerDefined(childrenProps));
57147 }
57148 return child;
57149 });
57150};
57151
57152/** Form */
57153var Form = (_temp = _class = function (_React$Component) {
57154 (0, _inherits3.default)(Form, _React$Component);
57155
57156 function Form(props) {
57157 (0, _classCallCheck3.default)(this, Form);
57158
57159 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
57160
57161 _this.onChange = function (name, value) {
57162 _this.props.onChange(_this._formField.getValues(), {
57163 name: name,
57164 value: value,
57165 field: _this._formField
57166 });
57167 };
57168
57169 _this._formField = null;
57170 if (props.field !== false) {
57171 var options = (0, _extends3.default)({}, props.fieldOptions, {
57172 onChange: _this.onChange
57173 });
57174
57175 if (props.field) {
57176 _this._formField = props.field;
57177 var onChange = _this._formField.options.onChange;
57178 options.onChange = _util.func.makeChain(onChange, _this.onChange);
57179 _this._formField.setOptions && _this._formField.setOptions(options);
57180 } else {
57181 if ('value' in props) {
57182 options.values = props.value;
57183 }
57184
57185 _this._formField = new _field2.default(_this, options);
57186 }
57187
57188 if (props.locale && props.locale.Validate) {
57189 _this._formField.setOptions({ messages: props.locale.Validate });
57190 }
57191
57192 props.saveField(_this._formField);
57193 }
57194 return _this;
57195 }
57196
57197 Form.prototype.getChildContext = function getChildContext() {
57198 return {
57199 _formField: this.props.field ? this.props.field : this._formField,
57200 _formSize: this.props.size,
57201 _formDisabled: this.props.disabled,
57202 _formPreview: this.props.isPreview,
57203 _formFullWidth: this.props.fullWidth,
57204 _formLabelForErrorMessage: this.props.useLabelForErrorMessage
57205 };
57206 };
57207
57208 Form.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
57209 var props = this.props;
57210
57211 if (this._formField) {
57212 if ('value' in props && props.value !== prevProps.value) {
57213 this._formField.setValues(props.value);
57214 }
57215 if ('error' in props && props.error !== prevProps.error) {
57216 this._formField.setValues(props.error);
57217 }
57218 }
57219 };
57220
57221 Form.prototype.render = function render() {
57222 var _classNames;
57223
57224 var _props = this.props,
57225 className = _props.className,
57226 inline = _props.inline,
57227 size = _props.size,
57228 device = _props.device,
57229 labelAlign = _props.labelAlign,
57230 labelTextAlign = _props.labelTextAlign,
57231 onSubmit = _props.onSubmit,
57232 children = _props.children,
57233 labelCol = _props.labelCol,
57234 wrapperCol = _props.wrapperCol,
57235 style = _props.style,
57236 prefix = _props.prefix,
57237 rtl = _props.rtl,
57238 isPreview = _props.isPreview,
57239 Tag = _props.component,
57240 responsive = _props.responsive,
57241 gap = _props.gap,
57242 colon = _props.colon;
57243
57244 var formClassName = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'form'] = true, _classNames[prefix + 'inline'] = inline, _classNames['' + prefix + size] = size, _classNames[prefix + 'form-responsive-grid'] = responsive, _classNames[prefix + 'form-preview'] = isPreview, _classNames[className] = !!className, _classNames));
57245
57246 var newChildren = getNewChildren(children, this.props);
57247
57248 return _react2.default.createElement(Tag, (0, _extends3.default)({
57249 role: 'grid'
57250 }, _util.obj.pickOthers(Form.propTypes, this.props), {
57251 className: formClassName,
57252 style: style,
57253 dir: rtl ? 'rtl' : undefined,
57254 onSubmit: onSubmit
57255 }), responsive ? _react2.default.createElement(_responsiveGrid2.default, { gap: gap }, newChildren) : newChildren);
57256 };
57257
57258 return Form;
57259}(_react2.default.Component), _class.propTypes = {
57260 /**
57261 * 样式前缀
57262 */
57263 prefix: _propTypes2.default.string,
57264 /**
57265 * 内联表单
57266 */
57267 inline: _propTypes2.default.bool,
57268 /**
57269 * 单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。
57270 * @enumdesc 大, 中, 小
57271 */
57272 size: _propTypes2.default.oneOf(['large', 'medium', 'small']),
57273 /**
57274 * 单个 Item 中表单类组件宽度是否是100%
57275 */
57276 fullWidth: _propTypes2.default.bool,
57277 /**
57278 * 标签的位置, 如果不设置 labelCol 和 wrapperCol 那么默认是标签在上
57279 * @enumdesc 上, 左, 内
57280 */
57281 labelAlign: _propTypes2.default.oneOf(['top', 'left', 'inset']),
57282 /**
57283 * 标签的左右对齐方式
57284 * @enumdesc 左, 右
57285 */
57286 labelTextAlign: _propTypes2.default.oneOf(['left', 'right']),
57287 /**
57288 * field 实例, 传 false 会禁用 field
57289 */
57290 field: _propTypes2.default.any,
57291 /**
57292 * 保存 Form 自动生成的 field 对象
57293 */
57294 saveField: _propTypes2.default.func,
57295 /**
57296 * 控制第一级 Item 的 labelCol
57297 */
57298 labelCol: _propTypes2.default.object,
57299 /**
57300 * 控制第一级 Item 的 wrapperCol
57301 */
57302 wrapperCol: _propTypes2.default.object,
57303 /**
57304 * form内有 `htmlType="submit"` 的元素的时候会触发
57305 */
57306 onSubmit: _propTypes2.default.func,
57307 /**
57308 * 子元素
57309 */
57310 children: _propTypes2.default.any,
57311 /**
57312 * 扩展class
57313 */
57314 className: _propTypes2.default.string,
57315 /**
57316 * 自定义内联样式
57317 */
57318 style: _propTypes2.default.object,
57319 /**
57320 * 表单数值
57321 */
57322 value: _propTypes2.default.object,
57323 /**
57324 * 表单变化回调
57325 * @param {Object} values 表单数据
57326 * @param {Object} item 详细
57327 * @param {String} item.name 变化的组件名
57328 * @param {String} item.value 变化的数据
57329 * @param {Object} item.field field 实例
57330 */
57331 onChange: _propTypes2.default.func,
57332 /**
57333 * 设置标签类型
57334 */
57335 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func]),
57336 fieldOptions: _propTypes2.default.object,
57337 rtl: _propTypes2.default.bool,
57338 /**
57339 * 预设屏幕宽度
57340 */
57341 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
57342 /**
57343 * 是否开启内置的响应式布局 (使用ResponsiveGrid)
57344 * @version 1.19
57345 */
57346 responsive: _propTypes2.default.bool,
57347 /**
57348 * 是否开启预览态
57349 * @version 1.19
57350 */
57351 isPreview: _propTypes2.default.bool,
57352 /**
57353 * 是否使用 label 替换校验信息的 name 字段
57354 * @version 1.20
57355 */
57356 useLabelForErrorMessage: _propTypes2.default.bool,
57357 /**
57358 * 表示是否显示 label 后面的冒号
57359 * @version 1.22
57360 */
57361 colon: _propTypes2.default.bool,
57362 /**
57363 * 是否禁用表单
57364 */
57365 disabled: _propTypes2.default.bool,
57366 // 在 responsive模式下,透传给 ResponsiveGrid的, 表示 每个 cell 之间的间距, [bottom&top, right&left]
57367 gap: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.number])
57368}, _class.defaultProps = {
57369 prefix: 'next-',
57370 onSubmit: preventDefault,
57371 size: 'medium',
57372 labelAlign: 'left',
57373 onChange: _util.func.noop,
57374 component: 'form',
57375 saveField: _util.func.noop,
57376 device: 'desktop',
57377 colon: false,
57378 disabled: false
57379}, _class.childContextTypes = {
57380 _formField: _propTypes2.default.object,
57381 _formSize: _propTypes2.default.string,
57382 _formDisabled: _propTypes2.default.bool,
57383 _formPreview: _propTypes2.default.bool,
57384 _formFullWidth: _propTypes2.default.bool,
57385 _formLabelForErrorMessage: _propTypes2.default.bool
57386}, _temp);
57387Form.displayName = 'Form';
57388exports.default = Form;
57389module.exports = exports['default'];
57390
57391/***/ }),
57392/* 368 */
57393/***/ (function(module, exports, __webpack_require__) {
57394
57395"use strict";
57396
57397
57398exports.__esModule = true;
57399exports.filterUndefinedValue = filterUndefinedValue;
57400exports.stripObject = stripObject;
57401
57402var _util = __webpack_require__(6);
57403
57404var isPlainObject = _util.obj.isPlainObject;
57405
57406/**
57407 * 过滤 undefined 类型的值
57408 * @param {*} obj
57409 * @return {Object}
57410 */
57411
57412function filterUndefinedValue(object) {
57413 if (!isPlainObject(object)) {
57414 return object;
57415 }
57416
57417 var obj = {};
57418
57419 Object.keys(object).forEach(function (key) {
57420 var value = object[key];
57421
57422 if (value !== undefined) {
57423 obj[key] = value;
57424 }
57425 });
57426
57427 return obj;
57428}
57429
57430/**
57431 * 从 obj 中去除 subObj
57432 * @param {*} obj
57433 * @param {*} subObj
57434 * @return {Object}
57435 */
57436function stripObject(obj, subObj) {
57437 var newObject = {};
57438
57439 Object.keys(obj).forEach(function (key) {
57440 if (!(key in subObj)) {
57441 newObject[key] = obj[key];
57442 }
57443 });
57444 return newObject;
57445}
57446
57447/***/ }),
57448/* 369 */
57449/***/ (function(module, exports, __webpack_require__) {
57450
57451"use strict";
57452
57453
57454exports.__esModule = true;
57455
57456var _classCallCheck2 = __webpack_require__(2);
57457
57458var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
57459
57460var _possibleConstructorReturn2 = __webpack_require__(3);
57461
57462var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
57463
57464var _inherits2 = __webpack_require__(4);
57465
57466var _inherits3 = _interopRequireDefault(_inherits2);
57467
57468var _class, _temp;
57469
57470var _react = __webpack_require__(0);
57471
57472var _react2 = _interopRequireDefault(_react);
57473
57474var _propTypes = __webpack_require__(5);
57475
57476var _propTypes2 = _interopRequireDefault(_propTypes);
57477
57478var _configProvider = __webpack_require__(9);
57479
57480var _configProvider2 = _interopRequireDefault(_configProvider);
57481
57482var _util = __webpack_require__(6);
57483
57484function _interopRequireDefault(obj) {
57485 return obj && obj.__esModule ? obj : { default: obj };
57486}
57487
57488var pickOthers = _util.obj.pickOthers;
57489/**
57490 * ResponsiveGrid.Cell
57491 */
57492
57493var Cell = (_temp = _class = function (_Component) {
57494 (0, _inherits3.default)(Cell, _Component);
57495
57496 function Cell() {
57497 (0, _classCallCheck3.default)(this, Cell);
57498 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
57499 }
57500
57501 Cell.prototype.render = function render() {
57502 var _props = this.props,
57503 View = _props.component,
57504 children = _props.children;
57505
57506 var others = pickOthers(Object.keys(Cell.propTypes), this.props);
57507
57508 return _react2.default.createElement(View, others, children);
57509 };
57510
57511 return Cell;
57512}(_react.Component), _class._typeMark = 'responsive_grid_cell', _class.propTypes = {
57513 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
57514 /**
57515 * 横向,占据几列
57516 */
57517 colSpan: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.object]),
57518 /**
57519 * 纵向,占据几行
57520 */
57521 rowSpan: _propTypes2.default.number,
57522 /**
57523 * 设置标签类型
57524 */
57525 component: _propTypes2.default.elementType
57526}, _class.defaultProps = {
57527 component: 'div',
57528 device: 'desktop'
57529}, _temp);
57530Cell.displayName = 'Cell';
57531exports.default = _configProvider2.default.config(Cell);
57532module.exports = exports['default'];
57533
57534/***/ }),
57535/* 370 */
57536/***/ (function(module, exports, __webpack_require__) {
57537
57538"use strict";
57539
57540
57541exports.__esModule = true;
57542exports.default = undefined;
57543
57544var _typeof2 = __webpack_require__(14);
57545
57546var _typeof3 = _interopRequireDefault(_typeof2);
57547
57548var _extends2 = __webpack_require__(1);
57549
57550var _extends3 = _interopRequireDefault(_extends2);
57551
57552var _classCallCheck2 = __webpack_require__(2);
57553
57554var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
57555
57556var _possibleConstructorReturn2 = __webpack_require__(3);
57557
57558var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
57559
57560var _inherits2 = __webpack_require__(4);
57561
57562var _inherits3 = _interopRequireDefault(_inherits2);
57563
57564var _class, _temp;
57565
57566var _react = __webpack_require__(0);
57567
57568var _react2 = _interopRequireDefault(_react);
57569
57570var _propTypes = __webpack_require__(5);
57571
57572var _propTypes2 = _interopRequireDefault(_propTypes);
57573
57574var _classnames = __webpack_require__(7);
57575
57576var _classnames2 = _interopRequireDefault(_classnames);
57577
57578var _grid = __webpack_require__(177);
57579
57580var _grid2 = _interopRequireDefault(_grid);
57581
57582var _responsiveGrid = __webpack_require__(99);
57583
57584var _responsiveGrid2 = _interopRequireDefault(_responsiveGrid);
57585
57586var _util = __webpack_require__(6);
57587
57588var _error = __webpack_require__(178);
57589
57590var _error2 = _interopRequireDefault(_error);
57591
57592var _enhance = __webpack_require__(373);
57593
57594function _interopRequireDefault(obj) {
57595 return obj && obj.__esModule ? obj : { default: obj };
57596}
57597
57598var Row = _grid2.default.Row,
57599 Col = _grid2.default.Col;
57600var Cell = _responsiveGrid2.default.Cell;
57601var isNil = _util.obj.isNil;
57602
57603/** Form.Item
57604 * @description 手动传递了 wrapCol labelCol 会使用 Grid 辅助布局; labelAlign='top' 会强制禁用 Grid
57605 * @order 1
57606 */
57607
57608var Item = (_temp = _class = function (_React$Component) {
57609 (0, _inherits3.default)(Item, _React$Component);
57610
57611 function Item() {
57612 (0, _classCallCheck3.default)(this, Item);
57613 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
57614 }
57615
57616 /**
57617 * 从子元素里面提取表单组件. TODO: 2.x 中改为只获取一个元素
57618 */
57619 Item.prototype.getNames = function getNames(children) {
57620 var name = this.props.name;
57621
57622 var childrenList = _react2.default.Children.toArray(children);
57623 var nameList = childrenList.filter(function (c) {
57624 return c.props && ('name' in c.props || 'data-meta' in c.props);
57625 }).map(function (c) {
57626 return c.props.name || c.props.id;
57627 });
57628
57629 if (nameList.length) {
57630 return nameList;
57631 } else if (name) {
57632 return [name];
57633 }
57634
57635 return [];
57636 };
57637
57638 Item.prototype.getHelper = function getHelper(children) {
57639 var help = this.props.help;
57640 var _formField = this.context._formField;
57641
57642 return _react2.default.createElement(_error2.default, { name: help === undefined ? this.getNames(children) : undefined, field: _formField }, help);
57643 };
57644
57645 Item.prototype.getState = function getState(children) {
57646 var validateState = this.props.validateState;
57647
57648 if (validateState) {
57649 return validateState;
57650 }
57651
57652 if (this.context._formField) {
57653 var getState = this.context._formField.getState;
57654
57655 var names = this.getNames(children);
57656 if (!names.length) {
57657 return '';
57658 }
57659
57660 // get first name
57661 return getState(names[0]);
57662 }
57663
57664 return undefined;
57665 };
57666
57667 Item.prototype.getSize = function getSize() {
57668 return this.props.size || this.context._formSize;
57669 };
57670
57671 Item.prototype.getDisabled = function getDisabled() {
57672 return 'disabled' in this.props ? this.props.disabled : this.context._formDisabled;
57673 };
57674
57675 Item.prototype.getIsPreview = function getIsPreview() {
57676 return 'isPreview' in this.props ? this.props.isPreview : this.context._formPreview;
57677 };
57678
57679 Item.prototype.getFullWidth = function getFullWidth() {
57680 return isNil(this.props.fullWidth) ? !!this.context._formFullWidth : this.props.fullWidth;
57681 };
57682
57683 Item.prototype.getLabelForErrorMessage = function getLabelForErrorMessage() {
57684 var label = this.props.label;
57685
57686 if (!label || typeof label !== 'string') {
57687 return null;
57688 }
57689
57690 label = label.replace(':', '').replace(':', '');
57691
57692 var labelForErrorMessage = 'useLabelForErrorMessage' in this.props ? this.props.useLabelForErrorMessage : this.context._formLabelForErrorMessage;
57693 if (labelForErrorMessage && label) {
57694 return label;
57695 }
57696
57697 return null;
57698 };
57699
57700 Item.prototype.getItemLabel = function getItemLabel(children) {
57701 var _classNames;
57702
57703 var _props = this.props,
57704 id = _props.id,
57705 required = _props.required,
57706 _props$asterisk = _props.asterisk,
57707 asterisk = _props$asterisk === undefined ? required : _props$asterisk,
57708 label = _props.label,
57709 labelCol = _props.labelCol,
57710 wrapperCol = _props.wrapperCol,
57711 prefix = _props.prefix,
57712 responsive = _props.responsive,
57713 labelWidth = _props.labelWidth,
57714 labelTextAlign = _props.labelTextAlign,
57715 colon = _props.colon;
57716
57717 var labelAlign = this.getLabelAlign(this.props.labelAlign, this.props.device);
57718
57719 if (!label) {
57720 return null;
57721 }
57722
57723 var ele = _react2.default.createElement('label', { htmlFor: id || this.getNames(children)[0], required: asterisk, key: 'label' }, label);
57724
57725 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'form-item-label'] = true, _classNames['has-colon'] = colon, _classNames[prefix + 'left'] = labelTextAlign === 'left', _classNames));
57726
57727 if (responsive && labelWidth && labelAlign !== 'top') {
57728 return _react2.default.createElement('div', { className: cls, style: { width: labelWidth } }, ele);
57729 }
57730
57731 if ((wrapperCol || labelCol) && labelAlign !== 'top') {
57732 return _react2.default.createElement(Col, (0, _extends3.default)({}, labelCol, { className: cls }), ele);
57733 }
57734
57735 return _react2.default.createElement('div', { className: cls }, ele);
57736 };
57737
57738 Item.prototype.getItemWrapper = function getItemWrapper(children) {
57739 var _this2 = this;
57740
57741 var _props2 = this.props,
57742 hasFeedback = _props2.hasFeedback,
57743 labelCol = _props2.labelCol,
57744 wrapperCol = _props2.wrapperCol,
57745 extra = _props2.extra,
57746 prefix = _props2.prefix,
57747 renderPreview = _props2.renderPreview,
57748 name = _props2.name;
57749
57750 var labelAlign = this.getLabelAlign(this.props.labelAlign, this.props.device);
57751
57752 var state = this.getState(children);
57753
57754 var isPreview = this.getIsPreview();
57755 var childrenProps = {
57756 size: this.getSize()
57757 };
57758
57759 if (isPreview) {
57760 childrenProps.isPreview = true;
57761 }
57762
57763 if ('renderPreview' in this.props && typeof renderPreview === 'function') {
57764 childrenProps.renderPreview = renderPreview;
57765 }
57766
57767 if (state && (state === 'error' || hasFeedback)) {
57768 childrenProps.state = state;
57769 }
57770
57771 if (labelAlign === 'inset') {
57772 childrenProps.label = this.getItemLabel(children);
57773 }
57774
57775 if (this.getDisabled()) {
57776 childrenProps.disabled = true;
57777 }
57778
57779 var labelForErrorMessage = this.getLabelForErrorMessage();
57780
57781 var ele = _react2.default.Children.map(children, function (child, idx) {
57782 if (child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && child.type._typeMark !== 'form_item' && child.type._typeMark !== 'form_error') {
57783 var extraProps = childrenProps;
57784 // 自己直接使用 field.init 会在 props 上面留下 data-meta
57785 // name 挪到 FormItem 上面,默认把第一个元素当做 Form 组件
57786 if (_this2.context._formField && !('data-meta' in child.props) && ('name' in child.props || name && idx === 0) //TODO:1.x 为了不BR, 2.x 中把优先级调换下,优先取 FormItem 的 name
57787 ) {
57788 var initName = 'name' in child.props && child.props.name ? child.props.name : name;
57789 extraProps = _this2.context._formField.init(initName, (0, _extends3.default)({}, (0, _enhance.getFieldInitCfg)(_this2.props, child.type.displayName, labelForErrorMessage), {
57790 props: (0, _extends3.default)({}, child.props, { ref: child.ref })
57791 }), childrenProps);
57792 } else {
57793 extraProps = (0, _extends3.default)({}, child.props, extraProps);
57794 }
57795
57796 return _react2.default.cloneElement(child, extraProps);
57797 }
57798
57799 return child;
57800 });
57801
57802 var help = this.getHelper(children);
57803
57804 if ((wrapperCol || labelCol) && labelAlign !== 'top') {
57805 return _react2.default.createElement(Col, (0, _extends3.default)({}, wrapperCol, { className: prefix + 'form-item-control', key: 'item' }), ele, ' ', help, ' ', extra);
57806 }
57807
57808 return _react2.default.createElement('div', { className: prefix + 'form-item-control' }, ele, ' ', help, ' ', extra);
57809 };
57810
57811 Item.prototype.getLabelAlign = function getLabelAlign(labelAlign, device) {
57812 if (device === 'phone') {
57813 return 'top';
57814 }
57815
57816 return labelAlign;
57817 };
57818
57819 Item.prototype.render = function render() {
57820 var _classNames2;
57821
57822 var _props3 = this.props,
57823 className = _props3.className,
57824 style = _props3.style,
57825 prefix = _props3.prefix,
57826 wrapperCol = _props3.wrapperCol,
57827 labelCol = _props3.labelCol,
57828 responsive = _props3.responsive,
57829 children = _props3.children;
57830
57831 var labelAlign = this.getLabelAlign(this.props.labelAlign, this.props.device);
57832
57833 var childrenNode = children;
57834 if (typeof children === 'function' && this.context._formField) {
57835 childrenNode = children(this.context._formField.getValues());
57836 }
57837
57838 var state = this.getState(childrenNode);
57839 var size = this.getSize();
57840 var fullWidth = this.getFullWidth();
57841 var isPreview = this.getIsPreview();
57842
57843 var itemClassName = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'form-item'] = true, _classNames2['' + prefix + labelAlign] = labelAlign, _classNames2['has-' + state] = !!state, _classNames2['' + prefix + size] = !!size, _classNames2[prefix + 'form-item-fullwidth'] = fullWidth, _classNames2['' + className] = !!className, _classNames2[prefix + 'form-preview'] = isPreview, _classNames2));
57844
57845 // 垂直模式并且左对齐才用到
57846 var Tag = responsive ? Cell : (wrapperCol || labelCol) && labelAlign !== 'top' ? Row : 'div';
57847 var label = labelAlign === 'inset' ? null : this.getItemLabel(childrenNode);
57848
57849 return _react2.default.createElement(Tag, (0, _extends3.default)({}, _util.obj.pickOthers(Item.propTypes, this.props), { className: itemClassName, style: style }), label, this.getItemWrapper(childrenNode));
57850 };
57851
57852 return Item;
57853}(_react2.default.Component), _class.propTypes = {
57854 /**
57855 * 样式前缀
57856 */
57857 prefix: _propTypes2.default.string,
57858 rtl: _propTypes2.default.bool,
57859 /**
57860 * label 标签的文本
57861 */
57862 label: _propTypes2.default.node,
57863 /**
57864 * label 标签布局,通 `<Col>` 组件,设置 span offset 值,如 {span: 8, offset: 16},该项仅在垂直表单有效
57865 */
57866 labelCol: _propTypes2.default.object,
57867 /**
57868 * 需要为输入控件设置布局样式时,使用该属性,用法同 labelCol
57869 */
57870 wrapperCol: _propTypes2.default.object,
57871 /**
57872 * 自定义提示信息,如不设置,则会根据校验规则自动生成.
57873 */
57874 help: _propTypes2.default.node,
57875 /**
57876 * 字段名,默认赋值给第一个子元素
57877 */
57878 name: _propTypes2.default.string,
57879 /**
57880 * 额外的提示信息,和 help 类似,当需要错误信息和提示文案同时出现时,可以使用这个。 位于错误信息后面
57881 */
57882 extra: _propTypes2.default.node,
57883 /**
57884 * 校验状态,如不设置,则会根据校验规则自动生成
57885 * @enumdesc 失败, 成功, 校验中, 警告
57886 */
57887 validateState: _propTypes2.default.oneOf(['error', 'success', 'loading', 'warning']),
57888 /**
57889 * 配合 validateState 属性使用,是否展示 success/loading 的校验状态图标, 目前只有Input支持
57890 */
57891 hasFeedback: _propTypes2.default.bool, //TODO: hasFeedback => validateStatus=[error,success,loading]
57892 /**
57893 * 自定义内联样式
57894 */
57895 style: _propTypes2.default.object,
57896 id: _propTypes2.default.string,
57897 /**
57898 * node 或者 function(values)
57899 */
57900 children: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.func]),
57901 /**
57902 * 单个 Item 的 size 自定义,优先级高于 Form 的 size, 并且当组件与 Item 一起使用时,组件自身设置 size 属性无效。
57903 */
57904 size: _propTypes2.default.oneOf(['large', 'small', 'medium']),
57905 /**
57906 * 单个 Item 中表单类组件宽度是否是100%
57907 */
57908 fullWidth: _propTypes2.default.bool,
57909 /**
57910 * 标签的位置, 如果不设置 labelCol 和 wrapperCol 那么默认是标签在上
57911 * @enumdesc 上, 左, 内
57912 */
57913 labelAlign: _propTypes2.default.oneOf(['top', 'left', 'inset']),
57914 /**
57915 * 标签的左右对齐方式
57916 * @enumdesc 左, 右
57917 */
57918 labelTextAlign: _propTypes2.default.oneOf(['left', 'right']),
57919 /**
57920 * 扩展class
57921 */
57922 className: _propTypes2.default.string,
57923 /**
57924 * [表单校验] 不能为空
57925 */
57926 required: _propTypes2.default.bool,
57927 /**
57928 * required 的星号是否显示
57929 */
57930 asterisk: _propTypes2.default.bool,
57931 /**
57932 * required 自定义错误信息
57933 */
57934 requiredMessage: _propTypes2.default.string,
57935 /**
57936 * required 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57937 */
57938 requiredTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57939 /**
57940 * [表单校验] 最小值
57941 */
57942 min: _propTypes2.default.number,
57943 /**
57944 * [表单校验] 最大值
57945 */
57946 max: _propTypes2.default.number,
57947 /**
57948 * min/max 自定义错误信息
57949 */
57950 minmaxMessage: _propTypes2.default.string,
57951 /**
57952 * min/max 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57953 */
57954 minmaxTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57955 /**
57956 * [表单校验] 字符串最小长度 / 数组最小个数
57957 */
57958 minLength: _propTypes2.default.number,
57959 /**
57960 * [表单校验] 字符串最大长度 / 数组最大个数
57961 */
57962 maxLength: _propTypes2.default.number,
57963 /**
57964 * minLength/maxLength 自定义错误信息
57965 */
57966 minmaxLengthMessage: _propTypes2.default.string,
57967 /**
57968 * minLength/maxLength 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57969 */
57970 minmaxLengthTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57971 /**
57972 * [表单校验] 字符串精确长度 / 数组精确个数
57973 */
57974 length: _propTypes2.default.number,
57975 /**
57976 * length 自定义错误信息
57977 */
57978 lengthMessage: _propTypes2.default.string,
57979 /**
57980 * length 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57981 */
57982 lengthTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57983 /**
57984 * 正则校验
57985 */
57986 pattern: _propTypes2.default.any,
57987 /**
57988 * pattern 自定义错误信息
57989 */
57990 patternMessage: _propTypes2.default.string,
57991 /**
57992 * pattern 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
57993 */
57994 patternTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
57995 /**
57996 * [表单校验] 四种常用的 pattern
57997 */
57998 format: _propTypes2.default.oneOf(['number', 'email', 'url', 'tel']),
57999 /**
58000 * format 自定义错误信息
58001 */
58002 formatMessage: _propTypes2.default.string,
58003 /**
58004 * format 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
58005 */
58006 formatTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
58007 /**
58008 * [表单校验] 自定义校验函数
58009 */
58010 validator: _propTypes2.default.func,
58011 /**
58012 * validator 校验何时触发,默认值 onChange, 原生事件均可使用 onChange/onBlur/onFocus/...
58013 */
58014 validatorTrigger: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
58015 /**
58016 * 是否修改数据时自动触发校验
58017 */
58018 autoValidate: _propTypes2.default.bool,
58019 /**
58020 * 预设屏幕宽度
58021 */
58022 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
58023 responsive: _propTypes2.default.bool,
58024 /**
58025 * 在响应式布局模式下,表单项占多少列
58026 */
58027 colSpan: _propTypes2.default.number,
58028 /**
58029 * 在响应式布局下,且label在左边时,label的宽度是多少
58030 */
58031 labelWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58032 /**
58033 * 是否开启预览态
58034 */
58035 isPreview: _propTypes2.default.bool,
58036 /**
58037 * 预览态模式下渲染的内容
58038 * @param {any} value 根据包裹的组件的 value 类型而决定
58039 */
58040 renderPreview: _propTypes2.default.func,
58041 /**
58042 * 是否使用 label 替换校验信息的 name 字段
58043 */
58044 useLabelForErrorMessage: _propTypes2.default.bool,
58045 /**
58046 * 表示是否显示 label 后面的冒号
58047 */
58048 colon: _propTypes2.default.bool,
58049 /**
58050 * 是否禁用表单
58051 */
58052 disabled: _propTypes2.default.bool,
58053 /**
58054 * 子元素的 value 名称
58055 */
58056 valueName: _propTypes2.default.string
58057}, _class.defaultProps = {
58058 prefix: 'next-',
58059 hasFeedback: false,
58060 labelWidth: 100
58061}, _class.contextTypes = {
58062 _formField: _propTypes2.default.object,
58063 _formSize: _propTypes2.default.oneOf(['large', 'small', 'medium']),
58064 _formDisabled: _propTypes2.default.bool,
58065 _formPreview: _propTypes2.default.bool,
58066 _formFullWidth: _propTypes2.default.bool,
58067 _formLabelForErrorMessage: _propTypes2.default.bool
58068}, _class._typeMark = 'form_item', _temp);
58069Item.displayName = 'Item';
58070exports.default = Item;
58071module.exports = exports['default'];
58072
58073/***/ }),
58074/* 371 */
58075/***/ (function(module, exports, __webpack_require__) {
58076
58077"use strict";
58078
58079
58080exports.__esModule = true;
58081exports.default = undefined;
58082
58083var _extends4 = __webpack_require__(1);
58084
58085var _extends5 = _interopRequireDefault(_extends4);
58086
58087var _objectWithoutProperties2 = __webpack_require__(8);
58088
58089var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
58090
58091var _classCallCheck2 = __webpack_require__(2);
58092
58093var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58094
58095var _possibleConstructorReturn2 = __webpack_require__(3);
58096
58097var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58098
58099var _inherits2 = __webpack_require__(4);
58100
58101var _inherits3 = _interopRequireDefault(_inherits2);
58102
58103var _class, _temp;
58104
58105var _react = __webpack_require__(0);
58106
58107var _react2 = _interopRequireDefault(_react);
58108
58109var _propTypes = __webpack_require__(5);
58110
58111var _propTypes2 = _interopRequireDefault(_propTypes);
58112
58113var _classnames = __webpack_require__(7);
58114
58115var _classnames2 = _interopRequireDefault(_classnames);
58116
58117function _interopRequireDefault(obj) {
58118 return obj && obj.__esModule ? obj : { default: obj };
58119}
58120
58121/**
58122 * Grid.Row
58123 * @order 1
58124 */
58125var Row = (_temp = _class = function (_Component) {
58126 (0, _inherits3.default)(Row, _Component);
58127
58128 function Row() {
58129 (0, _classCallCheck3.default)(this, Row);
58130 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
58131 }
58132
58133 Row.prototype.render = function render() {
58134 var _extends2, _extends3;
58135
58136 /* eslint-disable no-unused-vars */
58137 var _props = this.props,
58138 prefix = _props.prefix,
58139 pure = _props.pure,
58140 wrap = _props.wrap,
58141 fixed = _props.fixed,
58142 gutter = _props.gutter,
58143 fixedWidth = _props.fixedWidth,
58144 align = _props.align,
58145 justify = _props.justify,
58146 hidden = _props.hidden,
58147 className = _props.className,
58148 Tag = _props.component,
58149 children = _props.children,
58150 rtl = _props.rtl,
58151 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'pure', 'wrap', 'fixed', 'gutter', 'fixedWidth', 'align', 'justify', 'hidden', 'className', 'component', 'children', 'rtl']);
58152 /* eslint-enable no-unused-vars */
58153
58154 var hiddenClassObj = void 0;
58155 if (hidden === true) {
58156 var _hiddenClassObj;
58157
58158 hiddenClassObj = (_hiddenClassObj = {}, _hiddenClassObj[prefix + 'row-hidden'] = true, _hiddenClassObj);
58159 } else if (typeof hidden === 'string') {
58160 var _hiddenClassObj2;
58161
58162 hiddenClassObj = (_hiddenClassObj2 = {}, _hiddenClassObj2[prefix + 'row-' + hidden + '-hidden'] = !!hidden, _hiddenClassObj2);
58163 } else if (Array.isArray(hidden)) {
58164 hiddenClassObj = hidden.reduce(function (ret, point) {
58165 ret[prefix + 'row-' + point + '-hidden'] = !!point;
58166 return ret;
58167 }, {});
58168 }
58169
58170 var newClassName = (0, _classnames2.default)((0, _extends5.default)((_extends2 = {}, _extends2[prefix + 'row'] = true, _extends2[prefix + 'row-wrap'] = wrap, _extends2[prefix + 'row-fixed'] = fixed, _extends2[prefix + 'row-fixed-' + fixedWidth] = !!fixedWidth, _extends2[prefix + 'row-justify-' + justify] = !!justify, _extends2[prefix + 'row-align-' + align] = !!align, _extends2), hiddenClassObj, (_extends3 = {}, _extends3[className] = !!className, _extends3)));
58171
58172 var newChildren = children;
58173 var gutterNumber = parseInt(gutter, 10);
58174 if (gutterNumber !== 0) {
58175 var halfGutterString = gutterNumber / 2 + 'px';
58176 others.style = (0, _extends5.default)({
58177 marginLeft: '-' + halfGutterString,
58178 marginRight: '-' + halfGutterString
58179 }, others.style || {});
58180 newChildren = _react.Children.map(children, function (child) {
58181 if (child && child.type && typeof child.type === 'function' && child.type.isNextCol) {
58182 var newChild = (0, _react.cloneElement)(child, {
58183 style: (0, _extends5.default)({
58184 paddingLeft: halfGutterString,
58185 paddingRight: halfGutterString
58186 }, child.style || {})
58187 });
58188 return newChild;
58189 }
58190
58191 return child;
58192 });
58193 }
58194
58195 return _react2.default.createElement(Tag, (0, _extends5.default)({
58196 dir: rtl ? 'rtl' : 'ltr',
58197 role: 'row',
58198 className: newClassName
58199 }, others), newChildren);
58200 };
58201
58202 return Row;
58203}(_react.Component), _class.propTypes = {
58204 prefix: _propTypes2.default.string,
58205 pure: _propTypes2.default.bool,
58206 rtl: _propTypes2.default.bool,
58207 className: _propTypes2.default.string,
58208 style: _propTypes2.default.object,
58209 /**
58210 * 行内容
58211 */
58212 children: _propTypes2.default.node,
58213 /**
58214 * 列间隔
58215 */
58216 gutter: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58217 /**
58218 * 列在行中宽度溢出后是否换行
58219 */
58220 wrap: _propTypes2.default.bool,
58221 /**
58222 * 行在某一断点下宽度是否保持不变(默认行宽度随视口变化而变化)
58223 */
58224 fixed: _propTypes2.default.bool,
58225 /**
58226 * 固定行的宽度为某一断点的宽度,不受视口影响而变动
58227 * @enumdesc 320px, 480px, 720px, 990px, 1200px, 1500px
58228 */
58229 fixedWidth: _propTypes2.default.oneOf(['xxs', 'xs', 's', 'm', 'l', 'xl']),
58230 /**
58231 * (不支持IE9浏览器)多列垂直方向对齐方式
58232 * @enumdesc 顶部对齐, 居中对齐, 底部对齐, 按第一行文字基线对齐, 未设置高度或设为 auto,将占满整个容器的高度
58233 */
58234 align: _propTypes2.default.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']),
58235 /**
58236 * (不支持IE9浏览器)行内具有多余空间时的布局方式
58237 * @enumdesc 左对齐, 居中对齐, 右对齐, 两端对齐,列之间间距相等, 每列具有相同的左右间距,行两端间距是列间距的二分之一
58238 */
58239 justify: _propTypes2.default.oneOf(['start', 'center', 'end', 'space-between', 'space-around']),
58240 /**
58241 * 行在不同断点下的显示与隐藏<br><br>**可选值**:<br>true(在所有断点下隐藏)<br>false(在所有断点下显示)<br>'xs'(在 xs 断点下隐藏)<br>['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏)
58242 */
58243 hidden: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.array]),
58244 /**
58245 * 指定以何种元素渲染该节点
58246 * - 默认为 'div'
58247 */
58248 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func])
58249}, _class.defaultProps = {
58250 prefix: 'next-',
58251 pure: false,
58252 fixed: false,
58253 gutter: 0,
58254 wrap: false,
58255 component: 'div'
58256}, _temp);
58257Row.displayName = 'Row';
58258exports.default = Row;
58259module.exports = exports['default'];
58260
58261/***/ }),
58262/* 372 */
58263/***/ (function(module, exports, __webpack_require__) {
58264
58265"use strict";
58266
58267
58268exports.__esModule = true;
58269exports.default = undefined;
58270
58271var _extends4 = __webpack_require__(1);
58272
58273var _extends5 = _interopRequireDefault(_extends4);
58274
58275var _typeof2 = __webpack_require__(14);
58276
58277var _typeof3 = _interopRequireDefault(_typeof2);
58278
58279var _objectWithoutProperties2 = __webpack_require__(8);
58280
58281var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
58282
58283var _classCallCheck2 = __webpack_require__(2);
58284
58285var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58286
58287var _possibleConstructorReturn2 = __webpack_require__(3);
58288
58289var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58290
58291var _inherits2 = __webpack_require__(4);
58292
58293var _inherits3 = _interopRequireDefault(_inherits2);
58294
58295var _class, _temp;
58296
58297var _react = __webpack_require__(0);
58298
58299var _react2 = _interopRequireDefault(_react);
58300
58301var _propTypes = __webpack_require__(5);
58302
58303var _propTypes2 = _interopRequireDefault(_propTypes);
58304
58305var _classnames = __webpack_require__(7);
58306
58307var _classnames2 = _interopRequireDefault(_classnames);
58308
58309function _interopRequireDefault(obj) {
58310 return obj && obj.__esModule ? obj : { default: obj };
58311}
58312
58313var breakPoints = ['xxs', 'xs', 's', 'm', 'l', 'xl'];
58314
58315/**
58316 * Grid.Col
58317 * @order 2
58318 */
58319var Col = (_temp = _class = function (_Component) {
58320 (0, _inherits3.default)(Col, _Component);
58321
58322 function Col() {
58323 (0, _classCallCheck3.default)(this, Col);
58324 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
58325 }
58326
58327 Col.prototype.render = function render() {
58328 var _this2 = this,
58329 _extends2,
58330 _extends3;
58331
58332 /* eslint-disable no-unused-vars */
58333 var _props = this.props,
58334 prefix = _props.prefix,
58335 pure = _props.pure,
58336 span = _props.span,
58337 offset = _props.offset,
58338 fixedSpan = _props.fixedSpan,
58339 fixedOffset = _props.fixedOffset,
58340 hidden = _props.hidden,
58341 align = _props.align,
58342 xxs = _props.xxs,
58343 xs = _props.xs,
58344 s = _props.s,
58345 m = _props.m,
58346 l = _props.l,
58347 xl = _props.xl,
58348 Tag = _props.component,
58349 className = _props.className,
58350 children = _props.children,
58351 rtl = _props.rtl,
58352 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'pure', 'span', 'offset', 'fixedSpan', 'fixedOffset', 'hidden', 'align', 'xxs', 'xs', 's', 'm', 'l', 'xl', 'component', 'className', 'children', 'rtl']);
58353 /* eslint-enable no-unused-vars */
58354
58355 var pointClassObj = breakPoints.reduce(function (ret, point) {
58356 var pointProps = {};
58357 if ((0, _typeof3.default)(_this2.props[point]) === 'object') {
58358 pointProps = _this2.props[point];
58359 } else {
58360 pointProps.span = _this2.props[point];
58361 }
58362
58363 ret[prefix + 'col-' + point + '-' + pointProps.span] = !!pointProps.span;
58364 ret[prefix + 'col-' + point + '-offset-' + pointProps.offset] = !!pointProps.offset;
58365
58366 return ret;
58367 }, {});
58368
58369 var hiddenClassObj = void 0;
58370 if (hidden === true) {
58371 var _hiddenClassObj;
58372
58373 hiddenClassObj = (_hiddenClassObj = {}, _hiddenClassObj[prefix + 'col-hidden'] = true, _hiddenClassObj);
58374 } else if (typeof hidden === 'string') {
58375 var _hiddenClassObj2;
58376
58377 hiddenClassObj = (_hiddenClassObj2 = {}, _hiddenClassObj2[prefix + 'col-' + hidden + '-hidden'] = !!hidden, _hiddenClassObj2);
58378 } else if (Array.isArray(hidden)) {
58379 hiddenClassObj = hidden.reduce(function (ret, point) {
58380 ret[prefix + 'col-' + point + '-hidden'] = !!point;
58381 return ret;
58382 }, {});
58383 }
58384
58385 var classes = (0, _classnames2.default)((0, _extends5.default)((_extends2 = {}, _extends2[prefix + 'col'] = true, _extends2[prefix + 'col-' + span] = !!span, _extends2[prefix + 'col-fixed-' + fixedSpan] = !!fixedSpan, _extends2[prefix + 'col-offset-' + offset] = !!offset, _extends2[prefix + 'col-offset-fixed-' + fixedOffset] = !!fixedOffset, _extends2[prefix + 'col-' + align] = !!align, _extends2), pointClassObj, hiddenClassObj, (_extends3 = {}, _extends3[className] = className, _extends3)));
58386
58387 return _react2.default.createElement(Tag, (0, _extends5.default)({
58388 dir: rtl ? 'rtl' : 'ltr',
58389 role: 'gridcell',
58390 className: classes
58391 }, others), children);
58392 };
58393
58394 return Col;
58395}(_react.Component), _class.isNextCol = true, _class.propTypes = {
58396 prefix: _propTypes2.default.string,
58397 pure: _propTypes2.default.bool,
58398 rtl: _propTypes2.default.bool,
58399 className: _propTypes2.default.string,
58400 /**
58401 * 列内容
58402 */
58403 children: _propTypes2.default.node,
58404 /**
58405 * 列宽度<br><br>**可选值**:<br>1, 2, 3, ..., 22, 23, 24
58406 */
58407 span: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58408 /**
58409 * 固定列宽度,宽度值为20 * 栅格数<br><br>**可选值**:<br>1, 2, 3, ..., 28, 29, 30
58410 */
58411 fixedSpan: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58412 /**
58413 * (不支持IE9浏览器)列偏移<br><br>**可选值**:<br>1, 2, 3, ..., 22, 23, 24
58414 */
58415 offset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58416 /**
58417 * (不支持IE9浏览器)固定列偏移,宽度值为20 * 栅格数<br><br>**可选值**:<br>1, 2, 3, ..., 28, 29, 30
58418 */
58419 fixedOffset: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
58420 /**
58421 * (不支持IE9浏览器)多列垂直方向对齐方式,可覆盖Row的align属性
58422 */
58423 align: _propTypes2.default.oneOf(['top', 'center', 'bottom', 'baseline', 'stretch']),
58424 /**
58425 * 列在不同断点下的显示与隐藏<br><br>**可选值**:<br>true(在所有断点下隐藏)<br>false(在所有断点下显示)<br>'xs'(在 xs 断点下隐藏)<br>['xxs', 'xs', 's', 'm', 'l', 'xl'](在 xxs, xs, s, m, l, xl 断点下隐藏)
58426 */
58427 hidden: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.string, _propTypes2.default.array]),
58428 /**
58429 * >=320px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58430 */
58431 xxs: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58432 /**
58433 * >=480px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58434 */
58435 xs: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58436 /**
58437 * >=720px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58438 */
58439 s: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58440 /**
58441 * >=990px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58442 */
58443 m: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58444 /**
58445 * >=1200px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58446 */
58447 l: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58448 /**
58449 * >=1500px,响应式栅格,可为栅格数(span)或一个包含栅格数(span)和偏移栅格数(offset)对象
58450 */
58451 xl: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number, _propTypes2.default.object]),
58452 /**
58453 * 指定以何种元素渲染该节点,默认为 'div'
58454 */
58455 component: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.func])
58456}, _class.defaultProps = {
58457 prefix: 'next-',
58458 pure: false,
58459 component: 'div'
58460}, _temp);
58461Col.displayName = 'Col';
58462exports.default = Col;
58463module.exports = exports['default'];
58464
58465/***/ }),
58466/* 373 */
58467/***/ (function(module, exports, __webpack_require__) {
58468
58469"use strict";
58470
58471
58472exports.__esModule = true;
58473exports.getRules = getRules;
58474exports.getFieldInitCfg = getFieldInitCfg;
58475function getCfgFromProps(props, type) {
58476 if (type in props) {
58477 return props[type];
58478 }
58479
58480 return undefined;
58481}
58482
58483function getRule(ruleName, props) {
58484 var _ref;
58485
58486 return _ref = {}, _ref[ruleName] = props[ruleName], _ref.message = getCfgFromProps(props, ruleName + 'Message'), _ref.trigger = getCfgFromProps(props, ruleName + 'Trigger'), _ref;
58487}
58488
58489function getValueName(props, displayName) {
58490 if (props.valueName) {
58491 return props.valueName;
58492 }
58493
58494 if (typeof displayName === 'string') {
58495 // Next Components are all wrappered by configProvider
58496 var componentName = displayName.replace(/Config\(/g, '').replace(/\)/g, '');
58497 if (['Switch', 'Checkbox', 'Radio'].indexOf(componentName) !== -1) {
58498 return 'checked';
58499 }
58500 }
58501
58502 return 'value';
58503}
58504
58505function getRules(props, labelForErrorMessage) {
58506 var result = [];
58507
58508 // required
58509 if (props.required) {
58510 result.push(getRule('required', props));
58511 }
58512
58513 var maxLength = Number(props.maxLength);
58514 var minLength = Number(props.minLength);
58515 if (minLength || maxLength) {
58516 result.push({
58517 minLength: minLength,
58518 maxLength: maxLength,
58519 // minLengthMessage maxLengthMessage had been deprected, please use minmaxLength. TODO: removed in 2.0
58520 message: getCfgFromProps(props, 'minmaxLengthMessage') || getCfgFromProps(props, 'minLengthMessage') || getCfgFromProps(props, 'maxLengthMessage'),
58521 trigger: getCfgFromProps(props, 'minmaxLengthTrigger') || getCfgFromProps(props, 'minLengthTrigger') || getCfgFromProps(props, 'maxLengthTrigger')
58522 });
58523 }
58524
58525 // length
58526 if (props.length) {
58527 result.push(getRule('length', props));
58528 }
58529
58530 // pattern
58531 if (props.pattern) {
58532 result.push(getRule('pattern', props));
58533 }
58534
58535 // format
58536 if (['number', 'tel', 'url', 'email'].indexOf(props.format) > -1) {
58537 result.push(getRule('format', props));
58538 }
58539
58540 var max = Number(props.max);
58541 var min = Number(props.min);
58542 // max min
58543 if (max || min) {
58544 result.push({
58545 min: min,
58546 max: max,
58547 // minMessage maxMessage had been deprected, please use minmaxLength. TODO: removed in 2.0
58548 message: getCfgFromProps(props, 'minmaxMessage') || getCfgFromProps(props, 'minMessage') || getCfgFromProps(props, 'maxMessage'),
58549 trigger: getCfgFromProps(props, 'minmaxTrigger') || getCfgFromProps(props, 'minTrigger') || getCfgFromProps(props, 'maxTrigger')
58550 });
58551 }
58552
58553 if (props.validator && typeof props.validator === 'function') {
58554 result.push({
58555 validator: props.validator,
58556 trigger: getCfgFromProps(props, 'validatorTrigger')
58557 });
58558 }
58559
58560 if (labelForErrorMessage) {
58561 result.forEach(function (r) {
58562 r.aliasName = labelForErrorMessage;
58563 });
58564 }
58565
58566 return result;
58567}
58568
58569function getFieldInitCfg(props, displayName, labelForErrorMessage) {
58570 return {
58571 valueName: getValueName(props, displayName),
58572 trigger: props.trigger ? props.trigger : 'onChange',
58573 autoValidate: props.autoValidate,
58574 rules: getRules(props, labelForErrorMessage)
58575 };
58576}
58577
58578/***/ }),
58579/* 374 */
58580/***/ (function(module, exports, __webpack_require__) {
58581
58582"use strict";
58583
58584
58585exports.__esModule = true;
58586
58587var _extends2 = __webpack_require__(1);
58588
58589var _extends3 = _interopRequireDefault(_extends2);
58590
58591var _classCallCheck2 = __webpack_require__(2);
58592
58593var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58594
58595var _possibleConstructorReturn2 = __webpack_require__(3);
58596
58597var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58598
58599var _inherits2 = __webpack_require__(4);
58600
58601var _inherits3 = _interopRequireDefault(_inherits2);
58602
58603var _class, _temp2;
58604
58605var _react = __webpack_require__(0);
58606
58607var _react2 = _interopRequireDefault(_react);
58608
58609var _propTypes = __webpack_require__(5);
58610
58611var _propTypes2 = _interopRequireDefault(_propTypes);
58612
58613var _button = __webpack_require__(17);
58614
58615var _button2 = _interopRequireDefault(_button);
58616
58617var _util = __webpack_require__(6);
58618
58619function _interopRequireDefault(obj) {
58620 return obj && obj.__esModule ? obj : { default: obj };
58621}
58622
58623/**
58624 * Form.Submit
58625 * @description 继承 Button API
58626 * @order 2
58627 */
58628var Submit = (_temp2 = _class = function (_React$Component) {
58629 (0, _inherits3.default)(Submit, _React$Component);
58630
58631 function Submit() {
58632 var _temp, _this, _ret;
58633
58634 (0, _classCallCheck3.default)(this, Submit);
58635
58636 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
58637 args[_key] = arguments[_key];
58638 }
58639
58640 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function () {
58641 var _this$props = _this.props,
58642 onClick = _this$props.onClick,
58643 validate = _this$props.validate;
58644
58645 var field = _this.context._formField || _this.props.field;
58646
58647 if (!field) {
58648 onClick();
58649 return;
58650 }
58651
58652 if (validate === true) {
58653 field.validate(function (errors) {
58654 onClick(field.getValues(), errors, field);
58655 });
58656 } else if (Array.isArray(validate)) {
58657 field.validate(validate, function (errors) {
58658 onClick(field.getValues(), errors, field);
58659 });
58660 } else {
58661 onClick(field.getValues(), null, field);
58662 }
58663 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
58664 }
58665
58666 Submit.prototype.render = function render() {
58667 var children = this.props.children;
58668
58669 return _react2.default.createElement(_button2.default, (0, _extends3.default)({}, _util.obj.pickOthers(Submit.propTypes, this.props), {
58670 onClick: this.handleClick
58671 }), children);
58672 };
58673
58674 return Submit;
58675}(_react2.default.Component), _class.propTypes = {
58676 /**
58677 * 点击提交后触发
58678 * @param {Object} value 数据
58679 * @param {Object} errors 错误数据
58680 * @param {class} field 实例
58681 */
58682 onClick: _propTypes2.default.func,
58683 /**
58684 * 是否校验/需要校验的 name 数组
58685 */
58686 validate: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.array]),
58687 /**
58688 * 自定义 field (在 Form 内不需要设置)
58689 */
58690 field: _propTypes2.default.object,
58691 children: _propTypes2.default.node
58692}, _class.defaultProps = {
58693 onClick: _util.func.noop
58694}, _class.contextTypes = {
58695 _formField: _propTypes2.default.object
58696}, _temp2);
58697Submit.displayName = 'Submit';
58698exports.default = Submit;
58699module.exports = exports['default'];
58700
58701/***/ }),
58702/* 375 */
58703/***/ (function(module, exports, __webpack_require__) {
58704
58705"use strict";
58706
58707
58708exports.__esModule = true;
58709
58710var _extends2 = __webpack_require__(1);
58711
58712var _extends3 = _interopRequireDefault(_extends2);
58713
58714var _classCallCheck2 = __webpack_require__(2);
58715
58716var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58717
58718var _possibleConstructorReturn2 = __webpack_require__(3);
58719
58720var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58721
58722var _inherits2 = __webpack_require__(4);
58723
58724var _inherits3 = _interopRequireDefault(_inherits2);
58725
58726var _class, _temp2;
58727
58728var _react = __webpack_require__(0);
58729
58730var _react2 = _interopRequireDefault(_react);
58731
58732var _propTypes = __webpack_require__(5);
58733
58734var _propTypes2 = _interopRequireDefault(_propTypes);
58735
58736var _button = __webpack_require__(17);
58737
58738var _button2 = _interopRequireDefault(_button);
58739
58740var _util = __webpack_require__(6);
58741
58742function _interopRequireDefault(obj) {
58743 return obj && obj.__esModule ? obj : { default: obj };
58744}
58745
58746/**
58747 * Form.Reset
58748 * @description 继承 Button API
58749 * @order 3
58750 */
58751var Reset = (_temp2 = _class = function (_React$Component) {
58752 (0, _inherits3.default)(Reset, _React$Component);
58753
58754 function Reset() {
58755 var _temp, _this, _ret;
58756
58757 (0, _classCallCheck3.default)(this, Reset);
58758
58759 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
58760 args[_key] = arguments[_key];
58761 }
58762
58763 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.handleClick = function () {
58764 var _this$props = _this.props,
58765 names = _this$props.names,
58766 toDefault = _this$props.toDefault,
58767 onClick = _this$props.onClick;
58768
58769 var field = _this.context._formField || _this.props.field;
58770
58771 if (!field) {
58772 onClick();
58773 return;
58774 }
58775
58776 if (toDefault) {
58777 field.resetToDefault(names);
58778 } else {
58779 field.reset(names);
58780 }
58781
58782 onClick();
58783 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
58784 }
58785
58786 Reset.prototype.render = function render() {
58787 var children = this.props.children;
58788
58789 return _react2.default.createElement(_button2.default, (0, _extends3.default)({}, _util.obj.pickOthers(Reset.propTypes, this.props), {
58790 onClick: this.handleClick
58791 }), children);
58792 };
58793
58794 return Reset;
58795}(_react2.default.Component), _class.propTypes = {
58796 /**
58797 * 自定义重置的字段
58798 */
58799 names: _propTypes2.default.array,
58800 /**
58801 * 点击提交后触发
58802 */
58803 onClick: _propTypes2.default.func,
58804 /**
58805 * 返回默认值
58806 */
58807 toDefault: _propTypes2.default.bool,
58808 /**
58809 * 自定义 field (在 Form 内不需要设置)
58810 */
58811 field: _propTypes2.default.object,
58812 children: _propTypes2.default.node
58813}, _class.defaultProps = {
58814 onClick: _util.func.noop
58815}, _class.contextTypes = {
58816 _formField: _propTypes2.default.object
58817}, _temp2);
58818Reset.displayName = 'Reset';
58819exports.default = Reset;
58820module.exports = exports['default'];
58821
58822/***/ }),
58823/* 376 */
58824/***/ (function(module, exports, __webpack_require__) {
58825
58826"use strict";
58827
58828
58829exports.__esModule = true;
58830
58831var _extends2 = __webpack_require__(1);
58832
58833var _extends3 = _interopRequireDefault(_extends2);
58834
58835var _objectWithoutProperties2 = __webpack_require__(8);
58836
58837var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
58838
58839var _classCallCheck2 = __webpack_require__(2);
58840
58841var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
58842
58843var _possibleConstructorReturn2 = __webpack_require__(3);
58844
58845var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
58846
58847var _inherits2 = __webpack_require__(4);
58848
58849var _inherits3 = _interopRequireDefault(_inherits2);
58850
58851var _class, _temp;
58852
58853var _react = __webpack_require__(0);
58854
58855var _react2 = _interopRequireDefault(_react);
58856
58857var _reactDom = __webpack_require__(12);
58858
58859var _propTypes = __webpack_require__(5);
58860
58861var _propTypes2 = _interopRequireDefault(_propTypes);
58862
58863var _reactLifecyclesCompat = __webpack_require__(10);
58864
58865var _classnames3 = __webpack_require__(7);
58866
58867var _classnames4 = _interopRequireDefault(_classnames3);
58868
58869var _button = __webpack_require__(17);
58870
58871var _button2 = _interopRequireDefault(_button);
58872
58873var _icon = __webpack_require__(11);
58874
58875var _icon2 = _interopRequireDefault(_icon);
58876
58877var _menu = __webpack_require__(16);
58878
58879var _menu2 = _interopRequireDefault(_menu);
58880
58881var _overlay = __webpack_require__(15);
58882
58883var _overlay2 = _interopRequireDefault(_overlay);
58884
58885var _configProvider = __webpack_require__(9);
58886
58887var _configProvider2 = _interopRequireDefault(_configProvider);
58888
58889var _util = __webpack_require__(6);
58890
58891function _interopRequireDefault(obj) {
58892 return obj && obj.__esModule ? obj : { default: obj };
58893}
58894
58895var Popup = _overlay2.default.Popup;
58896
58897/**
58898 * MenuButton
58899 */
58900
58901var MenuButton = (_temp = _class = function (_React$Component) {
58902 (0, _inherits3.default)(MenuButton, _React$Component);
58903
58904 function MenuButton(props, context) {
58905 (0, _classCallCheck3.default)(this, MenuButton);
58906
58907 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
58908
58909 _this.clickMenuItem = function (key) {
58910 var _this$props;
58911
58912 for (var _len = arguments.length, others = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
58913 others[_key - 1] = arguments[_key];
58914 }
58915
58916 var selectMode = _this.props.selectMode;
58917
58918 (_this$props = _this.props).onItemClick.apply(_this$props, [key].concat(others));
58919
58920 if (selectMode === 'multiple') {
58921 return;
58922 }
58923
58924 _this.onPopupVisibleChange(false, 'menuSelect');
58925 };
58926
58927 _this.selectMenu = function (keys) {
58928 var _this$props2;
58929
58930 for (var _len2 = arguments.length, others = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
58931 others[_key2 - 1] = arguments[_key2];
58932 }
58933
58934 if (!('selectedKeys' in _this.props)) {
58935 _this.setState({
58936 selectedKeys: keys
58937 });
58938 }
58939 (_this$props2 = _this.props).onSelect.apply(_this$props2, [keys].concat(others));
58940 };
58941
58942 _this.onPopupOpen = function () {
58943 var button = (0, _reactDom.findDOMNode)(_this);
58944 if (_this.props.autoWidth && button && _this.menu) {
58945 _this.menu.style.width = button.offsetWidth + 'px';
58946 }
58947 };
58948
58949 _this.onPopupVisibleChange = function (visible, type) {
58950 if (!('visible' in _this.props)) {
58951 _this.setState({
58952 visible: visible
58953 });
58954 }
58955 _this.props.onVisibleChange(visible, type);
58956 };
58957
58958 _this._menuRefHandler = function (ref) {
58959 _this.menu = (0, _reactDom.findDOMNode)(ref);
58960
58961 var refFn = _this.props.menuProps.ref;
58962 if (typeof refFn === 'function') {
58963 refFn(ref);
58964 }
58965 };
58966
58967 _this.state = {
58968 selectedKeys: props.defaultSelectedKeys,
58969 visible: props.defaultVisible
58970 };
58971 return _this;
58972 }
58973
58974 MenuButton.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
58975 var st = {};
58976
58977 if ('visible' in props) {
58978 st.visible = props.visible;
58979 }
58980
58981 if ('selectedKeys' in props) {
58982 st.selectedKeys = props.selectedKeys;
58983 }
58984
58985 return st;
58986 };
58987
58988 MenuButton.prototype.render = function render() {
58989 var _classnames, _classnames2;
58990
58991 var _props = this.props,
58992 prefix = _props.prefix,
58993 style = _props.style,
58994 className = _props.className,
58995 label = _props.label,
58996 popupTriggerType = _props.popupTriggerType,
58997 popupContainer = _props.popupContainer,
58998 popupStyle = _props.popupStyle,
58999 popupClassName = _props.popupClassName,
59000 popupProps = _props.popupProps,
59001 followTrigger = _props.followTrigger,
59002 selectMode = _props.selectMode,
59003 menuProps = _props.menuProps,
59004 children = _props.children,
59005 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'style', 'className', 'label', 'popupTriggerType', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'followTrigger', 'selectMode', 'menuProps', 'children']);
59006
59007 var state = this.state;
59008
59009 var classNames = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'menu-btn'] = true, _classnames[prefix + 'expand'] = state.visible, _classnames.opened = state.visible, _classnames), className);
59010
59011 var popupClassNames = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'menu-btn-popup'] = true, _classnames2), popupClassName);
59012
59013 var trigger = _react2.default.createElement(_button2.default, (0, _extends3.default)({ style: style, className: classNames }, _util.obj.pickOthers(MenuButton.propTypes, others)), label, ' ', _react2.default.createElement(_icon2.default, { type: 'arrow-down', className: prefix + 'menu-btn-arrow' }));
59014
59015 return _react2.default.createElement(Popup, (0, _extends3.default)({}, popupProps, {
59016 followTrigger: followTrigger,
59017 visible: state.visible,
59018 onVisibleChange: this.onPopupVisibleChange,
59019 trigger: trigger,
59020 triggerType: popupTriggerType,
59021 container: popupContainer,
59022 onOpen: this.onPopupOpen,
59023 style: popupStyle,
59024 className: popupClassNames
59025 }), _react2.default.createElement('div', { className: prefix + 'menu-btn-spacing-tb' }, _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, menuProps, {
59026 ref: this._menuRefHandler,
59027 selectedKeys: state.selectedKeys,
59028 selectMode: selectMode,
59029 onSelect: this.selectMenu,
59030 onItemClick: this.clickMenuItem
59031 }), children)));
59032 };
59033
59034 return MenuButton;
59035}(_react2.default.Component), _class.propTypes = {
59036 prefix: _propTypes2.default.string,
59037 /**
59038 * 按钮上的文本内容
59039 */
59040 label: _propTypes2.default.node,
59041 /**
59042 * 弹层是否与按钮宽度相同
59043 */
59044 autoWidth: _propTypes2.default.bool,
59045 /**
59046 * 弹层触发方式
59047 */
59048 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
59049 /**
59050 * 弹层容器
59051 */
59052 popupContainer: _propTypes2.default.any,
59053 /**
59054 * 弹层展开状态
59055 */
59056 visible: _propTypes2.default.bool,
59057 /**
59058 * 弹层默认是否展开
59059 */
59060 defaultVisible: _propTypes2.default.bool,
59061 /**
59062 * 弹层在显示和隐藏触发的事件
59063 */
59064 onVisibleChange: _propTypes2.default.func,
59065 /**
59066 * 弹层自定义样式
59067 */
59068 popupStyle: _propTypes2.default.object,
59069 /**
59070 * 弹层自定义样式类
59071 */
59072 popupClassName: _propTypes2.default.string,
59073 /**
59074 * 弹层属性透传
59075 */
59076 popupProps: _propTypes2.default.object,
59077 /**
59078 * 是否跟随滚动
59079 */
59080 followTrigger: _propTypes2.default.bool,
59081 /**
59082 * 默认激活的菜单项(用法同 Menu 非受控)
59083 */
59084 defaultSelectedKeys: _propTypes2.default.array,
59085 /**
59086 * 激活的菜单项(用法同 Menu 受控)
59087 */
59088 selectedKeys: _propTypes2.default.array,
59089 /**
59090 * 菜单的选择模式,同 Menu
59091 */
59092 selectMode: _propTypes2.default.oneOf(['single', 'multiple']),
59093 /**
59094 * 点击菜单项后的回调,同 Menu
59095 */
59096 onItemClick: _propTypes2.default.func,
59097 /**
59098 * 选择菜单后的回调,同 Menu
59099 */
59100 onSelect: _propTypes2.default.func,
59101 /**
59102 * 菜单属性透传
59103 */
59104 menuProps: _propTypes2.default.object,
59105 style: _propTypes2.default.object,
59106 className: _propTypes2.default.string,
59107 children: _propTypes2.default.any
59108}, _class.defaultProps = {
59109 prefix: 'next-',
59110 autoWidth: true,
59111 popupTriggerType: 'click',
59112 onVisibleChange: _util.func.noop,
59113 onItemClick: _util.func.noop,
59114 onSelect: _util.func.noop,
59115 defaultSelectedKeys: [],
59116 menuProps: {}
59117}, _temp);
59118MenuButton.displayName = 'MenuButton';
59119
59120MenuButton.Item = _menu2.default.Item;
59121MenuButton.Group = _menu2.default.Group;
59122MenuButton.Divider = _menu2.default.Divider;
59123
59124exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(MenuButton), {
59125 componentName: 'MenuButton'
59126});
59127module.exports = exports['default'];
59128
59129/***/ }),
59130/* 377 */
59131/***/ (function(module, exports, __webpack_require__) {
59132
59133"use strict";
59134
59135
59136exports.__esModule = true;
59137
59138var _menu = __webpack_require__(16);
59139
59140var _menu2 = _interopRequireDefault(_menu);
59141
59142var _nav = __webpack_require__(378);
59143
59144var _nav2 = _interopRequireDefault(_nav);
59145
59146var _item = __webpack_require__(379);
59147
59148var _item2 = _interopRequireDefault(_item);
59149
59150var _group = __webpack_require__(380);
59151
59152var _group2 = _interopRequireDefault(_group);
59153
59154var _subNav = __webpack_require__(381);
59155
59156var _subNav2 = _interopRequireDefault(_subNav);
59157
59158var _popupItem = __webpack_require__(382);
59159
59160var _popupItem2 = _interopRequireDefault(_popupItem);
59161
59162function _interopRequireDefault(obj) {
59163 return obj && obj.__esModule ? obj : { default: obj };
59164}
59165
59166_nav2.default.Item = _item2.default;
59167_nav2.default.Group = _group2.default;
59168_nav2.default.SubNav = _subNav2.default;
59169_nav2.default.PopupItem = _popupItem2.default;
59170_nav2.default.Divider = _menu2.default.Divider;
59171
59172exports.default = _nav2.default;
59173module.exports = exports['default'];
59174
59175/***/ }),
59176/* 378 */
59177/***/ (function(module, exports, __webpack_require__) {
59178
59179"use strict";
59180
59181
59182exports.__esModule = true;
59183
59184var _extends2 = __webpack_require__(1);
59185
59186var _extends3 = _interopRequireDefault(_extends2);
59187
59188var _objectWithoutProperties2 = __webpack_require__(8);
59189
59190var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59191
59192var _classCallCheck2 = __webpack_require__(2);
59193
59194var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59195
59196var _possibleConstructorReturn2 = __webpack_require__(3);
59197
59198var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59199
59200var _inherits2 = __webpack_require__(4);
59201
59202var _inherits3 = _interopRequireDefault(_inherits2);
59203
59204var _class, _temp;
59205
59206var _react = __webpack_require__(0);
59207
59208var _react2 = _interopRequireDefault(_react);
59209
59210var _propTypes = __webpack_require__(5);
59211
59212var _propTypes2 = _interopRequireDefault(_propTypes);
59213
59214var _classnames = __webpack_require__(7);
59215
59216var _classnames2 = _interopRequireDefault(_classnames);
59217
59218var _configProvider = __webpack_require__(9);
59219
59220var _configProvider2 = _interopRequireDefault(_configProvider);
59221
59222var _menu = __webpack_require__(16);
59223
59224var _menu2 = _interopRequireDefault(_menu);
59225
59226function _interopRequireDefault(obj) {
59227 return obj && obj.__esModule ? obj : { default: obj };
59228}
59229
59230/**
59231 * Nav
59232 * @description 继承自 `Menu` 的能力请查看 `Menu` 文档
59233 */
59234var Nav = (_temp = _class = function (_Component) {
59235 (0, _inherits3.default)(Nav, _Component);
59236
59237 function Nav(props) {
59238 (0, _classCallCheck3.default)(this, Nav);
59239
59240 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
59241
59242 _this.getMenuRef = _this.getMenuRef.bind(_this);
59243 return _this;
59244 }
59245
59246 Nav.prototype.getChildContext = function getChildContext() {
59247 var _props = this.props,
59248 prefix = _props.prefix,
59249 direction = _props.direction,
59250 mode = _props.mode,
59251 iconOnly = _props.iconOnly,
59252 iconOnlyWidth = _props.iconOnlyWidth,
59253 iconTextOnly = _props.iconTextOnly,
59254 hasTooltip = _props.hasTooltip,
59255 hasArrow = _props.hasArrow;
59256 var isCollapse = this.context.isCollapse;
59257
59258 return {
59259 prefix: prefix,
59260 mode: direction === 'hoz' ? 'popup' : mode,
59261 iconOnly: 'iconOnly' in this.props ? iconOnly : isCollapse,
59262 iconOnlyWidth: 'iconOnlyWidth' in this.props ? iconOnlyWidth : undefined,
59263 iconTextOnly: iconTextOnly,
59264 hasTooltip: hasTooltip,
59265 hasArrow: hasArrow
59266 };
59267 };
59268
59269 Nav.prototype.getMenuRef = function getMenuRef(ref) {
59270 this.menu = ref;
59271 };
59272
59273 Nav.prototype.render = function render() {
59274 var _classNames, _classNames2;
59275
59276 // eslint-disable-next-line
59277 var _props2 = this.props,
59278 prefix = _props2.prefix,
59279 className = _props2.className,
59280 style = _props2.style,
59281 children = _props2.children,
59282 type = _props2.type,
59283 direction = _props2.direction,
59284 activeDirection = _props2.activeDirection,
59285 mode = _props2.mode,
59286 triggerType = _props2.triggerType,
59287 inlineIndent = _props2.inlineIndent,
59288 openMode = _props2.openMode,
59289 popupAlign = _props2.popupAlign,
59290 popupClassName = _props2.popupClassName,
59291 iconOnly = _props2.iconOnly,
59292 iconOnlyWidth = _props2.iconOnlyWidth,
59293 iconTextOnly = _props2.iconTextOnly,
59294 hasArrow = _props2.hasArrow,
59295 hasTooltip = _props2.hasTooltip,
59296 embeddable = _props2.embeddable,
59297 _popupProps = _props2.popupProps,
59298 rtl = _props2.rtl,
59299 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'className', 'style', 'children', 'type', 'direction', 'activeDirection', 'mode', 'triggerType', 'inlineIndent', 'openMode', 'popupAlign', 'popupClassName', 'iconOnly', 'iconOnlyWidth', 'iconTextOnly', 'hasArrow', 'hasTooltip', 'embeddable', 'popupProps', 'rtl']);
59300 var isCollapse = this.context.isCollapse;
59301
59302 var newIconOnly = 'iconOnly' in this.props ? iconOnly : isCollapse;
59303
59304 var realActiveDirection = activeDirection;
59305 if (realActiveDirection && (direction === 'hoz' && (realActiveDirection === 'left' || realActiveDirection === 'right') || direction === 'ver' && (realActiveDirection === 'top' || realActiveDirection === 'bottom'))) {
59306 realActiveDirection = null;
59307 }
59308
59309 if (!newIconOnly && realActiveDirection === undefined) {
59310 realActiveDirection = direction === 'hoz' ? 'bottom' : type === 'line' ? 'right' : 'left';
59311 }
59312
59313 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav'] = true, _classNames['' + prefix + type] = type, _classNames[prefix + 'active'] = realActiveDirection, _classNames['' + prefix + realActiveDirection] = realActiveDirection, _classNames[prefix + 'icon-only'] = newIconOnly, _classNames[prefix + 'icon-only-text'] = newIconOnly && iconTextOnly, _classNames[prefix + 'custom-icon-only-width'] = newIconOnly && 'iconOnlyWidth' in this.props, _classNames[prefix + 'no-arrow'] = !hasArrow, _classNames[prefix + 'nav-embeddable'] = embeddable, _classNames[className] = !!className, _classNames));
59314 var newStyle = newIconOnly ? (0, _extends3.default)({}, style, { width: iconOnlyWidth || 58 }) : style;
59315
59316 var props = {
59317 prefix: prefix,
59318 direction: direction,
59319 openMode: openMode,
59320 triggerType: triggerType,
59321 mode: direction === 'hoz' ? 'popup' : mode,
59322 popupAlign: direction === 'hoz' ? 'follow' : popupAlign,
59323 inlineIndent: newIconOnly ? 0 : inlineIndent,
59324 hasSelectedIcon: false,
59325 popupAutoWidth: true,
59326 selectMode: 'single',
59327 itemClassName: prefix + 'nav-item',
59328 popupClassName: (0, _classnames2.default)((_classNames2 = {}, _classNames2[cls.replace(prefix + 'icon-only', '').replace(prefix + 'nav-embeddable', '')] = mode === 'popup', _classNames2[prefix + 'icon-only'] = newIconOnly && mode === 'inline', _classNames2[popupClassName] = !!popupClassName, _classNames2)),
59329 popupProps: function popupProps() {
59330 return (0, _extends3.default)({}, _popupProps);
59331 }
59332 };
59333
59334 return _react2.default.createElement(_menu2.default, (0, _extends3.default)({ className: cls, style: newStyle }, props, others, { ref: this.getMenuRef }), children);
59335 };
59336
59337 return Nav;
59338}(_react.Component), _class.propTypes = {
59339 prefix: _propTypes2.default.string,
59340 pure: _propTypes2.default.bool,
59341 rtl: _propTypes2.default.bool,
59342 className: _propTypes2.default.string,
59343 style: _propTypes2.default.object,
59344 /**
59345 * 导航项和子导航
59346 */
59347 children: _propTypes2.default.node,
59348 /**
59349 * 导航类型
59350 * @enumdesc 普通, 主要, 次要, 线形
59351 */
59352 type: _propTypes2.default.oneOf(['normal', 'primary', 'secondary', 'line']),
59353 /**
59354 * 导航布局
59355 * @enumdesc 水平, 垂直
59356 */
59357 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
59358 /**
59359 * 横向导航条 items 和 footer 的对齐方向,在 direction 设置为 'hoz' 并且 header 存在时生效
59360 */
59361 hozAlign: _propTypes2.default.oneOf(['left', 'right']),
59362 /**
59363 * 设置组件选中状态的 active 边方向
59364 * @enumdesc 无, 上, 下, 左, 右
59365 * @default 当 direction 为 'hoz' 时,默认值为 'bottom',当 direction 为 'ver' 时,默认值为 'left'
59366 */
59367 activeDirection: _propTypes2.default.oneOf([null, 'top', 'bottom', 'left', 'right']),
59368 /**
59369 * 子导航打开的模式(水平导航只支持弹出)
59370 * @eumdesc 行内, 弹出
59371 */
59372 mode: _propTypes2.default.oneOf(['inline', 'popup']),
59373 /**
59374 * 子导航打开的触发方式
59375 */
59376 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
59377 /**
59378 * 内联子导航缩进距离
59379 */
59380 inlineIndent: _propTypes2.default.number,
59381 /**
59382 * 首次渲染展开所有的子导航,只在 mode 设置为 'inline' 以及 openMode 设置为 'multiple' 下生效
59383 */
59384 defaultOpenAll: _propTypes2.default.bool,
59385 /**
59386 * 内联子导航的展开模式,同时可以展开一个同级子导航还是多个同级子导航,该属性仅在 mode 为 inline 时生效
59387 * @eumdesc 一个, 多个
59388 */
59389 openMode: _propTypes2.default.oneOf(['single', 'multiple']),
59390 /**
59391 * 当前选中导航项的 key 值
59392 */
59393 selectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
59394 /**
59395 * 初始选中导航项的 key 值
59396 */
59397 defaultSelectedKeys: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.array]),
59398 /**
59399 * 选中或取消选中导航项触发的回调函数
59400 * @param {Array} selectedKeys 选中的所有导航项的 key
59401 * @param {Object} item 选中或取消选中的导航项
59402 * @param {Object} extra 额外参数
59403 * @param {Boolean} extra.select 是否是选中
59404 * @param {Array} extra.key 导航项的 key
59405 * @param {Object} extra.label 导航项的文本
59406 * @param {Array} extra.keyPath 导航项 key 的路径
59407 */
59408 onSelect: _propTypes2.default.func,
59409 /**
59410 * 弹出子导航的对齐方式(水平导航只支持 follow )
59411 * @eumdesc Item 顶端对齐, Nav 顶端对齐
59412 */
59413 popupAlign: _propTypes2.default.oneOf(['follow', 'outside']),
59414 /**
59415 * 弹出子导航的自定义类名
59416 */
59417 popupClassName: _propTypes2.default.string,
59418 /**
59419 * 是否只显示图标
59420 */
59421 iconOnly: _propTypes2.default.bool,
59422 /**
59423 * iconOnly 模式下的宽度(仅在 iconOnly=true 时生效) 如果传入了iconOnlyWidth,那么会隐藏文本,例如 Nav.Item 的 label
59424 */
59425 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59426 /**
59427 * iconOnly模式下是否展示文字(仅在 iconOnly=true 时生效)
59428 */
59429 iconTextOnly: _propTypes2.default.bool,
59430 /**
59431 * 是否显示右侧的箭头(仅在 iconOnly=true 时生效)
59432 */
59433 hasArrow: _propTypes2.default.bool,
59434 /**
59435 * 是否有 ToolTips (仅在 iconOnly=true 时生效)
59436 */
59437 hasTooltip: _propTypes2.default.bool,
59438 /**
59439 * 自定义导航头部
59440 */
59441 header: _propTypes2.default.node,
59442 /**
59443 * 自定义导航尾部
59444 */
59445 footer: _propTypes2.default.node,
59446 /**
59447 * 是否开启嵌入式模式,一般用于Layout的布局中,开启后没有默认背景、外层border、box-shadow,可以配合`<Nav style={{lineHeight: '100px'}}>` 自定义高度
59448 * @version 1.18
59449 */
59450 embeddable: _propTypes2.default.bool,
59451 popupProps: _propTypes2.default.object
59452}, _class.defaultProps = {
59453 prefix: 'next-',
59454 pure: false,
59455 type: 'normal',
59456 direction: 'ver',
59457 hozAlign: 'left',
59458 mode: 'inline',
59459 triggerType: 'click',
59460 inlineIndent: 20,
59461 defaultOpenAll: false,
59462 openMode: 'multiple',
59463 defaultSelectedKeys: [],
59464 popupAlign: 'follow',
59465 hasTooltip: false,
59466 embeddable: false,
59467 hasArrow: true,
59468 popupProps: {}
59469}, _class.childContextTypes = {
59470 prefix: _propTypes2.default.string,
59471 mode: _propTypes2.default.string,
59472 iconOnly: _propTypes2.default.bool,
59473 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59474 iconTextOnly: _propTypes2.default.bool,
59475 hasTooltip: _propTypes2.default.bool,
59476 hasArrow: _propTypes2.default.bool
59477}, _class.contextTypes = {
59478 isCollapse: _propTypes2.default.bool
59479}, _temp);
59480Nav.displayName = 'Nav';
59481exports.default = _configProvider2.default.config(Nav);
59482module.exports = exports['default'];
59483
59484/***/ }),
59485/* 379 */
59486/***/ (function(module, exports, __webpack_require__) {
59487
59488"use strict";
59489
59490
59491exports.__esModule = true;
59492
59493var _extends2 = __webpack_require__(1);
59494
59495var _extends3 = _interopRequireDefault(_extends2);
59496
59497var _objectWithoutProperties2 = __webpack_require__(8);
59498
59499var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59500
59501var _classCallCheck2 = __webpack_require__(2);
59502
59503var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59504
59505var _possibleConstructorReturn2 = __webpack_require__(3);
59506
59507var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59508
59509var _inherits2 = __webpack_require__(4);
59510
59511var _inherits3 = _interopRequireDefault(_inherits2);
59512
59513var _class, _temp;
59514
59515var _react = __webpack_require__(0);
59516
59517var _react2 = _interopRequireDefault(_react);
59518
59519var _propTypes = __webpack_require__(5);
59520
59521var _propTypes2 = _interopRequireDefault(_propTypes);
59522
59523var _classnames = __webpack_require__(7);
59524
59525var _classnames2 = _interopRequireDefault(_classnames);
59526
59527var _menu = __webpack_require__(16);
59528
59529var _menu2 = _interopRequireDefault(_menu);
59530
59531var _icon = __webpack_require__(11);
59532
59533var _icon2 = _interopRequireDefault(_icon);
59534
59535var _balloon = __webpack_require__(59);
59536
59537var _balloon2 = _interopRequireDefault(_balloon);
59538
59539function _interopRequireDefault(obj) {
59540 return obj && obj.__esModule ? obj : { default: obj };
59541}
59542
59543var Tooltip = _balloon2.default.Tooltip;
59544
59545/**
59546 * Nav.Item
59547 * @description 继承自 `Menu.Item` 的能力请查看 `Menu.Item` 文档
59548 */
59549
59550var Item = (_temp = _class = function (_Component) {
59551 (0, _inherits3.default)(Item, _Component);
59552
59553 function Item() {
59554 (0, _classCallCheck3.default)(this, Item);
59555 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59556 }
59557
59558 Item.prototype.render = function render() {
59559 var _classNames;
59560
59561 var _context = this.context,
59562 prefix = _context.prefix,
59563 iconOnly = _context.iconOnly,
59564 iconOnlyWidth = _context.iconOnlyWidth,
59565 hasTooltip = _context.hasTooltip,
59566 iconTextOnly = _context.iconTextOnly;
59567 var _props = this.props,
59568 icon = _props.icon,
59569 children = _props.children,
59570 className = _props.className,
59571 others = (0, _objectWithoutProperties3.default)(_props, ['icon', 'children', 'className']);
59572
59573 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon', type: icon }) : icon;
59574
59575 var title = void 0;
59576
59577 if (typeof children === 'string') {
59578 title = children;
59579 }
59580
59581 var showChildren = !iconOnly || iconOnly && !iconOnlyWidth || iconTextOnly;
59582 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-with-title'] = iconOnly && iconTextOnly, _classNames[className] = !!className, _classNames));
59583
59584 var newChildren = showChildren ? iconTextOnly ? _react2.default.createElement('span', { className: prefix + 'nav-text' }, children) : children : null;
59585
59586 var item = _react2.default.createElement(_menu2.default.Item, (0, _extends3.default)({ title: title, className: cls }, others), iconEl, newChildren);
59587
59588 if (iconOnly && hasTooltip && others.parentMode !== 'popup') {
59589 return _react2.default.createElement(Tooltip, { align: 'r', trigger: item }, children);
59590 }
59591
59592 return item;
59593 };
59594
59595 return Item;
59596}(_react.Component), _class.menuChildType = 'item', _class.propTypes = {
59597 /**
59598 * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `<Icon type="icon type" />`
59599 */
59600 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
59601 /**
59602 * 导航内容
59603 */
59604 children: _propTypes2.default.node,
59605 parentMode: _propTypes2.default.oneOf(['inline', 'popup'])
59606}, _class.contextTypes = {
59607 prefix: _propTypes2.default.string,
59608 iconOnly: _propTypes2.default.bool,
59609 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59610 iconTextOnly: _propTypes2.default.bool,
59611 hasTooltip: _propTypes2.default.bool
59612}, _temp);
59613Item.displayName = 'Item';
59614exports.default = Item;
59615module.exports = exports['default'];
59616
59617/***/ }),
59618/* 380 */
59619/***/ (function(module, exports, __webpack_require__) {
59620
59621"use strict";
59622
59623
59624exports.__esModule = true;
59625
59626var _extends2 = __webpack_require__(1);
59627
59628var _extends3 = _interopRequireDefault(_extends2);
59629
59630var _objectWithoutProperties2 = __webpack_require__(8);
59631
59632var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59633
59634var _classCallCheck2 = __webpack_require__(2);
59635
59636var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59637
59638var _possibleConstructorReturn2 = __webpack_require__(3);
59639
59640var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59641
59642var _inherits2 = __webpack_require__(4);
59643
59644var _inherits3 = _interopRequireDefault(_inherits2);
59645
59646var _class, _temp;
59647
59648var _react = __webpack_require__(0);
59649
59650var _react2 = _interopRequireDefault(_react);
59651
59652var _propTypes = __webpack_require__(5);
59653
59654var _propTypes2 = _interopRequireDefault(_propTypes);
59655
59656var _classnames = __webpack_require__(7);
59657
59658var _classnames2 = _interopRequireDefault(_classnames);
59659
59660var _menu = __webpack_require__(16);
59661
59662var _menu2 = _interopRequireDefault(_menu);
59663
59664function _interopRequireDefault(obj) {
59665 return obj && obj.__esModule ? obj : { default: obj };
59666}
59667
59668/**
59669 * Nav.Group
59670 * @description 继承自 `Menu.Group` 的能力请查看 `Menu.Group` 文档
59671 */
59672var Group = (_temp = _class = function (_Component) {
59673 (0, _inherits3.default)(Group, _Component);
59674
59675 function Group() {
59676 (0, _classCallCheck3.default)(this, Group);
59677 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59678 }
59679
59680 Group.prototype.render = function render() {
59681 var _classNames;
59682
59683 var _context = this.context,
59684 prefix = _context.prefix,
59685 iconOnly = _context.iconOnly;
59686 var _props = this.props,
59687 className = _props.className,
59688 children = _props.children,
59689 label = _props.label,
59690 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'children', 'label']);
59691
59692 var newLabel = label;
59693 if (iconOnly) {
59694 // TODO: add a group icon ?
59695 newLabel = [_react2.default.createElement('span', { key: 'label' }, label)];
59696 }
59697
59698 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-group-label'] = true, _classNames[className] = !!className, _classNames));
59699
59700 return _react2.default.createElement(_menu2.default.Group, (0, _extends3.default)({ className: cls, label: newLabel }, others), children);
59701 };
59702
59703 return Group;
59704}(_react.Component), _class.menuChildType = 'group', _class.propTypes = {
59705 /**
59706 * 自定义类名
59707 */
59708 className: _propTypes2.default.string,
59709 /**
59710 * 标签内容
59711 */
59712 label: _propTypes2.default.node,
59713 /**
59714 * 导航项和子导航
59715 */
59716 children: _propTypes2.default.node
59717}, _class.contextTypes = {
59718 prefix: _propTypes2.default.string,
59719 iconOnly: _propTypes2.default.bool
59720}, _temp);
59721Group.displayName = 'Group';
59722exports.default = Group;
59723module.exports = exports['default'];
59724
59725/***/ }),
59726/* 381 */
59727/***/ (function(module, exports, __webpack_require__) {
59728
59729"use strict";
59730
59731
59732exports.__esModule = true;
59733
59734var _extends2 = __webpack_require__(1);
59735
59736var _extends3 = _interopRequireDefault(_extends2);
59737
59738var _objectWithoutProperties2 = __webpack_require__(8);
59739
59740var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59741
59742var _classCallCheck2 = __webpack_require__(2);
59743
59744var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59745
59746var _possibleConstructorReturn2 = __webpack_require__(3);
59747
59748var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59749
59750var _inherits2 = __webpack_require__(4);
59751
59752var _inherits3 = _interopRequireDefault(_inherits2);
59753
59754var _class, _temp;
59755
59756var _react = __webpack_require__(0);
59757
59758var _react2 = _interopRequireDefault(_react);
59759
59760var _propTypes = __webpack_require__(5);
59761
59762var _propTypes2 = _interopRequireDefault(_propTypes);
59763
59764var _classnames = __webpack_require__(7);
59765
59766var _classnames2 = _interopRequireDefault(_classnames);
59767
59768var _menu = __webpack_require__(16);
59769
59770var _menu2 = _interopRequireDefault(_menu);
59771
59772var _icon = __webpack_require__(11);
59773
59774var _icon2 = _interopRequireDefault(_icon);
59775
59776function _interopRequireDefault(obj) {
59777 return obj && obj.__esModule ? obj : { default: obj };
59778}
59779
59780/**
59781 * Nav.SubNav
59782 * @description 继承自 `Menu.SubMenu` 的能力请查看 `Menu.SubMenu` 文档
59783 */
59784var SubNav = (_temp = _class = function (_Component) {
59785 (0, _inherits3.default)(SubNav, _Component);
59786
59787 function SubNav() {
59788 (0, _classCallCheck3.default)(this, SubNav);
59789 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59790 }
59791
59792 SubNav.prototype.render = function render() {
59793 var _classNames;
59794
59795 var _context = this.context,
59796 prefix = _context.prefix,
59797 iconOnly = _context.iconOnly,
59798 iconOnlyWidth = _context.iconOnlyWidth,
59799 hasArrow = _context.hasArrow,
59800 noIcon = _context.noIcon,
59801 mode = _context.mode;
59802 var _props = this.props,
59803 className = _props.className,
59804 icon = _props.icon,
59805 label = _props.label,
59806 children = _props.children,
59807 level = _props.level,
59808 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'icon', 'label', 'children', 'level']);
59809
59810 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-sub-nav-item'] = true, _classNames[prefix + 'nav-popup'] = mode === 'popup', _classNames[className] = !!className, _classNames));
59811 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon', type: icon }) : icon;
59812 // 这里是为 iconOnly 模式下,添加默认的展开按钮
59813 // 只有在 inline 模式下 或 popup模式的第一层级,才需要添加默认的按钮
59814 if (iconOnly && hasArrow && (mode === 'inline' || level === 1 && mode === 'popup')) {
59815 iconEl = _react2.default.createElement(_icon2.default, {
59816 className: prefix + 'nav-icon-only-arrow',
59817 type: mode === 'popup' ? 'arrow-right' : 'arrow-down'
59818 });
59819 }
59820
59821 var newLabel = [iconEl ? (0, _react.cloneElement)(iconEl, { key: 'icon' }) : null];
59822
59823 var showLabel = !iconOnly || iconOnly && !iconOnlyWidth;
59824
59825 if (showLabel) {
59826 newLabel.push(_react2.default.createElement('span', { key: 'label' }, label));
59827 }
59828
59829 var title = void 0;
59830
59831 if (typeof label === 'string') {
59832 title = label;
59833 }
59834
59835 return _react2.default.createElement(_menu2.default.SubMenu, (0, _extends3.default)({ className: cls, label: newLabel, level: level, title: title, noIcon: noIcon }, others), children);
59836 };
59837
59838 return SubNav;
59839}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
59840 /**
59841 * 自定义类名
59842 */
59843 className: _propTypes2.default.string,
59844 /**
59845 * 自定义图标,可以使用 Icon 的 type,也可以使用组件 `<Icon type="your type" />`
59846 */
59847 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
59848 /**
59849 * 标签内容
59850 */
59851 label: _propTypes2.default.node,
59852 /**
59853 * 是否可选
59854 */
59855 selectable: _propTypes2.default.bool,
59856 /**
59857 * 导航项和子导航
59858 */
59859 children: _propTypes2.default.node,
59860 /**
59861 * 是否需要提示当前项可展开的 icon,默认是有的
59862 */
59863 noIcon: _propTypes2.default.bool
59864}, _class.defaultProps = {
59865 selectable: false
59866}, _class.contextTypes = {
59867 prefix: _propTypes2.default.string,
59868 mode: _propTypes2.default.string,
59869 iconOnly: _propTypes2.default.bool,
59870 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
59871 hasArrow: _propTypes2.default.bool
59872}, _temp);
59873SubNav.displayName = 'SubNav';
59874exports.default = SubNav;
59875module.exports = exports['default'];
59876
59877/***/ }),
59878/* 382 */
59879/***/ (function(module, exports, __webpack_require__) {
59880
59881"use strict";
59882
59883
59884exports.__esModule = true;
59885
59886var _extends2 = __webpack_require__(1);
59887
59888var _extends3 = _interopRequireDefault(_extends2);
59889
59890var _objectWithoutProperties2 = __webpack_require__(8);
59891
59892var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
59893
59894var _classCallCheck2 = __webpack_require__(2);
59895
59896var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
59897
59898var _possibleConstructorReturn2 = __webpack_require__(3);
59899
59900var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
59901
59902var _inherits2 = __webpack_require__(4);
59903
59904var _inherits3 = _interopRequireDefault(_inherits2);
59905
59906var _class, _temp;
59907
59908var _react = __webpack_require__(0);
59909
59910var _react2 = _interopRequireDefault(_react);
59911
59912var _propTypes = __webpack_require__(5);
59913
59914var _propTypes2 = _interopRequireDefault(_propTypes);
59915
59916var _classnames = __webpack_require__(7);
59917
59918var _classnames2 = _interopRequireDefault(_classnames);
59919
59920var _menu = __webpack_require__(16);
59921
59922var _menu2 = _interopRequireDefault(_menu);
59923
59924var _icon = __webpack_require__(11);
59925
59926var _icon2 = _interopRequireDefault(_icon);
59927
59928function _interopRequireDefault(obj) {
59929 return obj && obj.__esModule ? obj : { default: obj };
59930}
59931
59932/**
59933 * Nav.PopupItem
59934 * @description 继承自 `Menu.PopupItem` 的能力请查看 `Menu.PopupItem` 文档
59935 */
59936var PopupItem = (_temp = _class = function (_Component) {
59937 (0, _inherits3.default)(PopupItem, _Component);
59938
59939 function PopupItem() {
59940 (0, _classCallCheck3.default)(this, PopupItem);
59941 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
59942 }
59943
59944 PopupItem.prototype.render = function render() {
59945 var _classNames;
59946
59947 var _context = this.context,
59948 prefix = _context.prefix,
59949 iconOnly = _context.iconOnly,
59950 iconOnlyWidth = _context.iconOnlyWidth,
59951 hasArrow = _context.hasArrow;
59952 var _props = this.props,
59953 className = _props.className,
59954 icon = _props.icon,
59955 label = _props.label,
59956 children = _props.children,
59957 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'icon', 'label', 'children']);
59958
59959 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'nav-popup-item'] = true, _classNames[className] = !!className, _classNames));
59960
59961 var iconEl = typeof icon === 'string' ? _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon', type: icon }) : icon;
59962 if (iconOnly) {
59963 if (hasArrow) {
59964 iconEl = _react2.default.createElement(_icon2.default, { className: prefix + 'nav-icon-only-arrow', type: 'arrow-right' });
59965 }
59966 }
59967 var newLabel = [iconEl ? (0, _react.cloneElement)(iconEl, { key: 'icon' }) : null];
59968
59969 var showLabel = !iconOnly || iconOnly && !iconOnlyWidth;
59970
59971 if (showLabel) {
59972 newLabel.push(_react2.default.createElement('span', { key: 'label' }, label));
59973 }
59974
59975 return _react2.default.createElement(_menu2.default.PopupItem, (0, _extends3.default)({ className: cls, label: newLabel }, others), children);
59976 };
59977
59978 return PopupItem;
59979}(_react.Component), _class.menuChildType = 'submenu', _class.propTypes = {
59980 /**
59981 * 自定义类名
59982 */
59983 className: _propTypes2.default.string,
59984 /**
59985 * 自定义图标,可以使用 Icon 的 type, 也可以使用组件 `<Icon type="icon type" />`
59986 */
59987 icon: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.node]),
59988 /**
59989 * 标签内容
59990 */
59991 label: _propTypes2.default.node,
59992 /**
59993 * 弹出内容
59994 */
59995 children: _propTypes2.default.node
59996}, _class.contextTypes = {
59997 prefix: _propTypes2.default.string,
59998 iconOnly: _propTypes2.default.bool,
59999 iconOnlyWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
60000 hasArrow: _propTypes2.default.bool
60001}, _temp);
60002PopupItem.displayName = 'PopupItem';
60003exports.default = PopupItem;
60004module.exports = exports['default'];
60005
60006/***/ }),
60007/* 383 */
60008/***/ (function(module, exports, __webpack_require__) {
60009
60010"use strict";
60011
60012
60013exports.__esModule = true;
60014
60015var _configProvider = __webpack_require__(9);
60016
60017var _configProvider2 = _interopRequireDefault(_configProvider);
60018
60019var _numberPicker = __webpack_require__(384);
60020
60021var _numberPicker2 = _interopRequireDefault(_numberPicker);
60022
60023var _util = __webpack_require__(6);
60024
60025function _interopRequireDefault(obj) {
60026 return obj && obj.__esModule ? obj : { default: obj };
60027}
60028
60029exports.default = _configProvider2.default.config(_numberPicker2.default, {
60030 transform: /* istanbul ignore next */function transform(props) {
60031 if ('onDisabled' in props && typeof props.onDisabled === 'function') {
60032 _util.log.warning('[NumberPicker]: onDisabled is deleted!');
60033 }
60034
60035 if ('state' in props && props.state === 'success') {
60036 delete props.state;
60037 }
60038
60039 return props;
60040 },
60041 exportNames: ['getInputNode']
60042});
60043module.exports = exports['default'];
60044
60045/***/ }),
60046/* 384 */
60047/***/ (function(module, exports, __webpack_require__) {
60048
60049"use strict";
60050
60051
60052exports.__esModule = true;
60053
60054var _extends2 = __webpack_require__(1);
60055
60056var _extends3 = _interopRequireDefault(_extends2);
60057
60058var _classCallCheck2 = __webpack_require__(2);
60059
60060var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
60061
60062var _possibleConstructorReturn2 = __webpack_require__(3);
60063
60064var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
60065
60066var _inherits2 = __webpack_require__(4);
60067
60068var _inherits3 = _interopRequireDefault(_inherits2);
60069
60070var _class, _temp;
60071
60072var _react = __webpack_require__(0);
60073
60074var _react2 = _interopRequireDefault(_react);
60075
60076var _propTypes = __webpack_require__(5);
60077
60078var _propTypes2 = _interopRequireDefault(_propTypes);
60079
60080var _classnames = __webpack_require__(7);
60081
60082var _classnames2 = _interopRequireDefault(_classnames);
60083
60084var _bignumber = __webpack_require__(385);
60085
60086var _bignumber2 = _interopRequireDefault(_bignumber);
60087
60088var _reactLifecyclesCompat = __webpack_require__(10);
60089
60090var _icon = __webpack_require__(11);
60091
60092var _icon2 = _interopRequireDefault(_icon);
60093
60094var _button = __webpack_require__(17);
60095
60096var _button2 = _interopRequireDefault(_button);
60097
60098var _input = __webpack_require__(18);
60099
60100var _input2 = _interopRequireDefault(_input);
60101
60102var _util = __webpack_require__(6);
60103
60104function _interopRequireDefault(obj) {
60105 return obj && obj.__esModule ? obj : { default: obj };
60106}
60107
60108var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1;
60109var MIN_SAFE_INTEGER = Number.MIN_SAFE_INTEGER || -Math.pow(2, 53) + 1;
60110
60111var isNil = _util.obj.isNil;
60112/** NumberPicker */
60113
60114var NumberPicker = (_temp = _class = function (_React$Component) {
60115 (0, _inherits3.default)(NumberPicker, _React$Component);
60116
60117 function NumberPicker(props) {
60118 (0, _classCallCheck3.default)(this, NumberPicker);
60119
60120 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
60121
60122 var defaultValue = props.defaultValue,
60123 stringMode = props.stringMode;
60124
60125 var value = void 0;
60126 if ('value' in props) {
60127 value = props.value;
60128 } else {
60129 value = defaultValue;
60130 }
60131 value = value === undefined || value === null ? '' : stringMode ? '' + value : value;
60132 _this.state = {
60133 value: value,
60134 hasFocused: false,
60135 onlyDisplay: false,
60136 displayValue: value,
60137 max: stringMode ? Infinity : MAX_SAFE_INTEGER,
60138 min: stringMode ? -Infinity : MIN_SAFE_INTEGER
60139 };
60140 return _this;
60141 }
60142
60143 NumberPicker.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
60144 // 用户键入非法值后render逻辑,未触发onChange,业务组件无感知,不强制受控value
60145 if (prevState.onlyDisplay) {
60146 return {
60147 value: prevState.value,
60148 displayValue: prevState.displayValue,
60149 onlyDisplay: false
60150 };
60151 }
60152
60153 var state = {};
60154 var value = nextProps.value,
60155 stringMode = nextProps.stringMode;
60156 // 一般受控render逻辑
60157
60158 if ('value' in nextProps && '' + nextProps.value !== '' + prevState.value) {
60159 var newValue = value === undefined || value === null ? '' : stringMode ? '' + value : value;
60160 state.value = newValue;
60161 // 因为 Number('') === 0,所以会导致value=0赋值不生效
60162 if (prevState.displayValue === '' || Number(prevState.displayValue) !== nextProps.value) {
60163 state.displayValue = newValue;
60164 }
60165 }
60166
60167 // 如果是undefined或null,应该不限制最大最小值
60168 var min = nextProps.min,
60169 max = nextProps.max;
60170
60171 if ('min' in nextProps && min !== prevState.min) {
60172 state.min = !isNil(min) ? min : stringMode ? Infinity : MIN_SAFE_INTEGER;
60173 }
60174
60175 if ('max' in nextProps && max !== prevState.max) {
60176 state.max = !isNil(max) ? max : stringMode ? Infinity : MAX_SAFE_INTEGER;
60177 }
60178
60179 if (Object.keys(state).length) {
60180 return state;
60181 }
60182
60183 return null;
60184 };
60185
60186 NumberPicker.prototype.isGreaterThan = function isGreaterThan(v1, v2) {
60187 var stringMode = this.props.stringMode;
60188
60189 if (stringMode) return (0, _bignumber2.default)(v1).isGreaterThan((0, _bignumber2.default)(v2));
60190 return Number(v1) > Number(v2);
60191 };
60192
60193 NumberPicker.prototype.correctBoundary = function correctBoundary(value) {
60194 var _state = this.state,
60195 max = _state.max,
60196 min = _state.min;
60197
60198 return this.isGreaterThan(min, value) ? min : this.isGreaterThan(value, max) ? max : value;
60199 };
60200
60201 NumberPicker.prototype.setFocus = function setFocus(status) {
60202 var format = this.props.format;
60203 // Only trigger `setState` if `format` is settled to avoid unnecessary rendering
60204
60205 if (typeof format === 'function') {
60206 this.setState({
60207 hasFocused: status
60208 });
60209 }
60210 };
60211
60212 NumberPicker.prototype.onFocus = function onFocus(e) {
60213 var onFocus = this.props.onFocus;
60214
60215 this.setFocus(true);
60216
60217 for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
60218 args[_key - 1] = arguments[_key];
60219 }
60220
60221 onFocus && onFocus.apply(undefined, [e].concat(args));
60222 };
60223
60224 NumberPicker.prototype.onBlur = function onBlur(e) {
60225 var _props = this.props,
60226 editable = _props.editable,
60227 stringMode = _props.stringMode;
60228
60229 var displayValue = '' + this.state.displayValue;
60230 // 展示值合法但超出边界时,额外在Blur时触发onChange
60231 // 展示值非法时,回退前一个有效值
60232 if (editable === true && !isNaN(displayValue) && !this.shouldFireOnChange(displayValue) && !this.withinMinMax(displayValue)) {
60233 var valueCorrected = this.correctValue(displayValue);
60234 valueCorrected = stringMode ? (0, _bignumber2.default)(valueCorrected).toFixed(this.getPrecision()) : valueCorrected;
60235 if (this.state.value !== valueCorrected) {
60236 this.setValue({ value: valueCorrected, e: e });
60237 }
60238 this.setDisplayValue({ displayValue: valueCorrected });
60239 } else {
60240 this.setDisplayValue({ displayValue: this.state.value });
60241 }
60242
60243 this.setFocus(false);
60244 var onBlur = this.props.onBlur;
60245
60246 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
60247 args[_key2 - 1] = arguments[_key2];
60248 }
60249
60250 onBlur && onBlur.apply(undefined, [e].concat(args));
60251 };
60252
60253 NumberPicker.prototype.withinMinMax = function withinMinMax(value) {
60254 var _state2 = this.state,
60255 max = _state2.max,
60256 min = _state2.min;
60257
60258 if (isNaN(value) || this.isGreaterThan(value, max) || this.isGreaterThan(min, value)) return false;
60259 return true;
60260 };
60261
60262 NumberPicker.prototype.setDisplayValue = function setDisplayValue(_ref) {
60263 var displayValue = _ref.displayValue,
60264 _ref$onlyDisplay = _ref.onlyDisplay,
60265 onlyDisplay = _ref$onlyDisplay === undefined ? false : _ref$onlyDisplay;
60266
60267 this.setState({ displayValue: displayValue, onlyDisplay: onlyDisplay });
60268 };
60269
60270 NumberPicker.prototype.getDisplayValue = function getDisplayValue() {
60271 var _state3 = this.state,
60272 displayValue = _state3.displayValue,
60273 hasFocused = _state3.hasFocused;
60274 var format = this.props.format;
60275
60276 return typeof format === 'function' && !hasFocused ? format(displayValue) : // 避免原生input将number类型的-0,渲染为0
60277 typeof displayValue === 'number' && 1 / displayValue === -Infinity ? '-0' : displayValue;
60278 };
60279
60280 NumberPicker.prototype.shouldFireOnChange = function shouldFireOnChange(value) {
60281 // 不触发onChange:a.非数字 b.超出边界的数字输入
60282 if (isNaN(value) || !this.withinMinMax(value)) {
60283 return false;
60284 }
60285 return true;
60286 };
60287
60288 NumberPicker.prototype.onChange = function onChange(value, e) {
60289 // ignore space & Compatible Chinese Input Method
60290 value = value.replace('。', '.').trim();
60291 var onlyDisplay = false;
60292 if (this.props.editable === true && this.shouldFireOnChange(value)) {
60293 var valueCorrected = this.correctValue(value);
60294 if (this.state.value !== valueCorrected) {
60295 this.setValue({ value: valueCorrected, e: e });
60296 }
60297 } else {
60298 onlyDisplay = true;
60299 }
60300
60301 // 【不应支持】如果输入为满足精度要求的纯数字,底层input.value设置为数字类型而非string
60302 // if (`${valueCorrected}` === value) value = valueCorrected;
60303
60304 this.setDisplayValue({ displayValue: value, onlyDisplay: onlyDisplay });
60305 };
60306
60307 NumberPicker.prototype.correctValue = function correctValue(value) {
60308 var val = value;
60309
60310 // take care of isNaN('')=false
60311 if (val !== '') {
60312 // 精度订正:直接cut,不四舍五入
60313 var precisionSet = this.getPrecision();
60314 var precisionCurrent = value.length - value.indexOf('.') - 1;
60315 var dotIndex = value.indexOf('.');
60316 // precision === 0 should cut '.' for stringMode
60317 var cutPosition = precisionSet !== 0 ? dotIndex + 1 + precisionSet : dotIndex + precisionSet;
60318 if (dotIndex > -1 && precisionCurrent > precisionSet) val = val.substr(0, cutPosition);
60319
60320 // 边界订正:
60321 val = this.correctBoundary(val);
60322 val = this.props.stringMode ? (0, _bignumber2.default)(val).toFixed() : Number(val);
60323 }
60324
60325 if (isNaN(val)) val = this.state.value;
60326
60327 if ('' + val !== '' + value) {
60328 // .0* 到 .x0* 不该触发onCorrect
60329 if (!/\.[0-9]*0+$/g.test(value)) {
60330 this.props.onCorrect({
60331 currentValue: val,
60332 oldValue: value
60333 });
60334 }
60335 }
60336
60337 return val;
60338 };
60339
60340 NumberPicker.prototype.setValue = function setValue(_ref2) {
60341 var value = _ref2.value,
60342 e = _ref2.e,
60343 triggerType = _ref2.triggerType;
60344
60345 if (!('value' in this.props) || value === this.props.value) {
60346 this.setState({
60347 value: value
60348 });
60349 }
60350
60351 this.props.onChange(isNaN(value) || value === '' ? undefined : value, (0, _extends3.default)({}, e, {
60352 triggerType: triggerType
60353 }));
60354 };
60355
60356 NumberPicker.prototype.getPrecision = function getPrecision() {
60357 var stepString = this.props.step.toString();
60358 if (stepString.indexOf('e-') >= 0) {
60359 return parseInt(stepString.slice(stepString.indexOf('e-')), 10);
60360 }
60361 var precision = 0;
60362 if (stepString.indexOf('.') >= 0) {
60363 precision = stepString.length - stepString.indexOf('.') - 1;
60364 }
60365
60366 return Math.max(precision, this.props.precision);
60367 };
60368
60369 NumberPicker.prototype.getPrecisionFactor = function getPrecisionFactor() {
60370 var precision = this.getPrecision();
60371 return Math.pow(10, precision);
60372 };
60373
60374 NumberPicker.prototype.onKeyDown = function onKeyDown(e) {
60375 var _props2;
60376
60377 if (e.keyCode === 38) {
60378 this.up(false, e);
60379 } else if (e.keyCode === 40) {
60380 this.down(false, e);
60381 }
60382
60383 for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {
60384 args[_key3 - 1] = arguments[_key3];
60385 }
60386
60387 (_props2 = this.props).onKeyDown.apply(_props2, [e].concat(args));
60388 };
60389
60390 NumberPicker.prototype.up = function up(disabled, e) {
60391 this.step('up', disabled, e);
60392 };
60393
60394 NumberPicker.prototype.down = function down(disabled, e) {
60395 this.step('down', disabled, e);
60396 };
60397
60398 NumberPicker.prototype.step = function step(type, disabled, e) {
60399 if (e) {
60400 e.preventDefault();
60401 }
60402
60403 var onDisabled = this.props.onDisabled;
60404
60405 if (disabled) {
60406 return onDisabled(e);
60407 }
60408
60409 var value = this.state.value;
60410 // 受控下,可能强制回填非法值
60411 if (isNaN(value)) {
60412 return;
60413 }
60414
60415 if (value === '' && !this.props.stringMode) {
60416 value = 0;
60417 }
60418
60419 var val = this[type + 'Step'](value);
60420 val = this.correctBoundary(val);
60421 // 受控下,显示的值应为受控value
60422 if (!('value' in this.props)) {
60423 this.setDisplayValue({ displayValue: val });
60424 }
60425
60426 this.setValue({ value: val, e: e, triggerType: type });
60427 };
60428
60429 NumberPicker.prototype.upStep = function upStep(val) {
60430 var _props3 = this.props,
60431 step = _props3.step,
60432 stringMode = _props3.stringMode;
60433
60434 var precisionFactor = this.getPrecisionFactor();
60435 if (typeof val === 'number' && !stringMode) {
60436 var result = (precisionFactor * val + precisionFactor * step) / precisionFactor;
60437 return this.hackChrome(result);
60438 }
60439 return (0, _bignumber2.default)(val || '0').plus(step).toFixed(this.getPrecision());
60440 };
60441
60442 NumberPicker.prototype.downStep = function downStep(val) {
60443 var _props4 = this.props,
60444 step = _props4.step,
60445 stringMode = _props4.stringMode;
60446
60447 var precisionFactor = this.getPrecisionFactor();
60448 if (typeof val === 'number' && !stringMode) {
60449 var result = (precisionFactor * val - precisionFactor * step) / precisionFactor;
60450 return this.hackChrome(result);
60451 }
60452 return (0, _bignumber2.default)(val || '0').minus(step).toFixed(this.getPrecision());
60453 };
60454
60455 /**
60456 * fix bug in chrome browser
60457 * 0.28 + 0.01 = 0.29000000000000004
60458 * 0.29 - 0.01 = 0.27999999999999997
60459 * @param {Number} value value
60460 */
60461
60462 NumberPicker.prototype.hackChrome = function hackChrome(value) {
60463 var precision = this.getPrecision();
60464 if (precision > 0) {
60465 return Number(Number(value).toFixed(precision));
60466 }
60467 return value;
60468 };
60469
60470 NumberPicker.prototype.focus = function focus() {
60471 this.inputRef.getInstance().focus();
60472 };
60473
60474 NumberPicker.prototype.saveInputRef = function saveInputRef(ref) {
60475 this.inputRef = ref;
60476 };
60477
60478 NumberPicker.prototype.getInputNode = function getInputNode() {
60479 return this.inputRef;
60480 };
60481
60482 NumberPicker.prototype.handleMouseDown = function handleMouseDown(e) {
60483 e.preventDefault();
60484 };
60485
60486 NumberPicker.prototype.render = function render() {
60487 var _classNames, _classNames2;
60488
60489 var _props5 = this.props,
60490 device = _props5.device,
60491 prefix = _props5.prefix,
60492 rtl = _props5.rtl,
60493 disabled = _props5.disabled,
60494 style = _props5.style,
60495 className = _props5.className,
60496 size = _props5.size,
60497 autoFocus = _props5.autoFocus,
60498 editable = _props5.editable,
60499 state = _props5.state,
60500 label = _props5.label,
60501 _props5$upBtnProps = _props5.upBtnProps,
60502 upBtnProps = _props5$upBtnProps === undefined ? {} : _props5$upBtnProps,
60503 _props5$downBtnProps = _props5.downBtnProps,
60504 downBtnProps = _props5$downBtnProps === undefined ? {} : _props5$downBtnProps,
60505 innerAfter = _props5.innerAfter,
60506 isPreview = _props5.isPreview,
60507 renderPreview = _props5.renderPreview,
60508 hasTrigger = _props5.hasTrigger,
60509 alwaysShowTrigger = _props5.alwaysShowTrigger;
60510 var _state4 = this.state,
60511 max = _state4.max,
60512 min = _state4.min;
60513
60514 var type = device === 'phone' || this.props.type === 'inline' ? 'inline' : 'normal';
60515
60516 var prefixCls = prefix + 'number-picker';
60517
60518 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefixCls] = true, _classNames[prefixCls + '-' + type] = type, _classNames['' + prefix + size] = true, _classNames[prefixCls + '-show-trigger'] = alwaysShowTrigger, _classNames[prefixCls + '-no-trigger'] = !hasTrigger, _classNames[prefix + 'disabled'] = disabled, _classNames[className] = className, _classNames));
60519
60520 var upDisabled = false;
60521 var downDisabled = false;
60522 var value = this.state.value;
60523 if (!isNaN(value)) {
60524 if (!this.isGreaterThan(max, value)) {
60525 upDisabled = true;
60526 }
60527 if (this.isGreaterThan(min, value) || min === value) {
60528 downDisabled = true;
60529 }
60530 }
60531
60532 var extra = null,
60533 innerAfterClassName = null,
60534 addonBefore = null,
60535 addonAfter = null;
60536 if (type === 'normal') {
60537 extra = _react2.default.createElement('span', { className: prefixCls + '-handler' }, _react2.default.createElement(_button2.default, (0, _extends3.default)({}, upBtnProps, {
60538 onMouseDown: this.handleMouseDown,
60539 disabled: disabled,
60540 className: (upBtnProps.className || '') + ' ' + (upDisabled ? 'disabled' : ''),
60541 onClick: this.up.bind(this, upDisabled),
60542 tabIndex: -1
60543 }), _react2.default.createElement(_icon2.default, { type: 'arrow-up', className: prefixCls + '-up-icon' })), _react2.default.createElement(_button2.default, (0, _extends3.default)({}, downBtnProps, {
60544 onMouseDown: this.handleMouseDown,
60545 disabled: disabled,
60546 className: (downBtnProps.className || '') + ' ' + (downDisabled ? 'disabled' : ''),
60547 onClick: this.down.bind(this, downDisabled),
60548 tabIndex: -1
60549 }), _react2.default.createElement(_icon2.default, { type: 'arrow-down', className: prefixCls + '-down-icon' })));
60550 } else {
60551 addonBefore = _react2.default.createElement(_button2.default, (0, _extends3.default)({}, downBtnProps, {
60552 size: size,
60553 disabled: disabled,
60554 className: (downBtnProps.className || '') + ' ' + (downDisabled ? 'disabled' : ''),
60555 onClick: this.down.bind(this, downDisabled),
60556 tabIndex: -1
60557 }), _react2.default.createElement(_icon2.default, { type: 'minus', className: prefixCls + '-minus-icon' }));
60558 addonAfter = _react2.default.createElement(_button2.default, (0, _extends3.default)({}, upBtnProps, {
60559 size: size,
60560 disabled: disabled,
60561 className: (upBtnProps.className || '') + ' ' + (upDisabled ? 'disabled' : ''),
60562 onClick: this.up.bind(this, upDisabled),
60563 tabIndex: -1
60564 }), _react2.default.createElement(_icon2.default, { type: 'add', className: prefixCls + '-add-icon' }));
60565 }
60566
60567 var others = _util.obj.pickOthers(NumberPicker.propTypes, this.props);
60568 var dataAttrs = _util.obj.pickAttrsWith(this.props, 'data-');
60569
60570 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
60571
60572 if (isPreview) {
60573 if (typeof renderPreview === 'function') {
60574 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { style: style, className: previewCls }), renderPreview(this.getDisplayValue(), this.props));
60575 }
60576 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { style: { style: style }, className: previewCls }), this.getDisplayValue(), '\xA0', innerAfter);
60577 }
60578
60579 return _react2.default.createElement('span', (0, _extends3.default)({ className: cls, style: style, dir: rtl ? 'rtl' : undefined }, dataAttrs), _react2.default.createElement(_input2.default, (0, _extends3.default)({}, others, {
60580 hasClear: false,
60581 'aria-valuemax': max,
60582 'aria-valuemin': min,
60583 state: state === 'error' ? 'error' : null,
60584 onBlur: this.onBlur.bind(this),
60585 onFocus: this.onFocus.bind(this),
60586 onKeyDown: this.onKeyDown.bind(this),
60587 autoFocus: autoFocus,
60588 readOnly: !editable,
60589 value: this.getDisplayValue(),
60590 disabled: disabled,
60591 size: size,
60592 onChange: this.onChange.bind(this),
60593 ref: this.saveInputRef.bind(this),
60594 label: label,
60595 innerAfter: innerAfter,
60596 extra: hasTrigger ? extra : null,
60597 addonBefore: addonBefore,
60598 addonAfter: addonAfter,
60599 composition: true
60600 })));
60601 };
60602
60603 return NumberPicker;
60604}(_react2.default.Component), _class.propTypes = {
60605 /**
60606 * 样式前缀
60607 */
60608 prefix: _propTypes2.default.string,
60609 /**
60610 * 设置类型(当 device 为 phone 时,NumberPicker 的类型强制为 normal,不可通过 type 修改)
60611 * @enumdesc 普通, 内联
60612 */
60613 type: _propTypes2.default.oneOf(['normal', 'inline']),
60614 /**
60615 * 大小
60616 */
60617 size: _propTypes2.default.oneOf(['large', 'medium', 'small']),
60618 /**
60619 * 当前值
60620 */
60621 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60622 /**
60623 * 默认值
60624 */
60625 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60626 /**
60627 * 是否禁用
60628 */
60629 disabled: _propTypes2.default.bool,
60630 /**
60631 * 步长
60632 */
60633 step: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60634 /**
60635 * 保留小数点后位数
60636 */
60637 precision: _propTypes2.default.number,
60638 /**
60639 * 用户是否可以输入
60640 */
60641 editable: _propTypes2.default.bool,
60642 /**
60643 * 自动焦点
60644 */
60645 autoFocus: _propTypes2.default.bool,
60646 /**
60647 * 数值被改变的事件
60648 * @param {Number|String} value 数据
60649 * @param {Event} e DOM事件对象
60650 */
60651 onChange: _propTypes2.default.func,
60652 /**
60653 * 键盘按下
60654 * @param {Event} e DOM事件对象
60655 */
60656 onKeyDown: _propTypes2.default.func,
60657 /**
60658 * 焦点获得
60659 * @param {Event} e DOM事件对象
60660 */
60661 onFocus: _propTypes2.default.func,
60662 /**
60663 * 焦点失去
60664 * @param {Event} e DOM事件对象
60665 */
60666 onBlur: _propTypes2.default.func,
60667 /**
60668 * 数值订正后的回调
60669 * @param {Object} obj {currentValue,oldValue:String}
60670 */
60671 onCorrect: _propTypes2.default.func,
60672 onDisabled: _propTypes2.default.func, // 兼容0.x onDisabled
60673 /**
60674 * 最大值
60675 */
60676 max: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60677 /**
60678 * 最小值
60679 */
60680 min: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
60681 /**
60682 * 自定义class
60683 */
60684 className: _propTypes2.default.string,
60685 /**
60686 * 自定义内联样式
60687 */
60688 style: _propTypes2.default.object,
60689 state: _propTypes2.default.oneOf(['error']),
60690 /**
60691 * 格式化当前值
60692 * @param {Number} value
60693 * @return {String|Number}
60694 */
60695 format: _propTypes2.default.func,
60696 /**
60697 * 增加按钮的props
60698 */
60699 upBtnProps: _propTypes2.default.object,
60700 /**
60701 * 减少按钮的props
60702 */
60703 downBtnProps: _propTypes2.default.object,
60704 /**
60705 * 内联 左侧label
60706 */
60707 label: _propTypes2.default.node,
60708 /**
60709 * 内联 右侧附加内容
60710 */
60711 innerAfter: _propTypes2.default.node,
60712 rtl: _propTypes2.default.bool,
60713 /**
60714 * 是否为预览态
60715 */
60716 isPreview: _propTypes2.default.bool,
60717 /**
60718 * 预览态模式下渲染的内容
60719 * @param {Number|String} value 当前值
60720 * @param {Object} props 传入的组件参数
60721 * @returns {reactNode} Element 渲染内容
60722 */
60723 renderPreview: _propTypes2.default.func,
60724 /**
60725 * 预设屏幕宽度
60726 */
60727 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
60728 /**
60729 * 是否展示点击按钮
60730 */
60731 hasTrigger: _propTypes2.default.bool,
60732 /**
60733 * 是否一直显示点击按钮(无须hover)
60734 */
60735 alwaysShowTrigger: _propTypes2.default.bool,
60736 /**
60737 * 开启大数支持,输入输出均为string类型
60738 * @version 1.24
60739 */
60740 stringMode: _propTypes2.default.bool
60741}, _class.defaultProps = {
60742 prefix: 'next-',
60743 // max: MAX_SAFE_INTEGER,
60744 // min: MIN_SAFE_INTEGER,
60745 type: 'normal',
60746 size: 'medium',
60747 step: 1,
60748 style: {},
60749 precision: 0,
60750 editable: true,
60751 onChange: _util.func.noop,
60752 onKeyDown: _util.func.noop,
60753 onBlur: _util.func.noop,
60754 onCorrect: _util.func.noop,
60755 onDisabled: _util.func.noop,
60756 hasTrigger: true,
60757 alwaysShowTrigger: false,
60758 stringMode: false
60759}, _temp);
60760NumberPicker.displayName = 'NumberPicker';
60761exports.default = (0, _reactLifecyclesCompat.polyfill)(NumberPicker);
60762module.exports = exports['default'];
60763
60764/***/ }),
60765/* 385 */
60766/***/ (function(module, exports, __webpack_require__) {
60767
60768var __WEBPACK_AMD_DEFINE_RESULT__;;(function (globalObject) {
60769 'use strict';
60770
60771/*
60772 * bignumber.js v9.0.2
60773 * A JavaScript library for arbitrary-precision arithmetic.
60774 * https://github.com/MikeMcl/bignumber.js
60775 * Copyright (c) 2021 Michael Mclaughlin <M8ch88l@gmail.com>
60776 * MIT Licensed.
60777 *
60778 * BigNumber.prototype methods | BigNumber methods
60779 * |
60780 * absoluteValue abs | clone
60781 * comparedTo | config set
60782 * decimalPlaces dp | DECIMAL_PLACES
60783 * dividedBy div | ROUNDING_MODE
60784 * dividedToIntegerBy idiv | EXPONENTIAL_AT
60785 * exponentiatedBy pow | RANGE
60786 * integerValue | CRYPTO
60787 * isEqualTo eq | MODULO_MODE
60788 * isFinite | POW_PRECISION
60789 * isGreaterThan gt | FORMAT
60790 * isGreaterThanOrEqualTo gte | ALPHABET
60791 * isInteger | isBigNumber
60792 * isLessThan lt | maximum max
60793 * isLessThanOrEqualTo lte | minimum min
60794 * isNaN | random
60795 * isNegative | sum
60796 * isPositive |
60797 * isZero |
60798 * minus |
60799 * modulo mod |
60800 * multipliedBy times |
60801 * negated |
60802 * plus |
60803 * precision sd |
60804 * shiftedBy |
60805 * squareRoot sqrt |
60806 * toExponential |
60807 * toFixed |
60808 * toFormat |
60809 * toFraction |
60810 * toJSON |
60811 * toNumber |
60812 * toPrecision |
60813 * toString |
60814 * valueOf |
60815 *
60816 */
60817
60818
60819 var BigNumber,
60820 isNumeric = /^-?(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?$/i,
60821 mathceil = Math.ceil,
60822 mathfloor = Math.floor,
60823
60824 bignumberError = '[BigNumber Error] ',
60825 tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',
60826
60827 BASE = 1e14,
60828 LOG_BASE = 14,
60829 MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1
60830 // MAX_INT32 = 0x7fffffff, // 2^31 - 1
60831 POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],
60832 SQRT_BASE = 1e7,
60833
60834 // EDITABLE
60835 // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and
60836 // the arguments to toExponential, toFixed, toFormat, and toPrecision.
60837 MAX = 1E9; // 0 to MAX_INT32
60838
60839
60840 /*
60841 * Create and return a BigNumber constructor.
60842 */
60843 function clone(configObject) {
60844 var div, convertBase, parseNumeric,
60845 P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },
60846 ONE = new BigNumber(1),
60847
60848
60849 //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------
60850
60851
60852 // The default values below must be integers within the inclusive ranges stated.
60853 // The values can also be changed at run-time using BigNumber.set.
60854
60855 // The maximum number of decimal places for operations involving division.
60856 DECIMAL_PLACES = 20, // 0 to MAX
60857
60858 // The rounding mode used when rounding to the above decimal places, and when using
60859 // toExponential, toFixed, toFormat and toPrecision, and round (default value).
60860 // UP 0 Away from zero.
60861 // DOWN 1 Towards zero.
60862 // CEIL 2 Towards +Infinity.
60863 // FLOOR 3 Towards -Infinity.
60864 // HALF_UP 4 Towards nearest neighbour. If equidistant, up.
60865 // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.
60866 // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.
60867 // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.
60868 // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.
60869 ROUNDING_MODE = 4, // 0 to 8
60870
60871 // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]
60872
60873 // The exponent value at and beneath which toString returns exponential notation.
60874 // Number type: -7
60875 TO_EXP_NEG = -7, // 0 to -MAX
60876
60877 // The exponent value at and above which toString returns exponential notation.
60878 // Number type: 21
60879 TO_EXP_POS = 21, // 0 to MAX
60880
60881 // RANGE : [MIN_EXP, MAX_EXP]
60882
60883 // The minimum exponent value, beneath which underflow to zero occurs.
60884 // Number type: -324 (5e-324)
60885 MIN_EXP = -1e7, // -1 to -MAX
60886
60887 // The maximum exponent value, above which overflow to Infinity occurs.
60888 // Number type: 308 (1.7976931348623157e+308)
60889 // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.
60890 MAX_EXP = 1e7, // 1 to MAX
60891
60892 // Whether to use cryptographically-secure random number generation, if available.
60893 CRYPTO = false, // true or false
60894
60895 // The modulo mode used when calculating the modulus: a mod n.
60896 // The quotient (q = a / n) is calculated according to the corresponding rounding mode.
60897 // The remainder (r) is calculated as: r = a - n * q.
60898 //
60899 // UP 0 The remainder is positive if the dividend is negative, else is negative.
60900 // DOWN 1 The remainder has the same sign as the dividend.
60901 // This modulo mode is commonly known as 'truncated division' and is
60902 // equivalent to (a % n) in JavaScript.
60903 // FLOOR 3 The remainder has the same sign as the divisor (Python %).
60904 // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.
60905 // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).
60906 // The remainder is always positive.
60907 //
60908 // The truncated division, floored division, Euclidian division and IEEE 754 remainder
60909 // modes are commonly used for the modulus operation.
60910 // Although the other rounding modes can also be used, they may not give useful results.
60911 MODULO_MODE = 1, // 0 to 9
60912
60913 // The maximum number of significant digits of the result of the exponentiatedBy operation.
60914 // If POW_PRECISION is 0, there will be unlimited significant digits.
60915 POW_PRECISION = 0, // 0 to MAX
60916
60917 // The format specification used by the BigNumber.prototype.toFormat method.
60918 FORMAT = {
60919 prefix: '',
60920 groupSize: 3,
60921 secondaryGroupSize: 0,
60922 groupSeparator: ',',
60923 decimalSeparator: '.',
60924 fractionGroupSize: 0,
60925 fractionGroupSeparator: '\xA0', // non-breaking space
60926 suffix: ''
60927 },
60928
60929 // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',
60930 // '-', '.', whitespace, or repeated character.
60931 // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'
60932 ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',
60933 alphabetHasNormalDecimalDigits = true;
60934
60935
60936 //------------------------------------------------------------------------------------------
60937
60938
60939 // CONSTRUCTOR
60940
60941
60942 /*
60943 * The BigNumber constructor and exported function.
60944 * Create and return a new instance of a BigNumber object.
60945 *
60946 * v {number|string|BigNumber} A numeric value.
60947 * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.
60948 */
60949 function BigNumber(v, b) {
60950 var alphabet, c, caseChanged, e, i, isNum, len, str,
60951 x = this;
60952
60953 // Enable constructor call without `new`.
60954 if (!(x instanceof BigNumber)) return new BigNumber(v, b);
60955
60956 if (b == null) {
60957
60958 if (v && v._isBigNumber === true) {
60959 x.s = v.s;
60960
60961 if (!v.c || v.e > MAX_EXP) {
60962 x.c = x.e = null;
60963 } else if (v.e < MIN_EXP) {
60964 x.c = [x.e = 0];
60965 } else {
60966 x.e = v.e;
60967 x.c = v.c.slice();
60968 }
60969
60970 return;
60971 }
60972
60973 if ((isNum = typeof v == 'number') && v * 0 == 0) {
60974
60975 // Use `1 / n` to handle minus zero also.
60976 x.s = 1 / v < 0 ? (v = -v, -1) : 1;
60977
60978 // Fast path for integers, where n < 2147483648 (2**31).
60979 if (v === ~~v) {
60980 for (e = 0, i = v; i >= 10; i /= 10, e++);
60981
60982 if (e > MAX_EXP) {
60983 x.c = x.e = null;
60984 } else {
60985 x.e = e;
60986 x.c = [v];
60987 }
60988
60989 return;
60990 }
60991
60992 str = String(v);
60993 } else {
60994
60995 if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);
60996
60997 x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;
60998 }
60999
61000 // Decimal point?
61001 if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');
61002
61003 // Exponential form?
61004 if ((i = str.search(/e/i)) > 0) {
61005
61006 // Determine exponent.
61007 if (e < 0) e = i;
61008 e += +str.slice(i + 1);
61009 str = str.substring(0, i);
61010 } else if (e < 0) {
61011
61012 // Integer.
61013 e = str.length;
61014 }
61015
61016 } else {
61017
61018 // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'
61019 intCheck(b, 2, ALPHABET.length, 'Base');
61020
61021 // Allow exponential notation to be used with base 10 argument, while
61022 // also rounding to DECIMAL_PLACES as with other bases.
61023 if (b == 10 && alphabetHasNormalDecimalDigits) {
61024 x = new BigNumber(v);
61025 return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);
61026 }
61027
61028 str = String(v);
61029
61030 if (isNum = typeof v == 'number') {
61031
61032 // Avoid potential interpretation of Infinity and NaN as base 44+ values.
61033 if (v * 0 != 0) return parseNumeric(x, str, isNum, b);
61034
61035 x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;
61036
61037 // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'
61038 if (BigNumber.DEBUG && str.replace(/^0\.0*|\./, '').length > 15) {
61039 throw Error
61040 (tooManyDigits + v);
61041 }
61042 } else {
61043 x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;
61044 }
61045
61046 alphabet = ALPHABET.slice(0, b);
61047 e = i = 0;
61048
61049 // Check that str is a valid base b number.
61050 // Don't use RegExp, so alphabet can contain special characters.
61051 for (len = str.length; i < len; i++) {
61052 if (alphabet.indexOf(c = str.charAt(i)) < 0) {
61053 if (c == '.') {
61054
61055 // If '.' is not the first character and it has not be found before.
61056 if (i > e) {
61057 e = len;
61058 continue;
61059 }
61060 } else if (!caseChanged) {
61061
61062 // Allow e.g. hexadecimal 'FF' as well as 'ff'.
61063 if (str == str.toUpperCase() && (str = str.toLowerCase()) ||
61064 str == str.toLowerCase() && (str = str.toUpperCase())) {
61065 caseChanged = true;
61066 i = -1;
61067 e = 0;
61068 continue;
61069 }
61070 }
61071
61072 return parseNumeric(x, String(v), isNum, b);
61073 }
61074 }
61075
61076 // Prevent later check for length on converted number.
61077 isNum = false;
61078 str = convertBase(str, b, 10, x.s);
61079
61080 // Decimal point?
61081 if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');
61082 else e = str.length;
61083 }
61084
61085 // Determine leading zeros.
61086 for (i = 0; str.charCodeAt(i) === 48; i++);
61087
61088 // Determine trailing zeros.
61089 for (len = str.length; str.charCodeAt(--len) === 48;);
61090
61091 if (str = str.slice(i, ++len)) {
61092 len -= i;
61093
61094 // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'
61095 if (isNum && BigNumber.DEBUG &&
61096 len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {
61097 throw Error
61098 (tooManyDigits + (x.s * v));
61099 }
61100
61101 // Overflow?
61102 if ((e = e - i - 1) > MAX_EXP) {
61103
61104 // Infinity.
61105 x.c = x.e = null;
61106
61107 // Underflow?
61108 } else if (e < MIN_EXP) {
61109
61110 // Zero.
61111 x.c = [x.e = 0];
61112 } else {
61113 x.e = e;
61114 x.c = [];
61115
61116 // Transform base
61117
61118 // e is the base 10 exponent.
61119 // i is where to slice str to get the first element of the coefficient array.
61120 i = (e + 1) % LOG_BASE;
61121 if (e < 0) i += LOG_BASE; // i < 1
61122
61123 if (i < len) {
61124 if (i) x.c.push(+str.slice(0, i));
61125
61126 for (len -= LOG_BASE; i < len;) {
61127 x.c.push(+str.slice(i, i += LOG_BASE));
61128 }
61129
61130 i = LOG_BASE - (str = str.slice(i)).length;
61131 } else {
61132 i -= len;
61133 }
61134
61135 for (; i--; str += '0');
61136 x.c.push(+str);
61137 }
61138 } else {
61139
61140 // Zero.
61141 x.c = [x.e = 0];
61142 }
61143 }
61144
61145
61146 // CONSTRUCTOR PROPERTIES
61147
61148
61149 BigNumber.clone = clone;
61150
61151 BigNumber.ROUND_UP = 0;
61152 BigNumber.ROUND_DOWN = 1;
61153 BigNumber.ROUND_CEIL = 2;
61154 BigNumber.ROUND_FLOOR = 3;
61155 BigNumber.ROUND_HALF_UP = 4;
61156 BigNumber.ROUND_HALF_DOWN = 5;
61157 BigNumber.ROUND_HALF_EVEN = 6;
61158 BigNumber.ROUND_HALF_CEIL = 7;
61159 BigNumber.ROUND_HALF_FLOOR = 8;
61160 BigNumber.EUCLID = 9;
61161
61162
61163 /*
61164 * Configure infrequently-changing library-wide settings.
61165 *
61166 * Accept an object with the following optional properties (if the value of a property is
61167 * a number, it must be an integer within the inclusive range stated):
61168 *
61169 * DECIMAL_PLACES {number} 0 to MAX
61170 * ROUNDING_MODE {number} 0 to 8
61171 * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]
61172 * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]
61173 * CRYPTO {boolean} true or false
61174 * MODULO_MODE {number} 0 to 9
61175 * POW_PRECISION {number} 0 to MAX
61176 * ALPHABET {string} A string of two or more unique characters which does
61177 * not contain '.'.
61178 * FORMAT {object} An object with some of the following properties:
61179 * prefix {string}
61180 * groupSize {number}
61181 * secondaryGroupSize {number}
61182 * groupSeparator {string}
61183 * decimalSeparator {string}
61184 * fractionGroupSize {number}
61185 * fractionGroupSeparator {string}
61186 * suffix {string}
61187 *
61188 * (The values assigned to the above FORMAT object properties are not checked for validity.)
61189 *
61190 * E.g.
61191 * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })
61192 *
61193 * Ignore properties/parameters set to null or undefined, except for ALPHABET.
61194 *
61195 * Return an object with the properties current values.
61196 */
61197 BigNumber.config = BigNumber.set = function (obj) {
61198 var p, v;
61199
61200 if (obj != null) {
61201
61202 if (typeof obj == 'object') {
61203
61204 // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.
61205 // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'
61206 if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {
61207 v = obj[p];
61208 intCheck(v, 0, MAX, p);
61209 DECIMAL_PLACES = v;
61210 }
61211
61212 // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.
61213 // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'
61214 if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {
61215 v = obj[p];
61216 intCheck(v, 0, 8, p);
61217 ROUNDING_MODE = v;
61218 }
61219
61220 // EXPONENTIAL_AT {number|number[]}
61221 // Integer, -MAX to MAX inclusive or
61222 // [integer -MAX to 0 inclusive, 0 to MAX inclusive].
61223 // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'
61224 if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {
61225 v = obj[p];
61226 if (v && v.pop) {
61227 intCheck(v[0], -MAX, 0, p);
61228 intCheck(v[1], 0, MAX, p);
61229 TO_EXP_NEG = v[0];
61230 TO_EXP_POS = v[1];
61231 } else {
61232 intCheck(v, -MAX, MAX, p);
61233 TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);
61234 }
61235 }
61236
61237 // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or
61238 // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].
61239 // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'
61240 if (obj.hasOwnProperty(p = 'RANGE')) {
61241 v = obj[p];
61242 if (v && v.pop) {
61243 intCheck(v[0], -MAX, -1, p);
61244 intCheck(v[1], 1, MAX, p);
61245 MIN_EXP = v[0];
61246 MAX_EXP = v[1];
61247 } else {
61248 intCheck(v, -MAX, MAX, p);
61249 if (v) {
61250 MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);
61251 } else {
61252 throw Error
61253 (bignumberError + p + ' cannot be zero: ' + v);
61254 }
61255 }
61256 }
61257
61258 // CRYPTO {boolean} true or false.
61259 // '[BigNumber Error] CRYPTO not true or false: {v}'
61260 // '[BigNumber Error] crypto unavailable'
61261 if (obj.hasOwnProperty(p = 'CRYPTO')) {
61262 v = obj[p];
61263 if (v === !!v) {
61264 if (v) {
61265 if (typeof crypto != 'undefined' && crypto &&
61266 (crypto.getRandomValues || crypto.randomBytes)) {
61267 CRYPTO = v;
61268 } else {
61269 CRYPTO = !v;
61270 throw Error
61271 (bignumberError + 'crypto unavailable');
61272 }
61273 } else {
61274 CRYPTO = v;
61275 }
61276 } else {
61277 throw Error
61278 (bignumberError + p + ' not true or false: ' + v);
61279 }
61280 }
61281
61282 // MODULO_MODE {number} Integer, 0 to 9 inclusive.
61283 // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'
61284 if (obj.hasOwnProperty(p = 'MODULO_MODE')) {
61285 v = obj[p];
61286 intCheck(v, 0, 9, p);
61287 MODULO_MODE = v;
61288 }
61289
61290 // POW_PRECISION {number} Integer, 0 to MAX inclusive.
61291 // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'
61292 if (obj.hasOwnProperty(p = 'POW_PRECISION')) {
61293 v = obj[p];
61294 intCheck(v, 0, MAX, p);
61295 POW_PRECISION = v;
61296 }
61297
61298 // FORMAT {object}
61299 // '[BigNumber Error] FORMAT not an object: {v}'
61300 if (obj.hasOwnProperty(p = 'FORMAT')) {
61301 v = obj[p];
61302 if (typeof v == 'object') FORMAT = v;
61303 else throw Error
61304 (bignumberError + p + ' not an object: ' + v);
61305 }
61306
61307 // ALPHABET {string}
61308 // '[BigNumber Error] ALPHABET invalid: {v}'
61309 if (obj.hasOwnProperty(p = 'ALPHABET')) {
61310 v = obj[p];
61311
61312 // Disallow if less than two characters,
61313 // or if it contains '+', '-', '.', whitespace, or a repeated character.
61314 if (typeof v == 'string' && !/^.?$|[+\-.\s]|(.).*\1/.test(v)) {
61315 alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';
61316 ALPHABET = v;
61317 } else {
61318 throw Error
61319 (bignumberError + p + ' invalid: ' + v);
61320 }
61321 }
61322
61323 } else {
61324
61325 // '[BigNumber Error] Object expected: {v}'
61326 throw Error
61327 (bignumberError + 'Object expected: ' + obj);
61328 }
61329 }
61330
61331 return {
61332 DECIMAL_PLACES: DECIMAL_PLACES,
61333 ROUNDING_MODE: ROUNDING_MODE,
61334 EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],
61335 RANGE: [MIN_EXP, MAX_EXP],
61336 CRYPTO: CRYPTO,
61337 MODULO_MODE: MODULO_MODE,
61338 POW_PRECISION: POW_PRECISION,
61339 FORMAT: FORMAT,
61340 ALPHABET: ALPHABET
61341 };
61342 };
61343
61344
61345 /*
61346 * Return true if v is a BigNumber instance, otherwise return false.
61347 *
61348 * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.
61349 *
61350 * v {any}
61351 *
61352 * '[BigNumber Error] Invalid BigNumber: {v}'
61353 */
61354 BigNumber.isBigNumber = function (v) {
61355 if (!v || v._isBigNumber !== true) return false;
61356 if (!BigNumber.DEBUG) return true;
61357
61358 var i, n,
61359 c = v.c,
61360 e = v.e,
61361 s = v.s;
61362
61363 out: if ({}.toString.call(c) == '[object Array]') {
61364
61365 if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {
61366
61367 // If the first element is zero, the BigNumber value must be zero.
61368 if (c[0] === 0) {
61369 if (e === 0 && c.length === 1) return true;
61370 break out;
61371 }
61372
61373 // Calculate number of digits that c[0] should have, based on the exponent.
61374 i = (e + 1) % LOG_BASE;
61375 if (i < 1) i += LOG_BASE;
61376
61377 // Calculate number of digits of c[0].
61378 //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {
61379 if (String(c[0]).length == i) {
61380
61381 for (i = 0; i < c.length; i++) {
61382 n = c[i];
61383 if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;
61384 }
61385
61386 // Last element cannot be zero, unless it is the only element.
61387 if (n !== 0) return true;
61388 }
61389 }
61390
61391 // Infinity/NaN
61392 } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {
61393 return true;
61394 }
61395
61396 throw Error
61397 (bignumberError + 'Invalid BigNumber: ' + v);
61398 };
61399
61400
61401 /*
61402 * Return a new BigNumber whose value is the maximum of the arguments.
61403 *
61404 * arguments {number|string|BigNumber}
61405 */
61406 BigNumber.maximum = BigNumber.max = function () {
61407 return maxOrMin(arguments, P.lt);
61408 };
61409
61410
61411 /*
61412 * Return a new BigNumber whose value is the minimum of the arguments.
61413 *
61414 * arguments {number|string|BigNumber}
61415 */
61416 BigNumber.minimum = BigNumber.min = function () {
61417 return maxOrMin(arguments, P.gt);
61418 };
61419
61420
61421 /*
61422 * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,
61423 * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing
61424 * zeros are produced).
61425 *
61426 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
61427 *
61428 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'
61429 * '[BigNumber Error] crypto unavailable'
61430 */
61431 BigNumber.random = (function () {
61432 var pow2_53 = 0x20000000000000;
61433
61434 // Return a 53 bit integer n, where 0 <= n < 9007199254740992.
61435 // Check if Math.random() produces more than 32 bits of randomness.
61436 // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.
61437 // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.
61438 var random53bitInt = (Math.random() * pow2_53) & 0x1fffff
61439 ? function () { return mathfloor(Math.random() * pow2_53); }
61440 : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +
61441 (Math.random() * 0x800000 | 0); };
61442
61443 return function (dp) {
61444 var a, b, e, k, v,
61445 i = 0,
61446 c = [],
61447 rand = new BigNumber(ONE);
61448
61449 if (dp == null) dp = DECIMAL_PLACES;
61450 else intCheck(dp, 0, MAX);
61451
61452 k = mathceil(dp / LOG_BASE);
61453
61454 if (CRYPTO) {
61455
61456 // Browsers supporting crypto.getRandomValues.
61457 if (crypto.getRandomValues) {
61458
61459 a = crypto.getRandomValues(new Uint32Array(k *= 2));
61460
61461 for (; i < k;) {
61462
61463 // 53 bits:
61464 // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)
61465 // 11111 11111111 11111111 11111111 11100000 00000000 00000000
61466 // ((Math.pow(2, 32) - 1) >>> 11).toString(2)
61467 // 11111 11111111 11111111
61468 // 0x20000 is 2^21.
61469 v = a[i] * 0x20000 + (a[i + 1] >>> 11);
61470
61471 // Rejection sampling:
61472 // 0 <= v < 9007199254740992
61473 // Probability that v >= 9e15, is
61474 // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251
61475 if (v >= 9e15) {
61476 b = crypto.getRandomValues(new Uint32Array(2));
61477 a[i] = b[0];
61478 a[i + 1] = b[1];
61479 } else {
61480
61481 // 0 <= v <= 8999999999999999
61482 // 0 <= (v % 1e14) <= 99999999999999
61483 c.push(v % 1e14);
61484 i += 2;
61485 }
61486 }
61487 i = k / 2;
61488
61489 // Node.js supporting crypto.randomBytes.
61490 } else if (crypto.randomBytes) {
61491
61492 // buffer
61493 a = crypto.randomBytes(k *= 7);
61494
61495 for (; i < k;) {
61496
61497 // 0x1000000000000 is 2^48, 0x10000000000 is 2^40
61498 // 0x100000000 is 2^32, 0x1000000 is 2^24
61499 // 11111 11111111 11111111 11111111 11111111 11111111 11111111
61500 // 0 <= v < 9007199254740992
61501 v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +
61502 (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +
61503 (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];
61504
61505 if (v >= 9e15) {
61506 crypto.randomBytes(7).copy(a, i);
61507 } else {
61508
61509 // 0 <= (v % 1e14) <= 99999999999999
61510 c.push(v % 1e14);
61511 i += 7;
61512 }
61513 }
61514 i = k / 7;
61515 } else {
61516 CRYPTO = false;
61517 throw Error
61518 (bignumberError + 'crypto unavailable');
61519 }
61520 }
61521
61522 // Use Math.random.
61523 if (!CRYPTO) {
61524
61525 for (; i < k;) {
61526 v = random53bitInt();
61527 if (v < 9e15) c[i++] = v % 1e14;
61528 }
61529 }
61530
61531 k = c[--i];
61532 dp %= LOG_BASE;
61533
61534 // Convert trailing digits to zeros according to dp.
61535 if (k && dp) {
61536 v = POWS_TEN[LOG_BASE - dp];
61537 c[i] = mathfloor(k / v) * v;
61538 }
61539
61540 // Remove trailing elements which are zero.
61541 for (; c[i] === 0; c.pop(), i--);
61542
61543 // Zero?
61544 if (i < 0) {
61545 c = [e = 0];
61546 } else {
61547
61548 // Remove leading elements which are zero and adjust exponent accordingly.
61549 for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);
61550
61551 // Count the digits of the first element of c to determine leading zeros, and...
61552 for (i = 1, v = c[0]; v >= 10; v /= 10, i++);
61553
61554 // adjust the exponent accordingly.
61555 if (i < LOG_BASE) e -= LOG_BASE - i;
61556 }
61557
61558 rand.e = e;
61559 rand.c = c;
61560 return rand;
61561 };
61562 })();
61563
61564
61565 /*
61566 * Return a BigNumber whose value is the sum of the arguments.
61567 *
61568 * arguments {number|string|BigNumber}
61569 */
61570 BigNumber.sum = function () {
61571 var i = 1,
61572 args = arguments,
61573 sum = new BigNumber(args[0]);
61574 for (; i < args.length;) sum = sum.plus(args[i++]);
61575 return sum;
61576 };
61577
61578
61579 // PRIVATE FUNCTIONS
61580
61581
61582 // Called by BigNumber and BigNumber.prototype.toString.
61583 convertBase = (function () {
61584 var decimal = '0123456789';
61585
61586 /*
61587 * Convert string of baseIn to an array of numbers of baseOut.
61588 * Eg. toBaseOut('255', 10, 16) returns [15, 15].
61589 * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].
61590 */
61591 function toBaseOut(str, baseIn, baseOut, alphabet) {
61592 var j,
61593 arr = [0],
61594 arrL,
61595 i = 0,
61596 len = str.length;
61597
61598 for (; i < len;) {
61599 for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);
61600
61601 arr[0] += alphabet.indexOf(str.charAt(i++));
61602
61603 for (j = 0; j < arr.length; j++) {
61604
61605 if (arr[j] > baseOut - 1) {
61606 if (arr[j + 1] == null) arr[j + 1] = 0;
61607 arr[j + 1] += arr[j] / baseOut | 0;
61608 arr[j] %= baseOut;
61609 }
61610 }
61611 }
61612
61613 return arr.reverse();
61614 }
61615
61616 // Convert a numeric string of baseIn to a numeric string of baseOut.
61617 // If the caller is toString, we are converting from base 10 to baseOut.
61618 // If the caller is BigNumber, we are converting from baseIn to base 10.
61619 return function (str, baseIn, baseOut, sign, callerIsToString) {
61620 var alphabet, d, e, k, r, x, xc, y,
61621 i = str.indexOf('.'),
61622 dp = DECIMAL_PLACES,
61623 rm = ROUNDING_MODE;
61624
61625 // Non-integer.
61626 if (i >= 0) {
61627 k = POW_PRECISION;
61628
61629 // Unlimited precision.
61630 POW_PRECISION = 0;
61631 str = str.replace('.', '');
61632 y = new BigNumber(baseIn);
61633 x = y.pow(str.length - i);
61634 POW_PRECISION = k;
61635
61636 // Convert str as if an integer, then restore the fraction part by dividing the
61637 // result by its base raised to a power.
61638
61639 y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),
61640 10, baseOut, decimal);
61641 y.e = y.c.length;
61642 }
61643
61644 // Convert the number as integer.
61645
61646 xc = toBaseOut(str, baseIn, baseOut, callerIsToString
61647 ? (alphabet = ALPHABET, decimal)
61648 : (alphabet = decimal, ALPHABET));
61649
61650 // xc now represents str as an integer and converted to baseOut. e is the exponent.
61651 e = k = xc.length;
61652
61653 // Remove trailing zeros.
61654 for (; xc[--k] == 0; xc.pop());
61655
61656 // Zero?
61657 if (!xc[0]) return alphabet.charAt(0);
61658
61659 // Does str represent an integer? If so, no need for the division.
61660 if (i < 0) {
61661 --e;
61662 } else {
61663 x.c = xc;
61664 x.e = e;
61665
61666 // The sign is needed for correct rounding.
61667 x.s = sign;
61668 x = div(x, y, dp, rm, baseOut);
61669 xc = x.c;
61670 r = x.r;
61671 e = x.e;
61672 }
61673
61674 // xc now represents str converted to baseOut.
61675
61676 // THe index of the rounding digit.
61677 d = e + dp + 1;
61678
61679 // The rounding digit: the digit to the right of the digit that may be rounded up.
61680 i = xc[d];
61681
61682 // Look at the rounding digits and mode to determine whether to round up.
61683
61684 k = baseOut / 2;
61685 r = r || d < 0 || xc[d + 1] != null;
61686
61687 r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))
61688 : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||
61689 rm == (x.s < 0 ? 8 : 7));
61690
61691 // If the index of the rounding digit is not greater than zero, or xc represents
61692 // zero, then the result of the base conversion is zero or, if rounding up, a value
61693 // such as 0.00001.
61694 if (d < 1 || !xc[0]) {
61695
61696 // 1^-dp or 0
61697 str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);
61698 } else {
61699
61700 // Truncate xc to the required number of decimal places.
61701 xc.length = d;
61702
61703 // Round up?
61704 if (r) {
61705
61706 // Rounding up may mean the previous digit has to be rounded up and so on.
61707 for (--baseOut; ++xc[--d] > baseOut;) {
61708 xc[d] = 0;
61709
61710 if (!d) {
61711 ++e;
61712 xc = [1].concat(xc);
61713 }
61714 }
61715 }
61716
61717 // Determine trailing zeros.
61718 for (k = xc.length; !xc[--k];);
61719
61720 // E.g. [4, 11, 15] becomes 4bf.
61721 for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));
61722
61723 // Add leading zeros, decimal point and trailing zeros as required.
61724 str = toFixedPoint(str, e, alphabet.charAt(0));
61725 }
61726
61727 // The caller will add the sign.
61728 return str;
61729 };
61730 })();
61731
61732
61733 // Perform division in the specified base. Called by div and convertBase.
61734 div = (function () {
61735
61736 // Assume non-zero x and k.
61737 function multiply(x, k, base) {
61738 var m, temp, xlo, xhi,
61739 carry = 0,
61740 i = x.length,
61741 klo = k % SQRT_BASE,
61742 khi = k / SQRT_BASE | 0;
61743
61744 for (x = x.slice(); i--;) {
61745 xlo = x[i] % SQRT_BASE;
61746 xhi = x[i] / SQRT_BASE | 0;
61747 m = khi * xlo + xhi * klo;
61748 temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;
61749 carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;
61750 x[i] = temp % base;
61751 }
61752
61753 if (carry) x = [carry].concat(x);
61754
61755 return x;
61756 }
61757
61758 function compare(a, b, aL, bL) {
61759 var i, cmp;
61760
61761 if (aL != bL) {
61762 cmp = aL > bL ? 1 : -1;
61763 } else {
61764
61765 for (i = cmp = 0; i < aL; i++) {
61766
61767 if (a[i] != b[i]) {
61768 cmp = a[i] > b[i] ? 1 : -1;
61769 break;
61770 }
61771 }
61772 }
61773
61774 return cmp;
61775 }
61776
61777 function subtract(a, b, aL, base) {
61778 var i = 0;
61779
61780 // Subtract b from a.
61781 for (; aL--;) {
61782 a[aL] -= i;
61783 i = a[aL] < b[aL] ? 1 : 0;
61784 a[aL] = i * base + a[aL] - b[aL];
61785 }
61786
61787 // Remove leading zeros.
61788 for (; !a[0] && a.length > 1; a.splice(0, 1));
61789 }
61790
61791 // x: dividend, y: divisor.
61792 return function (x, y, dp, rm, base) {
61793 var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,
61794 yL, yz,
61795 s = x.s == y.s ? 1 : -1,
61796 xc = x.c,
61797 yc = y.c;
61798
61799 // Either NaN, Infinity or 0?
61800 if (!xc || !xc[0] || !yc || !yc[0]) {
61801
61802 return new BigNumber(
61803
61804 // Return NaN if either NaN, or both Infinity or 0.
61805 !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :
61806
61807 // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.
61808 xc && xc[0] == 0 || !yc ? s * 0 : s / 0
61809 );
61810 }
61811
61812 q = new BigNumber(s);
61813 qc = q.c = [];
61814 e = x.e - y.e;
61815 s = dp + e + 1;
61816
61817 if (!base) {
61818 base = BASE;
61819 e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);
61820 s = s / LOG_BASE | 0;
61821 }
61822
61823 // Result exponent may be one less then the current value of e.
61824 // The coefficients of the BigNumbers from convertBase may have trailing zeros.
61825 for (i = 0; yc[i] == (xc[i] || 0); i++);
61826
61827 if (yc[i] > (xc[i] || 0)) e--;
61828
61829 if (s < 0) {
61830 qc.push(1);
61831 more = true;
61832 } else {
61833 xL = xc.length;
61834 yL = yc.length;
61835 i = 0;
61836 s += 2;
61837
61838 // Normalise xc and yc so highest order digit of yc is >= base / 2.
61839
61840 n = mathfloor(base / (yc[0] + 1));
61841
61842 // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.
61843 // if (n > 1 || n++ == 1 && yc[0] < base / 2) {
61844 if (n > 1) {
61845 yc = multiply(yc, n, base);
61846 xc = multiply(xc, n, base);
61847 yL = yc.length;
61848 xL = xc.length;
61849 }
61850
61851 xi = yL;
61852 rem = xc.slice(0, yL);
61853 remL = rem.length;
61854
61855 // Add zeros to make remainder as long as divisor.
61856 for (; remL < yL; rem[remL++] = 0);
61857 yz = yc.slice();
61858 yz = [0].concat(yz);
61859 yc0 = yc[0];
61860 if (yc[1] >= base / 2) yc0++;
61861 // Not necessary, but to prevent trial digit n > base, when using base 3.
61862 // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;
61863
61864 do {
61865 n = 0;
61866
61867 // Compare divisor and remainder.
61868 cmp = compare(yc, rem, yL, remL);
61869
61870 // If divisor < remainder.
61871 if (cmp < 0) {
61872
61873 // Calculate trial digit, n.
61874
61875 rem0 = rem[0];
61876 if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);
61877
61878 // n is how many times the divisor goes into the current remainder.
61879 n = mathfloor(rem0 / yc0);
61880
61881 // Algorithm:
61882 // product = divisor multiplied by trial digit (n).
61883 // Compare product and remainder.
61884 // If product is greater than remainder:
61885 // Subtract divisor from product, decrement trial digit.
61886 // Subtract product from remainder.
61887 // If product was less than remainder at the last compare:
61888 // Compare new remainder and divisor.
61889 // If remainder is greater than divisor:
61890 // Subtract divisor from remainder, increment trial digit.
61891
61892 if (n > 1) {
61893
61894 // n may be > base only when base is 3.
61895 if (n >= base) n = base - 1;
61896
61897 // product = divisor * trial digit.
61898 prod = multiply(yc, n, base);
61899 prodL = prod.length;
61900 remL = rem.length;
61901
61902 // Compare product and remainder.
61903 // If product > remainder then trial digit n too high.
61904 // n is 1 too high about 5% of the time, and is not known to have
61905 // ever been more than 1 too high.
61906 while (compare(prod, rem, prodL, remL) == 1) {
61907 n--;
61908
61909 // Subtract divisor from product.
61910 subtract(prod, yL < prodL ? yz : yc, prodL, base);
61911 prodL = prod.length;
61912 cmp = 1;
61913 }
61914 } else {
61915
61916 // n is 0 or 1, cmp is -1.
61917 // If n is 0, there is no need to compare yc and rem again below,
61918 // so change cmp to 1 to avoid it.
61919 // If n is 1, leave cmp as -1, so yc and rem are compared again.
61920 if (n == 0) {
61921
61922 // divisor < remainder, so n must be at least 1.
61923 cmp = n = 1;
61924 }
61925
61926 // product = divisor
61927 prod = yc.slice();
61928 prodL = prod.length;
61929 }
61930
61931 if (prodL < remL) prod = [0].concat(prod);
61932
61933 // Subtract product from remainder.
61934 subtract(rem, prod, remL, base);
61935 remL = rem.length;
61936
61937 // If product was < remainder.
61938 if (cmp == -1) {
61939
61940 // Compare divisor and new remainder.
61941 // If divisor < new remainder, subtract divisor from remainder.
61942 // Trial digit n too low.
61943 // n is 1 too low about 5% of the time, and very rarely 2 too low.
61944 while (compare(yc, rem, yL, remL) < 1) {
61945 n++;
61946
61947 // Subtract divisor from remainder.
61948 subtract(rem, yL < remL ? yz : yc, remL, base);
61949 remL = rem.length;
61950 }
61951 }
61952 } else if (cmp === 0) {
61953 n++;
61954 rem = [0];
61955 } // else cmp === 1 and n will be 0
61956
61957 // Add the next digit, n, to the result array.
61958 qc[i++] = n;
61959
61960 // Update the remainder.
61961 if (rem[0]) {
61962 rem[remL++] = xc[xi] || 0;
61963 } else {
61964 rem = [xc[xi]];
61965 remL = 1;
61966 }
61967 } while ((xi++ < xL || rem[0] != null) && s--);
61968
61969 more = rem[0] != null;
61970
61971 // Leading zero?
61972 if (!qc[0]) qc.splice(0, 1);
61973 }
61974
61975 if (base == BASE) {
61976
61977 // To calculate q.e, first get the number of digits of qc[0].
61978 for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);
61979
61980 round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);
61981
61982 // Caller is convertBase.
61983 } else {
61984 q.e = e;
61985 q.r = +more;
61986 }
61987
61988 return q;
61989 };
61990 })();
61991
61992
61993 /*
61994 * Return a string representing the value of BigNumber n in fixed-point or exponential
61995 * notation rounded to the specified decimal places or significant digits.
61996 *
61997 * n: a BigNumber.
61998 * i: the index of the last digit required (i.e. the digit that may be rounded up).
61999 * rm: the rounding mode.
62000 * id: 1 (toExponential) or 2 (toPrecision).
62001 */
62002 function format(n, i, rm, id) {
62003 var c0, e, ne, len, str;
62004
62005 if (rm == null) rm = ROUNDING_MODE;
62006 else intCheck(rm, 0, 8);
62007
62008 if (!n.c) return n.toString();
62009
62010 c0 = n.c[0];
62011 ne = n.e;
62012
62013 if (i == null) {
62014 str = coeffToString(n.c);
62015 str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)
62016 ? toExponential(str, ne)
62017 : toFixedPoint(str, ne, '0');
62018 } else {
62019 n = round(new BigNumber(n), i, rm);
62020
62021 // n.e may have changed if the value was rounded up.
62022 e = n.e;
62023
62024 str = coeffToString(n.c);
62025 len = str.length;
62026
62027 // toPrecision returns exponential notation if the number of significant digits
62028 // specified is less than the number of digits necessary to represent the integer
62029 // part of the value in fixed-point notation.
62030
62031 // Exponential notation.
62032 if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {
62033
62034 // Append zeros?
62035 for (; len < i; str += '0', len++);
62036 str = toExponential(str, e);
62037
62038 // Fixed-point notation.
62039 } else {
62040 i -= ne;
62041 str = toFixedPoint(str, e, '0');
62042
62043 // Append zeros?
62044 if (e + 1 > len) {
62045 if (--i > 0) for (str += '.'; i--; str += '0');
62046 } else {
62047 i += e - len;
62048 if (i > 0) {
62049 if (e + 1 == len) str += '.';
62050 for (; i--; str += '0');
62051 }
62052 }
62053 }
62054 }
62055
62056 return n.s < 0 && c0 ? '-' + str : str;
62057 }
62058
62059
62060 // Handle BigNumber.max and BigNumber.min.
62061 function maxOrMin(args, method) {
62062 var n,
62063 i = 1,
62064 m = new BigNumber(args[0]);
62065
62066 for (; i < args.length; i++) {
62067 n = new BigNumber(args[i]);
62068
62069 // If any number is NaN, return NaN.
62070 if (!n.s) {
62071 m = n;
62072 break;
62073 } else if (method.call(m, n)) {
62074 m = n;
62075 }
62076 }
62077
62078 return m;
62079 }
62080
62081
62082 /*
62083 * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.
62084 * Called by minus, plus and times.
62085 */
62086 function normalise(n, c, e) {
62087 var i = 1,
62088 j = c.length;
62089
62090 // Remove trailing zeros.
62091 for (; !c[--j]; c.pop());
62092
62093 // Calculate the base 10 exponent. First get the number of digits of c[0].
62094 for (j = c[0]; j >= 10; j /= 10, i++);
62095
62096 // Overflow?
62097 if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {
62098
62099 // Infinity.
62100 n.c = n.e = null;
62101
62102 // Underflow?
62103 } else if (e < MIN_EXP) {
62104
62105 // Zero.
62106 n.c = [n.e = 0];
62107 } else {
62108 n.e = e;
62109 n.c = c;
62110 }
62111
62112 return n;
62113 }
62114
62115
62116 // Handle values that fail the validity test in BigNumber.
62117 parseNumeric = (function () {
62118 var basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i,
62119 dotAfter = /^([^.]+)\.$/,
62120 dotBefore = /^\.([^.]+)$/,
62121 isInfinityOrNaN = /^-?(Infinity|NaN)$/,
62122 whitespaceOrPlus = /^\s*\+(?=[\w.])|^\s+|\s+$/g;
62123
62124 return function (x, str, isNum, b) {
62125 var base,
62126 s = isNum ? str : str.replace(whitespaceOrPlus, '');
62127
62128 // No exception on ±Infinity or NaN.
62129 if (isInfinityOrNaN.test(s)) {
62130 x.s = isNaN(s) ? null : s < 0 ? -1 : 1;
62131 } else {
62132 if (!isNum) {
62133
62134 // basePrefix = /^(-?)0([xbo])(?=\w[\w.]*$)/i
62135 s = s.replace(basePrefix, function (m, p1, p2) {
62136 base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;
62137 return !b || b == base ? p1 : m;
62138 });
62139
62140 if (b) {
62141 base = b;
62142
62143 // E.g. '1.' to '1', '.1' to '0.1'
62144 s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');
62145 }
62146
62147 if (str != s) return new BigNumber(s, base);
62148 }
62149
62150 // '[BigNumber Error] Not a number: {n}'
62151 // '[BigNumber Error] Not a base {b} number: {n}'
62152 if (BigNumber.DEBUG) {
62153 throw Error
62154 (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);
62155 }
62156
62157 // NaN
62158 x.s = null;
62159 }
62160
62161 x.c = x.e = null;
62162 }
62163 })();
62164
62165
62166 /*
62167 * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.
62168 * If r is truthy, it is known that there are more digits after the rounding digit.
62169 */
62170 function round(x, sd, rm, r) {
62171 var d, i, j, k, n, ni, rd,
62172 xc = x.c,
62173 pows10 = POWS_TEN;
62174
62175 // if x is not Infinity or NaN...
62176 if (xc) {
62177
62178 // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.
62179 // n is a base 1e14 number, the value of the element of array x.c containing rd.
62180 // ni is the index of n within x.c.
62181 // d is the number of digits of n.
62182 // i is the index of rd within n including leading zeros.
62183 // j is the actual index of rd within n (if < 0, rd is a leading zero).
62184 out: {
62185
62186 // Get the number of digits of the first element of xc.
62187 for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);
62188 i = sd - d;
62189
62190 // If the rounding digit is in the first element of xc...
62191 if (i < 0) {
62192 i += LOG_BASE;
62193 j = sd;
62194 n = xc[ni = 0];
62195
62196 // Get the rounding digit at index j of n.
62197 rd = n / pows10[d - j - 1] % 10 | 0;
62198 } else {
62199 ni = mathceil((i + 1) / LOG_BASE);
62200
62201 if (ni >= xc.length) {
62202
62203 if (r) {
62204
62205 // Needed by sqrt.
62206 for (; xc.length <= ni; xc.push(0));
62207 n = rd = 0;
62208 d = 1;
62209 i %= LOG_BASE;
62210 j = i - LOG_BASE + 1;
62211 } else {
62212 break out;
62213 }
62214 } else {
62215 n = k = xc[ni];
62216
62217 // Get the number of digits of n.
62218 for (d = 1; k >= 10; k /= 10, d++);
62219
62220 // Get the index of rd within n.
62221 i %= LOG_BASE;
62222
62223 // Get the index of rd within n, adjusted for leading zeros.
62224 // The number of leading zeros of n is given by LOG_BASE - d.
62225 j = i - LOG_BASE + d;
62226
62227 // Get the rounding digit at index j of n.
62228 rd = j < 0 ? 0 : n / pows10[d - j - 1] % 10 | 0;
62229 }
62230 }
62231
62232 r = r || sd < 0 ||
62233
62234 // Are there any non-zero digits after the rounding digit?
62235 // The expression n % pows10[d - j - 1] returns all digits of n to the right
62236 // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.
62237 xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);
62238
62239 r = rm < 4
62240 ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))
62241 : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&
62242
62243 // Check whether the digit to the left of the rounding digit is odd.
62244 ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||
62245 rm == (x.s < 0 ? 8 : 7));
62246
62247 if (sd < 1 || !xc[0]) {
62248 xc.length = 0;
62249
62250 if (r) {
62251
62252 // Convert sd to decimal places.
62253 sd -= x.e + 1;
62254
62255 // 1, 0.1, 0.01, 0.001, 0.0001 etc.
62256 xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];
62257 x.e = -sd || 0;
62258 } else {
62259
62260 // Zero.
62261 xc[0] = x.e = 0;
62262 }
62263
62264 return x;
62265 }
62266
62267 // Remove excess digits.
62268 if (i == 0) {
62269 xc.length = ni;
62270 k = 1;
62271 ni--;
62272 } else {
62273 xc.length = ni + 1;
62274 k = pows10[LOG_BASE - i];
62275
62276 // E.g. 56700 becomes 56000 if 7 is the rounding digit.
62277 // j > 0 means i > number of leading zeros of n.
62278 xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;
62279 }
62280
62281 // Round up?
62282 if (r) {
62283
62284 for (; ;) {
62285
62286 // If the digit to be rounded up is in the first element of xc...
62287 if (ni == 0) {
62288
62289 // i will be the length of xc[0] before k is added.
62290 for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);
62291 j = xc[0] += k;
62292 for (k = 1; j >= 10; j /= 10, k++);
62293
62294 // if i != k the length has increased.
62295 if (i != k) {
62296 x.e++;
62297 if (xc[0] == BASE) xc[0] = 1;
62298 }
62299
62300 break;
62301 } else {
62302 xc[ni] += k;
62303 if (xc[ni] != BASE) break;
62304 xc[ni--] = 0;
62305 k = 1;
62306 }
62307 }
62308 }
62309
62310 // Remove trailing zeros.
62311 for (i = xc.length; xc[--i] === 0; xc.pop());
62312 }
62313
62314 // Overflow? Infinity.
62315 if (x.e > MAX_EXP) {
62316 x.c = x.e = null;
62317
62318 // Underflow? Zero.
62319 } else if (x.e < MIN_EXP) {
62320 x.c = [x.e = 0];
62321 }
62322 }
62323
62324 return x;
62325 }
62326
62327
62328 function valueOf(n) {
62329 var str,
62330 e = n.e;
62331
62332 if (e === null) return n.toString();
62333
62334 str = coeffToString(n.c);
62335
62336 str = e <= TO_EXP_NEG || e >= TO_EXP_POS
62337 ? toExponential(str, e)
62338 : toFixedPoint(str, e, '0');
62339
62340 return n.s < 0 ? '-' + str : str;
62341 }
62342
62343
62344 // PROTOTYPE/INSTANCE METHODS
62345
62346
62347 /*
62348 * Return a new BigNumber whose value is the absolute value of this BigNumber.
62349 */
62350 P.absoluteValue = P.abs = function () {
62351 var x = new BigNumber(this);
62352 if (x.s < 0) x.s = 1;
62353 return x;
62354 };
62355
62356
62357 /*
62358 * Return
62359 * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),
62360 * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),
62361 * 0 if they have the same value,
62362 * or null if the value of either is NaN.
62363 */
62364 P.comparedTo = function (y, b) {
62365 return compare(this, new BigNumber(y, b));
62366 };
62367
62368
62369 /*
62370 * If dp is undefined or null or true or false, return the number of decimal places of the
62371 * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.
62372 *
62373 * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this
62374 * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or
62375 * ROUNDING_MODE if rm is omitted.
62376 *
62377 * [dp] {number} Decimal places: integer, 0 to MAX inclusive.
62378 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
62379 *
62380 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
62381 */
62382 P.decimalPlaces = P.dp = function (dp, rm) {
62383 var c, n, v,
62384 x = this;
62385
62386 if (dp != null) {
62387 intCheck(dp, 0, MAX);
62388 if (rm == null) rm = ROUNDING_MODE;
62389 else intCheck(rm, 0, 8);
62390
62391 return round(new BigNumber(x), dp + x.e + 1, rm);
62392 }
62393
62394 if (!(c = x.c)) return null;
62395 n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;
62396
62397 // Subtract the number of trailing zeros of the last number.
62398 if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);
62399 if (n < 0) n = 0;
62400
62401 return n;
62402 };
62403
62404
62405 /*
62406 * n / 0 = I
62407 * n / N = N
62408 * n / I = 0
62409 * 0 / n = 0
62410 * 0 / 0 = N
62411 * 0 / N = N
62412 * 0 / I = 0
62413 * N / n = N
62414 * N / 0 = N
62415 * N / N = N
62416 * N / I = N
62417 * I / n = I
62418 * I / 0 = I
62419 * I / N = N
62420 * I / I = N
62421 *
62422 * Return a new BigNumber whose value is the value of this BigNumber divided by the value of
62423 * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.
62424 */
62425 P.dividedBy = P.div = function (y, b) {
62426 return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);
62427 };
62428
62429
62430 /*
62431 * Return a new BigNumber whose value is the integer part of dividing the value of this
62432 * BigNumber by the value of BigNumber(y, b).
62433 */
62434 P.dividedToIntegerBy = P.idiv = function (y, b) {
62435 return div(this, new BigNumber(y, b), 0, 1);
62436 };
62437
62438
62439 /*
62440 * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.
62441 *
62442 * If m is present, return the result modulo m.
62443 * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.
62444 * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.
62445 *
62446 * The modular power operation works efficiently when x, n, and m are integers, otherwise it
62447 * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.
62448 *
62449 * n {number|string|BigNumber} The exponent. An integer.
62450 * [m] {number|string|BigNumber} The modulus.
62451 *
62452 * '[BigNumber Error] Exponent not an integer: {n}'
62453 */
62454 P.exponentiatedBy = P.pow = function (n, m) {
62455 var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,
62456 x = this;
62457
62458 n = new BigNumber(n);
62459
62460 // Allow NaN and ±Infinity, but not other non-integers.
62461 if (n.c && !n.isInteger()) {
62462 throw Error
62463 (bignumberError + 'Exponent not an integer: ' + valueOf(n));
62464 }
62465
62466 if (m != null) m = new BigNumber(m);
62467
62468 // Exponent of MAX_SAFE_INTEGER is 15.
62469 nIsBig = n.e > 14;
62470
62471 // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.
62472 if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {
62473
62474 // The sign of the result of pow when x is negative depends on the evenness of n.
62475 // If +n overflows to ±Infinity, the evenness of n would be not be known.
62476 y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? 2 - isOdd(n) : +valueOf(n)));
62477 return m ? y.mod(m) : y;
62478 }
62479
62480 nIsNeg = n.s < 0;
62481
62482 if (m) {
62483
62484 // x % m returns NaN if abs(m) is zero, or m is NaN.
62485 if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);
62486
62487 isModExp = !nIsNeg && x.isInteger() && m.isInteger();
62488
62489 if (isModExp) x = x.mod(m);
62490
62491 // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.
62492 // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.
62493 } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0
62494 // [1, 240000000]
62495 ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7
62496 // [80000000000000] [99999750000000]
62497 : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {
62498
62499 // If x is negative and n is odd, k = -0, else k = 0.
62500 k = x.s < 0 && isOdd(n) ? -0 : 0;
62501
62502 // If x >= 1, k = ±Infinity.
62503 if (x.e > -1) k = 1 / k;
62504
62505 // If n is negative return ±0, else return ±Infinity.
62506 return new BigNumber(nIsNeg ? 1 / k : k);
62507
62508 } else if (POW_PRECISION) {
62509
62510 // Truncating each coefficient array to a length of k after each multiplication
62511 // equates to truncating significant digits to POW_PRECISION + [28, 41],
62512 // i.e. there will be a minimum of 28 guard digits retained.
62513 k = mathceil(POW_PRECISION / LOG_BASE + 2);
62514 }
62515
62516 if (nIsBig) {
62517 half = new BigNumber(0.5);
62518 if (nIsNeg) n.s = 1;
62519 nIsOdd = isOdd(n);
62520 } else {
62521 i = Math.abs(+valueOf(n));
62522 nIsOdd = i % 2;
62523 }
62524
62525 y = new BigNumber(ONE);
62526
62527 // Performs 54 loop iterations for n of 9007199254740991.
62528 for (; ;) {
62529
62530 if (nIsOdd) {
62531 y = y.times(x);
62532 if (!y.c) break;
62533
62534 if (k) {
62535 if (y.c.length > k) y.c.length = k;
62536 } else if (isModExp) {
62537 y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));
62538 }
62539 }
62540
62541 if (i) {
62542 i = mathfloor(i / 2);
62543 if (i === 0) break;
62544 nIsOdd = i % 2;
62545 } else {
62546 n = n.times(half);
62547 round(n, n.e + 1, 1);
62548
62549 if (n.e > 14) {
62550 nIsOdd = isOdd(n);
62551 } else {
62552 i = +valueOf(n);
62553 if (i === 0) break;
62554 nIsOdd = i % 2;
62555 }
62556 }
62557
62558 x = x.times(x);
62559
62560 if (k) {
62561 if (x.c && x.c.length > k) x.c.length = k;
62562 } else if (isModExp) {
62563 x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));
62564 }
62565 }
62566
62567 if (isModExp) return y;
62568 if (nIsNeg) y = ONE.div(y);
62569
62570 return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;
62571 };
62572
62573
62574 /*
62575 * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer
62576 * using rounding mode rm, or ROUNDING_MODE if rm is omitted.
62577 *
62578 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
62579 *
62580 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'
62581 */
62582 P.integerValue = function (rm) {
62583 var n = new BigNumber(this);
62584 if (rm == null) rm = ROUNDING_MODE;
62585 else intCheck(rm, 0, 8);
62586 return round(n, n.e + 1, rm);
62587 };
62588
62589
62590 /*
62591 * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),
62592 * otherwise return false.
62593 */
62594 P.isEqualTo = P.eq = function (y, b) {
62595 return compare(this, new BigNumber(y, b)) === 0;
62596 };
62597
62598
62599 /*
62600 * Return true if the value of this BigNumber is a finite number, otherwise return false.
62601 */
62602 P.isFinite = function () {
62603 return !!this.c;
62604 };
62605
62606
62607 /*
62608 * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),
62609 * otherwise return false.
62610 */
62611 P.isGreaterThan = P.gt = function (y, b) {
62612 return compare(this, new BigNumber(y, b)) > 0;
62613 };
62614
62615
62616 /*
62617 * Return true if the value of this BigNumber is greater than or equal to the value of
62618 * BigNumber(y, b), otherwise return false.
62619 */
62620 P.isGreaterThanOrEqualTo = P.gte = function (y, b) {
62621 return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;
62622
62623 };
62624
62625
62626 /*
62627 * Return true if the value of this BigNumber is an integer, otherwise return false.
62628 */
62629 P.isInteger = function () {
62630 return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;
62631 };
62632
62633
62634 /*
62635 * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),
62636 * otherwise return false.
62637 */
62638 P.isLessThan = P.lt = function (y, b) {
62639 return compare(this, new BigNumber(y, b)) < 0;
62640 };
62641
62642
62643 /*
62644 * Return true if the value of this BigNumber is less than or equal to the value of
62645 * BigNumber(y, b), otherwise return false.
62646 */
62647 P.isLessThanOrEqualTo = P.lte = function (y, b) {
62648 return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;
62649 };
62650
62651
62652 /*
62653 * Return true if the value of this BigNumber is NaN, otherwise return false.
62654 */
62655 P.isNaN = function () {
62656 return !this.s;
62657 };
62658
62659
62660 /*
62661 * Return true if the value of this BigNumber is negative, otherwise return false.
62662 */
62663 P.isNegative = function () {
62664 return this.s < 0;
62665 };
62666
62667
62668 /*
62669 * Return true if the value of this BigNumber is positive, otherwise return false.
62670 */
62671 P.isPositive = function () {
62672 return this.s > 0;
62673 };
62674
62675
62676 /*
62677 * Return true if the value of this BigNumber is 0 or -0, otherwise return false.
62678 */
62679 P.isZero = function () {
62680 return !!this.c && this.c[0] == 0;
62681 };
62682
62683
62684 /*
62685 * n - 0 = n
62686 * n - N = N
62687 * n - I = -I
62688 * 0 - n = -n
62689 * 0 - 0 = 0
62690 * 0 - N = N
62691 * 0 - I = -I
62692 * N - n = N
62693 * N - 0 = N
62694 * N - N = N
62695 * N - I = N
62696 * I - n = I
62697 * I - 0 = I
62698 * I - N = N
62699 * I - I = N
62700 *
62701 * Return a new BigNumber whose value is the value of this BigNumber minus the value of
62702 * BigNumber(y, b).
62703 */
62704 P.minus = function (y, b) {
62705 var i, j, t, xLTy,
62706 x = this,
62707 a = x.s;
62708
62709 y = new BigNumber(y, b);
62710 b = y.s;
62711
62712 // Either NaN?
62713 if (!a || !b) return new BigNumber(NaN);
62714
62715 // Signs differ?
62716 if (a != b) {
62717 y.s = -b;
62718 return x.plus(y);
62719 }
62720
62721 var xe = x.e / LOG_BASE,
62722 ye = y.e / LOG_BASE,
62723 xc = x.c,
62724 yc = y.c;
62725
62726 if (!xe || !ye) {
62727
62728 // Either Infinity?
62729 if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);
62730
62731 // Either zero?
62732 if (!xc[0] || !yc[0]) {
62733
62734 // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.
62735 return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :
62736
62737 // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity
62738 ROUNDING_MODE == 3 ? -0 : 0);
62739 }
62740 }
62741
62742 xe = bitFloor(xe);
62743 ye = bitFloor(ye);
62744 xc = xc.slice();
62745
62746 // Determine which is the bigger number.
62747 if (a = xe - ye) {
62748
62749 if (xLTy = a < 0) {
62750 a = -a;
62751 t = xc;
62752 } else {
62753 ye = xe;
62754 t = yc;
62755 }
62756
62757 t.reverse();
62758
62759 // Prepend zeros to equalise exponents.
62760 for (b = a; b--; t.push(0));
62761 t.reverse();
62762 } else {
62763
62764 // Exponents equal. Check digit by digit.
62765 j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;
62766
62767 for (a = b = 0; b < j; b++) {
62768
62769 if (xc[b] != yc[b]) {
62770 xLTy = xc[b] < yc[b];
62771 break;
62772 }
62773 }
62774 }
62775
62776 // x < y? Point xc to the array of the bigger number.
62777 if (xLTy) t = xc, xc = yc, yc = t, y.s = -y.s;
62778
62779 b = (j = yc.length) - (i = xc.length);
62780
62781 // Append zeros to xc if shorter.
62782 // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.
62783 if (b > 0) for (; b--; xc[i++] = 0);
62784 b = BASE - 1;
62785
62786 // Subtract yc from xc.
62787 for (; j > a;) {
62788
62789 if (xc[--j] < yc[j]) {
62790 for (i = j; i && !xc[--i]; xc[i] = b);
62791 --xc[i];
62792 xc[j] += BASE;
62793 }
62794
62795 xc[j] -= yc[j];
62796 }
62797
62798 // Remove leading zeros and adjust exponent accordingly.
62799 for (; xc[0] == 0; xc.splice(0, 1), --ye);
62800
62801 // Zero?
62802 if (!xc[0]) {
62803
62804 // Following IEEE 754 (2008) 6.3,
62805 // n - n = +0 but n - n = -0 when rounding towards -Infinity.
62806 y.s = ROUNDING_MODE == 3 ? -1 : 1;
62807 y.c = [y.e = 0];
62808 return y;
62809 }
62810
62811 // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity
62812 // for finite x and y.
62813 return normalise(y, xc, ye);
62814 };
62815
62816
62817 /*
62818 * n % 0 = N
62819 * n % N = N
62820 * n % I = n
62821 * 0 % n = 0
62822 * -0 % n = -0
62823 * 0 % 0 = N
62824 * 0 % N = N
62825 * 0 % I = 0
62826 * N % n = N
62827 * N % 0 = N
62828 * N % N = N
62829 * N % I = N
62830 * I % n = N
62831 * I % 0 = N
62832 * I % N = N
62833 * I % I = N
62834 *
62835 * Return a new BigNumber whose value is the value of this BigNumber modulo the value of
62836 * BigNumber(y, b). The result depends on the value of MODULO_MODE.
62837 */
62838 P.modulo = P.mod = function (y, b) {
62839 var q, s,
62840 x = this;
62841
62842 y = new BigNumber(y, b);
62843
62844 // Return NaN if x is Infinity or NaN, or y is NaN or zero.
62845 if (!x.c || !y.s || y.c && !y.c[0]) {
62846 return new BigNumber(NaN);
62847
62848 // Return x if y is Infinity or x is zero.
62849 } else if (!y.c || x.c && !x.c[0]) {
62850 return new BigNumber(x);
62851 }
62852
62853 if (MODULO_MODE == 9) {
62854
62855 // Euclidian division: q = sign(y) * floor(x / abs(y))
62856 // r = x - qy where 0 <= r < abs(y)
62857 s = y.s;
62858 y.s = 1;
62859 q = div(x, y, 0, 3);
62860 y.s = s;
62861 q.s *= s;
62862 } else {
62863 q = div(x, y, 0, MODULO_MODE);
62864 }
62865
62866 y = x.minus(q.times(y));
62867
62868 // To match JavaScript %, ensure sign of zero is sign of dividend.
62869 if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;
62870
62871 return y;
62872 };
62873
62874
62875 /*
62876 * n * 0 = 0
62877 * n * N = N
62878 * n * I = I
62879 * 0 * n = 0
62880 * 0 * 0 = 0
62881 * 0 * N = N
62882 * 0 * I = N
62883 * N * n = N
62884 * N * 0 = N
62885 * N * N = N
62886 * N * I = N
62887 * I * n = I
62888 * I * 0 = N
62889 * I * N = N
62890 * I * I = I
62891 *
62892 * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value
62893 * of BigNumber(y, b).
62894 */
62895 P.multipliedBy = P.times = function (y, b) {
62896 var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,
62897 base, sqrtBase,
62898 x = this,
62899 xc = x.c,
62900 yc = (y = new BigNumber(y, b)).c;
62901
62902 // Either NaN, ±Infinity or ±0?
62903 if (!xc || !yc || !xc[0] || !yc[0]) {
62904
62905 // Return NaN if either is NaN, or one is 0 and the other is Infinity.
62906 if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {
62907 y.c = y.e = y.s = null;
62908 } else {
62909 y.s *= x.s;
62910
62911 // Return ±Infinity if either is ±Infinity.
62912 if (!xc || !yc) {
62913 y.c = y.e = null;
62914
62915 // Return ±0 if either is ±0.
62916 } else {
62917 y.c = [0];
62918 y.e = 0;
62919 }
62920 }
62921
62922 return y;
62923 }
62924
62925 e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);
62926 y.s *= x.s;
62927 xcL = xc.length;
62928 ycL = yc.length;
62929
62930 // Ensure xc points to longer array and xcL to its length.
62931 if (xcL < ycL) zc = xc, xc = yc, yc = zc, i = xcL, xcL = ycL, ycL = i;
62932
62933 // Initialise the result array with zeros.
62934 for (i = xcL + ycL, zc = []; i--; zc.push(0));
62935
62936 base = BASE;
62937 sqrtBase = SQRT_BASE;
62938
62939 for (i = ycL; --i >= 0;) {
62940 c = 0;
62941 ylo = yc[i] % sqrtBase;
62942 yhi = yc[i] / sqrtBase | 0;
62943
62944 for (k = xcL, j = i + k; j > i;) {
62945 xlo = xc[--k] % sqrtBase;
62946 xhi = xc[k] / sqrtBase | 0;
62947 m = yhi * xlo + xhi * ylo;
62948 xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;
62949 c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;
62950 zc[j--] = xlo % base;
62951 }
62952
62953 zc[j] = c;
62954 }
62955
62956 if (c) {
62957 ++e;
62958 } else {
62959 zc.splice(0, 1);
62960 }
62961
62962 return normalise(y, zc, e);
62963 };
62964
62965
62966 /*
62967 * Return a new BigNumber whose value is the value of this BigNumber negated,
62968 * i.e. multiplied by -1.
62969 */
62970 P.negated = function () {
62971 var x = new BigNumber(this);
62972 x.s = -x.s || null;
62973 return x;
62974 };
62975
62976
62977 /*
62978 * n + 0 = n
62979 * n + N = N
62980 * n + I = I
62981 * 0 + n = n
62982 * 0 + 0 = 0
62983 * 0 + N = N
62984 * 0 + I = I
62985 * N + n = N
62986 * N + 0 = N
62987 * N + N = N
62988 * N + I = N
62989 * I + n = I
62990 * I + 0 = I
62991 * I + N = N
62992 * I + I = I
62993 *
62994 * Return a new BigNumber whose value is the value of this BigNumber plus the value of
62995 * BigNumber(y, b).
62996 */
62997 P.plus = function (y, b) {
62998 var t,
62999 x = this,
63000 a = x.s;
63001
63002 y = new BigNumber(y, b);
63003 b = y.s;
63004
63005 // Either NaN?
63006 if (!a || !b) return new BigNumber(NaN);
63007
63008 // Signs differ?
63009 if (a != b) {
63010 y.s = -b;
63011 return x.minus(y);
63012 }
63013
63014 var xe = x.e / LOG_BASE,
63015 ye = y.e / LOG_BASE,
63016 xc = x.c,
63017 yc = y.c;
63018
63019 if (!xe || !ye) {
63020
63021 // Return ±Infinity if either ±Infinity.
63022 if (!xc || !yc) return new BigNumber(a / 0);
63023
63024 // Either zero?
63025 // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.
63026 if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);
63027 }
63028
63029 xe = bitFloor(xe);
63030 ye = bitFloor(ye);
63031 xc = xc.slice();
63032
63033 // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.
63034 if (a = xe - ye) {
63035 if (a > 0) {
63036 ye = xe;
63037 t = yc;
63038 } else {
63039 a = -a;
63040 t = xc;
63041 }
63042
63043 t.reverse();
63044 for (; a--; t.push(0));
63045 t.reverse();
63046 }
63047
63048 a = xc.length;
63049 b = yc.length;
63050
63051 // Point xc to the longer array, and b to the shorter length.
63052 if (a - b < 0) t = yc, yc = xc, xc = t, b = a;
63053
63054 // Only start adding at yc.length - 1 as the further digits of xc can be ignored.
63055 for (a = 0; b;) {
63056 a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;
63057 xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;
63058 }
63059
63060 if (a) {
63061 xc = [a].concat(xc);
63062 ++ye;
63063 }
63064
63065 // No need to check for zero, as +x + +y != 0 && -x + -y != 0
63066 // ye = MAX_EXP + 1 possible
63067 return normalise(y, xc, ye);
63068 };
63069
63070
63071 /*
63072 * If sd is undefined or null or true or false, return the number of significant digits of
63073 * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.
63074 * If sd is true include integer-part trailing zeros in the count.
63075 *
63076 * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this
63077 * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or
63078 * ROUNDING_MODE if rm is omitted.
63079 *
63080 * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.
63081 * boolean: whether to count integer-part trailing zeros: true or false.
63082 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
63083 *
63084 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'
63085 */
63086 P.precision = P.sd = function (sd, rm) {
63087 var c, n, v,
63088 x = this;
63089
63090 if (sd != null && sd !== !!sd) {
63091 intCheck(sd, 1, MAX);
63092 if (rm == null) rm = ROUNDING_MODE;
63093 else intCheck(rm, 0, 8);
63094
63095 return round(new BigNumber(x), sd, rm);
63096 }
63097
63098 if (!(c = x.c)) return null;
63099 v = c.length - 1;
63100 n = v * LOG_BASE + 1;
63101
63102 if (v = c[v]) {
63103
63104 // Subtract the number of trailing zeros of the last element.
63105 for (; v % 10 == 0; v /= 10, n--);
63106
63107 // Add the number of digits of the first element.
63108 for (v = c[0]; v >= 10; v /= 10, n++);
63109 }
63110
63111 if (sd && x.e + 1 > n) n = x.e + 1;
63112
63113 return n;
63114 };
63115
63116
63117 /*
63118 * Return a new BigNumber whose value is the value of this BigNumber shifted by k places
63119 * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.
63120 *
63121 * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.
63122 *
63123 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'
63124 */
63125 P.shiftedBy = function (k) {
63126 intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);
63127 return this.times('1e' + k);
63128 };
63129
63130
63131 /*
63132 * sqrt(-n) = N
63133 * sqrt(N) = N
63134 * sqrt(-I) = N
63135 * sqrt(I) = I
63136 * sqrt(0) = 0
63137 * sqrt(-0) = -0
63138 *
63139 * Return a new BigNumber whose value is the square root of the value of this BigNumber,
63140 * rounded according to DECIMAL_PLACES and ROUNDING_MODE.
63141 */
63142 P.squareRoot = P.sqrt = function () {
63143 var m, n, r, rep, t,
63144 x = this,
63145 c = x.c,
63146 s = x.s,
63147 e = x.e,
63148 dp = DECIMAL_PLACES + 4,
63149 half = new BigNumber('0.5');
63150
63151 // Negative/NaN/Infinity/zero?
63152 if (s !== 1 || !c || !c[0]) {
63153 return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);
63154 }
63155
63156 // Initial estimate.
63157 s = Math.sqrt(+valueOf(x));
63158
63159 // Math.sqrt underflow/overflow?
63160 // Pass x to Math.sqrt as integer, then adjust the exponent of the result.
63161 if (s == 0 || s == 1 / 0) {
63162 n = coeffToString(c);
63163 if ((n.length + e) % 2 == 0) n += '0';
63164 s = Math.sqrt(+n);
63165 e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);
63166
63167 if (s == 1 / 0) {
63168 n = '5e' + e;
63169 } else {
63170 n = s.toExponential();
63171 n = n.slice(0, n.indexOf('e') + 1) + e;
63172 }
63173
63174 r = new BigNumber(n);
63175 } else {
63176 r = new BigNumber(s + '');
63177 }
63178
63179 // Check for zero.
63180 // r could be zero if MIN_EXP is changed after the this value was created.
63181 // This would cause a division by zero (x/t) and hence Infinity below, which would cause
63182 // coeffToString to throw.
63183 if (r.c[0]) {
63184 e = r.e;
63185 s = e + dp;
63186 if (s < 3) s = 0;
63187
63188 // Newton-Raphson iteration.
63189 for (; ;) {
63190 t = r;
63191 r = half.times(t.plus(div(x, t, dp, 1)));
63192
63193 if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {
63194
63195 // The exponent of r may here be one less than the final result exponent,
63196 // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits
63197 // are indexed correctly.
63198 if (r.e < e) --s;
63199 n = n.slice(s - 3, s + 1);
63200
63201 // The 4th rounding digit may be in error by -1 so if the 4 rounding digits
63202 // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the
63203 // iteration.
63204 if (n == '9999' || !rep && n == '4999') {
63205
63206 // On the first iteration only, check to see if rounding up gives the
63207 // exact result as the nines may infinitely repeat.
63208 if (!rep) {
63209 round(t, t.e + DECIMAL_PLACES + 2, 0);
63210
63211 if (t.times(t).eq(x)) {
63212 r = t;
63213 break;
63214 }
63215 }
63216
63217 dp += 4;
63218 s += 4;
63219 rep = 1;
63220 } else {
63221
63222 // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact
63223 // result. If not, then there are further digits and m will be truthy.
63224 if (!+n || !+n.slice(1) && n.charAt(0) == '5') {
63225
63226 // Truncate to the first rounding digit.
63227 round(r, r.e + DECIMAL_PLACES + 2, 1);
63228 m = !r.times(r).eq(x);
63229 }
63230
63231 break;
63232 }
63233 }
63234 }
63235 }
63236
63237 return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);
63238 };
63239
63240
63241 /*
63242 * Return a string representing the value of this BigNumber in exponential notation and
63243 * rounded using ROUNDING_MODE to dp fixed decimal places.
63244 *
63245 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
63246 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
63247 *
63248 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
63249 */
63250 P.toExponential = function (dp, rm) {
63251 if (dp != null) {
63252 intCheck(dp, 0, MAX);
63253 dp++;
63254 }
63255 return format(this, dp, rm, 1);
63256 };
63257
63258
63259 /*
63260 * Return a string representing the value of this BigNumber in fixed-point notation rounding
63261 * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.
63262 *
63263 * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',
63264 * but e.g. (-0.00001).toFixed(0) is '-0'.
63265 *
63266 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
63267 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
63268 *
63269 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
63270 */
63271 P.toFixed = function (dp, rm) {
63272 if (dp != null) {
63273 intCheck(dp, 0, MAX);
63274 dp = dp + this.e + 1;
63275 }
63276 return format(this, dp, rm);
63277 };
63278
63279
63280 /*
63281 * Return a string representing the value of this BigNumber in fixed-point notation rounded
63282 * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties
63283 * of the format or FORMAT object (see BigNumber.set).
63284 *
63285 * The formatting object may contain some or all of the properties shown below.
63286 *
63287 * FORMAT = {
63288 * prefix: '',
63289 * groupSize: 3,
63290 * secondaryGroupSize: 0,
63291 * groupSeparator: ',',
63292 * decimalSeparator: '.',
63293 * fractionGroupSize: 0,
63294 * fractionGroupSeparator: '\xA0', // non-breaking space
63295 * suffix: ''
63296 * };
63297 *
63298 * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.
63299 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
63300 * [format] {object} Formatting options. See FORMAT pbject above.
63301 *
63302 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'
63303 * '[BigNumber Error] Argument not an object: {format}'
63304 */
63305 P.toFormat = function (dp, rm, format) {
63306 var str,
63307 x = this;
63308
63309 if (format == null) {
63310 if (dp != null && rm && typeof rm == 'object') {
63311 format = rm;
63312 rm = null;
63313 } else if (dp && typeof dp == 'object') {
63314 format = dp;
63315 dp = rm = null;
63316 } else {
63317 format = FORMAT;
63318 }
63319 } else if (typeof format != 'object') {
63320 throw Error
63321 (bignumberError + 'Argument not an object: ' + format);
63322 }
63323
63324 str = x.toFixed(dp, rm);
63325
63326 if (x.c) {
63327 var i,
63328 arr = str.split('.'),
63329 g1 = +format.groupSize,
63330 g2 = +format.secondaryGroupSize,
63331 groupSeparator = format.groupSeparator || '',
63332 intPart = arr[0],
63333 fractionPart = arr[1],
63334 isNeg = x.s < 0,
63335 intDigits = isNeg ? intPart.slice(1) : intPart,
63336 len = intDigits.length;
63337
63338 if (g2) i = g1, g1 = g2, g2 = i, len -= i;
63339
63340 if (g1 > 0 && len > 0) {
63341 i = len % g1 || g1;
63342 intPart = intDigits.substr(0, i);
63343 for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);
63344 if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);
63345 if (isNeg) intPart = '-' + intPart;
63346 }
63347
63348 str = fractionPart
63349 ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)
63350 ? fractionPart.replace(new RegExp('\\d{' + g2 + '}\\B', 'g'),
63351 '$&' + (format.fractionGroupSeparator || ''))
63352 : fractionPart)
63353 : intPart;
63354 }
63355
63356 return (format.prefix || '') + str + (format.suffix || '');
63357 };
63358
63359
63360 /*
63361 * Return an array of two BigNumbers representing the value of this BigNumber as a simple
63362 * fraction with an integer numerator and an integer denominator.
63363 * The denominator will be a positive non-zero value less than or equal to the specified
63364 * maximum denominator. If a maximum denominator is not specified, the denominator will be
63365 * the lowest value necessary to represent the number exactly.
63366 *
63367 * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.
63368 *
63369 * '[BigNumber Error] Argument {not an integer|out of range} : {md}'
63370 */
63371 P.toFraction = function (md) {
63372 var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,
63373 x = this,
63374 xc = x.c;
63375
63376 if (md != null) {
63377 n = new BigNumber(md);
63378
63379 // Throw if md is less than one or is not an integer, unless it is Infinity.
63380 if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {
63381 throw Error
63382 (bignumberError + 'Argument ' +
63383 (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));
63384 }
63385 }
63386
63387 if (!xc) return new BigNumber(x);
63388
63389 d = new BigNumber(ONE);
63390 n1 = d0 = new BigNumber(ONE);
63391 d1 = n0 = new BigNumber(ONE);
63392 s = coeffToString(xc);
63393
63394 // Determine initial denominator.
63395 // d is a power of 10 and the minimum max denominator that specifies the value exactly.
63396 e = d.e = s.length - x.e - 1;
63397 d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];
63398 md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;
63399
63400 exp = MAX_EXP;
63401 MAX_EXP = 1 / 0;
63402 n = new BigNumber(s);
63403
63404 // n0 = d1 = 0
63405 n0.c[0] = 0;
63406
63407 for (; ;) {
63408 q = div(n, d, 0, 1);
63409 d2 = d0.plus(q.times(d1));
63410 if (d2.comparedTo(md) == 1) break;
63411 d0 = d1;
63412 d1 = d2;
63413 n1 = n0.plus(q.times(d2 = n1));
63414 n0 = d2;
63415 d = n.minus(q.times(d2 = d));
63416 n = d2;
63417 }
63418
63419 d2 = div(md.minus(d0), d1, 0, 1);
63420 n0 = n0.plus(d2.times(n1));
63421 d0 = d0.plus(d2.times(d1));
63422 n0.s = n1.s = x.s;
63423 e = e * 2;
63424
63425 // Determine which fraction is closer to x, n0/d0 or n1/d1
63426 r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(
63427 div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];
63428
63429 MAX_EXP = exp;
63430
63431 return r;
63432 };
63433
63434
63435 /*
63436 * Return the value of this BigNumber converted to a number primitive.
63437 */
63438 P.toNumber = function () {
63439 return +valueOf(this);
63440 };
63441
63442
63443 /*
63444 * Return a string representing the value of this BigNumber rounded to sd significant digits
63445 * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits
63446 * necessary to represent the integer part of the value in fixed-point notation, then use
63447 * exponential notation.
63448 *
63449 * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.
63450 * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.
63451 *
63452 * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'
63453 */
63454 P.toPrecision = function (sd, rm) {
63455 if (sd != null) intCheck(sd, 1, MAX);
63456 return format(this, sd, rm, 2);
63457 };
63458
63459
63460 /*
63461 * Return a string representing the value of this BigNumber in base b, or base 10 if b is
63462 * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and
63463 * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent
63464 * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than
63465 * TO_EXP_NEG, return exponential notation.
63466 *
63467 * [b] {number} Integer, 2 to ALPHABET.length inclusive.
63468 *
63469 * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'
63470 */
63471 P.toString = function (b) {
63472 var str,
63473 n = this,
63474 s = n.s,
63475 e = n.e;
63476
63477 // Infinity or NaN?
63478 if (e === null) {
63479 if (s) {
63480 str = 'Infinity';
63481 if (s < 0) str = '-' + str;
63482 } else {
63483 str = 'NaN';
63484 }
63485 } else {
63486 if (b == null) {
63487 str = e <= TO_EXP_NEG || e >= TO_EXP_POS
63488 ? toExponential(coeffToString(n.c), e)
63489 : toFixedPoint(coeffToString(n.c), e, '0');
63490 } else if (b === 10 && alphabetHasNormalDecimalDigits) {
63491 n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);
63492 str = toFixedPoint(coeffToString(n.c), n.e, '0');
63493 } else {
63494 intCheck(b, 2, ALPHABET.length, 'Base');
63495 str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);
63496 }
63497
63498 if (s < 0 && n.c[0]) str = '-' + str;
63499 }
63500
63501 return str;
63502 };
63503
63504
63505 /*
63506 * Return as toString, but do not accept a base argument, and include the minus sign for
63507 * negative zero.
63508 */
63509 P.valueOf = P.toJSON = function () {
63510 return valueOf(this);
63511 };
63512
63513
63514 P._isBigNumber = true;
63515
63516 if (configObject != null) BigNumber.set(configObject);
63517
63518 return BigNumber;
63519 }
63520
63521
63522 // PRIVATE HELPER FUNCTIONS
63523
63524 // These functions don't need access to variables,
63525 // e.g. DECIMAL_PLACES, in the scope of the `clone` function above.
63526
63527
63528 function bitFloor(n) {
63529 var i = n | 0;
63530 return n > 0 || n === i ? i : i - 1;
63531 }
63532
63533
63534 // Return a coefficient array as a string of base 10 digits.
63535 function coeffToString(a) {
63536 var s, z,
63537 i = 1,
63538 j = a.length,
63539 r = a[0] + '';
63540
63541 for (; i < j;) {
63542 s = a[i++] + '';
63543 z = LOG_BASE - s.length;
63544 for (; z--; s = '0' + s);
63545 r += s;
63546 }
63547
63548 // Determine trailing zeros.
63549 for (j = r.length; r.charCodeAt(--j) === 48;);
63550
63551 return r.slice(0, j + 1 || 1);
63552 }
63553
63554
63555 // Compare the value of BigNumbers x and y.
63556 function compare(x, y) {
63557 var a, b,
63558 xc = x.c,
63559 yc = y.c,
63560 i = x.s,
63561 j = y.s,
63562 k = x.e,
63563 l = y.e;
63564
63565 // Either NaN?
63566 if (!i || !j) return null;
63567
63568 a = xc && !xc[0];
63569 b = yc && !yc[0];
63570
63571 // Either zero?
63572 if (a || b) return a ? b ? 0 : -j : i;
63573
63574 // Signs differ?
63575 if (i != j) return i;
63576
63577 a = i < 0;
63578 b = k == l;
63579
63580 // Either Infinity?
63581 if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;
63582
63583 // Compare exponents.
63584 if (!b) return k > l ^ a ? 1 : -1;
63585
63586 j = (k = xc.length) < (l = yc.length) ? k : l;
63587
63588 // Compare digit by digit.
63589 for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;
63590
63591 // Compare lengths.
63592 return k == l ? 0 : k > l ^ a ? 1 : -1;
63593 }
63594
63595
63596 /*
63597 * Check that n is a primitive number, an integer, and in range, otherwise throw.
63598 */
63599 function intCheck(n, min, max, name) {
63600 if (n < min || n > max || n !== mathfloor(n)) {
63601 throw Error
63602 (bignumberError + (name || 'Argument') + (typeof n == 'number'
63603 ? n < min || n > max ? ' out of range: ' : ' not an integer: '
63604 : ' not a primitive number: ') + String(n));
63605 }
63606 }
63607
63608
63609 // Assumes finite n.
63610 function isOdd(n) {
63611 var k = n.c.length - 1;
63612 return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;
63613 }
63614
63615
63616 function toExponential(str, e) {
63617 return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +
63618 (e < 0 ? 'e' : 'e+') + e;
63619 }
63620
63621
63622 function toFixedPoint(str, e, z) {
63623 var len, zs;
63624
63625 // Negative exponent?
63626 if (e < 0) {
63627
63628 // Prepend zeros.
63629 for (zs = z + '.'; ++e; zs += z);
63630 str = zs + str;
63631
63632 // Positive exponent
63633 } else {
63634 len = str.length;
63635
63636 // Append zeros.
63637 if (++e > len) {
63638 for (zs = z, e -= len; --e; zs += z);
63639 str += zs;
63640 } else if (e < len) {
63641 str = str.slice(0, e) + '.' + str.slice(e);
63642 }
63643 }
63644
63645 return str;
63646 }
63647
63648
63649 // EXPORT
63650
63651
63652 BigNumber = clone();
63653 BigNumber['default'] = BigNumber.BigNumber = BigNumber;
63654
63655 // AMD.
63656 if (true) {
63657 !(__WEBPACK_AMD_DEFINE_RESULT__ = (function () { return BigNumber; }).call(exports, __webpack_require__, exports, module),
63658 __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
63659
63660 // Node.js and other environments that support module.exports.
63661 } else if (typeof module != 'undefined' && module.exports) {
63662 module.exports = BigNumber;
63663
63664 // Browser.
63665 } else {
63666 if (!globalObject) {
63667 globalObject = typeof self != 'undefined' && self ? self : window;
63668 }
63669
63670 globalObject.BigNumber = BigNumber;
63671 }
63672})(this);
63673
63674
63675/***/ }),
63676/* 386 */
63677/***/ (function(module, exports, __webpack_require__) {
63678
63679"use strict";
63680
63681
63682exports.__esModule = true;
63683
63684var _pagination = __webpack_require__(387);
63685
63686var _pagination2 = _interopRequireDefault(_pagination);
63687
63688function _interopRequireDefault(obj) {
63689 return obj && obj.__esModule ? obj : { default: obj };
63690}
63691
63692exports.default = _pagination2.default;
63693module.exports = exports['default'];
63694
63695/***/ }),
63696/* 387 */
63697/***/ (function(module, exports, __webpack_require__) {
63698
63699"use strict";
63700
63701
63702exports.__esModule = true;
63703
63704var _objectWithoutProperties2 = __webpack_require__(8);
63705
63706var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
63707
63708var _extends2 = __webpack_require__(1);
63709
63710var _extends3 = _interopRequireDefault(_extends2);
63711
63712var _classCallCheck2 = __webpack_require__(2);
63713
63714var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
63715
63716var _possibleConstructorReturn2 = __webpack_require__(3);
63717
63718var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
63719
63720var _inherits2 = __webpack_require__(4);
63721
63722var _inherits3 = _interopRequireDefault(_inherits2);
63723
63724var _class, _temp;
63725
63726var _react = __webpack_require__(0);
63727
63728var _react2 = _interopRequireDefault(_react);
63729
63730var _propTypes = __webpack_require__(5);
63731
63732var _propTypes2 = _interopRequireDefault(_propTypes);
63733
63734var _reactLifecyclesCompat = __webpack_require__(10);
63735
63736var _classnames = __webpack_require__(7);
63737
63738var _classnames2 = _interopRequireDefault(_classnames);
63739
63740var _configProvider = __webpack_require__(9);
63741
63742var _configProvider2 = _interopRequireDefault(_configProvider);
63743
63744var _icon = __webpack_require__(11);
63745
63746var _icon2 = _interopRequireDefault(_icon);
63747
63748var _button = __webpack_require__(17);
63749
63750var _button2 = _interopRequireDefault(_button);
63751
63752var _input = __webpack_require__(18);
63753
63754var _input2 = _interopRequireDefault(_input);
63755
63756var _select = __webpack_require__(29);
63757
63758var _select2 = _interopRequireDefault(_select);
63759
63760var _util = __webpack_require__(6);
63761
63762var _zhCn = __webpack_require__(13);
63763
63764var _zhCn2 = _interopRequireDefault(_zhCn);
63765
63766function _interopRequireDefault(obj) {
63767 return obj && obj.__esModule ? obj : { default: obj };
63768}
63769
63770var Option = _select2.default.Option;
63771
63772var noop = function noop() {};
63773
63774function correctCurrent(currentPage, total, currentPageSize) {
63775 var totalPage = getTotalPage(total, currentPageSize);
63776 return currentPage > totalPage ? totalPage : currentPage;
63777}
63778
63779function getTotalPage(total, currentPageSize) {
63780 var totalPage = Math.ceil(total / currentPageSize);
63781 return totalPage <= 0 ? 1 : totalPage;
63782}
63783
63784/**
63785 * Pagination
63786 */
63787var Pagination = (_temp = _class = function (_Component) {
63788 (0, _inherits3.default)(Pagination, _Component);
63789
63790 function Pagination(props, context) {
63791 (0, _classCallCheck3.default)(this, Pagination);
63792
63793 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
63794
63795 _this.handleJump = function (e) {
63796 var total = _this.props.total;
63797 var _this$state = _this.state,
63798 current = _this$state.current,
63799 currentPageSize = _this$state.currentPageSize,
63800 inputValue = _this$state.inputValue;
63801
63802 var totalPage = getTotalPage(total, currentPageSize);
63803 var value = parseInt(inputValue, 10);
63804
63805 if (isNaN(value)) {
63806 value = '';
63807 } else if (value < 1) {
63808 value = 1;
63809 } else if (value > totalPage) {
63810 value = totalPage;
63811 }
63812
63813 if (value && value !== current) {
63814 _this.onPageItemClick(value, e);
63815 }
63816
63817 _this.setState({
63818 inputValue: ''
63819 });
63820 };
63821
63822 _this.state = {
63823 current: props.defaultCurrent || 1,
63824 currentPageSize: 0,
63825 inputValue: ''
63826 };
63827 return _this;
63828 }
63829
63830 Pagination.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
63831 var current = props.current,
63832 total = props.total,
63833 pageSize = props.pageSize;
63834
63835 var st = {};
63836 var newCurrent = correctCurrent(current || state.current, total, pageSize);
63837 if (state.current !== newCurrent) {
63838 st.current = newCurrent;
63839 }
63840 if (state.currentPageSize !== pageSize) {
63841 st.currentPageSize = pageSize;
63842 }
63843
63844 return st;
63845 };
63846
63847 Pagination.prototype.onPageItemClick = function onPageItemClick(page, e) {
63848 if (!('current' in this.props)) {
63849 this.setState({
63850 current: page
63851 });
63852 }
63853 this.props.onChange(page, e);
63854 };
63855
63856 Pagination.prototype.onInputChange = function onInputChange(value) {
63857 this.setState({
63858 inputValue: value
63859 });
63860 };
63861
63862 Pagination.prototype.onSelectSize = function onSelectSize(pageSize) {
63863 var newState = {
63864 currentPageSize: pageSize
63865 };
63866
63867 var totalPage = getTotalPage(this.props.total, pageSize);
63868 if (this.state.current > totalPage) {
63869 newState.current = totalPage;
63870 }
63871
63872 this.setState(newState);
63873 this.props.onPageSizeChange(pageSize);
63874 };
63875
63876 Pagination.prototype.renderPageTotal = function renderPageTotal() {
63877 var _props = this.props,
63878 prefix = _props.prefix,
63879 total = _props.total,
63880 totalRender = _props.totalRender;
63881 var _state = this.state,
63882 currentPageSize = _state.currentPageSize,
63883 current = _state.current;
63884
63885 var range = [(current - 1) * currentPageSize + 1, current * currentPageSize];
63886
63887 return _react2.default.createElement('div', { className: prefix + 'pagination-total' }, totalRender(total, range));
63888 };
63889
63890 Pagination.prototype.renderPageItem = function renderPageItem(index) {
63891 var _cx;
63892
63893 var _props2 = this.props,
63894 prefix = _props2.prefix,
63895 size = _props2.size,
63896 link = _props2.link,
63897 pageNumberRender = _props2.pageNumberRender,
63898 total = _props2.total,
63899 pageSize = _props2.pageSize,
63900 locale = _props2.locale;
63901 var current = this.state.current;
63902
63903 var totalPage = getTotalPage(total, pageSize);
63904 var isCurrent = parseInt(index, 10) === current;
63905 var props = {
63906 size: size,
63907 className: (0, _classnames2.default)((_cx = {}, _cx[prefix + 'pagination-item'] = true, _cx[prefix + 'current'] = isCurrent, _cx)),
63908 onClick: isCurrent ? noop : this.onPageItemClick.bind(this, index)
63909 };
63910 if (link) {
63911 props.component = 'a';
63912 props.href = link.replace('{page}', index);
63913 }
63914
63915 return _react2.default.createElement(_button2.default, (0, _extends3.default)({
63916 'aria-label': _util.str.template(locale.total, {
63917 current: index,
63918 total: totalPage
63919 })
63920 }, props, {
63921 key: index
63922 }), pageNumberRender(index));
63923 };
63924
63925 Pagination.prototype.renderPageFirst = function renderPageFirst(current) {
63926 var _cx2;
63927
63928 var _props3 = this.props,
63929 prefix = _props3.prefix,
63930 size = _props3.size,
63931 shape = _props3.shape,
63932 locale = _props3.locale;
63933
63934 var isFirst = current <= 1;
63935 var props = {
63936 disabled: isFirst,
63937 size: size,
63938 className: (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'pagination-item'] = true, _cx2[prefix + 'prev'] = true, _cx2)),
63939 onClick: this.onPageItemClick.bind(this, current - 1)
63940 };
63941
63942 var icon = _react2.default.createElement(_icon2.default, { type: 'arrow-left', className: prefix + 'pagination-icon-prev' });
63943
63944 return _react2.default.createElement(_button2.default, (0, _extends3.default)({}, props, { 'aria-label': _util.str.template(locale.labelPrev, { current: current }) }), icon, shape === 'arrow-only' || shape === 'arrow-prev-only' || shape === 'no-border' ? '' : locale.prev);
63945 };
63946
63947 Pagination.prototype.renderPageLast = function renderPageLast(current, totalPage) {
63948 var _cx3;
63949
63950 var _props4 = this.props,
63951 prefix = _props4.prefix,
63952 size = _props4.size,
63953 shape = _props4.shape,
63954 locale = _props4.locale;
63955
63956 var isLast = current >= totalPage;
63957 var props = {
63958 disabled: isLast,
63959 size: size,
63960 className: (0, _classnames2.default)((_cx3 = {}, _cx3[prefix + 'pagination-item'] = true, _cx3[prefix + 'next'] = true, _cx3)),
63961 onClick: this.onPageItemClick.bind(this, current + 1)
63962 };
63963
63964 var icon = _react2.default.createElement(_icon2.default, { type: 'arrow-right', className: prefix + 'pagination-icon-next' });
63965
63966 return _react2.default.createElement(_button2.default, (0, _extends3.default)({}, props, { 'aria-label': _util.str.template(locale.labelNext, { current: current }) }), shape === 'arrow-only' || shape === 'no-border' ? '' : locale.next, icon);
63967 };
63968
63969 Pagination.prototype.renderPageEllipsis = function renderPageEllipsis(idx) {
63970 var prefix = this.props.prefix;
63971
63972 return _react2.default.createElement(_icon2.default, {
63973 className: prefix + 'pagination-ellipsis ' + prefix + 'pagination-icon-ellipsis',
63974 type: 'ellipsis',
63975 key: 'ellipsis-' + idx
63976 });
63977 };
63978
63979 Pagination.prototype.renderPageJump = function renderPageJump() {
63980 var _this2 = this;
63981
63982 var _props5 = this.props,
63983 prefix = _props5.prefix,
63984 size = _props5.size,
63985 locale = _props5.locale;
63986 var inputValue = this.state.inputValue;
63987
63988 /* eslint-disable react/jsx-key */
63989
63990 return [_react2.default.createElement('span', { className: prefix + 'pagination-jump-text' }, locale.goTo), _react2.default.createElement(_input2.default, {
63991 className: prefix + 'pagination-jump-input',
63992 type: 'text',
63993 'aria-label': locale.inputAriaLabel,
63994 size: size,
63995 value: inputValue,
63996 onChange: this.onInputChange.bind(this),
63997 onKeyDown: function onKeyDown(e) {
63998 if (e.keyCode === _util.KEYCODE.ENTER) {
63999 _this2.handleJump(e);
64000 }
64001 }
64002 }), _react2.default.createElement('span', { className: prefix + 'pagination-jump-text' }, locale.page), _react2.default.createElement(_button2.default, { className: prefix + 'pagination-jump-go', size: size, onClick: this.handleJump }, locale.go)];
64003 /* eslint-enable react/jsx-key */
64004 };
64005
64006 Pagination.prototype.renderPageDisplay = function renderPageDisplay(current, totalPage) {
64007 var _props6 = this.props,
64008 prefix = _props6.prefix,
64009 pageNumberRender = _props6.pageNumberRender;
64010
64011 return _react2.default.createElement('span', { className: prefix + 'pagination-display' }, _react2.default.createElement('em', null, pageNumberRender(current)), '/', pageNumberRender(totalPage));
64012 };
64013
64014 Pagination.prototype.renderPageList = function renderPageList(current, totalPage) {
64015 var _props7 = this.props,
64016 prefix = _props7.prefix,
64017 pageShowCount = _props7.pageShowCount;
64018
64019 var pages = [];
64020
64021 if (totalPage <= pageShowCount) {
64022 for (var i = 1; i <= totalPage; i++) {
64023 pages.push(this.renderPageItem(i));
64024 }
64025 } else {
64026 // 除去第一页,最后一页以及当前页,剩下的页数
64027 var othersCount = pageShowCount - 3;
64028 var halfCount = parseInt(othersCount / 2, 10);
64029 var start = void 0,
64030 end = void 0;
64031
64032 pages.push(this.renderPageItem(1));
64033
64034 start = current - halfCount;
64035 end = current + halfCount;
64036 if (start <= 1) {
64037 start = 2;
64038 end = start + othersCount;
64039 }
64040 if (start > 2) {
64041 pages.push(this.renderPageEllipsis(1));
64042 }
64043 if (end >= totalPage - 1) {
64044 end = totalPage - 1;
64045 start = totalPage - 1 - othersCount;
64046 }
64047 for (var j = start; j <= end; j++) {
64048 pages.push(this.renderPageItem(j));
64049 }
64050 if (end < totalPage - 1) {
64051 pages.push(this.renderPageEllipsis(2));
64052 }
64053
64054 pages.push(this.renderPageItem(totalPage));
64055 }
64056
64057 return _react2.default.createElement('div', { className: prefix + 'pagination-list' }, pages);
64058 };
64059
64060 Pagination.prototype.renderPageSizeSelector = function renderPageSizeSelector() {
64061 var _props8 = this.props,
64062 prefix = _props8.prefix,
64063 pageSizeSelector = _props8.pageSizeSelector,
64064 locale = _props8.locale;
64065
64066 var pageSizeSpan = _react2.default.createElement('span', { className: prefix + 'pagination-size-selector-title' }, locale.pageSize);
64067
64068 switch (pageSizeSelector) {
64069 case 'filter':
64070 return _react2.default.createElement('div', { className: prefix + 'pagination-size-selector' }, pageSizeSpan, this.renderPageSizeFilter());
64071 case 'dropdown':
64072 return _react2.default.createElement('div', { className: prefix + 'pagination-size-selector' }, pageSizeSpan, this.renderPageSizeDropdown());
64073 default:
64074 return null;
64075 }
64076 };
64077
64078 Pagination.prototype.renderPageSizeFilter = function renderPageSizeFilter() {
64079 var _this3 = this;
64080
64081 var _props9 = this.props,
64082 prefix = _props9.prefix,
64083 size = _props9.size,
64084 pageSizeList = _props9.pageSizeList;
64085 var currentPageSize = this.state.currentPageSize;
64086
64087 return _react2.default.createElement('div', { className: prefix + 'pagination-size-selector-filter' }, pageSizeList.map(function (item, index) {
64088 var _cx4;
64089
64090 var label = void 0;
64091 var pageSize = void 0;
64092 if (item.value) {
64093 // {label: '', value: 5}
64094 label = item.label;
64095 pageSize = item.value;
64096 } else {
64097 // number
64098 label = pageSize = item;
64099 }
64100 var classes = (0, _classnames2.default)((_cx4 = {}, _cx4[prefix + 'pagination-size-selector-btn'] = true, _cx4[prefix + 'current'] = pageSize === currentPageSize, _cx4));
64101
64102 return _react2.default.createElement(_button2.default, {
64103 key: index,
64104 text: true,
64105 size: size,
64106 className: classes,
64107 onClick: pageSize !== currentPageSize ? _this3.onSelectSize.bind(_this3, pageSize) : null
64108 }, label);
64109 }));
64110 };
64111
64112 Pagination.prototype.renderPageSizeDropdown = function renderPageSizeDropdown() {
64113 var _props10 = this.props,
64114 prefix = _props10.prefix,
64115 size = _props10.size,
64116 pageSizeList = _props10.pageSizeList,
64117 locale = _props10.locale,
64118 popupProps = _props10.popupProps,
64119 selectProps = _props10.selectProps;
64120 var currentPageSize = this.state.currentPageSize;
64121
64122 return _react2.default.createElement(_select2.default, (0, _extends3.default)({
64123 className: prefix + 'pagination-size-selector-dropdown',
64124 popupClassName: prefix + 'pagination-size-selector-popup',
64125 popupProps: popupProps,
64126 'aria-label': locale.selectAriaLabel,
64127 autoWidth: false,
64128 size: size,
64129 value: currentPageSize,
64130 onChange: this.onSelectSize.bind(this)
64131 }, selectProps), pageSizeList.map(function (item, index) {
64132 var label = void 0;
64133 var pageSize = void 0;
64134 if (item.value) {
64135 // {label: '', value: 5}
64136 label = item.label;
64137 pageSize = item.value;
64138 } else {
64139 // number
64140 label = pageSize = item;
64141 }
64142 return _react2.default.createElement(Option, { key: index, value: pageSize }, label);
64143 }));
64144 };
64145
64146 Pagination.prototype.render = function render() {
64147 var _cx5,
64148 _this4 = this;
64149
64150 /* eslint-disable no-unused-vars */
64151 var _props11 = this.props,
64152 prefix = _props11.prefix,
64153 pure = _props11.pure,
64154 rtl = _props11.rtl,
64155 device = _props11.device,
64156 paginationType = _props11.type,
64157 size = _props11.size,
64158 shape = _props11.shape,
64159 className = _props11.className,
64160 total = _props11.total,
64161 totalRender = _props11.totalRender,
64162 pageSize = _props11.pageSize,
64163 pageSizeSelector = _props11.pageSizeSelector,
64164 pageSizeList = _props11.pageSizeList,
64165 pageSizePosition = _props11.pageSizePosition,
64166 useFloatLayout = _props11.useFloatLayout,
64167 onPageSizeChange = _props11.onPageSizeChange,
64168 hideOnlyOnePage = _props11.hideOnlyOnePage,
64169 showJump = _props11.showJump,
64170 locale = _props11.locale,
64171 current = _props11.current,
64172 defaultCurrent = _props11.defaultCurrent,
64173 pageShowCount = _props11.pageShowCount,
64174 pageNumberRender = _props11.pageNumberRender,
64175 link = _props11.link,
64176 onChange = _props11.onChange,
64177 popupProps = _props11.popupProps,
64178 selectProps = _props11.selectProps,
64179 others = (0, _objectWithoutProperties3.default)(_props11, ['prefix', 'pure', 'rtl', 'device', 'type', 'size', 'shape', 'className', 'total', 'totalRender', 'pageSize', 'pageSizeSelector', 'pageSizeList', 'pageSizePosition', 'useFloatLayout', 'onPageSizeChange', 'hideOnlyOnePage', 'showJump', 'locale', 'current', 'defaultCurrent', 'pageShowCount', 'pageNumberRender', 'link', 'onChange', 'popupProps', 'selectProps']);
64180 /* eslint-enable */
64181
64182 var _state2 = this.state,
64183 currentPage = _state2.current,
64184 currentPageSize = _state2.currentPageSize;
64185
64186 var totalPage = getTotalPage(total, currentPageSize);
64187 var pageFirst = this.renderPageFirst(currentPage);
64188 var pageLast = this.renderPageLast(currentPage, totalPage);
64189 var sizeSelector = this.renderPageSizeSelector();
64190 var isStart = pageSizePosition === 'start';
64191
64192 var type = paginationType;
64193
64194 if (device === 'phone' && type === 'normal') {
64195 type = 'simple';
64196 }
64197
64198 var classes = (0, _classnames2.default)((_cx5 = {}, _cx5[prefix + 'pagination'] = true, _cx5['' + prefix + size] = size, _cx5['' + prefix + type] = type, _cx5['' + prefix + shape] = shape, _cx5[prefix + 'start'] = !!pageSizeSelector && isStart && useFloatLayout, _cx5[prefix + 'end'] = !!pageSizeSelector && !isStart && useFloatLayout, _cx5[prefix + 'hide'] = totalPage <= 1 && hideOnlyOnePage, _cx5[className] = !!className, _cx5));
64199
64200 if (rtl) {
64201 others.dir = 'rtl';
64202 }
64203
64204 var buildComponent = function buildComponent() {
64205 for (var _len = arguments.length, coms = Array(_len), _key = 0; _key < _len; _key++) {
64206 coms[_key] = arguments[_key];
64207 }
64208
64209 return _react2.default.createElement('div', (0, _extends3.default)({ className: classes }, _util.obj.pickOthers(Object.keys(Pagination.propTypes), others)), isStart && sizeSelector, totalRender ? _this4.renderPageTotal() : null, _react2.default.createElement('div', { className: prefix + 'pagination-pages' }, coms.map(function (com, index) {
64210 return com && _react2.default.cloneElement(com, { key: index });
64211 })), !isStart && sizeSelector);
64212 };
64213
64214 switch (type) {
64215 case 'mini':
64216 return buildComponent(pageFirst, pageLast);
64217 case 'simple':
64218 {
64219 var pageDisplay = this.renderPageDisplay(currentPage, totalPage);
64220 return buildComponent(pageFirst, pageDisplay, pageLast);
64221 }
64222 case 'normal':
64223 {
64224 var pageList = this.renderPageList(currentPage, totalPage);
64225 var _pageDisplay = showJump && total > pageSize * pageShowCount ? this.renderPageDisplay(currentPage, totalPage) : null;
64226 var pageJump = showJump && total > pageSize * pageShowCount ? this.renderPageJump(currentPage, totalPage) : null;
64227 return buildComponent.apply(undefined, [pageFirst, pageList, pageLast, _pageDisplay].concat(pageJump));
64228 }
64229 default:
64230 return null;
64231 }
64232 };
64233
64234 return Pagination;
64235}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
64236 prefix: _propTypes2.default.string,
64237 pure: _propTypes2.default.bool,
64238 rtl: _propTypes2.default.bool,
64239 device: _propTypes2.default.oneOf(['desktop', 'tablet', 'phone']),
64240 className: _propTypes2.default.string,
64241 /**
64242 * 自定义国际化文案对象
64243 */
64244 locale: _propTypes2.default.object,
64245 /**
64246 * 分页组件类型
64247 */
64248 type: _propTypes2.default.oneOf(['normal', 'simple', 'mini']),
64249 /**
64250 * 前进后退按钮样式
64251 */
64252 shape: _propTypes2.default.oneOf(['normal', 'arrow-only', 'arrow-prev-only', 'no-border']),
64253 /**
64254 * 分页组件大小
64255 */
64256 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
64257 /**
64258 * (受控)当前页码
64259 */
64260 current: _propTypes2.default.number,
64261 /**
64262 * (非受控)初始页码
64263 */
64264 defaultCurrent: _propTypes2.default.number,
64265 /**
64266 * 页码发生改变时的回调函数
64267 * @param {Number} current 改变后的页码数
64268 * @param {Object} e 点击事件对象
64269 */
64270 onChange: _propTypes2.default.func,
64271 /**
64272 * 总记录数
64273 */
64274 total: _propTypes2.default.number,
64275 /**
64276 * 总数的渲染函数
64277 * @param {Number} total 总数
64278 * @param {Array} range 当前数据在总数中的区间
64279 */
64280 totalRender: _propTypes2.default.func,
64281 /**
64282 * 页码显示的数量,更多的使用...代替
64283 */
64284 pageShowCount: _propTypes2.default.number,
64285 /**
64286 * 一页中的记录数
64287 */
64288 pageSize: _propTypes2.default.number,
64289 /**
64290 * 每页显示选择器类型
64291 */
64292 pageSizeSelector: _propTypes2.default.oneOf([false, 'filter', 'dropdown']),
64293 /**
64294 * 每页显示选择器可选值
64295 */
64296 pageSizeList: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.arrayOf(_propTypes2.default.shape({
64297 label: _propTypes2.default.string,
64298 value: _propTypes2.default.number
64299 }))]),
64300 /**
64301 * 自定义页码渲染函数,函数作用于页码button以及当前页/总页数的数字渲染
64302 * @param {Number} index 分页的页码,从1开始
64303 * @return {ReactNode} 返回渲染结果
64304 */
64305 pageNumberRender: _propTypes2.default.func,
64306 /**
64307 * 每页显示选择器在组件中的位置
64308 */
64309 pageSizePosition: _propTypes2.default.oneOf(['start', 'end']),
64310 /**
64311 * 存在每页显示选择器时是否使用浮动布局
64312 */
64313 useFloatLayout: _propTypes2.default.bool,
64314 /**
64315 * 每页显示记录数量改变时的回调函数
64316 * @param {Number} pageSize 改变后的每页显示记录数
64317 */
64318 onPageSizeChange: _propTypes2.default.func,
64319 /**
64320 * 当分页数为1时,是否隐藏分页器
64321 */
64322 hideOnlyOnePage: _propTypes2.default.bool,
64323 /**
64324 * type 设置为 normal 时,在页码数超过5页后,会显示跳转输入框与按钮,当设置 showJump 为 false 时,不再显示该跳转区域
64325 */
64326 showJump: _propTypes2.default.bool,
64327 /**
64328 * 设置页码按钮的跳转链接,它的值为一个包含 {page} 的模版字符串,如:https://www.taobao.com/{page}
64329 */
64330 link: _propTypes2.default.string,
64331 /**
64332 * 弹层组件属性,透传给Popup
64333 */
64334 popupProps: _propTypes2.default.object,
64335 selectProps: _propTypes2.default.object
64336}), _class.defaultProps = {
64337 prefix: 'next-',
64338 pure: false,
64339 rtl: false,
64340 locale: _zhCn2.default.Pagination,
64341 type: 'normal',
64342 shape: 'normal',
64343 size: 'medium',
64344 defaultCurrent: 1,
64345 onChange: noop,
64346 pageSize: 10,
64347 pageSizeSelector: false,
64348 pageSizeList: [5, 10, 20],
64349 pageSizePosition: 'start',
64350 onPageSizeChange: noop,
64351 useFloatLayout: false,
64352 total: 100,
64353 pageShowCount: 5,
64354 hideOnlyOnePage: false,
64355 showJump: true,
64356 pageNumberRender: function pageNumberRender(index) {
64357 return index;
64358 }
64359}, _temp);
64360Pagination.displayName = 'Pagination';
64361exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Pagination));
64362module.exports = exports['default'];
64363
64364/***/ }),
64365/* 388 */
64366/***/ (function(module, exports, __webpack_require__) {
64367
64368"use strict";
64369
64370
64371exports.__esModule = true;
64372
64373var _extends2 = __webpack_require__(1);
64374
64375var _extends3 = _interopRequireDefault(_extends2);
64376
64377var _objectWithoutProperties2 = __webpack_require__(8);
64378
64379var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64380
64381var _classCallCheck2 = __webpack_require__(2);
64382
64383var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64384
64385var _possibleConstructorReturn2 = __webpack_require__(3);
64386
64387var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64388
64389var _inherits2 = __webpack_require__(4);
64390
64391var _inherits3 = _interopRequireDefault(_inherits2);
64392
64393var _class, _temp;
64394
64395var _react = __webpack_require__(0);
64396
64397var _react2 = _interopRequireDefault(_react);
64398
64399var _propTypes = __webpack_require__(5);
64400
64401var _propTypes2 = _interopRequireDefault(_propTypes);
64402
64403var _classnames = __webpack_require__(7);
64404
64405var _classnames2 = _interopRequireDefault(_classnames);
64406
64407var _configProvider = __webpack_require__(9);
64408
64409var _configProvider2 = _interopRequireDefault(_configProvider);
64410
64411var _util = __webpack_require__(6);
64412
64413function _interopRequireDefault(obj) {
64414 return obj && obj.__esModule ? obj : { default: obj };
64415}
64416
64417/* eslint-disable */
64418
64419/** Paragraph */
64420var Paragraph = (_temp = _class = function (_React$Component) {
64421 (0, _inherits3.default)(Paragraph, _React$Component);
64422
64423 function Paragraph(props) {
64424 (0, _classCallCheck3.default)(this, Paragraph);
64425
64426 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
64427
64428 _util.log.warning('[Paragraph] is deprecated, please use Typography.Paragraph instead!');
64429 return _this;
64430 }
64431
64432 Paragraph.prototype.render = function render() {
64433 var _props = this.props,
64434 prefix = _props.prefix,
64435 className = _props.className,
64436 type = _props.type,
64437 size = _props.size,
64438 rtl = _props.rtl,
64439 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'type', 'size', 'rtl']);
64440
64441 var cls = (0, _classnames2.default)(prefix + 'paragraph', type === 'short' ? prefix + 'paragraph-short' : prefix + 'paragraph-long', size === 'small' ? prefix + 'paragraph-small' : prefix + 'paragraph-medium', className);
64442 if (rtl) {
64443 others.dir = 'rtl';
64444 }
64445
64446 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: cls }), this.props.children);
64447 };
64448
64449 return Paragraph;
64450}(_react2.default.Component), _class.propTypes = {
64451 prefix: _propTypes2.default.string,
64452 /**
64453 * 额外的样式名 会附加到 root dom 上
64454 */
64455 className: _propTypes2.default.string,
64456 /**
64457 * 什么方式展示段落
64458 * @enumdesc 展示所有文本, 展示三行以内(非强制)
64459 */
64460 type: _propTypes2.default.oneOf(['long', 'short']),
64461 /**
64462 * 组件大小。
64463 * @enumdesc 中号, 小号
64464 */
64465 size: _propTypes2.default.oneOf(['medium', 'small']),
64466 rtl: _propTypes2.default.bool
64467}, _class.defaultProps = {
64468 prefix: 'next-',
64469 type: 'long',
64470 size: 'medium'
64471}, _temp);
64472Paragraph.displayName = 'Paragraph';
64473exports.default = _configProvider2.default.config(Paragraph);
64474module.exports = exports['default'];
64475
64476/***/ }),
64477/* 389 */
64478/***/ (function(module, exports, __webpack_require__) {
64479
64480"use strict";
64481
64482
64483exports.__esModule = true;
64484exports.default = undefined;
64485
64486var _extends2 = __webpack_require__(1);
64487
64488var _extends3 = _interopRequireDefault(_extends2);
64489
64490var _objectWithoutProperties2 = __webpack_require__(8);
64491
64492var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64493
64494var _classCallCheck2 = __webpack_require__(2);
64495
64496var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64497
64498var _possibleConstructorReturn2 = __webpack_require__(3);
64499
64500var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64501
64502var _inherits2 = __webpack_require__(4);
64503
64504var _inherits3 = _interopRequireDefault(_inherits2);
64505
64506var _class, _temp;
64507
64508var _react = __webpack_require__(0);
64509
64510var _react2 = _interopRequireDefault(_react);
64511
64512var _propTypes = __webpack_require__(5);
64513
64514var _propTypes2 = _interopRequireDefault(_propTypes);
64515
64516var _progressLine = __webpack_require__(390);
64517
64518var _progressLine2 = _interopRequireDefault(_progressLine);
64519
64520var _progressCircle = __webpack_require__(391);
64521
64522var _progressCircle2 = _interopRequireDefault(_progressCircle);
64523
64524function _interopRequireDefault(obj) {
64525 return obj && obj.__esModule ? obj : { default: obj };
64526}
64527
64528/**
64529 * Progress
64530 */
64531var Progress = (_temp = _class = function (_Component) {
64532 (0, _inherits3.default)(Progress, _Component);
64533
64534 function Progress() {
64535 (0, _classCallCheck3.default)(this, Progress);
64536 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
64537 }
64538
64539 Progress.prototype.render = function render() {
64540 var _props = this.props,
64541 shape = _props.shape,
64542 hasBorder = _props.hasBorder,
64543 others = (0, _objectWithoutProperties3.default)(_props, ['shape', 'hasBorder']);
64544
64545 return shape === 'circle' ? _react2.default.createElement(_progressCircle2.default, others) : _react2.default.createElement(_progressLine2.default, (0, _extends3.default)({}, others, { hasBorder: hasBorder }));
64546 };
64547
64548 return Progress;
64549}(_react.Component), _class.propTypes = {
64550 prefix: _propTypes2.default.string,
64551 /**
64552 * 形态
64553 */
64554 shape: _propTypes2.default.oneOf(['circle', 'line']),
64555 /**
64556 * 尺寸
64557 */
64558 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
64559 /**
64560 * 所占百分比
64561 */
64562 percent: _propTypes2.default.number,
64563 /**
64564 * 进度状态, 显示优先级: color > progressive > state
64565 */
64566 state: _propTypes2.default.oneOf(['normal', 'success', 'error']),
64567 /**
64568 * 是否为色彩阶段变化模式, 显示优先级: color > progressive > state
64569 */
64570 progressive: _propTypes2.default.bool,
64571 /**
64572 * 是否添加 Border(只适用于 Line Progress)
64573 */
64574 hasBorder: _propTypes2.default.bool,
64575 /**
64576 * 文本渲染函数
64577 * @param {Number} percent 当前的进度信息
64578 * @param {Object} option 额外的参数
64579 * @property {Boolean} option.rtl 是否在rtl 模式下渲染
64580 * @return {ReactNode} 返回文本节点
64581 */
64582 textRender: _propTypes2.default.func,
64583 /**
64584 * 进度条颜色, 显示优先级: color > progressive > state
64585 */
64586 color: _propTypes2.default.string,
64587 /**
64588 * 背景色
64589 */
64590 backgroundColor: _propTypes2.default.string,
64591 rtl: _propTypes2.default.bool
64592}, _class.defaultProps = {
64593 prefix: 'next-',
64594 shape: 'line',
64595 state: 'normal',
64596 size: 'medium',
64597 percent: 0,
64598 progressive: false,
64599 hasBorder: false,
64600 textRender: function textRender(percent) {
64601 return Math.floor(percent) + '%';
64602 }
64603}, _class.contextTypes = {
64604 prefix: _propTypes2.default.string
64605}, _temp);
64606Progress.displayName = 'Progress';
64607exports.default = Progress;
64608module.exports = exports['default'];
64609
64610/***/ }),
64611/* 390 */
64612/***/ (function(module, exports, __webpack_require__) {
64613
64614"use strict";
64615
64616
64617exports.__esModule = true;
64618exports.default = undefined;
64619
64620var _extends2 = __webpack_require__(1);
64621
64622var _extends3 = _interopRequireDefault(_extends2);
64623
64624var _objectWithoutProperties2 = __webpack_require__(8);
64625
64626var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64627
64628var _classCallCheck2 = __webpack_require__(2);
64629
64630var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64631
64632var _possibleConstructorReturn2 = __webpack_require__(3);
64633
64634var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64635
64636var _inherits2 = __webpack_require__(4);
64637
64638var _inherits3 = _interopRequireDefault(_inherits2);
64639
64640var _class, _temp;
64641
64642var _react = __webpack_require__(0);
64643
64644var _react2 = _interopRequireDefault(_react);
64645
64646var _propTypes = __webpack_require__(5);
64647
64648var _propTypes2 = _interopRequireDefault(_propTypes);
64649
64650var _classnames = __webpack_require__(7);
64651
64652var _classnames2 = _interopRequireDefault(_classnames);
64653
64654function _interopRequireDefault(obj) {
64655 return obj && obj.__esModule ? obj : { default: obj };
64656}
64657
64658var Line = (_temp = _class = function (_React$PureComponent) {
64659 (0, _inherits3.default)(Line, _React$PureComponent);
64660
64661 function Line() {
64662 (0, _classCallCheck3.default)(this, Line);
64663 return (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.apply(this, arguments));
64664 }
64665
64666 Line.prototype.render = function render() {
64667 var _classNames, _classNames2;
64668
64669 var _props = this.props,
64670 prefix = _props.prefix,
64671 size = _props.size,
64672 state = _props.state,
64673 color = _props.color,
64674 percent = _props.percent,
64675 progressive = _props.progressive,
64676 hasBorder = _props.hasBorder,
64677 textRender = _props.textRender,
64678 className = _props.className,
64679 rtl = _props.rtl,
64680 backgroundColor = _props.backgroundColor,
64681 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'size', 'state', 'color', 'percent', 'progressive', 'hasBorder', 'textRender', 'className', 'rtl', 'backgroundColor']);
64682
64683 var suffixText = textRender(percent, { rtl: rtl });
64684
64685 var wrapCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'progress-line'] = true, _classNames[prefix + 'progress-line-show-info'] = suffixText, _classNames[prefix + 'progress-line-show-border'] = hasBorder, _classNames['' + (prefix + size)] = size, _classNames[className] = className, _classNames));
64686 var lineCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'progress-line-overlay'] = true, _classNames2[prefix + 'progress-line-overlay-' + state] = !color && !progressive && state, _classNames2[prefix + 'progress-line-overlay-started'] = !color && progressive && percent <= 30, _classNames2[prefix + 'progress-line-overlay-middle'] = !color && progressive && percent > 30 && percent < 80, _classNames2[prefix + 'progress-line-overlay-finishing'] = !color && progressive && percent >= 80, _classNames2));
64687
64688 var lineStyle = {
64689 width: (percent > 100 ? 100 : percent < 0 ? 0 : percent) + '%',
64690 backgroundColor: color
64691 };
64692 var underlayStyle = { backgroundColor: backgroundColor };
64693
64694 return _react2.default.createElement('div', (0, _extends3.default)({
64695 dir: rtl ? 'rtl' : undefined,
64696 role: 'progressbar',
64697 'aria-valuenow': percent,
64698 'aria-valuemin': '0',
64699 'aria-valuemax': '100',
64700 className: wrapCls
64701 }, others), _react2.default.createElement('div', { className: prefix + 'progress-line-container' }, _react2.default.createElement('div', {
64702 className: prefix + 'progress-line-underlay',
64703 style: underlayStyle
64704 }, _react2.default.createElement('div', { className: lineCls, style: lineStyle }))), suffixText ? _react2.default.createElement('div', { className: prefix + 'progress-line-text' }, suffixText) : null);
64705 };
64706
64707 return Line;
64708}(_react2.default.PureComponent), _class.propTypes = {
64709 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
64710 percent: _propTypes2.default.number,
64711 state: _propTypes2.default.oneOf(['normal', 'success', 'error']),
64712 progressive: _propTypes2.default.bool,
64713 hasBorder: _propTypes2.default.bool,
64714 textRender: _propTypes2.default.func,
64715 color: _propTypes2.default.string,
64716 backgroundColor: _propTypes2.default.string,
64717 rtl: _propTypes2.default.bool,
64718 prefix: _propTypes2.default.string,
64719 className: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object])
64720}, _temp);
64721exports.default = Line;
64722module.exports = exports['default'];
64723
64724/***/ }),
64725/* 391 */
64726/***/ (function(module, exports, __webpack_require__) {
64727
64728"use strict";
64729
64730
64731exports.__esModule = true;
64732exports.default = undefined;
64733
64734var _extends2 = __webpack_require__(1);
64735
64736var _extends3 = _interopRequireDefault(_extends2);
64737
64738var _objectWithoutProperties2 = __webpack_require__(8);
64739
64740var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64741
64742var _classCallCheck2 = __webpack_require__(2);
64743
64744var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64745
64746var _possibleConstructorReturn2 = __webpack_require__(3);
64747
64748var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64749
64750var _inherits2 = __webpack_require__(4);
64751
64752var _inherits3 = _interopRequireDefault(_inherits2);
64753
64754var _class, _temp;
64755
64756var _react = __webpack_require__(0);
64757
64758var _react2 = _interopRequireDefault(_react);
64759
64760var _propTypes = __webpack_require__(5);
64761
64762var _propTypes2 = _interopRequireDefault(_propTypes);
64763
64764var _classnames = __webpack_require__(7);
64765
64766var _classnames2 = _interopRequireDefault(_classnames);
64767
64768function _interopRequireDefault(obj) {
64769 return obj && obj.__esModule ? obj : { default: obj };
64770}
64771
64772var VIEWBOX_WIDTH = 100; // width of viewBox
64773var HALF_VIEWBOX_WIDTH = VIEWBOX_WIDTH / 2;
64774var DEFAULT_STROKE_WIDTH = 8;
64775
64776var viewBox = '0 0 ' + VIEWBOX_WIDTH + ' ' + VIEWBOX_WIDTH;
64777
64778var Circle = (_temp = _class = function (_Component) {
64779 (0, _inherits3.default)(Circle, _Component);
64780
64781 function Circle(props) {
64782 (0, _classCallCheck3.default)(this, Circle);
64783
64784 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
64785
64786 _this._underlayRefHandler = function (ref) {
64787 _this.underlay = ref;
64788 };
64789
64790 _this._overlayRefHandler = function (ref) {
64791 _this.overlay = ref;
64792 };
64793
64794 _this.state = {
64795 underlayStrokeWidth: DEFAULT_STROKE_WIDTH,
64796 overlayStrokeWidth: DEFAULT_STROKE_WIDTH
64797 };
64798 return _this;
64799 }
64800
64801 Circle.prototype.componentDidMount = function componentDidMount() {
64802 if (this.underlay && this.overlay) {
64803 // eslint-disable-next-line
64804 this.setState({
64805 underlayStrokeWidth: this._getCssValue(this.underlay, 'stroke-width') || DEFAULT_STROKE_WIDTH,
64806 overlayStrokeWidth: this._getCssValue(this.overlay, 'stroke-width') || DEFAULT_STROKE_WIDTH
64807 });
64808 }
64809 };
64810
64811 Circle.prototype._getCssValue = function _getCssValue(dom, name) {
64812 var css = window.getComputedStyle(dom).getPropertyValue(name);
64813 var regExp = /(\d*)px/g;
64814 var result = regExp.exec(css);
64815
64816 return Array.isArray(result) ? Number(result[1]) : 0;
64817 };
64818
64819 Circle.prototype._computeOverlayStrokeDashOffset = function _computeOverlayStrokeDashOffset() {
64820 var _state = this.state,
64821 underlayStrokeWidth = _state.underlayStrokeWidth,
64822 overlayStrokeWidth = _state.overlayStrokeWidth;
64823
64824 var overlayRadius = HALF_VIEWBOX_WIDTH - overlayStrokeWidth / 2 - (underlayStrokeWidth - overlayStrokeWidth) / 2;
64825 var overlayLen = Math.PI * 2 * overlayRadius;
64826 return (VIEWBOX_WIDTH - this.props.percent) / VIEWBOX_WIDTH * overlayLen;
64827 };
64828
64829 Circle.prototype._getPath = function _getPath(radius) {
64830 return 'M ' + HALF_VIEWBOX_WIDTH + ',' + HALF_VIEWBOX_WIDTH + ' m 0,-' + radius + ' a ' + radius + ',' + radius + ' 0 1 1 0,' + 2 * radius + ' a ' + radius + ',' + radius + ' 0 1 1 0,-' + 2 * radius;
64831 };
64832
64833 Circle.prototype.render = function render() {
64834 var _classNames, _classNames2;
64835
64836 var _props = this.props,
64837 prefix = _props.prefix,
64838 size = _props.size,
64839 state = _props.state,
64840 percent = _props.percent,
64841 className = _props.className,
64842 textRender = _props.textRender,
64843 progressive = _props.progressive,
64844 color = _props.color,
64845 backgroundColor = _props.backgroundColor,
64846 rtl = _props.rtl,
64847 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'size', 'state', 'percent', 'className', 'textRender', 'progressive', 'color', 'backgroundColor', 'rtl']);
64848 var _state2 = this.state,
64849 underlayStrokeWidth = _state2.underlayStrokeWidth,
64850 overlayStrokeWidth = _state2.overlayStrokeWidth;
64851
64852 // underlay path
64853
64854 var underlayRadius = HALF_VIEWBOX_WIDTH - underlayStrokeWidth / 2;
64855 var underlayPath = this._getPath(underlayRadius);
64856
64857 // overlay path (为居中,减去相对于underlay的宽度)
64858 var overlayRadius = HALF_VIEWBOX_WIDTH - overlayStrokeWidth / 2 - (underlayStrokeWidth - overlayStrokeWidth) / 2;
64859 var overlayPath = this._getPath(overlayRadius);
64860 var overlayLen = Math.PI * 2 * overlayRadius;
64861 var overlayStrokeDasharray = overlayLen + 'px ' + overlayLen + 'px';
64862 var overlayStrokeDashoffset = this._computeOverlayStrokeDashOffset() + 'px';
64863
64864 var suffixText = textRender(percent, { rtl: rtl });
64865
64866 var wrapCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'progress-circle'] = true, _classNames[prefix + 'progress-circle-show-info'] = suffixText, _classNames['' + (prefix + size)] = size, _classNames[className] = className, _classNames));
64867
64868 var pathCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'progress-circle-overlay'] = true, _classNames2[prefix + 'progress-circle-overlay-' + state] = !color && !progressive && state, _classNames2[prefix + 'progress-circle-overlay-started'] = !color && progressive && percent <= 30, _classNames2[prefix + 'progress-circle-overlay-middle'] = !color && progressive && percent > 30 && percent < 80, _classNames2[prefix + 'progress-circle-overlay-finishing'] = !color && progressive && percent >= 80, _classNames2));
64869
64870 var underlayStyle = { stroke: backgroundColor };
64871
64872 return _react2.default.createElement('div', (0, _extends3.default)({
64873 className: wrapCls,
64874 dir: rtl ? 'rtl' : undefined,
64875 role: 'progressbar',
64876 'aria-valuenow': percent,
64877 'aria-valuemin': '0',
64878 'aria-valuemax': '100'
64879 }, others), _react2.default.createElement('svg', {
64880 className: prefix + 'progress-circle-container',
64881 viewBox: viewBox
64882 }, _react2.default.createElement('path', {
64883 className: prefix + 'progress-circle-underlay',
64884 d: underlayPath,
64885 fillOpacity: '0',
64886 ref: this._underlayRefHandler,
64887 style: underlayStyle
64888 }), _react2.default.createElement('path', {
64889 className: pathCls,
64890 d: overlayPath,
64891 fillOpacity: '0',
64892 strokeDasharray: overlayStrokeDasharray,
64893 strokeDashoffset: overlayStrokeDashoffset,
64894 ref: this._overlayRefHandler,
64895 stroke: color
64896 })), suffixText ? _react2.default.createElement('div', { className: prefix + 'progress-circle-text' }, suffixText) : null);
64897 };
64898
64899 return Circle;
64900}(_react.Component), _class.propTypes = {
64901 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
64902 percent: _propTypes2.default.number,
64903 state: _propTypes2.default.oneOf(['normal', 'success', 'error']),
64904 progressive: _propTypes2.default.bool,
64905 textRender: _propTypes2.default.func,
64906 prefix: _propTypes2.default.string,
64907 className: _propTypes2.default.string,
64908 color: _propTypes2.default.string,
64909 backgroundColor: _propTypes2.default.string,
64910 rtl: _propTypes2.default.bool
64911}, _temp);
64912Circle.displayName = 'Circle';
64913exports.default = Circle;
64914module.exports = exports['default'];
64915
64916/***/ }),
64917/* 392 */
64918/***/ (function(module, exports, __webpack_require__) {
64919
64920"use strict";
64921
64922
64923exports.__esModule = true;
64924
64925var _extends2 = __webpack_require__(1);
64926
64927var _extends3 = _interopRequireDefault(_extends2);
64928
64929var _objectWithoutProperties2 = __webpack_require__(8);
64930
64931var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
64932
64933var _configProvider = __webpack_require__(9);
64934
64935var _configProvider2 = _interopRequireDefault(_configProvider);
64936
64937var _range = __webpack_require__(393);
64938
64939var _range2 = _interopRequireDefault(_range);
64940
64941function _interopRequireDefault(obj) {
64942 return obj && obj.__esModule ? obj : { default: obj };
64943}
64944
64945exports.default = _configProvider2.default.config(_range2.default, {
64946 transform: /* istanbul ignore next */function transform(props, deprecated) {
64947 if ('hasTips' in props) {
64948 deprecated('hasTips', 'hasTip', 'Range');
64949
64950 var _props = props,
64951 hasTips = _props.hasTips,
64952 others = (0, _objectWithoutProperties3.default)(_props, ['hasTips']);
64953
64954 props = (0, _extends3.default)({ hasTip: hasTips }, others);
64955 }
64956
64957 if ('tipFormatter' in props) {
64958 deprecated('tipFormatter', 'tipRender', 'Range');
64959
64960 var _props2 = props,
64961 tipFormatter = _props2.tipFormatter,
64962 _others = (0, _objectWithoutProperties3.default)(_props2, ['tipFormatter']);
64963
64964 props = (0, _extends3.default)({ tipRender: tipFormatter }, _others);
64965 }
64966
64967 return props;
64968 }
64969});
64970module.exports = exports['default'];
64971
64972/***/ }),
64973/* 393 */
64974/***/ (function(module, exports, __webpack_require__) {
64975
64976"use strict";
64977
64978
64979exports.__esModule = true;
64980
64981var _classCallCheck2 = __webpack_require__(2);
64982
64983var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
64984
64985var _possibleConstructorReturn2 = __webpack_require__(3);
64986
64987var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
64988
64989var _inherits2 = __webpack_require__(4);
64990
64991var _inherits3 = _interopRequireDefault(_inherits2);
64992
64993var _extends2 = __webpack_require__(1);
64994
64995var _extends3 = _interopRequireDefault(_extends2);
64996
64997var _class, _temp;
64998
64999var _classnames = __webpack_require__(7);
65000
65001var _classnames2 = _interopRequireDefault(_classnames);
65002
65003var _react = __webpack_require__(0);
65004
65005var _react2 = _interopRequireDefault(_react);
65006
65007var _propTypes = __webpack_require__(5);
65008
65009var _propTypes2 = _interopRequireDefault(_propTypes);
65010
65011var _reactLifecyclesCompat = __webpack_require__(10);
65012
65013var _util = __webpack_require__(6);
65014
65015var _balloon = __webpack_require__(59);
65016
65017var _balloon2 = _interopRequireDefault(_balloon);
65018
65019var _utils = __webpack_require__(41);
65020
65021var _scale = __webpack_require__(394);
65022
65023var _scale2 = _interopRequireDefault(_scale);
65024
65025var _track = __webpack_require__(395);
65026
65027var _track2 = _interopRequireDefault(_track);
65028
65029var _selected = __webpack_require__(396);
65030
65031var _selected2 = _interopRequireDefault(_selected);
65032
65033var _mark = __webpack_require__(397);
65034
65035var _mark2 = _interopRequireDefault(_mark);
65036
65037var _slider = __webpack_require__(398);
65038
65039var _slider2 = _interopRequireDefault(_slider);
65040
65041var _fixedSlider = __webpack_require__(399);
65042
65043var _fixedSlider2 = _interopRequireDefault(_fixedSlider);
65044
65045function _interopRequireDefault(obj) {
65046 return obj && obj.__esModule ? obj : { default: obj };
65047}
65048
65049var Tooltip = _balloon2.default.Tooltip;
65050var noop = _util.func.noop,
65051 bindCtx = _util.func.bindCtx;
65052var pickOthers = _util.obj.pickOthers;
65053
65054function _isMultiple(slider, isFixedWidth) {
65055 return isFixedWidth || slider === 'double';
65056}
65057
65058function LowerSlider(props) {
65059 var hasTip = props.hasTip,
65060 value = props.value,
65061 tipRender = props.tipRender,
65062 slider = props.slider,
65063 tooltipVisible = props.tooltipVisible,
65064 onTooltipVisibleChange = props.onTooltipVisibleChange,
65065 tooltipAnimation = props.tooltipAnimation;
65066
65067 if (_isMultiple(slider)) {
65068 return hasTip ? _react2.default.createElement(Tooltip, {
65069 popupContainer: function popupContainer(target) {
65070 return target.parentNode;
65071 },
65072 popupProps: {
65073 visible: tooltipVisible,
65074 onVisibleChange: onTooltipVisibleChange,
65075 animation: tooltipAnimation,
65076 needAdjust: false
65077 },
65078 trigger: (0, _slider2.default)((0, _extends3.default)({}, props, { value: value[0] })),
65079 align: 't'
65080 }, tipRender('' + value[0])) : (0, _slider2.default)((0, _extends3.default)({}, props, { value: value[0] }));
65081 }
65082 return null;
65083}
65084
65085LowerSlider.propTypes = {
65086 hasTip: _propTypes2.default.bool,
65087 tooltipVisible: _propTypes2.default.bool,
65088 onTooltipVisibleChange: _propTypes2.default.func,
65089 tooltipAnimation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
65090 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65091 tipRender: _propTypes2.default.func,
65092 slider: _propTypes2.default.oneOf(['single', 'double'])
65093};
65094
65095function UpperSlider(props) {
65096 var newprop = (0, _extends3.default)({}, props);
65097 var hasTip = newprop.hasTip,
65098 value = newprop.value,
65099 tipRender = newprop.tipRender,
65100 slider = newprop.slider,
65101 tooltipVisible = newprop.tooltipVisible,
65102 onTooltipVisibleChange = newprop.onTooltipVisibleChange,
65103 tooltipAnimation = newprop.tooltipAnimation;
65104
65105 if (_isMultiple(slider)) {
65106 delete newprop.onKeyDown;
65107 return hasTip ? _react2.default.createElement(Tooltip, {
65108 popupContainer: function popupContainer(target) {
65109 return target.parentNode;
65110 },
65111 popupProps: {
65112 visible: tooltipVisible,
65113 onVisibleChange: onTooltipVisibleChange,
65114 animation: tooltipAnimation,
65115 needAdjust: false
65116 },
65117 trigger: (0, _slider2.default)((0, _extends3.default)({}, newprop, { value: value[1] })),
65118 align: 't'
65119 }, tipRender(value[1])) : (0, _slider2.default)((0, _extends3.default)({}, newprop, { value: value[1] }));
65120 }
65121 return hasTip ? _react2.default.createElement(Tooltip, {
65122 popupContainer: function popupContainer(target) {
65123 return target.parentNode;
65124 },
65125 popupProps: {
65126 visible: tooltipVisible,
65127 onVisibleChange: onTooltipVisibleChange,
65128 animation: tooltipAnimation,
65129 needAdjust: false
65130 },
65131 animation: {
65132 in: 'fadeInUp',
65133 out: 'fadeOutDown'
65134 },
65135 trigger: (0, _slider2.default)(newprop),
65136 align: 't'
65137 }, tipRender(value)) : (0, _slider2.default)(newprop);
65138}
65139
65140UpperSlider.propTypes = {
65141 hasTip: _propTypes2.default.bool,
65142 tooltipVisible: _propTypes2.default.bool,
65143 onTooltipVisibleChange: _propTypes2.default.func,
65144 tooltipAnimation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
65145 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65146 tipRender: _propTypes2.default.func,
65147 slider: _propTypes2.default.oneOf(['single', 'double'])
65148};
65149
65150function pauseEvent(e) {
65151 e.stopPropagation();
65152 e.preventDefault();
65153}
65154
65155/** Range */
65156var Range = (_temp = _class = function (_React$Component) {
65157 (0, _inherits3.default)(Range, _React$Component);
65158
65159 function Range(props) {
65160 (0, _classCallCheck3.default)(this, Range);
65161
65162 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
65163
65164 var min = props.min;
65165
65166 var initialValue = _isMultiple(props.slider) ? [min, min] : min;
65167 var defaultValue = 'defaultValue' in props ? props.defaultValue : initialValue;
65168 var value = props.value !== undefined ? props.value : defaultValue;
65169
65170 _this.state = {
65171 value: value,
65172 tempValue: value,
65173 hasMovingClass: false,
65174 lowerTooltipVisible: false,
65175 upperTooltipVisible: false,
65176 tooltipAnimation: true
65177 };
65178
65179 bindCtx(_this, ['handleLowerTooltipVisibleChange', 'handleUpperTooltipVisibleChange', 'onKeyDown']);
65180 return _this;
65181 }
65182
65183 Range.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
65184 if ('value' in props) {
65185 var min = props.min,
65186 slider = props.slider,
65187 value = props.value;
65188 var hasMovingClass = state.hasMovingClass;
65189
65190 var newState = {
65191 value: value
65192 };
65193
65194 if (value === undefined) {
65195 newState.value = _isMultiple(slider) ? [min, min] : min;
65196 }
65197
65198 if (!hasMovingClass) {
65199 newState.tempValue = newState.value;
65200 }
65201
65202 return newState;
65203 }
65204 return null;
65205 };
65206
65207 Range.prototype._marksToScales = function _marksToScales(marks) {
65208 var result = [];
65209 if (Object.prototype.toString.call(marks) === '[object Object]') {
65210 for (var key in marks) {
65211 if (Object.hasOwnProperty.call(marks, key)) {
65212 result.push(parseInt(key));
65213 }
65214 }
65215 } else {
65216 result = marks;
65217 }
65218 return result;
65219 };
65220
65221 Range.prototype._calcScales = function _calcScales() {
65222 var _props = this.props,
65223 min = _props.min,
65224 max = _props.max,
65225 marks = _props.marks;
65226
65227 var scales = this._marksToScales(marks);
65228
65229 if (scales !== false) {
65230 if (Array.isArray(scales)) {
65231 return scales;
65232 } else {
65233 var pace = (max - min) / scales;
65234 var result = [];
65235
65236 result.push(min);
65237 for (var i = 1; i < scales; i++) {
65238 result.push(min + i * pace);
65239 }
65240 result.push(max);
65241 return result;
65242 }
65243 } else {
65244 return [];
65245 }
65246 };
65247
65248 Range.prototype._calcMarks = function _calcMarks() {
65249 var _props2 = this.props,
65250 min = _props2.min,
65251 max = _props2.max,
65252 marks = _props2.marks;
65253
65254 var result = {};
65255
65256 if (Array.isArray(marks)) {
65257 marks.forEach(function (m) {
65258 result[m] = m.toString();
65259 });
65260 } else if (typeof marks === 'number') {
65261 var pace = (max - min) / marks;
65262
65263 result[min] = min;
65264 for (var i = 1; i < marks; i++) {
65265 var mark = min + i * pace;
65266 var precision = (0, _utils.getPrecision)(mark);
65267 if (precision > 2) {
65268 precision = 2;
65269 }
65270 mark = mark.toFixed(precision);
65271 result[mark] = mark;
65272 }
65273 result[max] = max;
65274 } else {
65275 result = marks;
65276 }
65277 return result;
65278 };
65279
65280 Range.prototype._onMouseDown = function _onMouseDown(e) {
65281 if (e.button === 0) {
65282 this._start(e.pageX);
65283 this._addDocumentMouseEvents();
65284 pauseEvent(e);
65285 }
65286 };
65287
65288 Range.prototype._onTouchStart = function _onTouchStart(e) {
65289 this._start(e.targetTouches[0].pageX);
65290 this._addDocumentTouchEvents();
65291 e.stopPropagation(); // preventDefault() will be ignored: https://www.chromestatus.com/features/5093566007214080
65292 };
65293
65294 Range.prototype.onKeyDown = function onKeyDown(e) {
65295 if (this.props.disabled) return;
65296
65297 if (e.keyCode === _util.KEYCODE.LEFT_ARROW || e.keyCode === _util.KEYCODE.RIGHT_ARROW) {
65298 e.stopPropagation();
65299 e.preventDefault();
65300 var newValue = void 0;
65301 if (e.keyCode === _util.KEYCODE.LEFT_ARROW) {
65302 newValue = this.state.value - this.props.step;
65303 } else {
65304 newValue = this.state.value + this.props.step;
65305 }
65306 if (newValue > this.props.max) {
65307 newValue = this.props.max;
65308 }
65309 if (newValue < this.props.min) {
65310 newValue = this.props.min;
65311 }
65312 if (newValue !== this.state.value) {
65313 this.setState({
65314 value: newValue
65315 });
65316 this.props.onChange(newValue);
65317 }
65318 }
65319 };
65320
65321 Range.prototype._start = function _start(position) {
65322 this.setState({
65323 hasMovingClass: true
65324 });
65325
65326 var tempValue = this.state.tempValue;
65327
65328 var range = this.dom;
65329 var start = _util.dom.getOffset(range).left;
65330 // used in unit test
65331 var width = range.clientWidth;
65332 if (!width) {
65333 if (range.style.width) {
65334 var index = range.style.width.indexOf('px');
65335 if (index !== -1) {
65336 width = Number(range.style.width.slice(0, index));
65337 }
65338 }
65339 }
65340
65341 this._moving = {
65342 start: start,
65343 end: start + width,
65344 startValue: tempValue
65345 };
65346
65347 // change on start
65348 this._onProcess(position, true);
65349 };
65350
65351 Range.prototype._end = function _end() {
65352 var startValue = this._moving.startValue;
65353 var _state = this.state,
65354 tempValue = _state.tempValue,
65355 value = _state.value;
65356
65357 this._moving = null;
65358 this._removeDocumentEvents();
65359 this.setState({
65360 hasMovingClass: false,
65361 lowerTooltipVisible: false,
65362 upperTooltipVisible: false,
65363 tooltipAnimation: true
65364 });
65365
65366 if (!(0, _utils.isEqual)(tempValue, startValue)) {
65367 // Not Controlled
65368 if (!('value' in this.props)) {
65369 this.setState({
65370 value: tempValue
65371 });
65372 } else {
65373 this.setState({
65374 // tooltipVisible: false,
65375 tempValue: value,
65376 value: value
65377 });
65378 }
65379 this.props.onChange(tempValue);
65380 }
65381 };
65382
65383 Range.prototype._move = function _move(e) {
65384 var position = e.type === 'mousemove' ? e.pageX : e.targetTouches[0].pageX;
65385 this._onProcess(position);
65386 };
65387
65388 Range.prototype._onProcess = function _onProcess(position, start) {
65389 var tempValue = this.state.tempValue;
65390
65391 var current = this._positionToCurrent(position); //current 为当前click的value
65392
65393 if (this.isFixedWidth) {
65394 if (start) {
65395 this.lastPosition = current;
65396 }
65397 } else if (start) {
65398 this.lastPosition = current;
65399 if (_isMultiple(this.props.slider)) {
65400 this._moving.dragging = (0, _utils.getDragging)(current, tempValue);
65401 } else {
65402 this._moving.dragging = 'upper';
65403 }
65404
65405 this.setState({
65406 lowerTooltipVisible: this._moving.dragging === 'lower',
65407 upperTooltipVisible: this._moving.dragging === 'upper',
65408 tooltipAnimation: false
65409 });
65410 } else if (this.oldDragging === 'lower' && this._moving.dragging === 'upper') {
65411 this.setState({
65412 upperTooltipVisible: true,
65413 lowerTooltipVisible: false
65414 });
65415 } else if (this.oldDragging === 'upper' && this._moving.dragging === 'lower') {
65416 this.setState({
65417 upperTooltipVisible: false,
65418 lowerTooltipVisible: true
65419 });
65420 }
65421
65422 this.oldDragging = this._moving.dragging;
65423
65424 var nextValue = this._currentToValue(current, tempValue, this.lastPosition, this.isFixedWidth); //计算range的新value,可能是数组,可能是单个值
65425 this.lastPosition = current;
65426
65427 if (!(0, _utils.isEqual)(nextValue, tempValue)) {
65428 this.setState({
65429 tempValue: nextValue
65430 });
65431 this.props.onProcess(nextValue);
65432 }
65433 };
65434
65435 Range.prototype._addDocumentMouseEvents = function _addDocumentMouseEvents() {
65436 this._onMouseMoveListener = _util.events.on(document, 'mousemove', this._move.bind(this));
65437 this._onMouseUpListener = _util.events.on(document, 'mouseup', this._end.bind(this));
65438 };
65439
65440 Range.prototype._addDocumentTouchEvents = function _addDocumentTouchEvents() {
65441 this._onTouchMoveListener = _util.events.on(document, 'touchmove', this._move.bind(this));
65442 this._onTouchEndListener = _util.events.on(document, 'touchend', this._end.bind(this));
65443 };
65444
65445 Range.prototype._removeDocumentEvents = function _removeDocumentEvents() {
65446 if (this._onMouseMoveListener) {
65447 this._onMouseMoveListener.off();
65448 this._onMouseMoveListener = null;
65449 }
65450
65451 if (this._onMouseUpListener) {
65452 this._onMouseUpListener.off();
65453 this._onMouseUpListener = null;
65454 }
65455
65456 if (this._onTouchMoveListener) {
65457 this._onTouchMoveListener.off();
65458 this._onTouchMoveListener = null;
65459 }
65460
65461 if (this._onTouchEndListener) {
65462 this._onTouchEndListener.off();
65463 this._onTouchEndListener = null;
65464 }
65465 };
65466
65467 // position => current (value type)
65468
65469
65470 Range.prototype._positionToCurrent = function _positionToCurrent(position) {
65471 var _moving = this._moving,
65472 start = _moving.start,
65473 end = _moving.end;
65474 var _props3 = this.props,
65475 step = _props3.step,
65476 min = _props3.min,
65477 max = _props3.max,
65478 rtl = _props3.rtl;
65479
65480 if (position < start) {
65481 position = start;
65482 } else if (position > end) {
65483 position = end;
65484 }
65485 var percent = (0, _utils.getPercent)(start, end, position);
65486 percent = rtl ? 100 - percent : percent;
65487 // reset by step
65488 var newValue = parseFloat((Math.round(percent / 100 * (max - min) / step) * step).toFixed((0, _utils.getPrecision)(step)));
65489 var currentValue = (min + newValue).toFixed((0, _utils.getPrecision)(step));
65490
65491 return Number(currentValue);
65492 };
65493
65494 Range.prototype._currentToValue = function _currentToValue(current, preValue, lastPosition, isFixedWidth) {
65495 var dragging = this._moving.dragging;
65496 var _props4 = this.props,
65497 min = _props4.min,
65498 max = _props4.max;
65499
65500 if (!_isMultiple(this.props.slider, isFixedWidth)) {
65501 return current;
65502 } else {
65503 var result = void 0;
65504
65505 var precision = (0, _utils.getPrecision)(this.props.step);
65506 var diff = current - lastPosition;
65507 var newLeft = +(+preValue[0] + diff).toFixed(precision);
65508 var newRight = +(+preValue[1] + diff).toFixed(precision);
65509
65510 var newMaxLeft = +(max - preValue[1] + preValue[0]).toFixed(precision);
65511 var newMinRight = +(min + preValue[1] - preValue[0]).toFixed(precision);
65512
65513 if (isFixedWidth) {
65514 if (newLeft < min) {
65515 result = [min, newMinRight];
65516 } else if (newRight > max) {
65517 result = [newMaxLeft, max];
65518 } else {
65519 result = [newLeft, newRight];
65520 }
65521 } else if (dragging === 'lower') {
65522 if (current > preValue[1]) {
65523 result = [preValue[1], current];
65524 this._moving.dragging = 'upper';
65525 } else {
65526 result = [current, preValue[1]];
65527 }
65528 } else if (dragging === 'upper') {
65529 if (current < preValue[0]) {
65530 result = [current, preValue[0]];
65531 this._moving.dragging = 'lower';
65532 } else {
65533 result = [preValue[0], current];
65534 }
65535 }
65536
65537 return result;
65538 }
65539 };
65540
65541 Range.prototype.handleLowerTooltipVisibleChange = function handleLowerTooltipVisibleChange(visible) {
65542 if (this.state.hasMovingClass) {
65543 return;
65544 }
65545 this.setState({
65546 lowerTooltipVisible: visible
65547 });
65548 };
65549
65550 Range.prototype.handleUpperTooltipVisibleChange = function handleUpperTooltipVisibleChange(visible) {
65551 if (this.state.hasMovingClass) {
65552 return;
65553 }
65554 this.setState({
65555 upperTooltipVisible: visible
65556 });
65557 };
65558
65559 Range.prototype.render = function render() {
65560 var _classNames,
65561 _this2 = this;
65562
65563 var value = this._moving ? this.state.tempValue : this.state.value;
65564
65565 var _props5 = this.props,
65566 prefix = _props5.prefix,
65567 min = _props5.min,
65568 max = _props5.max,
65569 disabled = _props5.disabled,
65570 style = _props5.style,
65571 id = _props5.id,
65572 slider = _props5.slider,
65573 reverse = _props5.reverse,
65574 className = _props5.className,
65575 marks = _props5.marks,
65576 marksPosition = _props5.marksPosition,
65577 hasTip = _props5.hasTip,
65578 tipRender = _props5.tipRender,
65579 fixedWidth = _props5.fixedWidth,
65580 defaultValue = _props5.defaultValue,
65581 tooltipVisible = _props5.tooltipVisible,
65582 rtl = _props5.rtl,
65583 isPreview = _props5.isPreview,
65584 renderPreview = _props5.renderPreview;
65585
65586 var others = pickOthers(Object.keys(Range.propTypes), this.props);
65587
65588 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range'] = true, _classNames.disabled = disabled, _classNames[className] = className, _classNames));
65589
65590 if (Array.isArray(value)) {
65591 value.forEach(function (item, index) {
65592 if (item > max) {
65593 value[index] = max;
65594 }
65595 });
65596 } else if (value > max) {
65597 value = max;
65598 }
65599
65600 var commonProps = {
65601 prefix: prefix,
65602 min: min,
65603 max: max,
65604 value: value,
65605 reverse: reverse,
65606 slider: slider,
65607 hasTip: hasTip,
65608 tipRender: tipRender,
65609 marksPosition: marksPosition,
65610 tooltipVisible: tooltipVisible,
65611 hasMovingClass: this.state.hasMovingClass,
65612 disabled: disabled,
65613 rtl: rtl
65614 };
65615
65616 this.isFixedWidth = fixedWidth && (value ? Array.isArray(value) : defaultValue ? Array.isArray(defaultValue) : false);
65617
65618 if (isPreview) {
65619 var previewCls = (0, _classnames2.default)(className, prefix + 'form-preview');
65620
65621 if ('renderPreview' in this.props) {
65622 return _react2.default.createElement('div', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), renderPreview(value, this.props));
65623 }
65624
65625 return _react2.default.createElement('p', (0, _extends3.default)({ id: id, dir: rtl ? 'rtl' : 'ltr' }, others, { className: previewCls }), Array.isArray(value) ? value.join('~') : value);
65626 }
65627
65628 return _react2.default.createElement('div', (0, _extends3.default)({
65629 ref: function ref(dom) {
65630 _this2.dom = dom;
65631 }
65632 }, others, {
65633 style: style,
65634 className: classes,
65635 id: id,
65636 dir: rtl ? 'rtl' : 'ltr',
65637 onMouseDown: disabled ? noop : this._onMouseDown.bind(this),
65638 onTouchStart: disabled ? noop : this._onTouchStart.bind(this)
65639 }), marks !== false && marksPosition === 'above' ? _react2.default.createElement(_mark2.default, (0, _extends3.default)({}, commonProps, { marks: this._calcMarks() })) : null, _react2.default.createElement('div', { className: prefix + 'range-inner' }, _react2.default.createElement(_scale2.default, (0, _extends3.default)({}, commonProps, { scales: this._calcScales() })), _react2.default.createElement(_track2.default, commonProps), this.isFixedWidth ? _react2.default.createElement(_fixedSlider2.default, commonProps) : _react2.default.createElement('div', null, _react2.default.createElement(_selected2.default, commonProps), _react2.default.createElement(LowerSlider, (0, _extends3.default)({}, commonProps, {
65640 hasMovingClass: this.state.hasMovingClass && this._moving && this._moving.dragging === 'lower',
65641 tooltipVisible: tooltipVisible || this.state.lowerTooltipVisible,
65642 onTooltipVisibleChange: this.handleLowerTooltipVisibleChange,
65643 tooltipAnimation: this.state.tooltipAnimation ? {
65644 in: 'expandInUp',
65645 out: 'expandOutDown'
65646 } : false
65647 })), _react2.default.createElement(UpperSlider, (0, _extends3.default)({}, commonProps, {
65648 onKeyDown: this.onKeyDown,
65649 hasMovingClass: this.state.hasMovingClass && this._moving && this._moving.dragging === 'upper',
65650 tooltipVisible: tooltipVisible || this.state.upperTooltipVisible,
65651 onTooltipVisibleChange: this.handleUpperTooltipVisibleChange,
65652 tooltipAnimation: this.state.tooltipAnimation ? {
65653 in: 'expandInUp',
65654 out: 'expandOutDown'
65655 } : false
65656 })))), marks !== false && marksPosition === 'below' ? _react2.default.createElement(_mark2.default, (0, _extends3.default)({}, commonProps, { marks: this._calcMarks() })) : null);
65657 };
65658
65659 return Range;
65660}(_react2.default.Component), _class.contextTypes = {
65661 prefix: _propTypes2.default.string
65662}, _class.propTypes = {
65663 /**
65664 * 样式类名的品牌前缀
65665 */
65666 prefix: _propTypes2.default.string,
65667 /**
65668 * 自定义类名
65669 */
65670 className: _propTypes2.default.string,
65671 /**
65672 * 自定义内敛样式
65673 */
65674 style: _propTypes2.default.object,
65675 /**
65676 * 滑块个数
65677 * @enumdesc 单个, 两个
65678 */
65679 slider: _propTypes2.default.oneOf(['single', 'double']),
65680 /**
65681 * 最小值
65682 */
65683 min: _propTypes2.default.number,
65684 /**
65685 * 最大值
65686 */
65687 max: _propTypes2.default.number,
65688 /**
65689 * 步长,取值必须大于 0,并且可被 (max - min) 整除。
65690 */
65691 step: _propTypes2.default.number,
65692 /**
65693 * 设置当前取值。当 `slider` 为 `single` 时,使用 `Number`,否则用 `[Number, Number]`
65694 */
65695 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65696 tempValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65697 /**
65698 * 设置初始取值。当 `slider` 为 `single` 时,使用 `Number`,否则用 `[Number, Number]`
65699 */
65700 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65701 /**
65702 * 刻度数值显示逻辑(false 代表不显示,array 枚举显示的值,number 代表按 number 平分,object 表示按 key 划分,value 值显示)
65703 */
65704 marks: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number), _propTypes2.default.object]),
65705 /**
65706 * marks显示在上方('above')or下方('below')
65707 */
65708 marksPosition: _propTypes2.default.oneOf(['above', 'below']),
65709 /**
65710 * 值为 `true` 时,滑块为禁用状态
65711 */
65712 disabled: _propTypes2.default.bool,
65713 /**
65714 * 当 Range 的值发生改变后,会触发 onChange 事件,并把改变后的值作为参数传入, 如果设置了value, 要配合此函数做受控使用
65715 * @param {String/number} value
65716 */
65717 onChange: _propTypes2.default.func,
65718 /**
65719 * 滑块拖动的时候触发的事件,不建议在这里setState, 一般情况下不需要用, 滑动时有特殊需求时使用
65720 * @param {String/number} value
65721 */
65722 onProcess: _propTypes2.default.func,
65723 /**
65724 * 是否显示 tip
65725 */
65726 hasTip: _propTypes2.default.bool,
65727 /**
65728 * 自定义 tip 显示内容
65729 * @param {Number|String} value 值
65730 * @return {ReactNode} 显示内容
65731 */
65732 tipRender: _propTypes2.default.func,
65733 id: _propTypes2.default.string,
65734 /**
65735 * 选中态反转
65736 */
65737 reverse: _propTypes2.default.bool,
65738 /**
65739 * 是否pure render
65740 */
65741 pure: _propTypes2.default.bool,
65742 /**
65743 * 是否为拖动线段类型,默认slider为double, defaultValue必传且指定区间
65744 */
65745 fixedWidth: _propTypes2.default.bool,
65746 /**
65747 * tooltip是否默认展示
65748 */
65749 tooltipVisible: _propTypes2.default.bool,
65750 /**
65751 * 是否已rtl模式展示
65752 */
65753 rtl: _propTypes2.default.bool,
65754 /**
65755 * 是否为预览态
65756 */
65757 isPreview: _propTypes2.default.bool,
65758 /**
65759 * 预览态模式下渲染的内容
65760 * @param {number} value 评分值
65761 */
65762 renderPreview: _propTypes2.default.func
65763}, _class.defaultProps = {
65764 prefix: 'next-',
65765 slider: 'single',
65766 min: 0,
65767 max: 100,
65768 step: 1,
65769 marks: false,
65770 disabled: false,
65771 fixedWidth: false,
65772 tooltipVisible: false,
65773 hasTip: true,
65774 onChange: noop,
65775 onProcess: noop,
65776 tipRender: function tipRender(value) {
65777 return value;
65778 },
65779 reverse: false,
65780 pure: false,
65781 marksPosition: 'above',
65782 rtl: false,
65783 isPreview: false
65784}, _temp);
65785Range.displayName = 'Range';
65786exports.default = (0, _reactLifecyclesCompat.polyfill)(Range);
65787module.exports = exports['default'];
65788
65789/***/ }),
65790/* 394 */
65791/***/ (function(module, exports, __webpack_require__) {
65792
65793"use strict";
65794
65795
65796exports.__esModule = true;
65797exports.default = undefined;
65798
65799var _classCallCheck2 = __webpack_require__(2);
65800
65801var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
65802
65803var _possibleConstructorReturn2 = __webpack_require__(3);
65804
65805var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
65806
65807var _inherits2 = __webpack_require__(4);
65808
65809var _inherits3 = _interopRequireDefault(_inherits2);
65810
65811var _class, _temp;
65812
65813var _classnames = __webpack_require__(7);
65814
65815var _classnames2 = _interopRequireDefault(_classnames);
65816
65817var _react = __webpack_require__(0);
65818
65819var _react2 = _interopRequireDefault(_react);
65820
65821var _propTypes = __webpack_require__(5);
65822
65823var _propTypes2 = _interopRequireDefault(_propTypes);
65824
65825var _utils = __webpack_require__(41);
65826
65827function _interopRequireDefault(obj) {
65828 return obj && obj.__esModule ? obj : { default: obj };
65829}
65830
65831var Scale = (_temp = _class = function (_React$Component) {
65832 (0, _inherits3.default)(Scale, _React$Component);
65833
65834 function Scale() {
65835 (0, _classCallCheck3.default)(this, Scale);
65836 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
65837 }
65838
65839 Scale.prototype._renderItems = function _renderItems() {
65840 var _props = this.props,
65841 min = _props.min,
65842 max = _props.max,
65843 value = _props.value,
65844 prefix = _props.prefix,
65845 scales = _props.scales,
65846 rtl = _props.rtl;
65847
65848 var items = [];
65849
65850 scales.forEach(function (scale, i) {
65851 var _classNames;
65852
65853 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-scale-item'] = true, _classNames.activated = (0, _utils.inRange)(scale, value, min), _classNames));
65854 var style = void 0;
65855 if (rtl) {
65856 style = {
65857 right: (0, _utils.getPercent)(min, max, scale) + '%',
65858 left: 'auto'
65859 };
65860 } else {
65861 style = {
65862 left: (0, _utils.getPercent)(min, max, scale) + '%',
65863 right: 'auto'
65864 };
65865 }
65866
65867 items.push(
65868 // "key" is for https://fb.me/react-warning-keys
65869 _react2.default.createElement('span', { className: classes, style: style, key: i }));
65870 });
65871
65872 return items;
65873 };
65874
65875 Scale.prototype.render = function render() {
65876 var _classNames2;
65877
65878 var prefix = this.props.prefix;
65879
65880 var classes = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'range-scale'] = true, _classNames2));
65881 var items = this._renderItems();
65882
65883 return _react2.default.createElement('div', { className: classes }, items);
65884 };
65885
65886 return Scale;
65887}(_react2.default.Component), _class.propTypes = {
65888 min: _propTypes2.default.number,
65889 max: _propTypes2.default.number,
65890 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
65891 prefix: _propTypes2.default.string,
65892 scales: _propTypes2.default.arrayOf(_propTypes2.default.number),
65893 rtl: _propTypes2.default.bool
65894}, _class.defaultProps = {
65895 prefix: 'next-',
65896 min: 0,
65897 max: 100,
65898 value: 0,
65899 rtl: false
65900}, _temp);
65901Scale.displayName = 'Scale';
65902exports.default = Scale;
65903module.exports = exports['default'];
65904
65905/***/ }),
65906/* 395 */
65907/***/ (function(module, exports, __webpack_require__) {
65908
65909"use strict";
65910
65911
65912exports.__esModule = true;
65913
65914var _classnames = __webpack_require__(7);
65915
65916var _classnames2 = _interopRequireDefault(_classnames);
65917
65918var _react = __webpack_require__(0);
65919
65920var _react2 = _interopRequireDefault(_react);
65921
65922var _propTypes = __webpack_require__(5);
65923
65924var _propTypes2 = _interopRequireDefault(_propTypes);
65925
65926function _interopRequireDefault(obj) {
65927 return obj && obj.__esModule ? obj : { default: obj };
65928}
65929
65930var Track = function Track(_ref) {
65931 var _classNames;
65932
65933 var prefix = _ref.prefix;
65934
65935 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-track'] = true, _classNames));
65936 return _react2.default.createElement('div', { className: classes });
65937};
65938
65939Track.propTypes = {
65940 prefix: _propTypes2.default.string
65941};
65942
65943Track.defaultProps = {
65944 prefix: 'next-'
65945};
65946
65947exports.default = Track;
65948module.exports = exports['default'];
65949
65950/***/ }),
65951/* 396 */
65952/***/ (function(module, exports, __webpack_require__) {
65953
65954"use strict";
65955
65956
65957exports.__esModule = true;
65958exports.default = undefined;
65959
65960var _classCallCheck2 = __webpack_require__(2);
65961
65962var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
65963
65964var _possibleConstructorReturn2 = __webpack_require__(3);
65965
65966var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
65967
65968var _inherits2 = __webpack_require__(4);
65969
65970var _inherits3 = _interopRequireDefault(_inherits2);
65971
65972var _class, _temp;
65973
65974var _classnames = __webpack_require__(7);
65975
65976var _classnames2 = _interopRequireDefault(_classnames);
65977
65978var _react = __webpack_require__(0);
65979
65980var _react2 = _interopRequireDefault(_react);
65981
65982var _propTypes = __webpack_require__(5);
65983
65984var _propTypes2 = _interopRequireDefault(_propTypes);
65985
65986var _utils = __webpack_require__(41);
65987
65988function _interopRequireDefault(obj) {
65989 return obj && obj.__esModule ? obj : { default: obj };
65990}
65991
65992var Selected = (_temp = _class = function (_React$Component) {
65993 (0, _inherits3.default)(Selected, _React$Component);
65994
65995 function Selected() {
65996 (0, _classCallCheck3.default)(this, Selected);
65997 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
65998 }
65999
66000 Selected.prototype._getStyle = function _getStyle() {
66001 var _props = this.props,
66002 min = _props.min,
66003 max = _props.max,
66004 reverse = _props.reverse,
66005 rtl = _props.rtl;
66006 var value = this.props.value;
66007
66008 if (!Array.isArray(value)) {
66009 value = [min, value];
66010 }
66011 var width = (value[1] - value[0]) * 100 / (max - min);
66012
66013 var style = void 0;
66014
66015 if (!rtl && !reverse) {
66016 // normal select
66017 style = {
66018 width: width + '%',
66019 left: (0, _utils.getPercent)(min, max, value[0]) + '%'
66020 };
66021 } else if (rtl && !reverse) {
66022 // select in rtl mode
66023 style = {
66024 width: width + '%',
66025 left: (0, _utils.getPercent)(min, max, max + min - value[1]) + '%'
66026 };
66027 } else if (!rtl && reverse) {
66028 // select in reverse mode
66029 style = {
66030 width: 100 - width + '%',
66031 left: (0, _utils.getPercent)(min, max, value[0]) + width + '%'
66032 };
66033 } else {
66034 // select in rtl & reverse mode
66035 style = {
66036 width: 100 - width + '%',
66037 left: (0, _utils.getPercent)(min, max, value[0]) + '%'
66038 };
66039 }
66040
66041 return style;
66042 };
66043
66044 Selected.prototype._getStyleLeft = function _getStyleLeft() {
66045 var _props2 = this.props,
66046 min = _props2.min,
66047 max = _props2.max,
66048 rtl = _props2.rtl;
66049 var value = this.props.value;
66050
66051 if (!Array.isArray(value)) {
66052 value = [min, value];
66053 }
66054
66055 var style = {
66056 width: (0, _utils.getPercent)(min, max, value[0]) + '%',
66057 left: 0
66058 };
66059 if (rtl) {
66060 style.width = 100 - (0, _utils.getPercent)(min, max, value[1]) + '%';
66061 }
66062 return style;
66063 };
66064
66065 Selected.prototype._getStyleRight = function _getStyleRight() {
66066 var _props3 = this.props,
66067 min = _props3.min,
66068 max = _props3.max,
66069 rtl = _props3.rtl;
66070 var value = this.props.value;
66071
66072 if (!Array.isArray(value)) {
66073 value = [min, value];
66074 }
66075 var width = (value[1] - value[0]) * 100 / (max - min);
66076
66077 var style = {
66078 width: 100 - (0, _utils.getPercent)(min, max, value[0]) - width + '%',
66079 left: (0, _utils.getPercent)(min, max, value[0]) + width + '%'
66080 };
66081
66082 if (rtl) {
66083 style = {
66084 width: (0, _utils.getPercent)(min, max, value[0]) + '%',
66085 left: 100 - (0, _utils.getPercent)(min, max, value[0]) + '%'
66086 };
66087 }
66088 return style;
66089 };
66090
66091 Selected.prototype.render = function render() {
66092 var _classNames;
66093
66094 var _props4 = this.props,
66095 prefix = _props4.prefix,
66096 slider = _props4.slider,
66097 reverse = _props4.reverse,
66098 rtl = _props4.rtl;
66099
66100 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-selected'] = true, _classNames));
66101 var SeletedComps = _react2.default.createElement('div', { className: classes, style: this._getStyle() });
66102
66103 if (slider === 'double' && reverse) {
66104 SeletedComps = _react2.default.createElement('div', null, _react2.default.createElement('div', { className: classes, style: this._getStyleLeft() }), _react2.default.createElement('div', { className: classes, style: this._getStyleRight() }));
66105 }
66106
66107 return SeletedComps;
66108 };
66109
66110 return Selected;
66111}(_react2.default.Component), _class.propTypes = {
66112 min: _propTypes2.default.number,
66113 max: _propTypes2.default.number,
66114 slider: _propTypes2.default.string,
66115 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
66116 prefix: _propTypes2.default.string,
66117 reverse: _propTypes2.default.bool,
66118 rtl: _propTypes2.default.bool
66119}, _class.defaultProps = {
66120 prefix: 'next-',
66121 slider: 'single',
66122 min: 0,
66123 max: 100,
66124 value: 0,
66125 reverse: false,
66126 rtl: false
66127}, _temp);
66128Selected.displayName = 'Selected';
66129exports.default = Selected;
66130module.exports = exports['default'];
66131
66132/***/ }),
66133/* 397 */
66134/***/ (function(module, exports, __webpack_require__) {
66135
66136"use strict";
66137
66138
66139exports.__esModule = true;
66140exports.default = undefined;
66141
66142var _classCallCheck2 = __webpack_require__(2);
66143
66144var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
66145
66146var _possibleConstructorReturn2 = __webpack_require__(3);
66147
66148var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
66149
66150var _inherits2 = __webpack_require__(4);
66151
66152var _inherits3 = _interopRequireDefault(_inherits2);
66153
66154var _class, _temp;
66155
66156var _classnames = __webpack_require__(7);
66157
66158var _classnames2 = _interopRequireDefault(_classnames);
66159
66160var _react = __webpack_require__(0);
66161
66162var _react2 = _interopRequireDefault(_react);
66163
66164var _propTypes = __webpack_require__(5);
66165
66166var _propTypes2 = _interopRequireDefault(_propTypes);
66167
66168var _utils = __webpack_require__(41);
66169
66170function _interopRequireDefault(obj) {
66171 return obj && obj.__esModule ? obj : { default: obj };
66172}
66173
66174var Mark = (_temp = _class = function (_React$Component) {
66175 (0, _inherits3.default)(Mark, _React$Component);
66176
66177 function Mark() {
66178 (0, _classCallCheck3.default)(this, Mark);
66179 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
66180 }
66181
66182 Mark.prototype._renderItems = function _renderItems() {
66183 var _props = this.props,
66184 min = _props.min,
66185 max = _props.max,
66186 value = _props.value,
66187 prefix = _props.prefix,
66188 marks = _props.marks,
66189 rtl = _props.rtl;
66190
66191 var items = [];
66192
66193 Object.keys(marks).forEach(function (mark, i) {
66194 var _classNames;
66195
66196 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-mark-text'] = true, _classNames.activated = (0, _utils.inRange)(mark, value, min), _classNames));
66197 var style = void 0;
66198 if (rtl) {
66199 style = {
66200 right: (0, _utils.getPercent)(min, max, mark) + '%',
66201 left: 'auto'
66202 };
66203 } else {
66204 style = {
66205 left: (0, _utils.getPercent)(min, max, mark) + '%',
66206 right: 'auto'
66207 };
66208 }
66209
66210 items.push(
66211 // "key" is for https://fb.me/react-warning-keys
66212 _react2.default.createElement('span', { className: classes, style: style, key: i }, marks[mark]));
66213 });
66214
66215 return items;
66216 };
66217
66218 Mark.prototype.render = function render() {
66219 var _classNames2;
66220
66221 var _props2 = this.props,
66222 prefix = _props2.prefix,
66223 marksPosition = _props2.marksPosition;
66224
66225 var className = marksPosition === 'above' ? prefix + 'range-mark-above' : prefix + 'range-mark-below';
66226 var classes = (0, _classnames2.default)(className, (_classNames2 = {}, _classNames2[prefix + 'range-mark'] = true, _classNames2));
66227 var items = this._renderItems();
66228
66229 return _react2.default.createElement('div', { className: classes }, items);
66230 };
66231
66232 return Mark;
66233}(_react2.default.Component), _class.propTypes = {
66234 min: _propTypes2.default.number,
66235 max: _propTypes2.default.number,
66236 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
66237 prefix: _propTypes2.default.string,
66238 marks: _propTypes2.default.object,
66239 marksPosition: _propTypes2.default.string,
66240 rtl: _propTypes2.default.bool
66241}, _class.defaultProps = {
66242 prefix: 'next-',
66243 min: 0,
66244 max: 100,
66245 value: 0,
66246 marksPosition: '',
66247 rtl: false
66248}, _temp);
66249Mark.displayName = 'Mark';
66250exports.default = Mark;
66251module.exports = exports['default'];
66252
66253/***/ }),
66254/* 398 */
66255/***/ (function(module, exports, __webpack_require__) {
66256
66257"use strict";
66258
66259
66260exports.__esModule = true;
66261
66262var _extends2 = __webpack_require__(1);
66263
66264var _extends3 = _interopRequireDefault(_extends2);
66265
66266var _react = __webpack_require__(0);
66267
66268var _react2 = _interopRequireDefault(_react);
66269
66270var _classnames = __webpack_require__(7);
66271
66272var _classnames2 = _interopRequireDefault(_classnames);
66273
66274var _propTypes = __webpack_require__(5);
66275
66276var _propTypes2 = _interopRequireDefault(_propTypes);
66277
66278var _utils = __webpack_require__(41);
66279
66280function _interopRequireDefault(obj) {
66281 return obj && obj.__esModule ? obj : { default: obj };
66282}
66283
66284function _getProps(min, max, value, rtl) {
66285 return {
66286 style: {
66287 left: rtl ? 100 - (0, _utils.getPercent)(min, max, value) + '%' : (0, _utils.getPercent)(min, max, value) + '%',
66288 zIndex: 100
66289 },
66290 'aria-valuenow': value,
66291 'aria-valuetext': value,
66292 'aria-valuemin': min,
66293 'aria-valuemax': max
66294 };
66295}
66296
66297function Slider(_ref) {
66298 var _classNames;
66299
66300 var prefix = _ref.prefix,
66301 hasMovingClass = _ref.hasMovingClass,
66302 min = _ref.min,
66303 max = _ref.max,
66304 value = _ref.value,
66305 onKeyDown = _ref.onKeyDown,
66306 rtl = _ref.rtl;
66307
66308 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'range-slider'] = true, _classNames[prefix + 'range-slider-moving'] = hasMovingClass, _classNames));
66309 return _react2.default.createElement('div', (0, _extends3.default)({
66310 className: classes,
66311 onKeyDown: onKeyDown,
66312 role: 'slider',
66313 tabIndex: 0
66314 }, _getProps(min, max, value, rtl)), _react2.default.createElement('div', { className: prefix + 'range-slider-inner' }));
66315}
66316
66317Slider.propTypes = {
66318 min: _propTypes2.default.number,
66319 max: _propTypes2.default.number,
66320 value: _propTypes2.default.number,
66321 prefix: _propTypes2.default.string,
66322 hasMovingClass: _propTypes2.default.bool,
66323 rtl: _propTypes2.default.bool
66324};
66325
66326Slider.defaultProps = {
66327 prefix: 'next-',
66328 min: 0,
66329 max: 100,
66330 value: 0,
66331 hasMovingClass: false,
66332 rtl: false
66333};
66334
66335exports.default = Slider;
66336module.exports = exports['default'];
66337
66338/***/ }),
66339/* 399 */
66340/***/ (function(module, exports, __webpack_require__) {
66341
66342"use strict";
66343
66344
66345exports.__esModule = true;
66346exports.default = undefined;
66347
66348var _extends2 = __webpack_require__(1);
66349
66350var _extends3 = _interopRequireDefault(_extends2);
66351
66352var _classCallCheck2 = __webpack_require__(2);
66353
66354var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
66355
66356var _possibleConstructorReturn2 = __webpack_require__(3);
66357
66358var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
66359
66360var _inherits2 = __webpack_require__(4);
66361
66362var _inherits3 = _interopRequireDefault(_inherits2);
66363
66364var _class, _temp;
66365
66366var _react = __webpack_require__(0);
66367
66368var _react2 = _interopRequireDefault(_react);
66369
66370var _propTypes = __webpack_require__(5);
66371
66372var _propTypes2 = _interopRequireDefault(_propTypes);
66373
66374var _util = __webpack_require__(6);
66375
66376var _balloon = __webpack_require__(59);
66377
66378var _balloon2 = _interopRequireDefault(_balloon);
66379
66380var _utils = __webpack_require__(41);
66381
66382function _interopRequireDefault(obj) {
66383 return obj && obj.__esModule ? obj : { default: obj };
66384}
66385
66386var Tooltip = _balloon2.default.Tooltip;
66387var noop = _util.func.noop;
66388
66389function _getStyle(min, max, value, rtl) {
66390 if (rtl) {
66391 return {
66392 left: (0, _utils.getPercent)(min, max, max + min - value[1]) + '%',
66393 right: (0, _utils.getPercent)(min, max, value[0]) + '%'
66394 };
66395 }
66396 return {
66397 left: (0, _utils.getPercent)(min, max, value[0]) + '%',
66398 right: 100 - (0, _utils.getPercent)(min, max, value[1]) + '%'
66399 };
66400}
66401
66402function sliderFrag(props) {
66403 var prefix = props.prefix,
66404 min = props.min,
66405 max = props.max,
66406 value = props.value,
66407 disabled = props.disabled,
66408 onMouseEnter = props.onMouseEnter,
66409 onMouseLeave = props.onMouseLeave,
66410 onMouseDown = props.onMouseDown,
66411 rtl = props.rtl;
66412
66413 var activeClass = !disabled && props.hasMovingClass ? prefix + 'range-active' : '';
66414
66415 return _react2.default.createElement('div', {
66416 className: prefix + 'range-frag ' + activeClass,
66417 style: _getStyle(min, max, value, rtl),
66418 onMouseEnter: onMouseEnter,
66419 onMouseLeave: onMouseLeave,
66420 onMouseDown: onMouseDown
66421 }, _react2.default.createElement('div', { className: prefix + 'range-selected' }), _react2.default.createElement('div', { className: prefix + 'range-slider' }, _react2.default.createElement('div', { className: prefix + 'range-slider-inner' })), _react2.default.createElement('div', { className: prefix + 'range-slider' }, _react2.default.createElement('div', { className: prefix + 'range-slider-inner' })));
66422}
66423
66424sliderFrag.propTypes = {
66425 prefix: _propTypes2.default.string,
66426 min: _propTypes2.default.number,
66427 max: _propTypes2.default.number,
66428 hasMovingClass: _propTypes2.default.bool,
66429 onMouseEnter: _propTypes2.default.func,
66430 onMouseLeave: _propTypes2.default.func,
66431 onMouseDown: _propTypes2.default.func,
66432 value: _propTypes2.default.arrayOf(_propTypes2.default.number),
66433 disabled: _propTypes2.default.bool,
66434 rtl: _propTypes2.default.bool
66435};
66436
66437var FixedSlider = (_temp = _class = function (_React$Component) {
66438 (0, _inherits3.default)(FixedSlider, _React$Component);
66439
66440 function FixedSlider(props) {
66441 (0, _classCallCheck3.default)(this, FixedSlider);
66442
66443 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
66444
66445 _this.state = {
66446 hasMovingClass: false,
66447 onTooltipVisibleChange: false,
66448 tooltipAnimation: true
66449 };
66450 return _this;
66451 }
66452
66453 FixedSlider.prototype._onMouseEnter = function _onMouseEnter() {
66454 if (!(this.keyState === 'down')) {
66455 this.keyState = 'enter';
66456 }
66457 this.setState({
66458 hasMovingClass: true
66459 });
66460 };
66461
66462 FixedSlider.prototype._onMouseLeave = function _onMouseLeave() {
66463 if (this.keyState === 'enter') {
66464 this.setState({
66465 hasMovingClass: false
66466 });
66467 }
66468 };
66469
66470 FixedSlider.prototype._onMouseDown = function _onMouseDown() {
66471 this.keyState = 'down';
66472 this.setState({
66473 hasMovingClass: true
66474 });
66475 this._addDocumentEvents();
66476 };
66477
66478 FixedSlider.prototype._onMouseUp = function _onMouseUp() {
66479 if (this.keyState === 'down') {
66480 this.keyState = '';
66481 this._removeDocumentEvents();
66482 this.setState({
66483 hasMovingClass: false
66484 });
66485 }
66486 };
66487
66488 FixedSlider.prototype._addDocumentEvents = function _addDocumentEvents() {
66489 this._onMouseUpListener = _util.events.on(document, 'mouseup', this._onMouseUp.bind(this));
66490 };
66491
66492 FixedSlider.prototype._removeDocumentEvents = function _removeDocumentEvents() {
66493 if (this._onMouseUpListener) {
66494 this._onMouseUpListener.off();
66495 this._onMouseUpListener = null;
66496 }
66497 };
66498
66499 FixedSlider.prototype.render = function render() {
66500 var _props = this.props,
66501 hasTip = _props.hasTip,
66502 value = _props.value,
66503 tipRender = _props.tipRender,
66504 tooltipVisible = _props.tooltipVisible,
66505 hasMovingClass = _props.hasMovingClass;
66506
66507 var addedProps = {
66508 hasMovingClass: hasMovingClass || this.state.hasMovingClass,
66509 onMouseEnter: this._onMouseEnter.bind(this),
66510 onMouseLeave: this._onMouseLeave.bind(this),
66511 onMouseDown: this._onMouseDown.bind(this)
66512 };
66513
66514 return hasTip ? _react2.default.createElement(Tooltip, {
66515 popupContainer: function popupContainer(target) {
66516 return target.parentNode;
66517 },
66518 popupProps: {
66519 visible: tooltipVisible || hasMovingClass,
66520 animation: this.state.tooltipAnimation ? { in: 'expandInUp', out: 'expandOutDown' } : false
66521 },
66522 trigger: sliderFrag((0, _extends3.default)({}, this.props, addedProps)),
66523 align: 't'
66524 }, tipRender(value[0] + '-' + value[1])) : sliderFrag((0, _extends3.default)({}, this.props, addedProps));
66525 };
66526
66527 return FixedSlider;
66528}(_react2.default.Component), _class.propTypes = {
66529 hasTip: _propTypes2.default.bool,
66530 tooltipVisible: _propTypes2.default.bool,
66531 onTooltipVisibleChange: _propTypes2.default.func,
66532 tooltipAnimation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
66533 value: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.arrayOf(_propTypes2.default.number)]),
66534 tipRender: _propTypes2.default.func,
66535 disabled: _propTypes2.default.bool,
66536 hasMovingClass: _propTypes2.default.bool,
66537 rtl: _propTypes2.default.bool
66538}, _class.defaultProps = {
66539 disabled: false,
66540 hasTip: true,
66541 onChange: noop,
66542 onProcess: noop,
66543 tipRender: function tipRender(value) {
66544 return value;
66545 },
66546 reverse: false,
66547 rtl: false
66548}, _temp);
66549FixedSlider.displayName = 'FixedSlider';
66550exports.default = FixedSlider;
66551module.exports = exports['default'];
66552
66553/***/ }),
66554/* 400 */
66555/***/ (function(module, exports, __webpack_require__) {
66556
66557"use strict";
66558
66559
66560exports.__esModule = true;
66561
66562var _extends2 = __webpack_require__(1);
66563
66564var _extends3 = _interopRequireDefault(_extends2);
66565
66566var _objectWithoutProperties2 = __webpack_require__(8);
66567
66568var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
66569
66570var _configProvider = __webpack_require__(9);
66571
66572var _configProvider2 = _interopRequireDefault(_configProvider);
66573
66574var _rating = __webpack_require__(401);
66575
66576var _rating2 = _interopRequireDefault(_rating);
66577
66578function _interopRequireDefault(obj) {
66579 return obj && obj.__esModule ? obj : { default: obj };
66580}
66581
66582exports.default = _configProvider2.default.config(_rating2.default, {
66583 transform: /* istanbul ignore next */function transform(props, deprecated) {
66584 if ('type' in props) {
66585 deprecated('type', 'showGrade', 'Rating');
66586
66587 var _props = props,
66588 type = _props.type,
66589 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
66590
66591 props = (0, _extends3.default)({ showGrade: type === 'grade' }, others);
66592 }
66593
66594 var _props2 = props,
66595 disabled = _props2.disabled,
66596 readOnly = _props2.readOnly;
66597
66598 props.disabled = disabled || readOnly;
66599
66600 return props;
66601 }
66602});
66603module.exports = exports['default'];
66604
66605/***/ }),
66606/* 401 */
66607/***/ (function(module, exports, __webpack_require__) {
66608
66609"use strict";
66610
66611
66612exports.__esModule = true;
66613
66614var _extends2 = __webpack_require__(1);
66615
66616var _extends3 = _interopRequireDefault(_extends2);
66617
66618var _classCallCheck2 = __webpack_require__(2);
66619
66620var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
66621
66622var _possibleConstructorReturn2 = __webpack_require__(3);
66623
66624var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
66625
66626var _inherits2 = __webpack_require__(4);
66627
66628var _inherits3 = _interopRequireDefault(_inherits2);
66629
66630var _class, _temp;
66631
66632var _react = __webpack_require__(0);
66633
66634var _react2 = _interopRequireDefault(_react);
66635
66636var _propTypes = __webpack_require__(5);
66637
66638var _propTypes2 = _interopRequireDefault(_propTypes);
66639
66640var _classnames = __webpack_require__(7);
66641
66642var _classnames2 = _interopRequireDefault(_classnames);
66643
66644var _reactLifecyclesCompat = __webpack_require__(10);
66645
66646var _icon = __webpack_require__(11);
66647
66648var _icon2 = _interopRequireDefault(_icon);
66649
66650var _util = __webpack_require__(6);
66651
66652var _zhCn = __webpack_require__(13);
66653
66654var _zhCn2 = _interopRequireDefault(_zhCn);
66655
66656function _interopRequireDefault(obj) {
66657 return obj && obj.__esModule ? obj : { default: obj };
66658}
66659
66660var noop = _util.func.noop,
66661 bindCtx = _util.func.bindCtx;
66662var ENTER = _util.KEYCODE.ENTER,
66663 LEFT = _util.KEYCODE.LEFT,
66664 UP = _util.KEYCODE.UP,
66665 RIGHT = _util.KEYCODE.RIGHT,
66666 DOWN = _util.KEYCODE.DOWN;
66667
66668var supportKeys = [ENTER, LEFT, UP, RIGHT, DOWN];
66669
66670// 评分组件的大小与icon的大小映射关系
66671var ICON_SIZE_MAP = {
66672 small: 'xs',
66673 medium: 'small',
66674 large: 'medium'
66675};
66676
66677/** Rating */
66678var Rating = (_temp = _class = function (_Component) {
66679 (0, _inherits3.default)(Rating, _Component);
66680
66681 Rating.currentValue = function currentValue(min, max, hoverValue, stateValue) {
66682 var value = hoverValue ? hoverValue : stateValue;
66683
66684 value = value >= max ? max : value;
66685 value = value <= min ? min : value;
66686
66687 return value || 0;
66688 };
66689
66690 function Rating(props) {
66691 (0, _classCallCheck3.default)(this, Rating);
66692
66693 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
66694
66695 _this.saveRef = function (ref, i) {
66696 _this['refs-rating-icon-' + i] = ref;
66697 };
66698
66699 _this.state = {
66700 value: 'value' in props ? props.value : props.defaultValue,
66701 hoverValue: 0,
66702 cleanedValue: null,
66703 iconSpace: 0,
66704 iconSize: 0,
66705 clicked: false // 标记组件是否被点击过
66706 };
66707 _this.timer = null;
66708
66709 bindCtx(_this, ['handleClick', 'handleHover', 'handleLeave', 'onKeyDown']);
66710 return _this;
66711 }
66712
66713 Rating.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
66714 var state = {};
66715 if ('value' in nextProps) {
66716 state.value = nextProps.value || 0;
66717 }
66718
66719 if ('disabled' in nextProps || 'readOnly' in nextProps || 'isPreview' in nextProps || 'renderPreview' in nextProps) {
66720 state.disabled = nextProps.disabled || nextProps.readOnly || nextProps.isPreview && !('renderPreview' in nextProps);
66721 }
66722
66723 return state;
66724 };
66725
66726 Rating.prototype.componentDidMount = function componentDidMount() {
66727 this.getRenderResult();
66728 };
66729
66730 Rating.prototype.componentWillUnmount = function componentWillUnmount() {
66731 this.clearTimer();
66732 };
66733
66734 // 清除延时
66735
66736
66737 Rating.prototype.clearTimer = function clearTimer() {
66738 if (this.timer) {
66739 clearTimeout(this.timer);
66740 this.timer = null;
66741 }
66742 };
66743
66744 Rating.prototype.getRenderResult = function getRenderResult() {
66745 var count = this.props.count;
66746 var _state = this.state,
66747 iconSpace = _state.iconSpace,
66748 iconSize = _state.iconSize;
66749
66750 var icon = this['refs-rating-icon-0'];
66751
66752 if (icon && this.underlayNode) {
66753 var newIconSize = icon.offsetWidth;
66754 var newIconSpace = (this.underlayNode.offsetWidth - count * newIconSize) / (count + 1);
66755
66756 if (newIconSize !== iconSize || newIconSpace !== iconSpace) {
66757 this.setState({
66758 iconSpace: newIconSpace,
66759 iconSize: newIconSize
66760 });
66761 }
66762 }
66763 };
66764
66765 Rating.prototype.getValue = function getValue(e) {
66766 // 如定位不准,优先纠正定位
66767 this.getRenderResult();
66768
66769 var _props = this.props,
66770 allowHalf = _props.allowHalf,
66771 count = _props.count,
66772 rtl = _props.rtl;
66773 var _state2 = this.state,
66774 iconSpace = _state2.iconSpace,
66775 iconSize = _state2.iconSize;
66776
66777 var pos = e.pageX - this.underlayNode.getBoundingClientRect().left;
66778 var fullNum = Math.floor(pos / (iconSpace + iconSize));
66779 var surplusNum = (pos - fullNum * (iconSpace + iconSize) - iconSpace) / iconSize;
66780 var value = Number(fullNum) + Number(surplusNum.toFixed(1));
66781 if (value >= count) {
66782 value = count;
66783 } else if (allowHalf) {
66784 var floorValue = Math.floor(value);
66785 if (rtl) {
66786 value = value - 0.5 >= floorValue ? floorValue + 1.5 : floorValue + 1;
66787 } else {
66788 value = value - 0.5 >= floorValue ? floorValue + 1 : floorValue + 0.5;
66789 }
66790 } else {
66791 value = Math.floor(value) + 1;
66792 }
66793
66794 return rtl ? count - value + 1 : value;
66795 };
66796
66797 Rating.prototype.handleHover = function handleHover(e) {
66798 var _this2 = this;
66799
66800 if (this.state.disabled) {
66801 return;
66802 }
66803
66804 var value = this.getValue(e);
66805 var onHoverChange = this.props.onHoverChange;
66806 var cleanedValue = this.state.cleanedValue;
66807
66808 if (cleanedValue !== value) {
66809 this.clearTimer();
66810
66811 this.timer = setTimeout(function () {
66812 _this2.setState({ hoverValue: value, cleanedValue: null }, function () {
66813 onHoverChange(value);
66814 });
66815 }, 0);
66816 }
66817 };
66818
66819 Rating.prototype.handleLeave = function handleLeave() {
66820 var onHoverChange = this.props.onHoverChange;
66821
66822 if (this.state.disabled) {
66823 return;
66824 }
66825
66826 this.clearTimer();
66827
66828 this.setState({
66829 hoverValue: 0,
66830 cleanedValue: null
66831 });
66832 onHoverChange(undefined);
66833 };
66834
66835 Rating.prototype.onKeyDown = function onKeyDown(e) {
66836 if (this.state.disabled) {
66837 return;
66838 }
66839
66840 var _props2 = this.props,
66841 onKeyDown = _props2.onKeyDown,
66842 count = _props2.count;
66843 var disabled = this.state.disabled;
66844
66845 if (disabled || supportKeys.indexOf(e.keyCode) < 0) {
66846 return !onKeyDown || onKeyDown(e);
66847 }
66848
66849 var _state3 = this.state,
66850 hoverValue = _state3.hoverValue,
66851 value = _state3.value;
66852
66853 var changingValue = hoverValue;
66854 if (changingValue === 0) {
66855 changingValue = value;
66856 }
66857
66858 switch (e.keyCode) {
66859 case DOWN:
66860 case RIGHT:
66861 if (changingValue < count) {
66862 changingValue += 1;
66863 } else {
66864 changingValue = 1;
66865 }
66866 this.handleChecked(changingValue);
66867 break;
66868 case UP:
66869 case LEFT:
66870 if (changingValue > 1) {
66871 changingValue -= 1;
66872 } else {
66873 changingValue = count;
66874 }
66875 this.handleChecked(changingValue);
66876 break;
66877 case ENTER:
66878 this.props.onChange(changingValue);
66879 this.setState({
66880 value: changingValue,
66881 hoverValue: changingValue
66882 });
66883 break;
66884 }
66885 return !onKeyDown || onKeyDown(e);
66886 };
66887
66888 Rating.prototype.handleChecked = function handleChecked(index) {
66889 if (this.state.disabled) {
66890 return;
66891 }
66892
66893 this.setState({ hoverValue: index });
66894 };
66895
66896 Rating.prototype.handleClick = function handleClick(e) {
66897 var _this3 = this;
66898
66899 if (this.state.disabled) {
66900 return;
66901 }
66902 var allowClear = this.props.allowClear;
66903 var value = this.state.value;
66904
66905 var newValue = this.getValue(e);
66906 var isReset = false;
66907 if (allowClear) {
66908 isReset = newValue === value;
66909 }
66910 this.handleLeave();
66911 if (newValue < 0) {
66912 return;
66913 }
66914
66915 if (!('value' in this.props)) {
66916 this.setState({ value: isReset ? 0 : newValue, clicked: true });
66917 }
66918
66919 this.props.onChange(isReset ? 0 : newValue);
66920 setTimeout(function () {
66921 _this3.setState({ clicked: false });
66922 }, 100);
66923 this.setState({
66924 cleanedValue: isReset ? newValue : null
66925 });
66926 };
66927
66928 Rating.prototype.getOverlayWidth = function getOverlayWidth() {
66929 var _state4 = this.state,
66930 hoverValue = _state4.hoverValue,
66931 iconSpace = _state4.iconSpace,
66932 iconSize = _state4.iconSize;
66933
66934 if (!iconSpace || !iconSize) {
66935 return 'auto';
66936 }
66937
66938 var value = Rating.currentValue(0, this.props.count, hoverValue, this.state.value);
66939
66940 var floorValue = Math.floor(value);
66941
66942 return iconSize * value + (floorValue + 1) * iconSpace;
66943 };
66944
66945 Rating.prototype.getInfoLeft = function getInfoLeft() {
66946 var _state5 = this.state,
66947 value = _state5.value,
66948 hoverValue = _state5.hoverValue,
66949 iconSpace = _state5.iconSpace,
66950 iconSize = _state5.iconSize;
66951
66952 var infoValue = hoverValue || value;
66953 var ceilValue = Math.ceil(infoValue);
66954
66955 return iconSize * (ceilValue - 1) + ceilValue * iconSpace;
66956 };
66957
66958 Rating.prototype.render = function render() {
66959 var _classNames,
66960 _classNames2,
66961 _classNames3,
66962 _this4 = this;
66963
66964 var _props3 = this.props,
66965 id = _props3.id,
66966 prefix = _props3.prefix,
66967 className = _props3.className,
66968 showGrade = _props3.showGrade,
66969 count = _props3.count,
66970 size = _props3.size,
66971 iconType = _props3.iconType,
66972 strokeMode = _props3.strokeMode,
66973 readAs = _props3.readAs,
66974 rtl = _props3.rtl,
66975 isPreview = _props3.isPreview,
66976 renderPreview = _props3.renderPreview,
66977 locale = _props3.locale;
66978 var disabled = this.state.disabled;
66979
66980 var others = _util.obj.pickOthers(Rating.propTypes, this.props);
66981 var _state6 = this.state,
66982 hoverValue = _state6.hoverValue,
66983 clicked = _state6.clicked;
66984
66985 var underlay = [],
66986 overlay = [];
66987
66988 var enableA11y = !!id;
66989
66990 // 获得Value
66991 var value = Rating.currentValue(0, count, hoverValue, this.state.value);
66992
66993 // icon的sizeMap
66994 var sizeMap = ICON_SIZE_MAP[size];
66995
66996 var _loop = function _loop(i) {
66997 var _classNames4;
66998
66999 var isCurrent = Math.ceil(value - 1) === i;
67000 var iconCls = (0, _classnames2.default)((_classNames4 = {
67001 hover: hoverValue > 0 && isCurrent,
67002 clicked: clicked && isCurrent
67003 }, _classNames4[prefix + 'rating-symbol-icon'] = !iconType, _classNames4));
67004 var iconNode = iconType ? _react2.default.createElement(_icon2.default, { type: iconType, size: sizeMap, className: iconCls }) : _react2.default.createElement(_icon2.default, { type: 'favorites-filling', size: sizeMap, className: iconCls });
67005
67006 var saveRefs = function saveRefs(ref) {
67007 _this4.saveRef(ref, i);
67008 };
67009
67010 underlay.push(_react2.default.createElement('span', { ref: saveRefs, key: 'underlay-' + i, className: prefix + 'rating-icon' }, iconNode));
67011 if (enableA11y) {
67012 overlay.push(_react2.default.createElement('input', {
67013 id: id + '-' + prefix + 'star' + (i + 1),
67014 key: 'input-' + i,
67015 className: prefix + 'sr-only',
67016 'aria-checked': i + 1 === parseInt(hoverValue),
67017 checked: i + 1 === parseInt(hoverValue),
67018 onChange: _this4.handleChecked.bind(_this4, i + 1),
67019 type: 'radio',
67020 name: 'rating'
67021 }));
67022 }
67023
67024 overlay.push(_react2.default.createElement('label', {
67025 key: 'overlay-' + i,
67026 htmlFor: enableA11y ? id + '-' + prefix + 'star' + (i + 1) : null,
67027 className: prefix + 'rating-icon'
67028 }, iconNode, enableA11y ? _react2.default.createElement('span', { className: prefix + 'sr-only' }, readAs(i + 1)) : null));
67029 };
67030
67031 for (var i = 0; i < count; i++) {
67032 _loop(i);
67033 }
67034
67035 var ratingCls = (0, _classnames2.default)([prefix + 'rating', prefix + 'rating-' + size], (_classNames = {}, _classNames[prefix + 'rating-grade-low'] = value <= count * 0.4, _classNames[prefix + 'rating-grade-high'] = value > count * 0.4, _classNames[prefix + 'rating-stroke-mode'] = strokeMode, _classNames.hover = hoverValue > 0, _classNames), className);
67036
67037 var baseCls = (0, _classnames2.default)(prefix + 'rating-base', (_classNames2 = {}, _classNames2[prefix + 'rating-base-disabled'] = disabled, _classNames2));
67038
67039 var previewCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'form-preview'] = true, _classNames3[className] = !!className, _classNames3));
67040
67041 var overlayStyle = {
67042 width: this.getOverlayWidth()
67043 };
67044 var infoStyle = {
67045 left: this.getInfoLeft(),
67046 display: hoverValue ? 'block' : 'none'
67047 };
67048
67049 var finalProps = disabled ? {} : {
67050 onClick: this.handleClick,
67051 onMouseOver: this.handleHover,
67052 onMouseMove: this.handleHover,
67053 onMouseLeave: this.handleLeave
67054 };
67055
67056 if (rtl) {
67057 others.dir = 'rtl';
67058 }
67059
67060 if (isPreview && 'renderPreview' in this.props) {
67061 return _react2.default.createElement('div', (0, _extends3.default)({ id: id }, others, { className: previewCls }), renderPreview(value, this.props));
67062 }
67063
67064 return _react2.default.createElement('div', (0, _extends3.default)({
67065 id: id
67066 }, others, {
67067 className: ratingCls,
67068 onKeyDown: this.onKeyDown,
67069 tabIndex: '0',
67070 role: 'group',
67071 'aria-label': locale.description
67072 }), _react2.default.createElement('div', (0, _extends3.default)({ className: baseCls }, finalProps), _react2.default.createElement('div', { className: prefix + 'rating-underlay', ref: function ref(n) {
67073 return _this4.underlayNode = n;
67074 }, 'aria-hidden': true }, underlay), _react2.default.createElement('div', { className: prefix + 'rating-overlay', style: overlayStyle, onClick: function onClick(e) {
67075 return e.preventDefault();
67076 } }, overlay)), showGrade ? _react2.default.createElement('div', { className: prefix + 'rating-info', style: infoStyle }, readAs(value)) : null);
67077 };
67078
67079 return Rating;
67080}(_react.Component), _class.propTypes = {
67081 prefix: _propTypes2.default.string,
67082 /**
67083 * 默认值
67084 */
67085 defaultValue: _propTypes2.default.number,
67086 /**
67087 * 值
67088 */
67089 value: _propTypes2.default.number,
67090 /**
67091 * 评分的总数
67092 */
67093 count: _propTypes2.default.number,
67094 /**
67095 * 是否显示 grade
67096 */
67097 showGrade: _propTypes2.default.bool,
67098 /**
67099 * 尺寸
67100 */
67101 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
67102 /**
67103 * 是否允许半星评分
67104 */
67105 allowHalf: _propTypes2.default.bool,
67106 /**
67107 * 是否允许再次点击后清除
67108 */
67109 allowClear: _propTypes2.default.bool,
67110 /**
67111 * 用户点击评分时触发的回调
67112 * @param {Number} value 评分值
67113 */
67114 onChange: _propTypes2.default.func,
67115 /**
67116 * 用户hover评分时触发的回调
67117 * @param {Number} value 评分值
67118 */
67119 onHoverChange: _propTypes2.default.func,
67120 /**
67121 * 是否禁用
67122 */
67123 disabled: _propTypes2.default.bool,
67124 /**
67125 * 评分文案生成方法,传入id支持无障碍时,读屏软件可读
67126 */
67127 readAs: _propTypes2.default.func,
67128 // 实验属性: 自定义评分icon
67129 iconType: _propTypes2.default.string,
67130 // 实验属性: 开启 `-webkit-text-stroke` 显示边框颜色,在IE中无效
67131 strokeMode: _propTypes2.default.bool,
67132 className: _propTypes2.default.string,
67133 id: _propTypes2.default.string,
67134 rtl: _propTypes2.default.bool,
67135 /**
67136 * 自定义国际化文案对象
67137 */
67138 locale: _propTypes2.default.object,
67139 /**
67140 * 是否为预览态
67141 */
67142 isPreview: _propTypes2.default.bool,
67143 /**
67144 * 预览态模式下渲染的内容
67145 * @param {number} value 评分值
67146 */
67147 renderPreview: _propTypes2.default.func,
67148 /**
67149 * 是否为只读态,效果上同 disabeld
67150 */
67151 readOnly: _propTypes2.default.bool
67152}, _class.defaultProps = {
67153 prefix: 'next-',
67154 size: 'medium',
67155 disabled: false,
67156 readOnly: false,
67157 isPreview: false,
67158 count: 5,
67159 showGrade: false,
67160 defaultValue: 0,
67161 readAs: function readAs(val) {
67162 return val;
67163 },
67164 allowHalf: false,
67165 allowClear: false,
67166 onChange: noop,
67167 onHoverChange: noop,
67168 locale: _zhCn2.default.Rating
67169}, _temp);
67170Rating.displayName = 'Rating';
67171exports.default = (0, _reactLifecyclesCompat.polyfill)(Rating);
67172module.exports = exports['default'];
67173
67174/***/ }),
67175/* 402 */
67176/***/ (function(module, exports, __webpack_require__) {
67177
67178"use strict";
67179
67180
67181exports.__esModule = true;
67182
67183var _extends2 = __webpack_require__(1);
67184
67185var _extends3 = _interopRequireDefault(_extends2);
67186
67187var _objectWithoutProperties2 = __webpack_require__(8);
67188
67189var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
67190
67191var _classCallCheck2 = __webpack_require__(2);
67192
67193var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
67194
67195var _possibleConstructorReturn2 = __webpack_require__(3);
67196
67197var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
67198
67199var _inherits2 = __webpack_require__(4);
67200
67201var _inherits3 = _interopRequireDefault(_inherits2);
67202
67203var _class, _temp, _initialiseProps;
67204
67205var _react = __webpack_require__(0);
67206
67207var _react2 = _interopRequireDefault(_react);
67208
67209var _propTypes = __webpack_require__(5);
67210
67211var _propTypes2 = _interopRequireDefault(_propTypes);
67212
67213var _classnames = __webpack_require__(7);
67214
67215var _classnames2 = _interopRequireDefault(_classnames);
67216
67217var _reactLifecyclesCompat = __webpack_require__(10);
67218
67219var _input = __webpack_require__(18);
67220
67221var _input2 = _interopRequireDefault(_input);
67222
67223var _select = __webpack_require__(29);
67224
67225var _select2 = _interopRequireDefault(_select);
67226
67227var _button = __webpack_require__(17);
67228
67229var _button2 = _interopRequireDefault(_button);
67230
67231var _icon = __webpack_require__(11);
67232
67233var _icon2 = _interopRequireDefault(_icon);
67234
67235var _util = __webpack_require__(6);
67236
67237var _zhCn = __webpack_require__(13);
67238
67239var _zhCn2 = _interopRequireDefault(_zhCn);
67240
67241function _interopRequireDefault(obj) {
67242 return obj && obj.__esModule ? obj : { default: obj };
67243}
67244
67245var Group = _input2.default.Group;
67246var AutoComplete = _select2.default.AutoComplete;
67247var noop = _util.func.noop;
67248
67249/**
67250 * Search
67251 * @description 输入框部分继承 Select.AutoComplete 的能力,可以直接用AutoComplete 的 api
67252 */
67253
67254var Search = (_temp = _class = function (_React$Component) {
67255 (0, _inherits3.default)(Search, _React$Component);
67256
67257 function Search(props) {
67258 (0, _classCallCheck3.default)(this, Search);
67259
67260 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
67261
67262 _initialiseProps.call(_this);
67263
67264 var value = 'value' in props ? props.value : props.defaultValue;
67265 var filterValue = 'filterValue' in props ? props.filterValue : props.defaultFilterValue;
67266
67267 _this.state = {
67268 value: typeof value === 'undefined' ? '' : value,
67269 filterValue: filterValue
67270 };
67271
67272 _this.highlightKey = null;
67273 return _this;
67274 }
67275
67276 Search.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
67277 var nextState = {};
67278 if ('value' in nextProps && nextProps.value !== prevState.value) {
67279 var value = nextProps.value;
67280 nextState.value = value === undefined || value === null ? '' : nextProps.value;
67281 }
67282
67283 if ('filterValue' in nextProps && nextProps.filterValue !== prevState.filterValue) {
67284 var filterValue = nextProps.filterValue;
67285 nextState.filterValue = filterValue === undefined ? '' : filterValue;
67286 }
67287
67288 if (Object.keys(nextState).length > 0) {
67289 return nextState;
67290 }
67291
67292 return null;
67293 };
67294
67295 Search.prototype.focus = function focus() {
67296 var _inputRef;
67297
67298 (_inputRef = this.inputRef).focus.apply(_inputRef, arguments);
67299 };
67300
67301 Search.prototype.render = function render() {
67302 var _classNames;
67303
67304 var _props = this.props,
67305 shape = _props.shape,
67306 filter = _props.filter,
67307 hasIcon = _props.hasIcon,
67308 disabled = _props.disabled,
67309 placeholder = _props.placeholder,
67310 type = _props.type,
67311 className = _props.className,
67312 style = _props.style,
67313 size = _props.size,
67314 prefix = _props.prefix,
67315 searchText = _props.searchText,
67316 dataSource = _props.dataSource,
67317 filterProps = _props.filterProps,
67318 buttonProps = _props.buttonProps,
67319 fillProps = _props.fillProps,
67320 popupContent = _props.popupContent,
67321 followTrigger = _props.followTrigger,
67322 hasClear = _props.hasClear,
67323 visible = _props.visible,
67324 locale = _props.locale,
67325 rtl = _props.rtl,
67326 icons = _props.icons,
67327 autoHighlightFirstItem = _props.autoHighlightFirstItem,
67328 others = (0, _objectWithoutProperties3.default)(_props, ['shape', 'filter', 'hasIcon', 'disabled', 'placeholder', 'type', 'className', 'style', 'size', 'prefix', 'searchText', 'dataSource', 'filterProps', 'buttonProps', 'fillProps', 'popupContent', 'followTrigger', 'hasClear', 'visible', 'locale', 'rtl', 'icons', 'autoHighlightFirstItem']);
67329
67330 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'search'] = true, _classNames[prefix + 'search-' + shape] = true, _classNames['' + prefix + type] = type, _classNames['' + prefix + size] = size, _classNames[prefix + 'disabled'] = !!disabled, _classNames[className] = !!className, _classNames));
67331
67332 var searchIcon = null,
67333 filterSelect = null,
67334 searchBtn = null,
67335 iconsSearch = icons.search;
67336
67337 if (!(0, _react.isValidElement)(icons.search) && icons.search) {
67338 iconsSearch = _react2.default.createElement('span', null, icons.search);
67339 }
67340
67341 if (shape === 'simple') {
67342 var _classNames2;
67343
67344 var _cls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'search-icon'] = true, _classNames2[buttonProps.className] = !!buttonProps.className, _classNames2[prefix + 'search-symbol-icon'] = !iconsSearch, _classNames2));
67345 hasIcon && (searchIcon = _react2.default.cloneElement(iconsSearch || _react2.default.createElement(_icon2.default, { type: 'search' }), (0, _extends3.default)({
67346 role: 'button',
67347 'aria-disabled': disabled,
67348 'aria-label': locale.buttonText
67349 }, buttonProps, {
67350 className: _cls,
67351 onClick: this.onSearch,
67352 onKeyDown: this.onKeyDown
67353 })));
67354 } else {
67355 var _classNames3;
67356
67357 var _cls2 = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'search-btn'] = true, _classNames3[buttonProps.className] = !!buttonProps.className, _classNames3));
67358 searchBtn = _react2.default.createElement(_button2.default, (0, _extends3.default)({
67359 tabIndex: '0',
67360 'aria-disabled': disabled,
67361 'aria-label': locale.buttonText,
67362 className: _cls2,
67363 disabled: disabled
67364 }, buttonProps, {
67365 onClick: this.onSearch,
67366 onKeyDown: this.onKeyDown
67367 }), hasIcon ? iconsSearch || _react2.default.createElement(_icon2.default, { type: 'search', className: prefix + 'search-symbol-icon' }) : null, searchText ? _react2.default.createElement('span', { className: prefix + 'search-btn-text' }, searchText) : null);
67368 }
67369
67370 if (filter.length > 0) {
67371 filterSelect = _react2.default.createElement(_select2.default, (0, _extends3.default)({}, filterProps, {
67372 followTrigger: followTrigger,
67373 hasBorder: false,
67374 dataSource: filter,
67375 size: size,
67376 disabled: disabled,
67377 value: this.state.filterValue,
67378 onChange: this.onFilterChange
67379 }));
67380 }
67381
67382 var othersAttributes = _util.obj.pickOthers(Search.propTypes, others);
67383 if (visible !== undefined) {
67384 // 受控属性 visible 不能直接写在组件上
67385 othersAttributes.visible = Boolean(visible);
67386 }
67387 var dataAttr = _util.obj.pickAttrsWith(others, 'data-');
67388
67389 var left = _react2.default.createElement(Group, {
67390 addonBefore: filterSelect,
67391 className: prefix + 'search-left',
67392 addonBeforeClassName: prefix + 'search-left-addon'
67393 }, _react2.default.createElement(AutoComplete, (0, _extends3.default)({
67394 'aria-label': locale.buttonText
67395 }, othersAttributes, {
67396 followTrigger: followTrigger,
67397 role: 'searchbox',
67398 hasClear: hasClear,
67399 className: prefix + 'search-input',
67400 size: size,
67401 fillProps: fillProps,
67402 placeholder: placeholder,
67403 dataSource: dataSource,
67404 innerAfter: searchIcon,
67405 onPressEnter: this.onPressEnter,
67406 value: this.state.value,
67407 onChange: this.onChange,
67408 onToggleHighlightItem: this.onToggleHighlightItem,
67409 autoHighlightFirstItem: autoHighlightFirstItem,
67410 popupContent: popupContent,
67411 disabled: disabled,
67412 ref: this.saveInputRef
67413 })));
67414
67415 return _react2.default.createElement('span', (0, _extends3.default)({ className: cls, style: style }, dataAttr, { dir: rtl ? 'rtl' : undefined }), searchBtn ? _react2.default.createElement(Group, { addonAfter: searchBtn }, left) : left);
67416 };
67417
67418 return Search;
67419}(_react2.default.Component), _class.propTypes = {
67420 /**
67421 * 样式前缀
67422 */
67423 prefix: _propTypes2.default.string,
67424 /**
67425 * 形状
67426 */
67427 shape: _propTypes2.default.oneOf(['normal', 'simple']),
67428 /**
67429 * 类型 shape=normal: primary/secondary; shape=simple: normal/dark;
67430 */
67431 type: _propTypes2.default.oneOf(['primary', 'secondary', 'normal', 'dark']),
67432 /**
67433 * 大小
67434 * @enumdesc '大', '小'
67435 */
67436 size: _propTypes2.default.oneOf(['large', 'medium']),
67437 /**
67438 * 搜索框默认值
67439 */
67440 defaultValue: _propTypes2.default.string,
67441 /**
67442 * 搜索框数值
67443 */
67444 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
67445 /**
67446 * 输入关键字时的回掉
67447 * @param {Object} value 输入值
67448 */
67449 onChange: _propTypes2.default.func,
67450 /**
67451 * 点击搜索按钮触发的回调
67452 * @param {String} value 输入值
67453 * @param {String} filterValue 选项值
67454 */
67455 onSearch: _propTypes2.default.func,
67456 /**
67457 * 选择器默认值
67458 */
67459 defaultFilterValue: _propTypes2.default.string,
67460 /**
67461 * 填充到输入框里的值的 key ,默认是value
67462 */
67463 fillProps: _propTypes2.default.string,
67464 /**
67465 * 选择器
67466 */
67467 filter: _propTypes2.default.array,
67468 /**
67469 * 选择器值
67470 */
67471 filterValue: _propTypes2.default.string,
67472 /**
67473 * 选择器发生变化时回调
67474 * @param {Object} filter value
67475 */
67476 onFilterChange: _propTypes2.default.func,
67477 /**
67478 * 搜索框下拉联想列表
67479 */
67480 dataSource: _propTypes2.default.array,
67481 /**
67482 * 默认提示
67483 */
67484 placeholder: _propTypes2.default.string,
67485 /**
67486 * button 的内容
67487 */
67488 searchText: _propTypes2.default.node,
67489 /**
67490 * 自定义样式
67491 */
67492 style: _propTypes2.default.object,
67493 /**
67494 * 样式名称
67495 */
67496 className: _propTypes2.default.string,
67497 /**
67498 * 选择器的props
67499 */
67500 filterProps: _propTypes2.default.object,
67501 /**
67502 * 按钮的额外属性
67503 */
67504 buttonProps: _propTypes2.default.object,
67505 /**
67506 * 自定义渲染的的下拉框
67507 */
67508 popupContent: _propTypes2.default.node,
67509 /**
67510 * 是否跟随滚动
67511 */
67512 followTrigger: _propTypes2.default.bool,
67513 /**
67514 * 自定义渲染的的下拉框
67515 */
67516 visible: _propTypes2.default.bool,
67517 /**
67518 * 是否显示清除按钮
67519 */
67520 hasClear: _propTypes2.default.bool,
67521 /**
67522 * 是否显示搜索按钮
67523 */
67524 hasIcon: _propTypes2.default.bool,
67525 /**
67526 * 是否禁用
67527 */
67528 disabled: _propTypes2.default.bool,
67529 locale: _propTypes2.default.object,
67530 rtl: _propTypes2.default.bool,
67531 /**
67532 * 可配置的icons,包括 search 等
67533 */
67534 icons: _propTypes2.default.object,
67535 /**
67536 * 是否自动高亮第一个元素
67537 */
67538 autoHighlightFirstItem: _propTypes2.default.bool,
67539 /**
67540 * 上下箭头切换选项的回调
67541 */
67542 onToggleHighlightItem: _propTypes2.default.func
67543}, _class.defaultProps = {
67544 prefix: 'next-',
67545 shape: 'normal',
67546 type: 'normal',
67547 size: 'medium',
67548 hasIcon: true,
67549 filter: [],
67550 locale: _zhCn2.default.Search,
67551 buttonProps: {},
67552 onChange: noop,
67553 onSearch: noop,
67554 onFilterChange: noop,
67555 onToggleHighlightItem: noop,
67556 hasClear: false,
67557 disabled: false,
67558 icons: {},
67559 autoHighlightFirstItem: true
67560}, _initialiseProps = function _initialiseProps() {
67561 var _this2 = this;
67562
67563 this.onChange = function (value, type) {
67564 for (var _len = arguments.length, argv = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
67565 argv[_key - 2] = arguments[_key];
67566 }
67567
67568 var _props2;
67569
67570 if (_this2.props.disabled) {
67571 return;
67572 }
67573
67574 if (!('value' in _this2.props)) {
67575 _this2.setState({ value: value });
67576 }
67577
67578 (_props2 = _this2.props).onChange.apply(_props2, [value, type].concat(argv));
67579 if (type === 'enter') {
67580 _this2.highlightKey = '';
67581 _this2.props.onSearch(value, _this2.state.filterValue);
67582 }
67583 };
67584
67585 this.onPressEnter = function () {
67586 if (_this2.highlightKey) {
67587 return;
67588 }
67589 _this2.onSearch();
67590 };
67591
67592 this.onSearch = function () {
67593 if (_this2.props.disabled) {
67594 return;
67595 }
67596 _this2.props.onSearch(_this2.state.value, _this2.state.filterValue);
67597 };
67598
67599 this.onFilterChange = function (filterValue) {
67600 if (!('filterValue' in _this2.props)) {
67601 _this2.setState({ filterValue: filterValue });
67602 }
67603
67604 _this2.props.onFilterChange(filterValue);
67605 };
67606
67607 this.onToggleHighlightItem = function (highlightKey) {
67608 var _props3;
67609
67610 for (var _len2 = arguments.length, args = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
67611 args[_key2 - 1] = arguments[_key2];
67612 }
67613
67614 _this2.highlightKey = highlightKey;
67615
67616 (_props3 = _this2.props).onToggleHighlightItem.apply(_props3, [highlightKey].concat(args));
67617 };
67618
67619 this.onKeyDown = function (e) {
67620 if (_this2.props.disabled) {
67621 return;
67622 }
67623 if (e.keyCode !== _util.KEYCODE.ENTER) {
67624 return;
67625 }
67626 _this2.onSearch();
67627 };
67628
67629 this.saveInputRef = function (ref) {
67630 if (ref && ref.getInstance()) {
67631 _this2.inputRef = ref.getInstance();
67632 }
67633 };
67634}, _temp);
67635Search.displayName = 'Search';
67636exports.default = (0, _reactLifecyclesCompat.polyfill)(Search);
67637module.exports = exports['default'];
67638
67639/***/ }),
67640/* 403 */
67641/***/ (function(module, exports, __webpack_require__) {
67642
67643"use strict";
67644
67645
67646exports.__esModule = true;
67647
67648var _extends2 = __webpack_require__(1);
67649
67650var _extends3 = _interopRequireDefault(_extends2);
67651
67652var _objectWithoutProperties2 = __webpack_require__(8);
67653
67654var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
67655
67656var _shell = __webpack_require__(404);
67657
67658var _shell2 = _interopRequireDefault(_shell);
67659
67660var _base = __webpack_require__(406);
67661
67662var _base2 = _interopRequireDefault(_base);
67663
67664var _configProvider = __webpack_require__(9);
67665
67666var _configProvider2 = _interopRequireDefault(_configProvider);
67667
67668function _interopRequireDefault(obj) {
67669 return obj && obj.__esModule ? obj : { default: obj };
67670}
67671
67672var Shell = (0, _shell2.default)({
67673 componentName: 'Shell'
67674});
67675
67676['Branding', 'Navigation', 'Action', 'MultiTask', 'LocalNavigation', 'AppBar', 'Content', 'Footer', 'Ancillary', 'ToolDock', 'ToolDockItem'].forEach(function (key) {
67677 Shell[key] = (0, _base2.default)({
67678 componentName: key
67679 });
67680});
67681
67682Shell.Page = _configProvider2.default.config((0, _shell2.default)({
67683 componentName: 'Page'
67684}));
67685
67686exports.default = _configProvider2.default.config(Shell, {
67687 transform: /* istanbul ignore next */function transform(props, deprecated) {
67688 if ('Component' in props) {
67689 deprecated('Component', 'component', 'Shell');
67690 var _props = props,
67691 Component = _props.Component,
67692 component = _props.component,
67693 others = (0, _objectWithoutProperties3.default)(_props, ['Component', 'component']);
67694
67695 if ('component' in props) {
67696 props = (0, _extends3.default)({ component: component }, others);
67697 } else {
67698 props = (0, _extends3.default)({ component: Component }, others);
67699 }
67700 }
67701 return props;
67702 }
67703});
67704module.exports = exports['default'];
67705
67706/***/ }),
67707/* 404 */
67708/***/ (function(module, exports, __webpack_require__) {
67709
67710"use strict";
67711
67712
67713exports.__esModule = true;
67714
67715var _objectWithoutProperties2 = __webpack_require__(8);
67716
67717var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
67718
67719var _extends3 = __webpack_require__(1);
67720
67721var _extends4 = _interopRequireDefault(_extends3);
67722
67723var _classCallCheck2 = __webpack_require__(2);
67724
67725var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
67726
67727var _possibleConstructorReturn2 = __webpack_require__(3);
67728
67729var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
67730
67731var _inherits2 = __webpack_require__(4);
67732
67733var _inherits3 = _interopRequireDefault(_inherits2);
67734
67735exports.default = ShellBase;
67736
67737var _react = __webpack_require__(0);
67738
67739var _react2 = _interopRequireDefault(_react);
67740
67741var _classnames12 = __webpack_require__(7);
67742
67743var _classnames13 = _interopRequireDefault(_classnames12);
67744
67745var _propTypes = __webpack_require__(5);
67746
67747var _propTypes2 = _interopRequireDefault(_propTypes);
67748
67749var _reactLifecyclesCompat = __webpack_require__(10);
67750
67751var _configProvider = __webpack_require__(9);
67752
67753var _configProvider2 = _interopRequireDefault(_configProvider);
67754
67755var _affix = __webpack_require__(69);
67756
67757var _affix2 = _interopRequireDefault(_affix);
67758
67759var _icon = __webpack_require__(11);
67760
67761var _icon2 = _interopRequireDefault(_icon);
67762
67763var _util = __webpack_require__(6);
67764
67765var _util2 = __webpack_require__(405);
67766
67767function _interopRequireDefault(obj) {
67768 return obj && obj.__esModule ? obj : { default: obj };
67769}
67770
67771/**
67772 * Shell
67773 */
67774function ShellBase(props) {
67775 var _class, _temp, _initialiseProps;
67776
67777 var componentName = props.componentName;
67778 var Shell = (_temp = _class = function (_Component) {
67779 (0, _inherits3.default)(Shell, _Component);
67780
67781 function Shell(props) {
67782 (0, _classCallCheck3.default)(this, Shell);
67783
67784 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
67785
67786 _initialiseProps.call(_this);
67787
67788 var deviceMap = (0, _util2.getCollapseMap)(props.device);
67789 _this.layout = {};
67790
67791 _this.state = {
67792 controll: false,
67793 collapseMap: deviceMap,
67794 device: props.device
67795 };
67796 return _this;
67797 }
67798
67799 Shell.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
67800 var device = prevState.device;
67801
67802 if (nextProps.device !== device) {
67803 var deviceMap = (0, _util2.getCollapseMap)(nextProps.device);
67804 return {
67805 controll: false,
67806 collapseMap: deviceMap,
67807 device: nextProps.device
67808 };
67809 }
67810
67811 return {};
67812 };
67813
67814 Shell.prototype.componentDidMount = function componentDidMount() {
67815 this.checkAsideFixed();
67816 };
67817
67818 Shell.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
67819 var _this2 = this;
67820
67821 if (prevProps.device !== this.props.device) {
67822 var deviceMapBefore = (0, _util2.getCollapseMap)(prevProps.device);
67823 var deviceMapAfter = (0, _util2.getCollapseMap)(this.props.device);
67824
67825 Object.keys(deviceMapAfter).forEach(function (block) {
67826 var _ref = _this2.layout[block] || {},
67827 props = _ref.props;
67828
67829 if (deviceMapBefore[block] !== deviceMapAfter[block]) {
67830 if (props && typeof props.onCollapseChange === 'function') {
67831 props.onCollapseChange(deviceMapAfter[block]);
67832 }
67833 }
67834 });
67835 }
67836
67837 setTimeout(function () {
67838 // 如果左侧边栏固定
67839 _this2.checkAsideFixed();
67840 }, 201);
67841 };
67842
67843 Shell.prototype.render = function render() {
67844 return this.renderShell(this.props);
67845 };
67846
67847 return Shell;
67848 }(_react.Component), _class.displayName = componentName, _class._typeMark = componentName, _class.propTypes = (0, _extends4.default)({}, _configProvider2.default.propTypes, {
67849 prefix: _propTypes2.default.string,
67850 /**
67851 * 设备类型
67852 * @enumdesc 手机, 平板, PC电脑
67853 */
67854 device: _propTypes2.default.oneOf(['phone', 'tablet', 'desktop']),
67855 /**
67856 * 设备类型
67857 * @enumdesc 浅色, 深色, 主题色
67858 */
67859 type: _propTypes2.default.oneOf(['light', 'dark', 'brand']),
67860 /**
67861 * 是否固定 header, 用sticky实现,IE下降级为Affix
67862 */
67863 fixedHeader: _propTypes2.default.bool
67864 }), _class.defaultProps = {
67865 prefix: 'next-',
67866 device: 'desktop',
67867 type: 'light',
67868 fixedHeader: false
67869 }, _initialiseProps = function _initialiseProps() {
67870 var _this3 = this;
67871
67872 this.checkAsideFixed = function () {
67873 var fixedHeader = _this3.props.fixedHeader;
67874
67875 if (!fixedHeader) {
67876 return;
67877 }
67878
67879 var headerHeight = void 0;
67880 if (_this3.headerRef && (_this3.navigationFixed || _this3.toolDockFixed)) {
67881 headerHeight = _util.dom.getStyle(_this3.headerRef, 'height');
67882 }
67883
67884 if (_this3.navigationFixed) {
67885 var style = {};
67886 style.marginLeft = _util.dom.getStyle(_this3.navRef, 'width');
67887 _util.dom.addClass(_this3.navRef, 'fixed');
67888 headerHeight && _util.dom.setStyle(_this3.navRef, { top: headerHeight });
67889 _util.dom.setStyle(_this3.localNavRef || _this3.submainRef, style);
67890 }
67891
67892 if (_this3.toolDockFixed) {
67893 var _style = {};
67894 _style.marginRight = _util.dom.getStyle(_this3.toolDockRef, 'width');
67895 _util.dom.addClass(_this3.toolDockRef, 'fixed');
67896 headerHeight && _util.dom.setStyle(_this3.toolDockRef, { top: headerHeight });
67897 _util.dom.setStyle(_this3.localNavRef || _this3.submainRef, _style);
67898 }
67899 };
67900
67901 this.setChildCollapse = function (child, mark) {
67902 var _state = _this3.state,
67903 device = _state.device,
67904 collapseMap = _state.collapseMap,
67905 controll = _state.controll;
67906 var collapse = child.props.collapse;
67907
67908 var deviceMap = (0, _util2.getCollapseMap)(device);
67909 var props = {};
67910
67911 // 非受控模式
67912 if ((0, _util2.isBoolean)(collapse) === false) {
67913 props.collapse = controll ? collapseMap[mark] : deviceMap[mark];
67914 // props.collapse = collapseMap[mark];
67915 }
67916
67917 if (device !== 'phone' && mark === 'Navigation') {
67918 props.miniable = true;
67919 }
67920
67921 return _react2.default.cloneElement(child, props);
67922 };
67923
67924 this.toggleAside = function (mark, props, e) {
67925 var _extends2;
67926
67927 var _state2 = _this3.state,
67928 device = _state2.device,
67929 collapseMap = _state2.collapseMap;
67930
67931 var deviceMap = (0, _util2.getCollapseMap)(device);
67932 var current = props.collapse;
67933
67934 var newCollapseMap = (0, _extends4.default)({}, deviceMap, collapseMap, (_extends2 = {}, _extends2[mark] = !current, _extends2));
67935 _this3.setState({
67936 controll: true,
67937 collapseMap: newCollapseMap
67938 });
67939
67940 if (props && typeof props.onCollapseChange === 'function') {
67941 props.onCollapseChange(newCollapseMap[mark]);
67942 }
67943
67944 var children = _this3.props.children;
67945
67946 var com = void 0;
67947 if (mark === 'Navigation') {
67948 com = children.filter(function (child) {
67949 return child && child.type._typeMark.replace('Shell_', '') === mark && child.props.direction !== 'hoz';
67950 }).pop();
67951 } else {
67952 com = children.filter(function (child) {
67953 return child && child.type._typeMark.replace('Shell_', '') === mark;
67954 }).pop();
67955 }
67956
67957 var _com$props$triggerPro = com.props.triggerProps,
67958 triggerProps = _com$props$triggerPro === undefined ? {} : _com$props$triggerPro;
67959
67960 if (typeof triggerProps.onClick === 'function') {
67961 triggerProps.onClick(e, _this3.state.collapseMap[mark]);
67962 }
67963 };
67964
67965 this.toggleNavigation = function (e) {
67966 var mark = 'Navigation';
67967 var props = _this3.layout[mark].props;
67968
67969 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
67970 return;
67971 }
67972
67973 _this3.toggleAside(mark, props, e);
67974 };
67975
67976 this.toggleLocalNavigation = function (e) {
67977 var mark = 'LocalNavigation';
67978 var props = _this3.layout[mark].props;
67979
67980 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
67981 return;
67982 }
67983
67984 _this3.toggleAside(mark, props, e);
67985 };
67986
67987 this.toggleAncillary = function (e) {
67988 var mark = 'Ancillary';
67989 var props = _this3.layout[mark].props;
67990
67991 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
67992 return;
67993 }
67994
67995 _this3.toggleAside(mark, props, e);
67996 };
67997
67998 this.toggleToolDock = function (e) {
67999 var mark = 'ToolDock';
68000 var props = _this3.layout[mark].props;
68001
68002 if ('keyCode' in e && e.keyCode !== _util.KEYCODE.ENTER) {
68003 return;
68004 }
68005
68006 _this3.toggleAside(mark, props, e);
68007 };
68008
68009 this.saveHeaderRef = function (ref) {
68010 _this3.headerRef = ref;
68011 };
68012
68013 this.saveLocalNavRef = function (ref) {
68014 _this3.localNavRef = ref;
68015 };
68016
68017 this.saveNavRef = function (ref) {
68018 _this3.navRef = ref;
68019 };
68020
68021 this.saveSubmainRef = function (ref) {
68022 _this3.submainRef = ref;
68023 };
68024
68025 this.saveToolDockRef = function (ref) {
68026 _this3.toolDockRef = ref;
68027 };
68028
68029 this.renderShell = function (props) {
68030 var _classnames, _classnames2, _classnames3, _classnames4, _classnames5, _classnames6, _classnames7, _classnames11;
68031
68032 var prefix = props.prefix,
68033 children = props.children,
68034 className = props.className,
68035 type = props.type,
68036 fixedHeader = props.fixedHeader,
68037 others = (0, _objectWithoutProperties3.default)(props, ['prefix', 'children', 'className', 'type', 'fixedHeader']);
68038 var device = _this3.state.device;
68039
68040 var layout = {};
68041 layout.header = {};
68042 var hasToolDock = false,
68043 needNavigationTrigger = false,
68044 needDockTrigger = false;
68045
68046 _react2.default.Children.map(children, function (child) {
68047 if (child && typeof child.type === 'function') {
68048 var mark = child.type._typeMark.replace('Shell_', '');
68049 switch (mark) {
68050 case 'Branding':
68051 case 'Action':
68052 layout.header[mark] = child;
68053 break;
68054 case 'MultiTask':
68055 layout.taskHeader = child;
68056 break;
68057 case 'LocalNavigation':
68058 if (!layout[mark]) {
68059 layout[mark] = [];
68060 }
68061 layout[mark] = _this3.setChildCollapse(child, mark);
68062 break;
68063 case 'Ancillary':
68064 if (!layout[mark]) {
68065 layout[mark] = [];
68066 }
68067
68068 layout[mark] = _this3.setChildCollapse(child, mark);
68069 break;
68070 case 'ToolDock':
68071 hasToolDock = true;
68072
68073 if (!layout[mark]) {
68074 layout[mark] = [];
68075 }
68076
68077 _this3.toolDockFixed = child.props.fixed;
68078 var childT = _this3.setChildCollapse(child, mark);
68079 layout[mark] = childT;
68080
68081 break;
68082 case 'AppBar':
68083 case 'Content':
68084 case 'Footer':
68085 layout.content || (layout.content = []);
68086 layout.content.push(child);
68087 break;
68088 case 'Page':
68089 layout.page || (layout.page = []);
68090 layout.page = child;
68091 break;
68092 case 'Navigation':
68093 if (child.props.direction === 'hoz') {
68094 layout.header[mark] = child;
68095 } else {
68096 if (!layout[mark]) {
68097 layout[mark] = [];
68098 }
68099
68100 needNavigationTrigger = true;
68101 _this3.navigationFixed = child.props.fixed;
68102 var childN = _this3.setChildCollapse(child, mark);
68103 layout[mark] = childN;
68104 }
68105 break;
68106 default:
68107 break;
68108 }
68109 }
68110 });
68111
68112 var headerCls = (0, _classnames13.default)((_classnames = {}, _classnames[prefix + 'shell-header'] = true, _classnames[prefix + 'shell-fixed-header'] = fixedHeader, _classnames));
68113
68114 var mainCls = (0, _classnames13.default)((_classnames2 = {}, _classnames2[prefix + 'shell-main'] = true, _classnames2));
68115
68116 var pageCls = (0, _classnames13.default)((_classnames3 = {}, _classnames3[prefix + 'shell-page'] = true, _classnames3));
68117
68118 var submainCls = (0, _classnames13.default)((_classnames4 = {}, _classnames4[prefix + 'shell-sub-main'] = true, _classnames4));
68119
68120 var asideCls = (0, _classnames13.default)((_classnames5 = {}, _classnames5[prefix + 'shell-aside'] = true, _classnames5));
68121
68122 var toolDockCls = (0, _classnames13.default)((_classnames6 = {}, _classnames6[prefix + 'aside-tooldock'] = true, _classnames6));
68123
68124 var navigationCls = (0, _classnames13.default)((_classnames7 = {}, _classnames7[prefix + 'aside-navigation'] = true, _classnames7[prefix + 'shell-collapse'] = layout.Navigation && layout.Navigation.props.collapse, _classnames7));
68125
68126 if (hasToolDock) {
68127 if (device === 'phone') {
68128 needDockTrigger = true;
68129 }
68130 }
68131
68132 // 如果存在垂直模式的 Navigation, 则需要在 Branding 上出现 trigger
68133 if (needNavigationTrigger) {
68134 var branding = layout.header.Branding;
68135 var _layout$Navigation$pr = layout.Navigation.props,
68136 trigger = _layout$Navigation$pr.trigger,
68137 collapse = _layout$Navigation$pr.collapse;
68138
68139 if ('trigger' in layout.Navigation.props) {
68140 trigger = trigger && _react2.default.cloneElement(trigger, {
68141 onClick: _this3.toggleNavigation,
68142 'aria-expanded': !collapse
68143 }) || trigger;
68144 } else {
68145 trigger = _react2.default.createElement('div', {
68146 key: 'nav-trigger',
68147 role: 'button',
68148 tabIndex: 0,
68149 'aria-expanded': !collapse,
68150 'aria-label': 'toggle',
68151 className: 'nav-trigger',
68152 onClick: _this3.toggleNavigation,
68153 onKeyDown: _this3.toggleNavigation
68154 }, collapse ? _react2.default.createElement(_icon2.default, { size: 'small', type: 'toggle-right' }) : _react2.default.createElement(_icon2.default, { size: 'small', type: 'toggle-left' }));
68155 }
68156
68157 if (!branding) {
68158 trigger && (layout.header.Branding = trigger);
68159 } else {
68160 layout.header.Branding = _react2.default.cloneElement(branding, {}, [trigger, branding.props.children]);
68161 }
68162 }
68163
68164 // 如果存在 toolDock, 则需要在 Action 上出现 trigger
68165 if (needDockTrigger) {
68166 var action = layout.header.Action;
68167 var _layout$ToolDock$prop = layout.ToolDock.props,
68168 _trigger = _layout$ToolDock$prop.trigger,
68169 _collapse = _layout$ToolDock$prop.collapse;
68170
68171 if ('trigger' in layout.ToolDock.props) {
68172 _trigger = _trigger && _react2.default.cloneElement(_trigger, {
68173 onClick: _this3.toggleToolDock,
68174 'aria-expanded': !_collapse
68175 }) || _trigger;
68176 } else {
68177 _trigger = _react2.default.createElement('div', {
68178 key: 'dock-trigger',
68179 tabIndex: 0,
68180 role: 'button',
68181 'aria-expanded': !_collapse,
68182 'aria-label': 'toggle',
68183 className: 'dock-trigger',
68184 onClick: _this3.toggleToolDock,
68185 onKeyDown: _this3.toggleToolDock
68186 }, _react2.default.createElement(_icon2.default, { size: 'small', type: 'add' }));
68187 }
68188
68189 if (!action) {
68190 layout.header.Action = _trigger;
68191 } else {
68192 layout.header.Action = _react2.default.cloneElement(action, {}, [action.props.children, _trigger]);
68193 }
68194 }
68195
68196 var headerDom = [],
68197 contentArr = [],
68198 innerArr = [],
68199 taskHeaderDom = null;
68200
68201 if (layout.taskHeader) {
68202 var _classnames8;
68203
68204 var taskHeaderCls = (0, _classnames13.default)((_classnames8 = {}, _classnames8[prefix + 'shell-task-header'] = true, _classnames8));
68205
68206 taskHeaderDom = _react2.default.createElement('section', { key: 'task-header', className: taskHeaderCls }, layout.taskHeader);
68207 }
68208
68209 // 按照dom结构,innerArr 包括 LocalNavigation content Ancillary
68210 if (layout.LocalNavigation) {
68211 var _classnames9;
68212
68213 var _layout$LocalNavigati = layout.LocalNavigation.props,
68214 _trigger2 = _layout$LocalNavigati.trigger,
68215 _collapse2 = _layout$LocalNavigati.collapse;
68216
68217 if ('trigger' in layout.LocalNavigation.props) {
68218 _trigger2 = _trigger2 && _react2.default.cloneElement(_trigger2, {
68219 onClick: _this3.toggleLocalNavigation,
68220 'aria-expanded': !_collapse2
68221 }) || _trigger2;
68222 } else {
68223 _trigger2 = _react2.default.createElement('div', {
68224 key: 'local-nav-trigger',
68225 role: 'button',
68226 tabIndex: 0,
68227 'aria-expanded': !_collapse2,
68228 'aria-label': 'toggle',
68229 className: 'local-nav-trigger aside-trigger',
68230 onClick: _this3.toggleLocalNavigation,
68231 onKeyDown: _this3.toggleLocalNavigation
68232 }, _collapse2 ? _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-right' }) : _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-left' }));
68233 }
68234
68235 var localNavCls = (0, _classnames13.default)(asideCls, (_classnames9 = {}, _classnames9[prefix + 'aside-localnavigation'] = true, _classnames9));
68236
68237 innerArr.push(_react2.default.createElement('aside', { key: 'localnavigation', className: localNavCls, ref: _this3.saveLocalNavRef }, _react2.default.cloneElement(layout.LocalNavigation, {}, [_react2.default.createElement('div', { key: 'wrapper', className: prefix + 'shell-content-wrapper' }, layout.LocalNavigation.props.children), _trigger2])));
68238 }
68239
68240 if (layout.content) {
68241 innerArr.push(_react2.default.createElement('section', { key: 'submain', className: submainCls, ref: _this3.saveSubmainRef }, layout.content));
68242 }
68243
68244 if (layout.Ancillary) {
68245 var _classnames10;
68246
68247 var _layout$Ancillary$pro = layout.Ancillary.props,
68248 _trigger3 = _layout$Ancillary$pro.trigger,
68249 _collapse3 = _layout$Ancillary$pro.collapse;
68250
68251 if ('trigger' in layout.Ancillary.props) {
68252 _trigger3 = _trigger3 && _react2.default.cloneElement(_trigger3, {
68253 onClick: _this3.toggleAncillary,
68254 'aria-expanded': !_collapse3
68255 }) || _trigger3;
68256 } else {
68257 _trigger3 = _react2.default.createElement('div', {
68258 key: 'ancillary-trigger',
68259 role: 'button',
68260 tabIndex: 0,
68261 'aria-expanded': !_collapse3,
68262 'aria-label': 'toggle',
68263 className: 'ancillary-trigger aside-trigger',
68264 onClick: _this3.toggleAncillary,
68265 onKeyDown: _this3.toggleAncillary
68266 }, _collapse3 ? _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-left' }) : _react2.default.createElement(_icon2.default, { size: 'small', type: 'arrow-right' }));
68267 }
68268
68269 var ancillaryCls = (0, _classnames13.default)(asideCls, (_classnames10 = {}, _classnames10[prefix + 'aside-ancillary'] = true, _classnames10));
68270
68271 innerArr.push(_react2.default.createElement('aside', { key: 'ancillary', className: ancillaryCls }, _react2.default.cloneElement(layout.Ancillary, {}, [_react2.default.createElement('div', { key: 'wrapper', className: prefix + 'shell-content-wrapper' }, layout.Ancillary.props.children), _trigger3])));
68272 }
68273
68274 // 按照dom结构, arr 包括 header Navigation ToolDock 和 innerArr
68275 if (Object.keys(layout.header).length > 0) {
68276 var _dom = _react2.default.createElement('header', { key: 'header', className: headerCls, ref: _this3.saveHeaderRef }, layout.header.Branding, layout.header.Navigation, layout.header.Action);
68277 if (fixedHeader && _util.env.ieVersion) {
68278 headerDom = _react2.default.createElement(_affix2.default, { style: { zIndex: 9 } }, _dom);
68279 } else {
68280 headerDom = _dom;
68281 }
68282 }
68283
68284 layout.Navigation && contentArr.push(_react2.default.createElement('aside', { key: 'navigation', className: navigationCls, ref: _this3.saveNavRef }, _react2.default.cloneElement(layout.Navigation, {
68285 className: (0, _classnames13.default)(asideCls, layout.Navigation.props.className)
68286 })));
68287
68288 // const contentArea = innerArr.length > 0
68289 // ? <section key="main" className={mainCls}>{innerArr}</section>
68290 // : layout.page;
68291
68292 // contentArr.push(contentArea);
68293 contentArr = contentArr.concat(innerArr.length > 0 ? innerArr : [_react2.default.createElement('section', { key: 'page', ref: _this3.saveSubmainRef, className: submainCls }, layout.page)]);
68294
68295 layout.ToolDock && contentArr.push(_react2.default.createElement('aside', { key: 'tooldock', className: toolDockCls, ref: _this3.saveToolDockRef }, _react2.default.cloneElement(layout.ToolDock, {
68296 className: (0, _classnames13.default)(asideCls, layout.ToolDock.props.className),
68297 key: 'tooldock'
68298 })));
68299
68300 var cls = (0, _classnames13.default)((_classnames11 = {}, _classnames11[prefix + 'shell'] = true, _classnames11[prefix + 'shell-' + device] = true, _classnames11[prefix + 'shell-' + type] = true, _classnames11[className] = !!className, _classnames11));
68301
68302 if (componentName === 'Page') {
68303 return _react2.default.createElement('section', { className: pageCls }, children);
68304 }
68305
68306 _this3.layout = layout;
68307
68308 return _react2.default.createElement('section', (0, _extends4.default)({ className: cls }, others), headerDom, taskHeaderDom, _react2.default.createElement('section', { className: mainCls }, contentArr));
68309 };
68310 }, _temp);
68311 Shell.displayName = 'Shell';
68312
68313 return (0, _reactLifecyclesCompat.polyfill)(Shell);
68314}
68315module.exports = exports['default'];
68316
68317/***/ }),
68318/* 405 */
68319/***/ (function(module, exports, __webpack_require__) {
68320
68321"use strict";
68322
68323
68324exports.__esModule = true;
68325exports.isBoolean = isBoolean;
68326exports.getCollapseMap = getCollapseMap;
68327/**
68328 * 判断是否为布尔类型
68329 * @param {any} val 例:'str' / undefined / null / true / false / 0
68330 * @return {bool} 例: false / false / false / true / false / false
68331 */
68332function isBoolean(val) {
68333 return typeof val === 'boolean';
68334}
68335
68336function getCollapseMap(device) {
68337 // by default all of them are collapsed
68338 var origin = {
68339 Navigation: true,
68340 LocalNavigation: true,
68341 Ancillary: true,
68342 ToolDock: true
68343 };
68344
68345 var map = [];
68346
68347 switch (device) {
68348 case 'phone':
68349 break;
68350 case 'pad':
68351 case 'tablet':
68352 map = ['ToolDock'];
68353 break;
68354 case 'desktop':
68355 map = ['Navigation', 'LocalNavigation', 'Ancillary', 'ToolDock'];
68356 break;
68357 default:
68358 break;
68359 }
68360
68361 Object.keys(origin).forEach(function (key) {
68362 if (map.indexOf(key) > -1) {
68363 origin[key] = false;
68364 }
68365 });
68366
68367 return origin;
68368}
68369
68370/***/ }),
68371/* 406 */
68372/***/ (function(module, exports, __webpack_require__) {
68373
68374"use strict";
68375
68376
68377exports.__esModule = true;
68378
68379var _extends2 = __webpack_require__(1);
68380
68381var _extends3 = _interopRequireDefault(_extends2);
68382
68383var _objectWithoutProperties2 = __webpack_require__(8);
68384
68385var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
68386
68387var _classCallCheck2 = __webpack_require__(2);
68388
68389var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
68390
68391var _possibleConstructorReturn2 = __webpack_require__(3);
68392
68393var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
68394
68395var _inherits2 = __webpack_require__(4);
68396
68397var _inherits3 = _interopRequireDefault(_inherits2);
68398
68399exports.default = Base;
68400
68401var _react = __webpack_require__(0);
68402
68403var _react2 = _interopRequireDefault(_react);
68404
68405var _classnames2 = __webpack_require__(7);
68406
68407var _classnames3 = _interopRequireDefault(_classnames2);
68408
68409var _propTypes = __webpack_require__(5);
68410
68411var _propTypes2 = _interopRequireDefault(_propTypes);
68412
68413var _configProvider = __webpack_require__(9);
68414
68415var _configProvider2 = _interopRequireDefault(_configProvider);
68416
68417function _interopRequireDefault(obj) {
68418 return obj && obj.__esModule ? obj : { default: obj };
68419}
68420
68421function Base(props) {
68422 var _class, _temp;
68423
68424 var componentName = props.componentName;
68425 var Shell = (_temp = _class = function (_Component) {
68426 (0, _inherits3.default)(Shell, _Component);
68427
68428 function Shell() {
68429 (0, _classCallCheck3.default)(this, Shell);
68430 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
68431 }
68432
68433 Shell.prototype.getChildContext = function getChildContext() {
68434 var collapse = this.props.collapse;
68435
68436 return {
68437 isCollapse: collapse
68438 };
68439 };
68440
68441 Shell.prototype.render = function render() {
68442 var _classnames;
68443
68444 var _props = this.props,
68445 prefix = _props.prefix,
68446 className = _props.className,
68447 miniable = _props.miniable,
68448 device = _props.device,
68449 direction = _props.direction,
68450 children = _props.children,
68451 collapse = _props.collapse,
68452 triggerProps = _props.triggerProps,
68453 onCollapseChange = _props.onCollapseChange,
68454 component = _props.component,
68455 align = _props.align,
68456 fixed = _props.fixed,
68457 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'miniable', 'device', 'direction', 'children', 'collapse', 'triggerProps', 'onCollapseChange', 'component', 'align', 'fixed']);
68458
68459 var Tag = component;
68460
68461 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'shell-' + componentName.toLowerCase()] = true, _classnames[prefix + 'shell-collapse'] = !!collapse, _classnames[prefix + 'shell-mini'] = miniable, _classnames[prefix + 'shell-nav-' + align] = componentName === 'Navigation' && direction === 'hoz' && align, _classnames[className] = !!className, _classnames));
68462
68463 var newChildren = children;
68464 if (componentName === 'Content') {
68465 newChildren = _react2.default.createElement('div', { className: prefix + 'shell-content-inner' }, children);
68466 }
68467
68468 if (componentName === 'Page') {
68469 return children;
68470 }
68471
68472 return _react2.default.createElement(Tag, (0, _extends3.default)({ className: cls }, others), newChildren);
68473 };
68474
68475 return Shell;
68476 }(_react.Component), _class.displayName = componentName, _class._typeMark = 'Shell_' + componentName, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
68477 prefix: _propTypes2.default.string,
68478 collapse: _propTypes2.default.bool,
68479 miniable: _propTypes2.default.bool,
68480 component: _propTypes2.default.string,
68481 trigger: _propTypes2.default.node,
68482 triggerProps: _propTypes2.default.object,
68483 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
68484 align: _propTypes2.default.oneOf(['left', 'right', 'center']),
68485 /**
68486 * 弹层显示或隐藏时触发的回调函数
68487 * @param {Boolean} collapse 弹层是否显示
68488 */
68489 onCollapseChange: _propTypes2.default.func,
68490 /**
68491 * 是否固定,仅对 Shell.Navigation Shell.ToolDock 生效,且需要在在 Shell fixedHeader时生效
68492 */
68493 fixed: _propTypes2.default.bool
68494 }), _class.defaultProps = {
68495 prefix: 'next-',
68496 component: 'div',
68497 onCollapseChange: function onCollapseChange() {},
68498 fixed: false
68499 }, _class.childContextTypes = {
68500 isCollapse: _propTypes2.default.bool
68501 }, _temp);
68502 Shell.displayName = 'Shell';
68503
68504 return _configProvider2.default.config(Shell);
68505}
68506module.exports = exports['default'];
68507
68508/***/ }),
68509/* 407 */
68510/***/ (function(module, exports, __webpack_require__) {
68511
68512"use strict";
68513
68514
68515exports.__esModule = true;
68516
68517var _extends2 = __webpack_require__(1);
68518
68519var _extends3 = _interopRequireDefault(_extends2);
68520
68521var _objectWithoutProperties2 = __webpack_require__(8);
68522
68523var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
68524
68525var _configProvider = __webpack_require__(9);
68526
68527var _configProvider2 = _interopRequireDefault(_configProvider);
68528
68529var _slider = __webpack_require__(408);
68530
68531var _slider2 = _interopRequireDefault(_slider);
68532
68533function _interopRequireDefault(obj) {
68534 return obj && obj.__esModule ? obj : { default: obj };
68535}
68536
68537exports.default = _configProvider2.default.config(_slider2.default, {
68538 exportNames: ['resize'],
68539 transform: /* istanbul ignore next */function transform(props, deprecated) {
68540 if ('fade' in props) {
68541 deprecated('fade', 'animation', 'Slider');
68542
68543 var _props = props,
68544 fade = _props.fade,
68545 others = (0, _objectWithoutProperties3.default)(_props, ['fade']);
68546
68547 if (fade) {
68548 props = (0, _extends3.default)({ animation: 'fade' }, others);
68549 } else {
68550 props = others;
68551 }
68552 }
68553 if ('arrowPos' in props) {
68554 if (props.arrowPos === 'inline') {
68555 deprecated('arrowPos=inline', 'arrowPosition=inner', 'Slider');
68556
68557 props.arrowPos = 'inner';
68558 } else {
68559 deprecated('arrowPos', 'arrowPosition', 'Slider');
68560 }
68561
68562 var _props2 = props,
68563 arrowPos = _props2.arrowPos,
68564 _others = (0, _objectWithoutProperties3.default)(_props2, ['arrowPos']);
68565
68566 props = (0, _extends3.default)({ arrowPosition: arrowPos }, _others);
68567 }
68568 ['arrowDirection', 'dotsDirection', 'slideDirection'].forEach(function (propName) {
68569 if (props[propName] === 'horizontal') {
68570 deprecated(propName + '=horizontal', propName + '=hoz', 'Slider');
68571
68572 props[propName] = 'hoz';
68573 } else if (props[propName] === 'vertical') {
68574 deprecated(propName + '=vertical', propName + '=ver', 'Slider');
68575
68576 props[propName] = 'ver';
68577 }
68578 });
68579 if ('initialSlide' in props) {
68580 deprecated('initialSlide', 'defaultActiveIndex', 'Slider');
68581
68582 var _props3 = props,
68583 initialSlide = _props3.initialSlide,
68584 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['initialSlide']);
68585
68586 props = (0, _extends3.default)({ defaultActiveIndex: initialSlide }, _others2);
68587 }
68588 if ('slickGoTo' in props) {
68589 deprecated('slickGoTo', 'activeIndex', 'Slider');
68590
68591 var _props4 = props,
68592 slickGoTo = _props4.slickGoTo,
68593 _others3 = (0, _objectWithoutProperties3.default)(_props4, ['slickGoTo']);
68594
68595 props = (0, _extends3.default)({ activeIndex: slickGoTo }, _others3);
68596 }
68597 if ('afterChange' in props) {
68598 deprecated('afterChange', 'onChange', 'Slider');
68599
68600 var _props5 = props,
68601 afterChange = _props5.afterChange,
68602 _others4 = (0, _objectWithoutProperties3.default)(_props5, ['afterChange']);
68603
68604 props = (0, _extends3.default)({ onChange: afterChange }, _others4);
68605 }
68606
68607 if ('beforeChange' in props) {
68608 deprecated('beforeChange', 'onBeforeChange', 'Slider');
68609
68610 var _props6 = props,
68611 beforeChange = _props6.beforeChange,
68612 _others5 = (0, _objectWithoutProperties3.default)(_props6, ['beforeChange']);
68613
68614 props = (0, _extends3.default)({ onBeforeChange: beforeChange }, _others5);
68615 }
68616
68617 return props;
68618 }
68619});
68620module.exports = exports['default'];
68621
68622/***/ }),
68623/* 408 */
68624/***/ (function(module, exports, __webpack_require__) {
68625
68626"use strict";
68627
68628
68629exports.__esModule = true;
68630exports.default = undefined;
68631
68632var _extends2 = __webpack_require__(1);
68633
68634var _extends3 = _interopRequireDefault(_extends2);
68635
68636var _classCallCheck2 = __webpack_require__(2);
68637
68638var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
68639
68640var _possibleConstructorReturn2 = __webpack_require__(3);
68641
68642var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
68643
68644var _inherits2 = __webpack_require__(4);
68645
68646var _inherits3 = _interopRequireDefault(_inherits2);
68647
68648var _class, _temp2;
68649
68650var _react = __webpack_require__(0);
68651
68652var _react2 = _interopRequireDefault(_react);
68653
68654var _classnames = __webpack_require__(7);
68655
68656var _classnames2 = _interopRequireDefault(_classnames);
68657
68658var _propTypes = __webpack_require__(5);
68659
68660var _propTypes2 = _interopRequireDefault(_propTypes);
68661
68662var _util = __webpack_require__(6);
68663
68664var _innerSlider = __webpack_require__(409);
68665
68666var _innerSlider2 = _interopRequireDefault(_innerSlider);
68667
68668var _configProvider = __webpack_require__(9);
68669
68670var _configProvider2 = _interopRequireDefault(_configProvider);
68671
68672function _interopRequireDefault(obj) {
68673 return obj && obj.__esModule ? obj : { default: obj };
68674}
68675
68676/**
68677 * Slider
68678 */
68679var Slider = (_temp2 = _class = function (_Component) {
68680 (0, _inherits3.default)(Slider, _Component);
68681
68682 function Slider() {
68683 var _temp, _this, _ret;
68684
68685 (0, _classCallCheck3.default)(this, Slider);
68686
68687 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
68688 args[_key] = arguments[_key];
68689 }
68690
68691 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.resize = function () {
68692 // export api
68693 _this.innerSlider.onWindowResized();
68694 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
68695 }
68696
68697 Slider.prototype.render = function render() {
68698 var _this2 = this;
68699
68700 var _props = this.props,
68701 prefix = _props.prefix,
68702 arrowPosition = _props.arrowPosition,
68703 slideDirection = _props.slideDirection,
68704 style = _props.style,
68705 className = _props.className,
68706 children = _props.children;
68707
68708 var globalProps = {};
68709 Object.keys(_configProvider2.default.propTypes).forEach(function (key) {
68710 globalProps[key] = _this2.props[key];
68711 });
68712
68713 var sliderProps = _util.obj.pickOthers(['className', 'style', 'slideDirection'], this.props);
68714 var slideCount = _react2.default.Children.count(children);
68715
68716 if (slideCount === 0) {
68717 // 没有 item 时不显示 slider
68718 return null;
68719 } else if (slideCount === 1) {
68720 // 单个 item 时不显示箭头和控制器
68721 sliderProps.arrows = false;
68722 sliderProps.autoplay = false;
68723 sliderProps.draggable = false;
68724 }
68725
68726 var clazz = (0, _classnames2.default)([prefix + 'slick', prefix + 'slick-' + arrowPosition, prefix + 'slick-' + slideDirection], className);
68727
68728 if (slideDirection === 'ver') {
68729 // 向下传递时使用 vertical 属性
68730 sliderProps.vertical = true;
68731 sliderProps.verticalSwiping = true;
68732 }
68733
68734 return _react2.default.createElement(_configProvider2.default, (0, _extends3.default)({}, globalProps, { rtl: false }), _react2.default.createElement('div', (0, _extends3.default)({
68735 dir: 'ltr',
68736 className: clazz,
68737 style: style
68738 }, _util.obj.pickOthers((0, _extends3.default)({}, Slider.propTypes, _innerSlider2.default.propTypes), sliderProps)), _react2.default.createElement(_innerSlider2.default, (0, _extends3.default)({
68739 ref: function ref(InnerSlider) {
68740 return _this2.innerSlider = InnerSlider;
68741 }
68742 }, sliderProps))));
68743 };
68744
68745 return Slider;
68746}(_react.Component), _class.propTypes = {
68747 prefix: _propTypes2.default.string,
68748 rtl: _propTypes2.default.bool,
68749 /**
68750 * 自定义传入的样式
68751 */
68752 className: _propTypes2.default.any,
68753 /**
68754 * 是否使用自适应高度
68755 */
68756 adaptiveHeight: _propTypes2.default.bool,
68757 /**
68758 * 动效类型,默认是'slide'
68759 */
68760 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
68761 /**
68762 * 是否显示箭头
68763 */
68764 arrows: _propTypes2.default.bool,
68765 /**
68766 * 导航箭头大小 可选值: 'medium', 'large'
68767 */
68768 arrowSize: _propTypes2.default.oneOf(['medium', 'large']),
68769 /**
68770 * 导航箭头位置 可选值: 'inner', 'outer'
68771 */
68772 arrowPosition: _propTypes2.default.oneOf(['inner', 'outer']),
68773 /**
68774 * 导航箭头的方向 可选值: 'hoz', 'ver'
68775 */
68776 arrowDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
68777 /**
68778 * 是否自动播放
68779 */
68780 autoplay: _propTypes2.default.bool,
68781 /**
68782 * 自动播放的速度
68783 */
68784 autoplaySpeed: _propTypes2.default.number,
68785 /**
68786 * 向后箭头
68787 */
68788 nextArrow: _propTypes2.default.element,
68789 /**
68790 * 向前箭头
68791 */
68792 prevArrow: _propTypes2.default.element,
68793 /**
68794 * 是否启用居中模式
68795 */
68796 centerMode: _propTypes2.default.bool,
68797 /**
68798 * 是否显示导航锚点
68799 */
68800 dots: _propTypes2.default.bool,
68801 /**
68802 * 导航锚点位置
68803 */
68804 dotsDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
68805 dotsClass: _propTypes2.default.string,
68806 /**
68807 * 自定义导航锚点
68808 */
68809 dotsRender: _propTypes2.default.func,
68810 /**
68811 * 是否可拖拽
68812 */
68813 draggable: _propTypes2.default.bool,
68814 /**
68815 * 是否使用无穷循环模式
68816 */
68817 infinite: _propTypes2.default.bool,
68818 /**
68819 * 初始被激活的轮播图
68820 */
68821 defaultActiveIndex: _propTypes2.default.number,
68822 /**
68823 * 是否启用懒加载
68824 */
68825 lazyLoad: _propTypes2.default.bool,
68826 slide: _propTypes2.default.string,
68827 /**
68828 * 轮播方向
68829 */
68830 slideDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
68831 /**
68832 * 同时展示的图片数量
68833 */
68834 slidesToShow: _propTypes2.default.number,
68835 /**
68836 * 同时滑动的图片数量
68837 */
68838 slidesToScroll: _propTypes2.default.number,
68839 /**
68840 * 轮播速度
68841 */
68842 speed: _propTypes2.default.number,
68843 /**
68844 * 跳转到指定的轮播图(受控)
68845 */
68846 activeIndex: _propTypes2.default.number,
68847 /**
68848 * 锚点导航触发方式
68849 */
68850 triggerType: _propTypes2.default.oneOf(['click', 'hover']),
68851 /**
68852 * 轮播切换的回调函数
68853 * @param {Number} index 幻灯片的索引
68854 */
68855 onChange: _propTypes2.default.func,
68856 onBeforeChange: _propTypes2.default.func, // 兼容 0.x onBeforeChange
68857 children: _propTypes2.default.any,
68858 /**
68859 * 自定义传入的class
68860 */
68861 style: _propTypes2.default.object,
68862 /**
68863 * Side padding when in center mode (px or %); 展示部分为center,pading会产生前后预览
68864 */
68865 centerPadding: _propTypes2.default.string,
68866 /**
68867 * CSS3 Animation Easing,默认‘ease’
68868 */
68869 cssEase: _propTypes2.default.string, // used
68870 edgeFriction: _propTypes2.default.number, // 非无限轮播滑动到边缘时的阻力
68871 /**
68872 * 多图轮播时,点击选中后自动居中
68873 */
68874 focusOnSelect: _propTypes2.default.bool,
68875 pauseOnHover: _propTypes2.default.bool, // 鼠标经过时停止播放
68876 swipe: _propTypes2.default.bool,
68877 swipeToSlide: _propTypes2.default.bool,
68878 touchMove: _propTypes2.default.bool,
68879 touchThreshold: _propTypes2.default.number,
68880 useCSS: _propTypes2.default.bool,
68881 variableWidth: _propTypes2.default.bool, // used
68882 waitForAnimate: _propTypes2.default.bool,
68883 edgeEvent: _propTypes2.default.any,
68884 swipeEvent: _propTypes2.default.any
68885}, _class.defaultProps = {
68886 prefix: 'next-',
68887 animation: 'slide',
68888 arrowSize: 'medium',
68889 arrowPosition: 'inner',
68890 vertical: false,
68891 verticalSwiping: false,
68892 dots: true,
68893 dotsDirection: 'hoz',
68894 arrows: true,
68895 arrowDirection: 'hoz',
68896 infinite: true,
68897 autoplay: false,
68898 autoplaySpeed: 3000,
68899 speed: 600,
68900 adaptiveHeight: false,
68901 centerMode: false,
68902 centerPadding: '50px', // Side padding when in center mode (px or %); 展示部分为center,pading会产生前后预览
68903 cssEase: 'ease',
68904 draggable: true,
68905 edgeFriction: 0.35,
68906 focusOnSelect: false,
68907 defaultActiveIndex: 0,
68908 lazyLoad: false,
68909 pauseOnHover: false,
68910 rtl: false,
68911 slide: 'div',
68912 slideDirection: 'hoz',
68913 slidesToShow: 1,
68914 slidesToScroll: 1,
68915 swipe: true,
68916 swipeToSlide: false, // Allow users to drag or swipe directly to a slide irrespective of slidesToScroll
68917 touchMove: true, // 移动端touch
68918 touchThreshold: 5,
68919 useCSS: true,
68920 variableWidth: false,
68921 waitForAnimate: true,
68922 onChange: function onChange() {},
68923 onBeforeChange: function onBeforeChange() {},
68924 edgeEvent: null,
68925 swipeEvent: null,
68926 nextArrow: null, // nextArrow, prevArrow are react components
68927 prevArrow: null,
68928 style: null,
68929 dotsRender: null,
68930 triggerType: 'click'
68931}, _temp2);
68932Slider.displayName = 'Slider';
68933exports.default = Slider;
68934module.exports = exports['default'];
68935
68936/***/ }),
68937/* 409 */
68938/***/ (function(module, exports, __webpack_require__) {
68939
68940"use strict";
68941
68942
68943exports.__esModule = true;
68944
68945var _extends2 = __webpack_require__(1);
68946
68947var _extends3 = _interopRequireDefault(_extends2);
68948
68949var _classCallCheck2 = __webpack_require__(2);
68950
68951var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
68952
68953var _possibleConstructorReturn2 = __webpack_require__(3);
68954
68955var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
68956
68957var _inherits2 = __webpack_require__(4);
68958
68959var _inherits3 = _interopRequireDefault(_inherits2);
68960
68961var _class, _temp;
68962
68963var _react = __webpack_require__(0);
68964
68965var _react2 = _interopRequireDefault(_react);
68966
68967var _propTypes = __webpack_require__(5);
68968
68969var _propTypes2 = _interopRequireDefault(_propTypes);
68970
68971var _reactLifecyclesCompat = __webpack_require__(10);
68972
68973var _util = __webpack_require__(6);
68974
68975var _eventHandlers = __webpack_require__(410);
68976
68977var _eventHandlers2 = _interopRequireDefault(_eventHandlers);
68978
68979var _helpers = __webpack_require__(411);
68980
68981var _helpers2 = _interopRequireDefault(_helpers);
68982
68983var _arrow = __webpack_require__(412);
68984
68985var _arrow2 = _interopRequireDefault(_arrow);
68986
68987var _track = __webpack_require__(413);
68988
68989var _track2 = _interopRequireDefault(_track);
68990
68991var _dots = __webpack_require__(414);
68992
68993var _dots2 = _interopRequireDefault(_dots);
68994
68995function _interopRequireDefault(obj) {
68996 return obj && obj.__esModule ? obj : { default: obj };
68997}
68998
68999/**
69000 * Slider inner
69001 */
69002
69003var noop = _util.func.noop;
69004var InnerSlider = (_temp = _class = function (_React$Component) {
69005 (0, _inherits3.default)(InnerSlider, _React$Component);
69006
69007 function InnerSlider(props) {
69008 (0, _classCallCheck3.default)(this, InnerSlider);
69009
69010 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
69011
69012 _this.state = {
69013 animating: false,
69014 dragging: false,
69015 autoPlayTimer: null,
69016 currentDirection: 0,
69017 currentLeft: null,
69018 currentSlide: 'activeIndex' in props ? props.activeIndex : props.defaultActiveIndex,
69019 direction: 1,
69020 listWidth: null,
69021 listHeight: null,
69022 slideCount: null,
69023 slideWidth: null,
69024 slideHeight: null,
69025 swipeLeft: null,
69026 touchObject: {
69027 startX: 0,
69028 startY: 0,
69029 curX: 0,
69030 curY: 0
69031 },
69032
69033 lazyLoadedList: [],
69034
69035 // added for react
69036 initialized: false,
69037 edgeDragged: false,
69038 swiped: false, // used by swipeEvent. differentites between touch and swipe.
69039 trackStyle: {},
69040 trackWidth: 0
69041 };
69042
69043 // this.filterProps = Object.assign({}, sliderPropTypes, InnerSlider.propTypes);
69044
69045 _util.func.bindCtx(_this, ['onWindowResized', 'selectHandler', 'changeSlide', 'onInnerSliderEnter', 'onInnerSliderLeave', 'swipeStart', 'swipeMove', 'swipeEnd']);
69046 return _this;
69047 }
69048
69049 InnerSlider.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
69050 var state = {};
69051
69052 var lazyLoad = nextProps.lazyLoad,
69053 children = nextProps.children,
69054 slidesToShow = nextProps.slidesToShow,
69055 activeIndex = nextProps.activeIndex;
69056 var currentSlide = prevState.currentSlide;
69057
69058 var lazyLoadedList = [];
69059
69060 if (children !== prevState.children) {
69061 state.children = children;
69062 }
69063
69064 if (lazyLoad) {
69065 for (var i = 0, j = _react2.default.Children.count(children); i < j; i++) {
69066 if (i >= currentSlide && i < currentSlide + slidesToShow) {
69067 lazyLoadedList.push(i);
69068
69069 var pre = i - 1 < 0 ? j - 1 : i - 1;
69070 var next = i + 1 >= j ? 0 : i + 1;
69071
69072 lazyLoadedList.push(pre);
69073 lazyLoadedList.push(next);
69074 }
69075 }
69076
69077 if (prevState.lazyLoadedList.length === 0) {
69078 state.lazyLoadedList = lazyLoadedList;
69079 }
69080 }
69081
69082 return state;
69083 };
69084
69085 InnerSlider.prototype.componentDidMount = function componentDidMount() {
69086 this.hasMounted = true;
69087
69088 // TODO Hack for autoplay -- Inspect Later
69089 this.initialize(this.props);
69090 this.adaptHeight();
69091
69092 if (this.props.activeIndex) {
69093 this.slickGoTo(this.props.activeIndex);
69094 }
69095
69096 /* istanbul ignore if */
69097 if (window) {
69098 // To support server-side rendering
69099 _util.events.on(window, 'resize', this.onWindowResized);
69100 }
69101 };
69102
69103 InnerSlider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
69104 if (prevProps.activeIndex !== this.props.activeIndex) {
69105 this.slickGoTo(this.props.activeIndex);
69106 } else if (prevState.currentSlide >= this.props.children.length) {
69107 this.update(this.props);
69108 this.changeSlide({
69109 message: 'index',
69110 index: this.props.children.length - this.props.slidesToShow,
69111 currentSlide: this.state.currentSlide
69112 });
69113 } else {
69114 var update = !_util.obj.shallowEqual(prevProps, this.props);
69115 if (update) {
69116 this.update(this.props);
69117 }
69118 }
69119
69120 this.adaptHeight();
69121 };
69122
69123 InnerSlider.prototype.componentWillUnmount = function componentWillUnmount() {
69124 if (this.animationEndCallback) {
69125 clearTimeout(this.animationEndCallback);
69126 }
69127
69128 _util.events.off(window, 'resize', this.onWindowResized);
69129
69130 if (this.state.autoPlayTimer) {
69131 clearInterval(this.state.autoPlayTimer);
69132 }
69133 };
69134
69135 InnerSlider.prototype.onWindowResized = function onWindowResized() {
69136 this.update(this.props);
69137 // animating state should be cleared while resizing, otherwise autoplay stops working
69138 this.setState({ animating: false });
69139 clearTimeout(this.animationEndCallback);
69140 delete this.animationEndCallback;
69141 };
69142
69143 InnerSlider.prototype.slickGoTo = function slickGoTo(slide) {
69144 typeof slide === 'number' && this.changeSlide({
69145 message: 'index',
69146 index: slide,
69147 currentSlide: this.state.currentSlide
69148 });
69149 };
69150
69151 InnerSlider.prototype.onEnterArrow = function onEnterArrow(msg) {
69152 this.arrowHoverHandler(msg);
69153 };
69154
69155 InnerSlider.prototype.onLeaveArrow = function onLeaveArrow() {
69156 this.arrowHoverHandler();
69157 };
69158
69159 InnerSlider.prototype._instanceRefHandler = function _instanceRefHandler(attr, ref) {
69160 this[attr] = ref;
69161 };
69162
69163 InnerSlider.prototype.render = function render() {
69164 var _props = this.props,
69165 prefix = _props.prefix,
69166 animation = _props.animation,
69167 arrows = _props.arrows,
69168 arrowSize = _props.arrowSize,
69169 arrowPosition = _props.arrowPosition,
69170 arrowDirection = _props.arrowDirection,
69171 dots = _props.dots,
69172 dotsClass = _props.dotsClass,
69173 cssEase = _props.cssEase,
69174 speed = _props.speed,
69175 infinite = _props.infinite,
69176 centerMode = _props.centerMode,
69177 centerPadding = _props.centerPadding,
69178 lazyLoad = _props.lazyLoad,
69179 dotsDirection = _props.dotsDirection,
69180 rtl = _props.rtl,
69181 slidesToShow = _props.slidesToShow,
69182 slidesToScroll = _props.slidesToScroll,
69183 variableWidth = _props.variableWidth,
69184 vertical = _props.vertical,
69185 verticalSwiping = _props.verticalSwiping,
69186 focusOnSelect = _props.focusOnSelect,
69187 children = _props.children,
69188 dotsRender = _props.dotsRender,
69189 triggerType = _props.triggerType;
69190 var _state = this.state,
69191 currentSlide = _state.currentSlide,
69192 lazyLoadedList = _state.lazyLoadedList,
69193 slideCount = _state.slideCount,
69194 slideWidth = _state.slideWidth,
69195 slideHeight = _state.slideHeight,
69196 trackStyle = _state.trackStyle,
69197 listHeight = _state.listHeight,
69198 dragging = _state.dragging;
69199
69200 // TODO 需要精简一下
69201
69202 var trackProps = {
69203 prefix: prefix,
69204 animation: animation,
69205 cssEase: cssEase,
69206 speed: speed,
69207 infinite: infinite,
69208 centerMode: centerMode,
69209 focusOnSelect: focusOnSelect ? this.selectHandler : null,
69210 currentSlide: currentSlide,
69211 lazyLoad: lazyLoad,
69212 lazyLoadedList: lazyLoadedList,
69213 rtl: rtl,
69214 slideWidth: slideWidth,
69215 slideHeight: slideHeight,
69216 slidesToShow: slidesToShow,
69217 slidesToScroll: slidesToScroll,
69218 slideCount: slideCount,
69219 trackStyle: trackStyle,
69220 variableWidth: variableWidth,
69221 vertical: vertical,
69222 verticalSwiping: verticalSwiping,
69223 triggerType: triggerType
69224 // clickHandler: this.changeSlide, unused
69225 };
69226
69227 var dotsEle = void 0;
69228
69229 if (dots === true && slideCount > slidesToShow) {
69230 var dotProps = {
69231 prefix: prefix,
69232 rtl: rtl,
69233 dotsClass: dotsClass,
69234 slideCount: slideCount,
69235 slidesToShow: slidesToShow,
69236 currentSlide: currentSlide,
69237 slidesToScroll: slidesToScroll,
69238 dotsDirection: dotsDirection,
69239 changeSlide: this.changeSlide,
69240 dotsRender: dotsRender,
69241 triggerType: triggerType
69242 };
69243
69244 dotsEle = _react2.default.createElement(_dots2.default, dotProps);
69245 }
69246
69247 var prevArrow = void 0,
69248 nextArrow = void 0;
69249
69250 var arrowProps = {
69251 prefix: prefix,
69252 rtl: rtl,
69253 arrowSize: arrowSize,
69254 arrowPosition: arrowPosition,
69255 arrowDirection: arrowDirection,
69256 infinite: infinite,
69257 centerMode: centerMode,
69258 currentSlide: currentSlide,
69259 slideCount: slideCount,
69260 slidesToShow: slidesToShow,
69261 clickHandler: this.changeSlide
69262 };
69263
69264 if (arrows) {
69265 prevArrow = _react2.default.createElement(_arrow2.default, (0, _extends3.default)({}, arrowProps, {
69266 type: 'prev',
69267 'aria-label': 'Previous',
69268 ref: this._instanceRefHandler.bind(this, 'pArrow'),
69269 onMouseEnter: animation ? this.onEnterArrow.bind(this, 'prev') : noop,
69270 onMouseLeave: animation ? this.onLeaveArrow.bind(this, 'prev') : noop
69271 }), this.props.prevArrow);
69272
69273 nextArrow = _react2.default.createElement(_arrow2.default, (0, _extends3.default)({}, arrowProps, {
69274 type: 'next',
69275 'aria-label': 'Next',
69276 ref: this._instanceRefHandler.bind(this, 'nArrow'),
69277 onMouseEnter: animation ? this.onEnterArrow.bind(this, 'next') : noop,
69278 onMouseLeave: animation ? this.onLeaveArrow.bind(this, 'next') : noop
69279 }), this.props.nextArrow);
69280 }
69281
69282 var verticalHeightStyle = vertical ? {
69283 height: listHeight
69284 } : null;
69285
69286 var centerPaddingStyle = void 0;
69287 if (centerMode) {
69288 centerPaddingStyle = vertical ? { padding: centerPadding + ' 0px' } : { padding: '0px ' + centerPadding };
69289 }
69290
69291 return _react2.default.createElement('div', {
69292 className: prefix + 'slick-container ' + prefix + 'slick-initialized',
69293 onMouseEnter: this.onInnerSliderEnter,
69294 onMouseLeave: this.onInnerSliderLeave
69295 }, _react2.default.createElement('div', {
69296 ref: this._instanceRefHandler.bind(this, 'list'),
69297 className: prefix + 'slick-list',
69298 style: (0, _extends3.default)({}, verticalHeightStyle, centerPaddingStyle),
69299 onMouseDown: this.swipeStart,
69300 onMouseUp: this.swipeEnd,
69301 onTouchStart: this.swipeStart,
69302 onTouchEnd: this.swipeEnd,
69303 onMouseMove: dragging ? this.swipeMove : null,
69304 onMouseLeave: dragging ? this.swipeEnd : null,
69305 onTouchMove: dragging ? this.swipeMove : null,
69306 onTouchCancel: dragging ? this.swipeEnd : null
69307 }, _react2.default.createElement(_track2.default, (0, _extends3.default)({ ref: this._instanceRefHandler.bind(this, 'track') }, trackProps), children)), prevArrow, nextArrow, dotsEle);
69308 };
69309
69310 return InnerSlider;
69311}(_react2.default.Component), _class.propTypes = {
69312 prefix: _propTypes2.default.string,
69313 animation: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.bool]),
69314 arrows: _propTypes2.default.bool,
69315 arrowSize: _propTypes2.default.oneOf(['medium', 'large']),
69316 arrowPosition: _propTypes2.default.oneOf(['inner', 'outer']),
69317 arrowDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
69318 centerPadding: _propTypes2.default.any,
69319 children: _propTypes2.default.any,
69320 centerMode: _propTypes2.default.bool,
69321 dots: _propTypes2.default.bool,
69322 dotsDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
69323 dotsClass: _propTypes2.default.string,
69324 focusOnSelect: _propTypes2.default.bool,
69325 cssEase: _propTypes2.default.string,
69326 speed: _propTypes2.default.number,
69327 infinite: _propTypes2.default.bool,
69328 defaultActiveIndex: _propTypes2.default.number,
69329 rtl: _propTypes2.default.bool,
69330 slidesToShow: _propTypes2.default.number,
69331 lazyLoad: _propTypes2.default.bool,
69332 activeIndex: _propTypes2.default.number,
69333 slidesToScroll: _propTypes2.default.number,
69334 variableWidth: _propTypes2.default.bool,
69335 vertical: _propTypes2.default.bool,
69336 verticalSwiping: _propTypes2.default.bool,
69337 prevArrow: _propTypes2.default.element,
69338 nextArrow: _propTypes2.default.element,
69339 dotsRender: _propTypes2.default.func,
69340 triggerType: _propTypes2.default.string
69341}, _class.defaultProps = {
69342 prefix: 'next-',
69343 arrowDirection: 'hoz',
69344 triggerType: 'click'
69345}, _temp);
69346
69347// extend prototype
69348
69349InnerSlider.displayName = 'InnerSlider';
69350(0, _extends3.default)(InnerSlider.prototype, _helpers2.default);
69351(0, _extends3.default)(InnerSlider.prototype, _eventHandlers2.default);
69352
69353exports.default = (0, _reactLifecyclesCompat.polyfill)(InnerSlider);
69354module.exports = exports['default'];
69355
69356/***/ }),
69357/* 410 */
69358/***/ (function(module, exports, __webpack_require__) {
69359
69360"use strict";
69361
69362
69363exports.__esModule = true;
69364
69365var _extends2 = __webpack_require__(1);
69366
69367var _extends3 = _interopRequireDefault(_extends2);
69368
69369var _reactDom = __webpack_require__(12);
69370
69371var _trackHelper = __webpack_require__(180);
69372
69373function _interopRequireDefault(obj) {
69374 return obj && obj.__esModule ? obj : { default: obj };
69375}
69376
69377/* istanbul ignore next */
69378var EventHandlers = {
69379 // Event handler for previous and next
69380 changeSlide: function changeSlide(options) {
69381 var slideOffset = void 0,
69382 targetSlide = void 0;
69383 var unevenOffset = this.state.slideCount % this.props.slidesToScroll !== 0;
69384 var indexOffset = unevenOffset ? 0 : (this.state.slideCount - this.state.currentSlide) % this.props.slidesToScroll;
69385
69386 if (options.message === 'previous') {
69387 slideOffset = indexOffset === 0 ? this.props.slidesToScroll : this.props.slidesToShow - indexOffset;
69388 targetSlide = this.state.currentSlide - slideOffset;
69389 } else if (options.message === 'next') {
69390 slideOffset = indexOffset === 0 ? this.props.slidesToScroll : indexOffset;
69391 targetSlide = this.state.currentSlide + slideOffset;
69392 } else if (options.message === 'dots' || options.message === 'children') {
69393 // Click on dots
69394 targetSlide = options.index * options.slidesToScroll;
69395 if (targetSlide === options.currentSlide) {
69396 return;
69397 }
69398 } else if (options.message === 'index') {
69399 targetSlide = options.index;
69400 if (targetSlide === options.currentSlide) {
69401 return;
69402 }
69403 }
69404 this.slideHandler(targetSlide);
69405 },
69406
69407 // Accessiblity handler for previous and next
69408 keyHandler: function keyHandler(e) {
69409 //Dont slide if the cursor is inside the form fields and arrow keys are pressed
69410 if (!e.target.tagName.match('TEXTAREA|INPUT|SELECT')) {
69411 if (e.keyCode === 37 && this.props.accessibility === true) {
69412 this.changeSlide({
69413 message: this.props.rtl === true ? 'next' : 'previous'
69414 });
69415 } else if (e.keyCode === 39 && this.props.accessibility === true) {
69416 this.changeSlide({
69417 message: this.props.rtl === true ? 'previous' : 'next'
69418 });
69419 }
69420 }
69421 },
69422
69423 // Focus on selecting a slide (click handler on track)
69424 selectHandler: function selectHandler(options) {
69425 this.changeSlide(options);
69426 },
69427 swipeStart: function swipeStart(e) {
69428 if (this.props.swipe === false || 'ontouchend' in document && this.props.swipe === false) {
69429 return;
69430 } else if (this.props.draggable === false && e.type.indexOf('mouse') !== -1) {
69431 return;
69432 }
69433 var posX = e.touches !== undefined ? e.touches[0].pageX : e.clientX;
69434 var posY = e.touches !== undefined ? e.touches[0].pageY : e.clientY;
69435 this.setState({
69436 dragging: true,
69437 touchObject: {
69438 startX: posX,
69439 startY: posY,
69440 curX: posX,
69441 curY: posY
69442 }
69443 });
69444 },
69445 swipeMove: function swipeMove(e) {
69446 if (!this.state.dragging) {
69447 return;
69448 }
69449 if (this.state.animating) {
69450 return;
69451 }
69452 var touchObject = this.state.touchObject;
69453
69454 var curLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69455 slideIndex: this.state.currentSlide,
69456 trackRef: this.refs.track
69457 }, this.props, this.state));
69458
69459 touchObject.curX = e.touches ? e.touches[0].pageX : e.clientX;
69460 touchObject.curY = e.touches ? e.touches[0].pageY : e.clientY;
69461 touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curX - touchObject.startX, 2)));
69462
69463 var positionOffset = (this.props.rtl === false ? 1 : -1) * (touchObject.curX > touchObject.startX ? 1 : -1);
69464
69465 if (this.props.verticalSwiping === true) {
69466 touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(touchObject.curY - touchObject.startY, 2)));
69467 positionOffset = touchObject.curY > touchObject.startY ? 1 : -1;
69468 }
69469
69470 var currentSlide = this.state.currentSlide;
69471 var dotCount = Math.ceil(this.state.slideCount / this.props.slidesToScroll);
69472 var swipeDirection = this.swipeDirection(this.state.touchObject);
69473 var touchSwipeLength = touchObject.swipeLength;
69474
69475 if (this.props.infinite === false) {
69476 if (currentSlide === 0 && swipeDirection === 'right' || currentSlide + 1 >= dotCount && swipeDirection === 'left') {
69477 touchSwipeLength = touchObject.swipeLength * this.props.edgeFriction;
69478
69479 if (this.state.edgeDragged === false && this.props.edgeEvent) {
69480 this.props.edgeEvent(swipeDirection);
69481 this.setState({ edgeDragged: true });
69482 }
69483 }
69484 }
69485
69486 if (this.state.swiped === false && this.props.swipeEvent) {
69487 this.props.swipeEvent(swipeDirection);
69488 this.setState({ swiped: true });
69489 }
69490
69491 var swipeLeft = curLeft + touchSwipeLength * positionOffset;
69492 this.setState({
69493 touchObject: touchObject,
69494 swipeLeft: swipeLeft,
69495 trackStyle: (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69496 left: swipeLeft
69497 }, this.props, this.state))
69498 });
69499
69500 if (Math.abs(touchObject.curX - touchObject.startX) < Math.abs(touchObject.curY - touchObject.startY) * 0.8) {
69501 return;
69502 }
69503 if (touchObject.swipeLength > 4) {
69504 e.preventDefault();
69505 }
69506 },
69507 getNavigableIndexes: function getNavigableIndexes() {
69508 var max = void 0;
69509 var breakPoint = 0;
69510 var counter = 0;
69511 var indexes = [];
69512
69513 if (!this.props.infinite) {
69514 max = this.state.slideCount;
69515 } else {
69516 breakPoint = this.props.slidesToShow * -1;
69517 counter = this.props.slidesToShow * -1;
69518 max = this.state.slideCount * 2;
69519 }
69520
69521 while (breakPoint < max) {
69522 indexes.push(breakPoint);
69523 breakPoint = counter + this.props.slidesToScroll;
69524
69525 counter += this.props.slidesToScroll <= this.props.slidesToShow ? this.props.slidesToScroll : this.props.slidesToShow;
69526 }
69527
69528 return indexes;
69529 },
69530 checkNavigable: function checkNavigable(index) {
69531 var navigables = this.getNavigableIndexes();
69532 var prevNavigable = 0;
69533
69534 if (index > navigables[navigables.length - 1]) {
69535 index = navigables[navigables.length - 1];
69536 } else {
69537 for (var n in navigables) {
69538 if (index < navigables[n]) {
69539 index = prevNavigable;
69540 break;
69541 }
69542
69543 prevNavigable = navigables[n];
69544 }
69545 }
69546
69547 return index;
69548 },
69549 getSlideCount: function getSlideCount() {
69550 var _this = this;
69551
69552 var centerOffset = this.props.centerMode ? this.state.slideWidth * Math.floor(this.props.slidesToShow / 2) : 0;
69553 if (this.props.swipeToSlide) {
69554 var swipedSlide = void 0;
69555 var slickList = (0, _reactDom.findDOMNode)(this.list);
69556
69557 var slides = slickList.querySelectorAll(this.props.prefix + 'slick-slide');
69558
69559 Array.from(slides).every(function (slide) {
69560 if (!_this.props.vertical) {
69561 if (slide.offsetLeft - centerOffset + (_this.getWidth(slide) || 0) / 2 > _this.state.swipeLeft * -1) {
69562 swipedSlide = slide;
69563 return false;
69564 }
69565 } else if (slide.offsetTop + (_this.getHeight(slide) || 0) / 2 > _this.state.swipeLeft * -1) {
69566 swipedSlide = slide;
69567 return false;
69568 }
69569
69570 return true;
69571 });
69572 var slidesTraversed = Math.abs(swipedSlide.dataset.index - this.state.currentSlide) || 1;
69573 return slidesTraversed;
69574 } else {
69575 return this.props.slidesToScroll;
69576 }
69577 },
69578 swipeEnd: function swipeEnd(e) {
69579 if (!this.state.dragging) {
69580 if (this.props.swipe) {
69581 e.preventDefault();
69582 }
69583 return;
69584 }
69585 var touchObject = this.state.touchObject;
69586 var minSwipe = this.state.listWidth / this.props.touchThreshold;
69587 var swipeDirection = this.swipeDirection(touchObject);
69588
69589 if (this.props.verticalSwiping) {
69590 minSwipe = this.state.listHeight / this.props.touchThreshold;
69591 }
69592
69593 // reset the state of touch related state variables.
69594 this.setState({
69595 dragging: false,
69596 edgeDragged: false,
69597 swiped: false,
69598 swipeLeft: null,
69599 touchObject: {}
69600 });
69601
69602 if (!touchObject.swipeLength) {
69603 return;
69604 }
69605
69606 if (touchObject.swipeLength > minSwipe) {
69607 e.preventDefault();
69608
69609 var slideCount = void 0;
69610 var newSlide = void 0;
69611
69612 switch (swipeDirection) {
69613 case 'left':
69614 case 'down':
69615 newSlide = this.state.currentSlide + this.getSlideCount();
69616 slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide;
69617 this.setState({ currentDirection: 0 });
69618 break;
69619 case 'right':
69620 case 'up':
69621 newSlide = this.state.currentSlide - this.getSlideCount();
69622 slideCount = this.props.swipeToSlide ? this.checkNavigable(newSlide) : newSlide;
69623 this.setState({ currentDirection: 1 });
69624 break;
69625 default:
69626 slideCount = this.state.currentSlide;
69627 }
69628 this.slideHandler(slideCount);
69629 } else {
69630 // Adjust the track back to it's original position.
69631 var currentLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69632 slideIndex: this.state.currentSlide,
69633 trackRef: this.track
69634 }, this.props, this.state));
69635
69636 this.setState({
69637 trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _extends3.default)({
69638 left: currentLeft
69639 }, this.props, this.state))
69640 });
69641 }
69642 },
69643 onInnerSliderEnter: function onInnerSliderEnter() {
69644 if (this.props.autoplay && this.props.pauseOnHover) {
69645 this.pause();
69646 }
69647 },
69648 onInnerSliderLeave: function onInnerSliderLeave() {
69649 if (this.props.autoplay && this.props.pauseOnHover) {
69650 this.autoPlay();
69651 }
69652 }
69653};
69654
69655exports.default = EventHandlers;
69656module.exports = exports['default'];
69657
69658/***/ }),
69659/* 411 */
69660/***/ (function(module, exports, __webpack_require__) {
69661
69662"use strict";
69663
69664
69665exports.__esModule = true;
69666
69667var _extends2 = __webpack_require__(1);
69668
69669var _extends3 = _interopRequireDefault(_extends2);
69670
69671var _react = __webpack_require__(0);
69672
69673var _react2 = _interopRequireDefault(_react);
69674
69675var _reactDom = __webpack_require__(12);
69676
69677var _reactDom2 = _interopRequireDefault(_reactDom);
69678
69679var _trackHelper = __webpack_require__(180);
69680
69681function _interopRequireDefault(obj) {
69682 return obj && obj.__esModule ? obj : { default: obj };
69683}
69684
69685var helpers = {
69686 initialize: function initialize(props) {
69687 var _this = this;
69688
69689 var slickList = _reactDom2.default.findDOMNode(this.list);
69690 var slideCount = _react2.default.Children.count(props.children);
69691 var listWidth = this.getWidth(slickList) || 0;
69692 var trackWidth = this.getWidth(_reactDom2.default.findDOMNode(this.track)) || 0;
69693 var slideWidth = void 0;
69694
69695 if (!props.vertical) {
69696 var centerPaddingAdj = props.centerMode && parseInt(props.centerPadding) * 2;
69697 slideWidth = (listWidth - centerPaddingAdj) / props.slidesToShow;
69698 } else {
69699 slideWidth = listWidth;
69700 }
69701
69702 var slideHeight = this.getHeight(slickList.querySelector('[data-index="0"]')) || 0;
69703 var listHeight = slideHeight * props.slidesToShow;
69704
69705 var slidesToShow = props.slidesToShow || 1;
69706
69707 var activeIndex = 'activeIndex' in props ? props.activeIndex : props.defaultActiveIndex;
69708 var currentSlide = props.rtl ? slideCount - 1 - (slidesToShow - 1) - activeIndex : activeIndex;
69709
69710 this.setState({
69711 slideCount: slideCount,
69712 slideWidth: slideWidth,
69713 listWidth: listWidth,
69714 trackWidth: trackWidth,
69715 currentSlide: currentSlide,
69716 slideHeight: slideHeight,
69717 listHeight: listHeight
69718 }, function () {
69719 var targetLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69720 slideIndex: _this.state.currentSlide,
69721 trackRef: _this.track
69722 }, props, _this.state));
69723 // getCSS function needs previously set state
69724 var trackStyle = (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69725 left: targetLeft
69726 }, props, _this.state));
69727
69728 _this.setState({ trackStyle: trackStyle });
69729
69730 _this.autoPlay(); // once we're set up, trigger the initial autoplay.
69731 });
69732 },
69733 update: function update(props) {
69734 this.initialize(props);
69735 },
69736 getWidth: function getWidth(elem) {
69737 if ('clientWidth' in elem) {
69738 return elem.clientWidth;
69739 }
69740 return elem && elem.getBoundingClientRect().width;
69741 },
69742 getHeight: function getHeight(elem) {
69743 if ('clientHeight' in elem) {
69744 return elem.clientHeight;
69745 }
69746 return elem && elem.getBoundingClientRect().height;
69747 },
69748 adaptHeight: function adaptHeight() {
69749 if (this.props.adaptiveHeight) {
69750 var selector = '[data-index="' + this.state.currentSlide + '"]';
69751 if (this.list) {
69752 var slickList = _reactDom2.default.findDOMNode(this.list);
69753 var listHeight = slickList.querySelector(selector).offsetHeight;
69754 slickList.style.height = listHeight + 'px';
69755 }
69756 }
69757 },
69758 canGoNext: function canGoNext(opts) {
69759 var canGo = true;
69760 if (!opts.infinite) {
69761 if (opts.centerMode) {
69762 if (opts.currentSlide >= opts.slideCount - 1) {
69763 canGo = false;
69764 }
69765 } else if (opts.slideCount <= opts.slidesToShow || opts.currentSlide >= opts.slideCount - opts.slidesToShow) {
69766 // check if all slides are shown in slider
69767 canGo = false;
69768 }
69769 }
69770 return canGo;
69771 },
69772 slideHandler: function slideHandler(index) {
69773 var _this2 = this;
69774
69775 var rtl = this.props.rtl;
69776
69777 // Functionality of animateSlide and postSlide is merged into this function
69778
69779 var targetSlide = void 0,
69780 currentSlide = void 0;
69781 var callback = void 0;
69782
69783 if (this.props.waitForAnimate && this.state.animating) {
69784 return;
69785 }
69786
69787 if (this.props.animation === 'fade') {
69788 currentSlide = this.state.currentSlide;
69789
69790 // don't change slide if it's not infinite and current slide is the first or last slide'
69791 if (this.props.infinite === false && (index < 0 || index >= this.state.slideCount)) {
69792 return;
69793 }
69794
69795 // Shifting targetSlide back into the range
69796 if (index < 0) {
69797 targetSlide = index + this.state.slideCount;
69798 } else if (index >= this.state.slideCount) {
69799 targetSlide = index - this.state.slideCount;
69800 } else {
69801 targetSlide = index;
69802 }
69803
69804 if (this.props.lazyLoad && this.state.lazyLoadedList.indexOf(targetSlide) < 0) {
69805 this.setState({
69806 lazyLoadedList: this.state.lazyLoadedList.concat(targetSlide)
69807 });
69808 }
69809
69810 callback = function callback() {
69811 _this2.setState({
69812 animating: false
69813 });
69814 _this2.props.onChange(targetSlide);
69815 delete _this2.animationEndCallback;
69816 };
69817
69818 this.props.onBeforeChange(this.state.currentSlide, targetSlide);
69819
69820 this.setState({
69821 animating: true,
69822 currentSlide: targetSlide
69823 }, function () {
69824 this.animationEndCallback = setTimeout(callback, this.props.speed + 20);
69825 });
69826
69827 this.autoPlay();
69828 return;
69829 }
69830
69831 targetSlide = index;
69832
69833 if (rtl) {
69834 if (targetSlide < 0) {
69835 if (this.props.infinite === false) {
69836 currentSlide = 0;
69837 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69838 if (targetSlide + this.props.slidesToScroll <= 0) {
69839 currentSlide = this.state.slideCount + targetSlide;
69840 targetSlide = this.state.slideCount - this.props.slidesToScroll;
69841 } else {
69842 currentSlide = targetSlide = 0;
69843 }
69844 } else {
69845 // this.state.slideCount % this.props.slidesToScroll
69846 currentSlide = this.state.slideCount + targetSlide;
69847 }
69848 } else if (targetSlide >= this.state.slideCount) {
69849 if (this.props.infinite === false) {
69850 currentSlide = this.state.slideCount - this.props.slidesToShow;
69851 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69852 currentSlide = 0;
69853 } else {
69854 currentSlide = targetSlide - this.state.slideCount;
69855 }
69856 } else {
69857 currentSlide = targetSlide;
69858 }
69859 } else if (targetSlide < 0) {
69860 if (this.props.infinite === false) {
69861 currentSlide = 0;
69862 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69863 currentSlide = this.state.slideCount - this.state.slideCount % this.props.slidesToScroll;
69864 } else {
69865 currentSlide = this.state.slideCount + targetSlide;
69866 }
69867 } else if (targetSlide >= this.state.slideCount) {
69868 if (this.props.infinite === false) {
69869 currentSlide = this.state.slideCount - this.props.slidesToShow;
69870 } else if (this.state.slideCount % this.props.slidesToScroll !== 0) {
69871 currentSlide = 0;
69872 } else {
69873 currentSlide = targetSlide - this.state.slideCount;
69874 }
69875 } else {
69876 currentSlide = targetSlide;
69877 }
69878
69879 var targetLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69880 slideIndex: targetSlide,
69881 trackRef: this.track
69882 }, this.props, this.state));
69883
69884 var currentLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69885 slideIndex: currentSlide,
69886 trackRef: this.track
69887 }, this.props, this.state));
69888
69889 if (this.props.infinite === false) {
69890 targetLeft = currentLeft;
69891 }
69892
69893 if (this.props.lazyLoad) {
69894 var loaded = true;
69895 var slidesToLoad = [];
69896 var slidesLen = this.state.slideCount;
69897
69898 var sliderIndex = targetSlide < 0 ? slidesLen + targetSlide : currentSlide;
69899
69900 for (var i = sliderIndex; i < sliderIndex + this.props.slidesToShow; i++) {
69901 var k = i;
69902 if (rtl) {
69903 k = i >= slidesLen ? slidesLen * 2 - i - 1 : slidesLen - i - 1;
69904 }
69905
69906 var pre = k - 1 < 0 ? slidesLen - 1 : k - 1;
69907 var next = k + 1 >= slidesLen ? 0 : k + 1;
69908
69909 this.state.lazyLoadedList.indexOf(k) < 0 && slidesToLoad.push(k);
69910 this.state.lazyLoadedList.indexOf(pre) < 0 && slidesToLoad.push(pre);
69911 this.state.lazyLoadedList.indexOf(next) < 0 && slidesToLoad.push(next);
69912 }
69913
69914 slidesToLoad.forEach(function (i) {
69915 if (_this2.state.lazyLoadedList.indexOf(i) < 0) {
69916 loaded = false;
69917 }
69918 });
69919
69920 if (!loaded) {
69921 this.setState({
69922 lazyLoadedList: this.state.lazyLoadedList.concat(slidesToLoad)
69923 });
69924 }
69925 }
69926
69927 this.props.onBeforeChange(this.state.currentSlide, currentSlide);
69928
69929 // Slide Transition happens here.
69930 // animated transition happens to target Slide and
69931 // non - animated transition happens to current Slide
69932 // If CSS transitions are false, directly go the current slide.
69933 /* istanbul ignore if */
69934 if (this.props.useCSS === false) {
69935 this.setState({
69936 currentSlide: currentSlide,
69937 trackStyle: (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69938 left: currentLeft
69939 }, this.props, this.state))
69940 }, function () {
69941 _this2.props.onChange(currentSlide);
69942 });
69943 } else {
69944 var nextStateChanges = {
69945 animating: false,
69946 currentSlide: currentSlide,
69947 trackStyle: (0, _trackHelper.getTrackCSS)((0, _extends3.default)({
69948 left: currentLeft
69949 }, this.props, this.state)),
69950 swipeLeft: null
69951 };
69952
69953 callback = function callback() {
69954 _this2.setState(nextStateChanges);
69955 _this2.props.onChange(currentSlide);
69956 delete _this2.animationEndCallback;
69957 };
69958
69959 this.setState({
69960 animating: true,
69961 currentSlide: currentSlide,
69962 trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _extends3.default)({
69963 left: targetLeft
69964 }, this.props, this.state))
69965 }, function () {
69966 this.animationEndCallback = setTimeout(callback, this.props.speed + 20);
69967 });
69968 }
69969
69970 this.autoPlay();
69971 },
69972
69973 // 鼠标悬浮在 arrow 上时作出动画反馈
69974 arrowHoverHandler: function arrowHoverHandler(msg) {
69975 var offset = 30; // slide 的位置偏移量
69976 var targetLeft = (0, _trackHelper.getTrackLeft)((0, _extends3.default)({
69977 slideIndex: this.state.currentSlide,
69978 trackRef: this.track
69979 }, this.props, this.state));
69980
69981 var left = void 0;
69982 /* istanbul ignore next */
69983 if (msg === 'next') {
69984 left = targetLeft - offset;
69985 } else if (msg === 'prev') {
69986 left = targetLeft + offset;
69987 } else {
69988 left = targetLeft;
69989 }
69990
69991 this.setState({
69992 trackStyle: (0, _trackHelper.getTrackAnimateCSS)((0, _extends3.default)({
69993 left: left
69994 }, this.props, this.state))
69995 });
69996 },
69997 swipeDirection: function swipeDirection(touchObject) {
69998 /* istanbul ignore next */
69999 var swipeAngle = void 0;
70000 /* istanbul ignore next */
70001 var xDist = touchObject.startX - touchObject.curX;
70002 /* istanbul ignore next */
70003 var yDist = touchObject.startY - touchObject.curY;
70004 /* istanbul ignore next */
70005 var r = Math.atan2(yDist, xDist);
70006 /* istanbul ignore next */
70007 swipeAngle = Math.round(r * 180 / Math.PI);
70008 /* istanbul ignore next */
70009 if (swipeAngle < 0) {
70010 swipeAngle = 360 - Math.abs(swipeAngle);
70011 }
70012 /* istanbul ignore next */
70013 if (swipeAngle <= 45 && swipeAngle >= 0 || swipeAngle <= 360 && swipeAngle >= 315) {
70014 return this.props.rtl === false ? 'left' : 'right';
70015 }
70016 /* istanbul ignore next */
70017 if (swipeAngle >= 135 && swipeAngle <= 225) {
70018 return this.props.rtl === false ? 'right' : 'left';
70019 }
70020 /* istanbul ignore next */
70021 if (this.props.verticalSwiping === true) {
70022 if (swipeAngle >= 35 && swipeAngle <= 135) {
70023 return 'down';
70024 } else {
70025 return 'up';
70026 }
70027 }
70028
70029 /* istanbul ignore next */
70030 return 'vertical';
70031 },
70032 play: function play() {
70033 var nextIndex = void 0;
70034 if (!this.hasMounted) {
70035 /* istanbul ignore next */
70036 return false;
70037 }
70038 if (this.props.rtl) {
70039 nextIndex = this.state.currentSlide - this.props.slidesToScroll;
70040 } else if (this.canGoNext((0, _extends3.default)({}, this.props, this.state))) {
70041 nextIndex = this.state.currentSlide + this.props.slidesToScroll;
70042 } else {
70043 return false;
70044 }
70045 this.slideHandler(nextIndex);
70046 },
70047 autoPlay: function autoPlay() {
70048 if (this.state.autoPlayTimer) {
70049 clearTimeout(this.state.autoPlayTimer);
70050 }
70051 if (this.props.autoplay) {
70052 this.setState({
70053 autoPlayTimer: setTimeout(this.play.bind(this), this.props.autoplaySpeed)
70054 });
70055 }
70056 },
70057 pause: function pause() {
70058 /* istanbul ignore next */
70059 if (this.state.autoPlayTimer) {
70060 clearTimeout(this.state.autoPlayTimer);
70061 this.setState({
70062 autoPlayTimer: null
70063 });
70064 }
70065 }
70066};
70067
70068exports.default = helpers;
70069module.exports = exports['default'];
70070
70071/***/ }),
70072/* 412 */
70073/***/ (function(module, exports, __webpack_require__) {
70074
70075"use strict";
70076
70077
70078exports.__esModule = true;
70079exports.default = undefined;
70080
70081var _extends2 = __webpack_require__(1);
70082
70083var _extends3 = _interopRequireDefault(_extends2);
70084
70085var _classCallCheck2 = __webpack_require__(2);
70086
70087var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
70088
70089var _possibleConstructorReturn2 = __webpack_require__(3);
70090
70091var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
70092
70093var _inherits2 = __webpack_require__(4);
70094
70095var _inherits3 = _interopRequireDefault(_inherits2);
70096
70097var _class, _temp;
70098
70099var _react = __webpack_require__(0);
70100
70101var _react2 = _interopRequireDefault(_react);
70102
70103var _propTypes = __webpack_require__(5);
70104
70105var _propTypes2 = _interopRequireDefault(_propTypes);
70106
70107var _classnames = __webpack_require__(7);
70108
70109var _classnames2 = _interopRequireDefault(_classnames);
70110
70111var _icon = __webpack_require__(11);
70112
70113var _icon2 = _interopRequireDefault(_icon);
70114
70115var _util = __webpack_require__(6);
70116
70117function _interopRequireDefault(obj) {
70118 return obj && obj.__esModule ? obj : { default: obj };
70119}
70120
70121/**
70122 * slider arrow
70123 * 左右控制箭头
70124 */
70125
70126var noop = _util.func.noop;
70127var Arrow = (_temp = _class = function (_Component) {
70128 (0, _inherits3.default)(Arrow, _Component);
70129
70130 function Arrow() {
70131 (0, _classCallCheck3.default)(this, Arrow);
70132 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
70133 }
70134
70135 Arrow.isDisabled = function isDisabled(props) {
70136 var infinite = props.infinite,
70137 type = props.type,
70138 centerMode = props.centerMode,
70139 currentSlide = props.currentSlide,
70140 slideCount = props.slideCount,
70141 slidesToShow = props.slidesToShow;
70142
70143 if (infinite) {
70144 return false;
70145 }
70146
70147 // 下一个 index 大于总数??
70148 // if (slideCount <= slidesToShow) {
70149 // return true;
70150 // }
70151
70152 // 向前箭头:当前是第 0 个
70153 if (type === 'prev') {
70154 return currentSlide <= 0;
70155 }
70156
70157 if (centerMode && currentSlide >= slideCount - 1) {
70158 // 向后箭头:居中模式,当前 index 大于最大 index
70159 return true;
70160 } else if (currentSlide >= slideCount - slidesToShow) {
70161 // 向后箭头:普通模式,当前 index 大于 总数 - 下一个 index ???
70162 return true;
70163 }
70164
70165 return false;
70166 };
70167
70168 Arrow.prototype.handleClick = function handleClick(options, e) {
70169 e && e.preventDefault();
70170
70171 // TODO hack
70172 if (options.message === 'prev') {
70173 options.message = 'previous';
70174 }
70175
70176 this.props.clickHandler(options, e);
70177 };
70178
70179 Arrow.prototype.render = function render() {
70180 var _props = this.props,
70181 prefix = _props.prefix,
70182 type = _props.type,
70183 arrowSize = _props.arrowSize,
70184 arrowPosition = _props.arrowPosition,
70185 arrowDirection = _props.arrowDirection,
70186 onMouseEnter = _props.onMouseEnter,
70187 onMouseLeave = _props.onMouseLeave,
70188 children = _props.children;
70189
70190 var others = _util.obj.pickOthers(Arrow.propTypes, this.props);
70191 var iconType = Arrow.ARROW_ICON_TYPES[arrowDirection][type];
70192 var disabled = Arrow.isDisabled(this.props);
70193
70194 var arrowClazz = (0, _classnames2.default)([prefix + 'slick-arrow', prefix + 'slick-' + type, arrowPosition, arrowSize, arrowDirection], { disabled: disabled });
70195
70196 var arrowProps = (0, _extends3.default)({}, others, {
70197 key: type,
70198 'data-role': 'none',
70199 className: arrowClazz,
70200 style: { display: 'block' },
70201 onClick: disabled ? null : this.handleClick.bind(this, { message: type }),
70202 onMouseEnter: disabled ? null : onMouseEnter,
70203 onMouseLeave: disabled ? null : onMouseLeave
70204 });
70205
70206 if (children) {
70207 return _react2.default.cloneElement(_react2.default.Children.only(children), arrowProps);
70208 } else {
70209 return _react2.default.createElement('button', (0, _extends3.default)({ type: 'button', role: 'button' }, arrowProps), _react2.default.createElement(_icon2.default, { type: iconType }));
70210 }
70211 };
70212
70213 return Arrow;
70214}(_react.Component), _class.propTypes = {
70215 prefix: _propTypes2.default.string,
70216 rtl: _propTypes2.default.bool,
70217 type: _propTypes2.default.oneOf(['prev', 'next']).isRequired,
70218 centerMode: _propTypes2.default.bool,
70219 currentSlide: _propTypes2.default.number,
70220 infinite: _propTypes2.default.bool,
70221 clickHandler: _propTypes2.default.func,
70222 slideCount: _propTypes2.default.number,
70223 slidesToShow: _propTypes2.default.number,
70224 arrow: _propTypes2.default.element,
70225 arrowSize: _propTypes2.default.string,
70226 arrowPosition: _propTypes2.default.string,
70227 arrowDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
70228 onMouseEnter: _propTypes2.default.func,
70229 onMouseLeave: _propTypes2.default.func,
70230 children: _propTypes2.default.node
70231}, _class.defaultProps = {
70232 onMouseEnter: noop,
70233 onMouseLeave: noop
70234}, _class.ARROW_ICON_TYPES = {
70235 hoz: { prev: 'arrow-left', next: 'arrow-right' },
70236 ver: { prev: 'arrow-up', next: 'arrow-down' }
70237}, _temp);
70238Arrow.displayName = 'Arrow';
70239exports.default = Arrow;
70240module.exports = exports['default'];
70241
70242/***/ }),
70243/* 413 */
70244/***/ (function(module, exports, __webpack_require__) {
70245
70246"use strict";
70247
70248
70249exports.__esModule = true;
70250exports.default = undefined;
70251
70252var _classCallCheck2 = __webpack_require__(2);
70253
70254var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
70255
70256var _possibleConstructorReturn2 = __webpack_require__(3);
70257
70258var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
70259
70260var _inherits2 = __webpack_require__(4);
70261
70262var _inherits3 = _interopRequireDefault(_inherits2);
70263
70264var _extends2 = __webpack_require__(1);
70265
70266var _extends3 = _interopRequireDefault(_extends2);
70267
70268var _class, _temp;
70269
70270var _react = __webpack_require__(0);
70271
70272var _react2 = _interopRequireDefault(_react);
70273
70274var _propTypes = __webpack_require__(5);
70275
70276var _propTypes2 = _interopRequireDefault(_propTypes);
70277
70278var _classnames = __webpack_require__(7);
70279
70280var _classnames2 = _interopRequireDefault(_classnames);
70281
70282var _util = __webpack_require__(6);
70283
70284function _interopRequireDefault(obj) {
70285 return obj && obj.__esModule ? obj : { default: obj };
70286}
70287
70288/**
70289 * Slider Track
70290 * 内容轨道
70291 */
70292
70293var getSlideClasses = function getSlideClasses(specProps) {
70294 var _classNames;
70295
70296 var prefix = specProps.prefix;
70297 var slickActive = void 0,
70298 slickCenter = void 0;
70299 var centerOffset = void 0,
70300 index = void 0;
70301
70302 if (specProps.rtl) {
70303 index = specProps.slideCount - 1 - specProps.activeIndex;
70304 } else {
70305 index = specProps.activeIndex;
70306 }
70307
70308 var slickCloned = index < 0 || index >= specProps.slideCount;
70309 if (specProps.centerMode) {
70310 centerOffset = Math.floor(specProps.slidesToShow / 2);
70311 slickCenter = (index - specProps.currentSlide) % specProps.slideCount === 0;
70312 if (index > specProps.currentSlide - centerOffset - 1 && index <= specProps.currentSlide + centerOffset) {
70313 slickActive = true;
70314 }
70315 } else {
70316 slickActive = specProps.currentSlide <= index && index < specProps.currentSlide + specProps.slidesToShow;
70317 }
70318
70319 return (0, _classnames2.default)(prefix + 'slick-slide', (_classNames = {}, _classNames[prefix + 'slick-active'] = slickActive, _classNames[prefix + 'slick-center'] = slickCenter, _classNames[prefix + 'slick-cloned'] = slickCloned, _classNames));
70320};
70321
70322var getSlideStyle = function getSlideStyle(specProps) {
70323 var style = {};
70324
70325 if (specProps.variableWidth === undefined || specProps.variableWidth === false) {
70326 style.width = specProps.slideWidth;
70327 }
70328
70329 if (specProps.animation === 'fade') {
70330 style.position = 'relative';
70331
70332 style.opacity = specProps.currentSlide === specProps.activeIndex ? 1 : 0;
70333 style.visibility = specProps.currentSlide >= specProps.activeIndex ? 'visible' : 'hidden';
70334 style.transition = 'opacity ' + specProps.speed + 'ms ' + specProps.cssEase;
70335 style.WebkitTransition = 'opacity ' + specProps.speed + 'ms ' + specProps.cssEase;
70336
70337 if (specProps.vertical) {
70338 style.top = -specProps.activeIndex * specProps.slideHeight;
70339 } else {
70340 style.left = -specProps.activeIndex * specProps.slideWidth;
70341 }
70342 }
70343
70344 if (specProps.vertical) {
70345 style.width = '100%';
70346 }
70347
70348 return style;
70349};
70350
70351var getKey = function getKey(child, fallbackKey) {
70352 // key could be a zero
70353 return child.key === null || child.key === undefined ? fallbackKey : child.key;
70354};
70355
70356var renderSlides = function renderSlides(specProps) {
70357 var key = void 0;
70358 var slides = [];
70359 var preCloneSlides = [];
70360 var postCloneSlides = [];
70361 var count = _react2.default.Children.count(specProps.children);
70362 var child = void 0;
70363
70364 _react2.default.Children.forEach(specProps.children, function (elem, index) {
70365 var childOnClickOptions = {
70366 message: 'children',
70367 index: index,
70368 slidesToScroll: specProps.slidesToScroll,
70369 currentSlide: specProps.currentSlide
70370 };
70371
70372 if (!specProps.lazyLoad | (specProps.lazyLoad && specProps.lazyLoadedList.indexOf(index) >= 0)) {
70373 child = elem;
70374 } else {
70375 child = elem.key ? _react2.default.createElement('div', { key: elem.key }) : _react2.default.createElement('div', null);
70376 }
70377 var childStyle = getSlideStyle((0, _extends3.default)({}, specProps, { activeIndex: index }));
70378 var slickClasses = getSlideClasses((0, _extends3.default)({
70379 activeIndex: index
70380 }, specProps));
70381 var cssClasses = void 0;
70382
70383 if (child.props.className) {
70384 cssClasses = (0, _classnames2.default)(slickClasses, child.props.className);
70385 } else {
70386 cssClasses = slickClasses;
70387 }
70388
70389 var onClick = function onClick(e) {
70390 // only child === elem, it will has .props.onClick;
70391 child.props && child.props.onClick && elem.props.onClick(e);
70392 if (specProps.focusOnSelect) {
70393 specProps.focusOnSelect(childOnClickOptions);
70394 }
70395 };
70396
70397 slides.push(_react2.default.cloneElement(child, {
70398 key: 'original' + getKey(child, index),
70399 'data-index': index,
70400 className: cssClasses,
70401 tabIndex: '-1',
70402 'aria-posinset': index,
70403 'aria-setsize': count,
70404 role: 'listitem',
70405 dir: specProps.rtl ? 'rtl' : 'ltr',
70406 // server-side render depend on elements of their own style
70407 style: !_util.dom.hasDOM ? (0, _extends3.default)({ outline: 'none' }, childStyle, child.props.style) : (0, _extends3.default)({ outline: 'none' }, child.props.style, childStyle),
70408 onClick: onClick
70409 }));
70410
70411 // variableWidth doesn't wrap properly.
70412 if (specProps.infinite && specProps.animation !== 'fade') {
70413 var infiniteCount = specProps.variableWidth ? specProps.slidesToShow + 1 : specProps.slidesToShow;
70414
70415 if (index >= count - infiniteCount) {
70416 key = -(count - index);
70417 preCloneSlides.push(_react2.default.cloneElement(child, {
70418 key: 'precloned' + getKey(child, key),
70419 'data-index': key,
70420 className: cssClasses,
70421 style: (0, _extends3.default)({}, child.props.style, childStyle)
70422 }));
70423 }
70424
70425 if (index < infiniteCount) {
70426 key = count + index;
70427 postCloneSlides.push(_react2.default.cloneElement(child, {
70428 key: 'postcloned' + getKey(child, key),
70429 'data-index': key,
70430 className: cssClasses,
70431 style: (0, _extends3.default)({}, child.props.style, childStyle)
70432 }));
70433 }
70434 }
70435 });
70436 // To support server-side rendering
70437 if (!_util.dom.hasDOM) {
70438 return slides.slice(specProps.currentSlide, specProps.currentSlide + specProps.slidesToShow);
70439 }
70440 if (specProps.rtl) {
70441 return preCloneSlides.concat(slides, postCloneSlides).reverse();
70442 } else {
70443 return preCloneSlides.concat(slides, postCloneSlides);
70444 }
70445};
70446
70447var Track = (_temp = _class = function (_Component) {
70448 (0, _inherits3.default)(Track, _Component);
70449
70450 function Track() {
70451 (0, _classCallCheck3.default)(this, Track);
70452 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
70453 }
70454
70455 Track.prototype.render = function render() {
70456 var slides = renderSlides(this.props);
70457 return _react2.default.createElement('div', {
70458 role: 'list',
70459 className: this.props.prefix + 'slick-track',
70460 style: this.props.trackStyle
70461 }, slides);
70462 };
70463
70464 return Track;
70465}(_react.Component), _class.propTypes = {
70466 prefix: _propTypes2.default.string,
70467 trackStyle: _propTypes2.default.object
70468}, _class.defaultProps = {
70469 prefix: 'next-'
70470}, _temp);
70471Track.displayName = 'Track';
70472exports.default = Track;
70473module.exports = exports['default'];
70474
70475/***/ }),
70476/* 414 */
70477/***/ (function(module, exports, __webpack_require__) {
70478
70479"use strict";
70480
70481
70482exports.__esModule = true;
70483exports.default = undefined;
70484
70485var _extends2 = __webpack_require__(1);
70486
70487var _extends3 = _interopRequireDefault(_extends2);
70488
70489var _classCallCheck2 = __webpack_require__(2);
70490
70491var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
70492
70493var _possibleConstructorReturn2 = __webpack_require__(3);
70494
70495var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
70496
70497var _inherits2 = __webpack_require__(4);
70498
70499var _inherits3 = _interopRequireDefault(_inherits2);
70500
70501var _class, _temp;
70502
70503var _react = __webpack_require__(0);
70504
70505var _react2 = _interopRequireDefault(_react);
70506
70507var _propTypes = __webpack_require__(5);
70508
70509var _propTypes2 = _interopRequireDefault(_propTypes);
70510
70511var _classnames = __webpack_require__(7);
70512
70513var _classnames2 = _interopRequireDefault(_classnames);
70514
70515var _util = __webpack_require__(6);
70516
70517function _interopRequireDefault(obj) {
70518 return obj && obj.__esModule ? obj : { default: obj };
70519}
70520
70521/**
70522 * slider dots
70523 * 导航锚点
70524 */
70525
70526var noop = _util.func.noop;
70527var Dots = (_temp = _class = function (_React$Component) {
70528 (0, _inherits3.default)(Dots, _React$Component);
70529
70530 function Dots() {
70531 (0, _classCallCheck3.default)(this, Dots);
70532 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
70533 }
70534
70535 Dots.prototype.handleChangeSlide = function handleChangeSlide(options, e) {
70536 e.preventDefault();
70537
70538 this.props.changeSlide(options);
70539 };
70540
70541 Dots.prototype.render = function render() {
70542 var _props = this.props,
70543 prefix = _props.prefix,
70544 slideCount = _props.slideCount,
70545 slidesToScroll = _props.slidesToScroll,
70546 currentSlide = _props.currentSlide,
70547 dotsClass = _props.dotsClass,
70548 dotsDirection = _props.dotsDirection,
70549 dotsRender = _props.dotsRender,
70550 triggerType = _props.triggerType,
70551 rtl = _props.rtl;
70552
70553 var dotsClazz = (0, _classnames2.default)(prefix + 'slick-dots', dotsDirection, dotsClass);
70554 var dotCount = Math.ceil(slideCount / slidesToScroll);
70555 var children = [];
70556
70557 for (var i = 0; i < dotCount; i++) {
70558 var _handleProp;
70559
70560 var leftBound = i * slidesToScroll;
70561 var rightBound = leftBound + slidesToScroll - 1;
70562 var itemClazz = (0, _classnames2.default)(prefix + 'slick-dots-item', {
70563 active: currentSlide >= leftBound && currentSlide <= rightBound
70564 });
70565 var dotOptions = {
70566 message: 'dots',
70567 index: i,
70568 slidesToScroll: slidesToScroll,
70569 currentSlide: currentSlide
70570 };
70571 // 除非设置为hover,默认使用click触发
70572 var handleProp = (_handleProp = {}, _handleProp[triggerType.toLowerCase() === 'hover' ? 'onMouseEnter' : 'onClick'] = this.handleChangeSlide.bind(this, dotOptions), _handleProp);
70573
70574 var docIndex = i;
70575 var currentSlideIndex = currentSlide;
70576 if (rtl) {
70577 docIndex = dotCount - 1 - i;
70578 currentSlideIndex = dotCount - 1 - currentSlide;
70579 }
70580
70581 children.push(_react2.default.createElement('li', (0, _extends3.default)({ key: i, className: itemClazz }, handleProp), dotsRender instanceof Function ? _react2.default.createElement('span', null, dotsRender(docIndex, currentSlideIndex)) :
70582 // Slider is navigated by right and left arrow buttons so the dots are not required functionality
70583 _react2.default.createElement('button', { tabIndex: '-1' })));
70584 }
70585
70586 return _react2.default.createElement('ul', { className: dotsClazz, 'aria-hidden': 'true' }, children);
70587 };
70588
70589 return Dots;
70590}(_react2.default.Component), _class.propTypes = {
70591 prefix: _propTypes2.default.string,
70592 currentSlide: _propTypes2.default.number,
70593 changeSlide: _propTypes2.default.func,
70594 dotsClass: _propTypes2.default.string,
70595 slideCount: _propTypes2.default.number,
70596 slidesToScroll: _propTypes2.default.number,
70597 dotsDirection: _propTypes2.default.oneOf(['hoz', 'ver']),
70598 dotsRender: _propTypes2.default.func,
70599 triggerType: _propTypes2.default.string
70600}, _class.defaultProps = {
70601 changeSlide: noop
70602}, _temp);
70603Dots.displayName = 'Dots';
70604exports.default = Dots;
70605module.exports = exports['default'];
70606
70607/***/ }),
70608/* 415 */
70609/***/ (function(module, exports, __webpack_require__) {
70610
70611"use strict";
70612
70613
70614exports.__esModule = true;
70615
70616var _extends2 = __webpack_require__(1);
70617
70618var _extends3 = _interopRequireDefault(_extends2);
70619
70620var _objectWithoutProperties2 = __webpack_require__(8);
70621
70622var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
70623
70624var _classCallCheck2 = __webpack_require__(2);
70625
70626var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
70627
70628var _possibleConstructorReturn2 = __webpack_require__(3);
70629
70630var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
70631
70632var _inherits2 = __webpack_require__(4);
70633
70634var _inherits3 = _interopRequireDefault(_inherits2);
70635
70636var _class, _temp;
70637
70638var _react = __webpack_require__(0);
70639
70640var _react2 = _interopRequireDefault(_react);
70641
70642var _reactDom = __webpack_require__(12);
70643
70644var _propTypes = __webpack_require__(5);
70645
70646var _propTypes2 = _interopRequireDefault(_propTypes);
70647
70648var _reactLifecyclesCompat = __webpack_require__(10);
70649
70650var _classnames4 = __webpack_require__(7);
70651
70652var _classnames5 = _interopRequireDefault(_classnames4);
70653
70654var _icon = __webpack_require__(11);
70655
70656var _icon2 = _interopRequireDefault(_icon);
70657
70658var _button = __webpack_require__(17);
70659
70660var _button2 = _interopRequireDefault(_button);
70661
70662var _overlay = __webpack_require__(15);
70663
70664var _overlay2 = _interopRequireDefault(_overlay);
70665
70666var _menu = __webpack_require__(16);
70667
70668var _menu2 = _interopRequireDefault(_menu);
70669
70670var _configProvider = __webpack_require__(9);
70671
70672var _configProvider2 = _interopRequireDefault(_configProvider);
70673
70674var _util = __webpack_require__(6);
70675
70676function _interopRequireDefault(obj) {
70677 return obj && obj.__esModule ? obj : { default: obj };
70678}
70679
70680var Popup = _overlay2.default.Popup;
70681
70682/**
70683 * SplitButton
70684 */
70685
70686var SplitButton = (_temp = _class = function (_React$Component) {
70687 (0, _inherits3.default)(SplitButton, _React$Component);
70688
70689 function SplitButton(props, context) {
70690 (0, _classCallCheck3.default)(this, SplitButton);
70691
70692 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
70693
70694 _this.selectMenuItem = function (keys) {
70695 var _this$props;
70696
70697 for (var _len = arguments.length, others = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
70698 others[_key - 1] = arguments[_key];
70699 }
70700
70701 if (!('selectedKeys' in _this.props)) {
70702 _this.setState({
70703 selectedKeys: keys
70704 });
70705 }
70706 (_this$props = _this.props).onSelect.apply(_this$props, [keys].concat(others));
70707 };
70708
70709 _this.clickMenuItem = function (key) {
70710 var _this$props2;
70711
70712 for (var _len2 = arguments.length, others = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
70713 others[_key2 - 1] = arguments[_key2];
70714 }
70715
70716 (_this$props2 = _this.props).onItemClick.apply(_this$props2, [key].concat(others));
70717 _this.onVisibleChange(false, 'menuSelect');
70718 };
70719
70720 _this.onPopupOpen = function () {
70721 if (_this.props.autoWidth && _this.wrapper && _this.menu) {
70722 _util.dom.setStyle(_this.menu, {
70723 width: _this.wrapper.offsetWidth
70724 });
70725 }
70726 };
70727
70728 _this.onVisibleChange = function (visible, reason) {
70729 if (!('visible' in _this.props)) {
70730 _this.setState({
70731 visible: visible
70732 });
70733 }
70734 _this.props.onVisibleChange(visible, reason);
70735 };
70736
70737 _this._menuRefHandler = function (ref) {
70738 _this.menu = (0, _reactDom.findDOMNode)(ref);
70739
70740 var refFn = _this.props.menuProps.ref;
70741 if (typeof refFn === 'function') {
70742 refFn(ref);
70743 }
70744 };
70745
70746 _this._wrapperRefHandler = function (ref) {
70747 _this.wrapper = (0, _reactDom.findDOMNode)(ref);
70748 };
70749
70750 _this.state = {
70751 selectedKeys: props.defaultSelectedKeys,
70752 visible: props.defaultVisible
70753 };
70754 return _this;
70755 }
70756
70757 SplitButton.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
70758 var st = {};
70759
70760 if ('visible' in props) {
70761 st.visible = props.visible;
70762 }
70763
70764 if ('selectedKeys' in props) {
70765 st.selectedKeys = props.selectedKeys;
70766 }
70767
70768 return st;
70769 };
70770
70771 SplitButton.prototype.componentDidMount = function componentDidMount() {
70772 // 由于定位目标是 wrapper,如果弹层默认展开,wrapper 还未渲染,didMount 后强制再渲染一次,弹层重新定位
70773 if (this.state.visible) {
70774 this.forceUpdate();
70775 }
70776 };
70777
70778 SplitButton.prototype.render = function render() {
70779 var _classnames,
70780 _classnames2,
70781 _classnames3,
70782 _this2 = this;
70783
70784 var _props = this.props,
70785 prefix = _props.prefix,
70786 label = _props.label,
70787 size = _props.size,
70788 type = _props.type,
70789 component = _props.component,
70790 ghost = _props.ghost,
70791 className = _props.className,
70792 style = _props.style,
70793 children = _props.children,
70794 triggerProps = _props.triggerProps,
70795 popupAlign = _props.popupAlign,
70796 popupTriggerType = _props.popupTriggerType,
70797 popupStyle = _props.popupStyle,
70798 popupClassName = _props.popupClassName,
70799 popupProps = _props.popupProps,
70800 popupContainer = _props.popupContainer,
70801 followTrigger = _props.followTrigger,
70802 selectMode = _props.selectMode,
70803 menuProps = _props.menuProps,
70804 leftButtonProps = _props.leftButtonProps,
70805 disabled = _props.disabled,
70806 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'label', 'size', 'type', 'component', 'ghost', 'className', 'style', 'children', 'triggerProps', 'popupAlign', 'popupTriggerType', 'popupStyle', 'popupClassName', 'popupProps', 'popupContainer', 'followTrigger', 'selectMode', 'menuProps', 'leftButtonProps', 'disabled']);
70807
70808 var state = this.state;
70809
70810 var classNames = (0, _classnames5.default)((_classnames = {}, _classnames[prefix + 'split-btn'] = true, _classnames), className);
70811
70812 var sharedBtnProps = {
70813 type: type,
70814 size: size,
70815 component: component,
70816 ghost: ghost,
70817 disabled: disabled
70818 };
70819
70820 var triggerClassNames = (0, _classnames5.default)((_classnames2 = {}, _classnames2[prefix + 'split-btn-trigger'] = true, _classnames2[prefix + 'expand'] = state.visible, _classnames2.opened = state.visible, _classnames2));
70821
70822 var iconCls = (0, _classnames5.default)((_classnames3 = {}, _classnames3[prefix + 'split-btn-symbol-fold'] = true, _classnames3));
70823
70824 var trigger = _react2.default.createElement(_button2.default, (0, _extends3.default)({}, sharedBtnProps, triggerProps, { className: triggerClassNames }), _react2.default.createElement(_icon2.default, { type: 'arrow-down', className: iconCls }));
70825
70826 return _react2.default.createElement(_button2.default.Group, (0, _extends3.default)({}, _util.obj.pickOthers(SplitButton.propTypes, others), {
70827 className: classNames,
70828 style: style,
70829 size: size,
70830 ref: this._wrapperRefHandler
70831 }), _react2.default.createElement(_button2.default, (0, _extends3.default)({}, sharedBtnProps, leftButtonProps), label), _react2.default.createElement(Popup, (0, _extends3.default)({}, popupProps, {
70832 followTrigger: followTrigger,
70833 visible: state.visible,
70834 onVisibleChange: this.onVisibleChange,
70835 trigger: trigger,
70836 triggerType: popupTriggerType,
70837 align: popupAlign,
70838 container: popupContainer,
70839 target: function target() {
70840 return _this2.wrapper;
70841 },
70842 style: popupStyle,
70843 shouldUpdatePosition: true,
70844 className: popupClassName,
70845 onOpen: this.onPopupOpen
70846 }), _react2.default.createElement('div', { className: prefix + 'split-btn-spacing-tb' }, _react2.default.createElement(_menu2.default, (0, _extends3.default)({}, menuProps, {
70847 selectMode: selectMode,
70848 selectedKeys: state.selectedKeys,
70849 onSelect: this.selectMenuItem,
70850 onItemClick: this.clickMenuItem,
70851 ref: this._menuRefHandler
70852 }), children))));
70853 };
70854
70855 return SplitButton;
70856}(_react2.default.Component), _class.propTypes = {
70857 prefix: _propTypes2.default.string,
70858 style: _propTypes2.default.object,
70859 /**
70860 * 按钮的类型
70861 */
70862 type: _propTypes2.default.oneOf(['normal', 'primary', 'secondary']),
70863 /**
70864 * 按钮组的尺寸
70865 */
70866 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
70867 /**
70868 * 主按钮的文案
70869 */
70870 label: _propTypes2.default.node,
70871 /**
70872 * 设置标签类型
70873 */
70874 component: _propTypes2.default.oneOf(['button', 'a']),
70875 /**
70876 * 是否为幽灵按钮
70877 */
70878 ghost: _propTypes2.default.oneOf(['light', 'dark', false, true]),
70879 /**
70880 * 默认激活的菜单项(用法同 Menu 非受控)
70881 */
70882 defaultSelectedKeys: _propTypes2.default.array,
70883 /**
70884 * 激活的菜单项(用法同 Menu 受控)
70885 */
70886 selectedKeys: _propTypes2.default.array,
70887 /**
70888 * 菜单的选择模式
70889 */
70890 selectMode: _propTypes2.default.oneOf(['single', 'multiple']),
70891 /**
70892 * 选择菜单项时的回调,参考 Menu
70893 */
70894 onSelect: _propTypes2.default.func,
70895 /**
70896 * 点击菜单项时的回调,参考 Menu
70897 */
70898 onItemClick: _propTypes2.default.func,
70899 /**
70900 * 触发按钮的属性(支持 Button 的所有属性透传)
70901 */
70902 triggerProps: _propTypes2.default.object,
70903 /**
70904 * 弹层菜单的宽度是否与按钮组一致
70905 */
70906 autoWidth: _propTypes2.default.bool,
70907 /**
70908 * 弹层是否显示
70909 */
70910 visible: _propTypes2.default.bool,
70911 /**
70912 * 弹层默认是否显示
70913 */
70914 defaultVisible: _propTypes2.default.bool,
70915 /**
70916 * 弹层显示状态变化时的回调函数
70917 * @param {Boolean} visible 弹层显示状态
70918 * @param {String} type 触发弹层显示或隐藏的来源 menuSelect 表示由menu触发; fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
70919 */
70920 onVisibleChange: _propTypes2.default.func,
70921 /**
70922 * 弹层的触发方式
70923 */
70924 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
70925 /**
70926 * 弹层对齐方式, 详情见Overlay align
70927 */
70928 popupAlign: _propTypes2.default.string,
70929 /**
70930 * 弹层自定义样式
70931 */
70932 popupStyle: _propTypes2.default.object,
70933 /**
70934 * 弹层自定义样式类
70935 */
70936 popupClassName: _propTypes2.default.string,
70937 /**
70938 * 透传给弹层的属性
70939 */
70940 popupProps: _propTypes2.default.object,
70941 /**
70942 * 弹层容器
70943 */
70944 popupContainer: _propTypes2.default.any,
70945 /**
70946 * 是否跟随滚动
70947 */
70948 followTrigger: _propTypes2.default.bool,
70949 /**
70950 * 透传给 Menu 的属性
70951 */
70952 menuProps: _propTypes2.default.object,
70953 /**
70954 * 透传给 左侧按钮 的属性
70955 */
70956 leftButtonProps: _propTypes2.default.object,
70957 className: _propTypes2.default.string,
70958 children: _propTypes2.default.any
70959}, _class.defaultProps = {
70960 prefix: 'next-',
70961 type: 'normal',
70962 size: 'medium',
70963 autoWidth: true,
70964 popupTriggerType: 'click',
70965 onVisibleChange: _util.func.noop,
70966 onItemClick: _util.func.noop,
70967 onSelect: _util.func.noop,
70968 defaultSelectedKeys: [],
70969 menuProps: {},
70970 leftButtonProps: {}
70971}, _temp);
70972SplitButton.displayName = 'SplitButton';
70973
70974SplitButton.Item = _menu2.default.Item;
70975SplitButton.Divider = _menu2.default.Divider;
70976SplitButton.Group = _menu2.default.Group;
70977
70978exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(SplitButton));
70979module.exports = exports['default'];
70980
70981/***/ }),
70982/* 416 */
70983/***/ (function(module, exports, __webpack_require__) {
70984
70985"use strict";
70986
70987
70988exports.__esModule = true;
70989
70990var _extends2 = __webpack_require__(1);
70991
70992var _extends3 = _interopRequireDefault(_extends2);
70993
70994var _objectWithoutProperties2 = __webpack_require__(8);
70995
70996var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
70997
70998var _configProvider = __webpack_require__(9);
70999
71000var _configProvider2 = _interopRequireDefault(_configProvider);
71001
71002var _step = __webpack_require__(417);
71003
71004var _step2 = _interopRequireDefault(_step);
71005
71006var _stepItem = __webpack_require__(418);
71007
71008var _stepItem2 = _interopRequireDefault(_stepItem);
71009
71010function _interopRequireDefault(obj) {
71011 return obj && obj.__esModule ? obj : { default: obj };
71012}
71013
71014_step2.default.Item = _stepItem2.default;
71015
71016exports.default = _configProvider2.default.config(_step2.default, {
71017 transform: /* istanbul ignore next */function transform(props, deprecated) {
71018 if ('type' in props) {
71019 deprecated('type', 'shape', 'Step');
71020
71021 var _props = props,
71022 type = _props.type,
71023 direction = _props.direction,
71024 labelPlacement = _props.labelPlacement,
71025 others = (0, _objectWithoutProperties3.default)(_props, ['type', 'direction', 'labelPlacement']);
71026
71027 direction = direction === 'vertical' ? 'ver' : direction === 'horizontal' ? 'hoz' : direction;
71028 labelPlacement = labelPlacement === 'vertical' ? 'ver' : labelPlacement === 'horizontal' ? 'hoz' : labelPlacement;
71029 props = (0, _extends3.default)({ shape: type, direction: direction, labelPlacement: labelPlacement }, others);
71030 }
71031
71032 return props;
71033 }
71034});
71035module.exports = exports['default'];
71036
71037/***/ }),
71038/* 417 */
71039/***/ (function(module, exports, __webpack_require__) {
71040
71041"use strict";
71042
71043
71044exports.__esModule = true;
71045
71046var _extends2 = __webpack_require__(1);
71047
71048var _extends3 = _interopRequireDefault(_extends2);
71049
71050var _classCallCheck2 = __webpack_require__(2);
71051
71052var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
71053
71054var _possibleConstructorReturn2 = __webpack_require__(3);
71055
71056var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
71057
71058var _inherits2 = __webpack_require__(4);
71059
71060var _inherits3 = _interopRequireDefault(_inherits2);
71061
71062var _class, _temp;
71063
71064var _reactDom = __webpack_require__(12);
71065
71066var _reactDom2 = _interopRequireDefault(_reactDom);
71067
71068var _propTypes = __webpack_require__(5);
71069
71070var _propTypes2 = _interopRequireDefault(_propTypes);
71071
71072var _classnames = __webpack_require__(7);
71073
71074var _classnames2 = _interopRequireDefault(_classnames);
71075
71076var _react = __webpack_require__(0);
71077
71078var _react2 = _interopRequireDefault(_react);
71079
71080var _reactLifecyclesCompat = __webpack_require__(10);
71081
71082var _configProvider = __webpack_require__(9);
71083
71084var _configProvider2 = _interopRequireDefault(_configProvider);
71085
71086var _util = __webpack_require__(6);
71087
71088function _interopRequireDefault(obj) {
71089 return obj && obj.__esModule ? obj : { default: obj };
71090}
71091
71092var getHeight = function getHeight(el) {
71093 return _util.dom.getStyle(el, 'height');
71094};
71095var setHeight = function setHeight(el, height) {
71096 return _util.dom.setStyle(el, 'height', height);
71097};
71098
71099/** Step */
71100var Step = (_temp = _class = function (_Component) {
71101 (0, _inherits3.default)(Step, _Component);
71102
71103 Step.getDerivedStateFromProps = function getDerivedStateFromProps(newProps) {
71104 if ('current' in newProps) {
71105 return {
71106 current: newProps.current
71107 };
71108 }
71109 };
71110
71111 function Step(props, context) {
71112 (0, _classCallCheck3.default)(this, Step);
71113
71114 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
71115
71116 _this._stepRefHandler = function (ref) {
71117 _this.step = ref;
71118 };
71119
71120 _this.state = {
71121 parentWidth: 'auto',
71122 parentHeight: 'auto',
71123 currentfocus: 0
71124 };
71125 _this.resize = _this.resize.bind(_this);
71126 return _this;
71127 }
71128
71129 Step.prototype.componentDidMount = function componentDidMount() {
71130 /* istanbul ignore if */
71131 if (!_util.support.flex) {
71132 this.resize();
71133 _util.events.on(window, 'resize', this.resize);
71134 }
71135 this.adjustHeight();
71136 };
71137
71138 Step.prototype.componentDidUpdate = function componentDidUpdate() {
71139 this.adjustHeight();
71140 };
71141
71142 Step.prototype.componentWillUnmount = function componentWillUnmount() {
71143 /* istanbul ignore if */
71144 if (!_util.support.flex) {
71145 _util.events.off(window, 'resize', this.resize);
71146 }
71147 };
71148
71149 Step.prototype.adjustHeight = function adjustHeight() {
71150 var _props = this.props,
71151 shape = _props.shape,
71152 direction = _props.direction,
71153 prefix = _props.prefix,
71154 labelPlacement = _props.labelPlacement;
71155
71156 var step = _reactDom2.default.findDOMNode(this.step);
71157 if (shape !== 'arrow' && (direction === 'horizontal' || direction === 'hoz') && (labelPlacement === 'vertical' || labelPlacement === 'ver')) {
71158 var height = Array.prototype.slice.call(step.getElementsByClassName(prefix + 'step-item')).reduce(function (ret, re) {
71159 var itemHeight = getHeight(re.getElementsByClassName(prefix + 'step-item-container')[0]) + getHeight(re.getElementsByClassName(prefix + 'step-item-body')[0]);
71160 return Math.max(itemHeight, ret);
71161 }, 0);
71162 setHeight(step, height);
71163 } else {
71164 setHeight(step, '');
71165 }
71166 };
71167
71168 Step.prototype.resize = function resize() {
71169 if (this.step) {
71170 this.setState({
71171 parentWidth: this.step.offsetWidth || 0,
71172 parentHeight: this.step.offsetHeight || 0
71173 });
71174 }
71175 };
71176
71177 // set dir key for aria handle
71178 // handleKeyDown = e => {
71179 // const { shape, children } = this.props;
71180 // const { length: max } = children;
71181 // let { currentfocus } = this.state;
71182 // const initPosition = currentfocus;
71183 // switch (e.keyCode) {
71184 // case KEYCODE.RIGHT:
71185 // case KEYCODE.DOWN:
71186 // currentfocus++;
71187 // break;
71188 // case KEYCODE.LEFT:
71189 // case KEYCODE.UP:
71190 // currentfocus--;
71191 // break;
71192 // default:
71193 // break;
71194 // }
71195 // currentfocus =
71196 // currentfocus >= max ? 0 : currentfocus < 0 ? max - 1 : currentfocus;
71197 // this.setState({ currentfocus }, () => {
71198 // const child = this.step.children[currentfocus];
71199 // if (!child) return;
71200 // const focusItem =
71201 // shape === 'arrow'
71202 // ? child
71203 // : child.querySelector('.next-step-item-body');
71204 // focusItem && focusItem.focus();
71205 // });
71206 // if (initPosition !== currentfocus) {
71207 // e.preventDefault();
71208 // }
71209 // };
71210
71211 Step.prototype._getValidChildren = function _getValidChildren(children) {
71212 var result = [];
71213 _react2.default.Children.forEach(children, function (child) {
71214 if (_react2.default.isValidElement(child)) {
71215 result.push(child);
71216 }
71217 });
71218 return result;
71219 };
71220
71221 Step.prototype.render = function render() {
71222 var _this2 = this,
71223 _classNames;
71224
71225 // eslint-disable-next-line
71226 var _props2 = this.props,
71227 className = _props2.className,
71228 current = _props2.current,
71229 labelPlacement = _props2.labelPlacement,
71230 shape = _props2.shape,
71231 readOnly = _props2.readOnly,
71232 animation = _props2.animation,
71233 itemRender = _props2.itemRender,
71234 rtl = _props2.rtl,
71235 stretch = _props2.stretch;
71236
71237 var others = _util.obj.pickOthers(Step.propTypes, this.props);
71238 var _props3 = this.props,
71239 prefix = _props3.prefix,
71240 direction = _props3.direction,
71241 children = _props3.children;
71242
71243 prefix = this.context.prefix || prefix;
71244 var _state = this.state,
71245 parentWidth = _state.parentWidth,
71246 parentHeight = _state.parentHeight;
71247
71248 // type不同对应的direction不同
71249
71250 direction = shape === 'arrow' ? 'hoz' : direction;
71251
71252 // children去除null
71253 children = this._getValidChildren(children);
71254
71255 // 修改子节点属性
71256 var cloneChildren = _react.Children.map(children, function (child, index) {
71257 var status = index < current ? 'finish' : index === current ? 'process' : 'wait';
71258
71259 return _react2.default.cloneElement(child, {
71260 prefix: prefix,
71261 key: index,
71262 index: index,
71263 total: children.length,
71264 status: child.props.status || status,
71265 shape: shape,
71266 direction: direction,
71267 labelPlacement: labelPlacement,
71268 parentWidth: parentWidth,
71269 parentHeight: parentHeight,
71270 readOnly: readOnly,
71271 animation: animation,
71272 tabIndex: 0,
71273 // tabIndex: this.state.currentfocus === index ? '0' : '-1',
71274 'aria-current': status === 'process' ? 'step' : null,
71275 itemRender: child.props.itemRender ? child.props.itemRender : itemRender, // 优先使用Item的itemRender
71276 onResize: function onResize() {
71277 _this2.step && _this2.adjustHeight();
71278 },
71279 stretch: stretch
71280 });
71281 });
71282
71283 var _direction = direction === 'ver' || direction === 'vertical' ? 'vertical' : 'horizontal';
71284 var _labelPlacement = labelPlacement === 'ver' || labelPlacement === 'vertical' ? 'vertical' : 'horizontal';
71285 var stepCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'step'] = true, _classNames[prefix + 'step-' + shape] = shape, _classNames[prefix + 'step-' + _direction] = _direction, _classNames[prefix + 'step-label-' + _labelPlacement] = _labelPlacement, _classNames[className] = className, _classNames));
71286
71287 if (rtl) {
71288 others.dir = 'rtl';
71289 }
71290
71291 // others.onKeyDown = makeChain(this.handleKeyDown, others.onKeyDown);
71292 return _react2.default.createElement('ol', (0, _extends3.default)({}, others, { className: stepCls, ref: this._stepRefHandler }), cloneChildren);
71293 };
71294
71295 return Step;
71296}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
71297 prefix: _propTypes2.default.string,
71298 rtl: _propTypes2.default.bool,
71299 /**
71300 * 当前步骤
71301 */
71302 current: _propTypes2.default.number,
71303 /**
71304 * 展示方向
71305 */
71306 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
71307 /**
71308 * 横向布局时( direction 为 hoz )的内容排列
71309 */
71310 labelPlacement: _propTypes2.default.oneOf(['hoz', 'ver']),
71311 /**
71312 * 类型
71313 */
71314 shape: _propTypes2.default.oneOf(['circle', 'arrow', 'dot']),
71315 /**
71316 * 是否只读模式
71317 */
71318 readOnly: _propTypes2.default.bool,
71319 /**
71320 * 是否开启动效
71321 */
71322 animation: _propTypes2.default.bool,
71323 /**
71324 * 自定义样式名
71325 */
71326 className: _propTypes2.default.string,
71327 /**
71328 * StepItem 的自定义渲染
71329 * @param {Number} index 节点索引
71330 * @param {String} status 节点状态
71331 * @returns {Node} 节点的渲染结果
71332 */
71333 itemRender: _propTypes2.default.func,
71334 /**
71335 * 宽度横向拉伸
71336 */
71337 stretch: _propTypes2.default.bool
71338}), _class.defaultProps = {
71339 prefix: 'next-',
71340 current: 0,
71341 direction: 'hoz',
71342 labelPlacement: 'ver',
71343 shape: 'circle',
71344 animation: true,
71345 itemRender: null,
71346 stretch: false
71347}, _class.contextTypes = {
71348 prefix: _propTypes2.default.string
71349}, _temp);
71350Step.displayName = 'Step';
71351exports.default = (0, _reactLifecyclesCompat.polyfill)(Step);
71352module.exports = exports['default'];
71353
71354/***/ }),
71355/* 418 */
71356/***/ (function(module, exports, __webpack_require__) {
71357
71358"use strict";
71359
71360
71361exports.__esModule = true;
71362
71363var _extends2 = __webpack_require__(1);
71364
71365var _extends3 = _interopRequireDefault(_extends2);
71366
71367var _classCallCheck2 = __webpack_require__(2);
71368
71369var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
71370
71371var _possibleConstructorReturn2 = __webpack_require__(3);
71372
71373var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
71374
71375var _inherits2 = __webpack_require__(4);
71376
71377var _inherits3 = _interopRequireDefault(_inherits2);
71378
71379var _class, _temp;
71380
71381var _reactDom = __webpack_require__(12);
71382
71383var _reactDom2 = _interopRequireDefault(_reactDom);
71384
71385var _react = __webpack_require__(0);
71386
71387var _react2 = _interopRequireDefault(_react);
71388
71389var _propTypes = __webpack_require__(5);
71390
71391var _propTypes2 = _interopRequireDefault(_propTypes);
71392
71393var _classnames = __webpack_require__(7);
71394
71395var _classnames2 = _interopRequireDefault(_classnames);
71396
71397var _resizeObserverPolyfill = __webpack_require__(58);
71398
71399var _resizeObserverPolyfill2 = _interopRequireDefault(_resizeObserverPolyfill);
71400
71401var _icon = __webpack_require__(11);
71402
71403var _icon2 = _interopRequireDefault(_icon);
71404
71405var _progress = __webpack_require__(101);
71406
71407var _progress2 = _interopRequireDefault(_progress);
71408
71409var _configProvider = __webpack_require__(9);
71410
71411var _configProvider2 = _interopRequireDefault(_configProvider);
71412
71413var _util = __webpack_require__(6);
71414
71415function _interopRequireDefault(obj) {
71416 return obj && obj.__esModule ? obj : { default: obj };
71417}
71418
71419/** Step.Item */
71420var StepItem = (_temp = _class = function (_Component) {
71421 (0, _inherits3.default)(StepItem, _Component);
71422
71423 function StepItem(props) {
71424 (0, _classCallCheck3.default)(this, StepItem);
71425
71426 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
71427
71428 _this.onClick = function () {
71429 var _this$props = _this.props,
71430 index = _this$props.index,
71431 disabled = _this$props.disabled,
71432 readOnly = _this$props.readOnly,
71433 animation = _this$props.animation;
71434
71435 if (disabled || readOnly) {
71436 return false;
71437 }
71438
71439 if (animation && _this.stepNode) {
71440 _util.dom.hasClass(_this.stepNode, 'clicked') ? _util.dom.removeClass(_this.stepNode, 'clicked') : _util.dom.addClass(_this.stepNode, 'clicked');
71441 }
71442 _this.props.onClick(index);
71443 };
71444
71445 _this.removeClickedCls = _this.removeClickedCls.bind(_this);
71446 _this._refHandlerCreator = _this._refHandlerCreator.bind(_this);
71447 _this.resize = _this.resize.bind(_this);
71448 _this.ro = new _resizeObserverPolyfill2.default(function () {
71449 var _this$props2 = _this.props,
71450 shape = _this$props2.shape,
71451 direction = _this$props2.direction,
71452 onResize = _this$props2.onResize;
71453
71454 if (!_this.body || shape === 'arrow') {
71455 return;
71456 }
71457 if (direction === 'vertical' || direction === 'ver') {
71458 _this.resize();
71459 } else {
71460 onResize && onResize();
71461 }
71462 });
71463 return _this;
71464 }
71465
71466 StepItem.prototype.componentDidMount = function componentDidMount() {
71467 var _props = this.props,
71468 shape = _props.shape,
71469 direction = _props.direction,
71470 labelPlacement = _props.labelPlacement,
71471 index = _props.index,
71472 total = _props.total,
71473 stretch = _props.stretch;
71474
71475 this.body && this.ro.observe(_reactDom2.default.findDOMNode(this.body));
71476 if (shape === 'arrow') {
71477 return;
71478 }
71479 if (direction === 'vertical' || direction === 'ver') {
71480 this.resize();
71481 this.forceUpdate(); // 解决Step嵌套的情况下,嵌套节点宽度为0的问题
71482 this.eventHandler = _util.events.on(window, 'resize', this.resize); // 调整垂直Step
71483 } else if ((direction === 'horizontal' || direction === 'hoz') && (labelPlacement === 'horizontal' || labelPlacement === 'hoz') && index !== total - 1) {
71484 // 调整横向Content
71485 this.adjustTail();
71486 }
71487 if (stretch && (direction === 'horizontal' || direction === 'hoz')) {
71488 this.adjustItemWidth();
71489 }
71490 };
71491
71492 StepItem.prototype.componentDidUpdate = function componentDidUpdate() {
71493 var _this2 = this;
71494
71495 var _props2 = this.props,
71496 shape = _props2.shape,
71497 direction = _props2.direction,
71498 labelPlacement = _props2.labelPlacement,
71499 index = _props2.index,
71500 total = _props2.total,
71501 rtl = _props2.rtl,
71502 stretch = _props2.stretch;
71503
71504 if (shape === 'arrow') {
71505 return;
71506 }
71507 var resetTailStyle = function resetTailStyle() {
71508 _util.dom.setStyle(_this2.tail, {
71509 width: '',
71510 top: '',
71511 height: ''
71512 });
71513 };
71514
71515 if (direction === 'vertical' || direction === 'ver') {
71516 this.resize();
71517 } else if (direction === 'horizontal' || direction === 'hoz') {
71518 var _dom$setStyle;
71519
71520 var pos = rtl ? 'right' : 'left';
71521 _util.dom.setStyle(this.body, (_dom$setStyle = {
71522 width: ''
71523 }, _dom$setStyle[pos] = '', _dom$setStyle));
71524 if (shape === 'circle' && (labelPlacement === 'horizontal' || labelPlacement === 'hoz') && index !== total - 1) {
71525 // 调整横向Content
71526 this.adjustTail();
71527 } else {
71528 resetTailStyle();
71529 }
71530 if (stretch) {
71531 this.adjustItemWidth();
71532 }
71533 } else if (index !== total - 1) {
71534 resetTailStyle();
71535 }
71536 };
71537
71538 StepItem.prototype.componentWillUnmount = function componentWillUnmount() {
71539 this.eventHandler && this.eventHandler.off();
71540 };
71541
71542 StepItem.prototype.adjustItemWidth = function adjustItemWidth() {
71543 var _props3 = this.props,
71544 index = _props3.index,
71545 total = _props3.total,
71546 labelPlacement = _props3.labelPlacement;
71547
71548 var lastNodeWidth = labelPlacement === 'horizontal' || labelPlacement === 'hoz' ? this.container.offsetWidth + this.body.offsetWidth : this.title.offsetWidth;
71549 var width = total - 1 !== index ? 'calc((100% - ' + lastNodeWidth + 'px)/' + (total - 1) + ')' : 'auto';
71550 _util.dom.setStyle(this.step, {
71551 width: width
71552 });
71553 };
71554
71555 StepItem.prototype.adjustTail = function adjustTail() {
71556 var width = this.container.offsetWidth + this.title.offsetWidth;
71557 _util.dom.setStyle(this.tail, {
71558 width: 'calc(100% - ' + width + 'px)',
71559 top: _util.dom.getStyle(this.container, 'height') / 2 + 'px'
71560 });
71561 };
71562
71563 StepItem.prototype.resize = function resize() {
71564 var direction = this.props.direction;
71565
71566 if (direction === 'vertical' || direction === 'ver') {
71567 var stepWidth = _util.dom.getStyle(this.step, 'width');
71568 var stepHozWhitespace = _util.dom.getNodeHozWhitespace(this.step.parentNode);
71569 var stepBodyHozWhitespace = _util.dom.getNodeHozWhitespace(this.body);
71570 var rtl = this.props.rtl;
71571
71572 rtl ? this.body.style.right = stepWidth + 'px' : this.body.style.left = stepWidth + 'px';
71573 _util.dom.setStyle(this.body, {
71574 width: _util.dom.getStyle(this.step.parentNode.parentNode, 'width') - stepWidth - stepHozWhitespace - stepBodyHozWhitespace
71575 });
71576 _util.dom.setStyle(this.tail, 'height', _util.dom.getStyle(this.body, 'height') - _util.dom.getStyle(this.container, 'height'));
71577 }
71578 };
71579
71580 StepItem.prototype._getNode = function _getNode() {
71581 var _props4 = this.props,
71582 prefix = _props4.prefix,
71583 index = _props4.index,
71584 status = _props4.status,
71585 icon = _props4.icon,
71586 shape = _props4.shape,
71587 percent = _props4.percent,
71588 itemRender = _props4.itemRender;
71589
71590 var nodeElement = icon;
71591 if (shape === 'dot') {
71592 nodeElement = icon ? _react2.default.createElement(_icon2.default, { type: icon }) : _react2.default.createElement('div', { className: prefix + 'step-item-node-dot' }, ' ');
71593 } else if (shape === 'circle' && percent) {
71594 nodeElement = _react2.default.createElement(_progress2.default, { shape: 'circle', percent: percent, className: prefix + 'step-item-progress' });
71595 } else if (shape === 'circle' && !!itemRender && typeof itemRender === 'function') {
71596 nodeElement = null; // 如果是需要自定义节点,则不处理,返回空
71597 } else {
71598 nodeElement = _react2.default.createElement('div', { className: prefix + 'step-item-node-circle' }, icon ? _react2.default.createElement(_icon2.default, { type: icon }) : this._itemRender(index, status));
71599 }
71600
71601 return nodeElement;
71602 };
71603
71604 StepItem.prototype.getNode = function getNode(args) {
71605 var _props5 = this.props,
71606 prefix = _props5.prefix,
71607 itemRender = _props5.itemRender,
71608 index = _props5.index,
71609 status = _props5.status,
71610 title = _props5.title,
71611 content = _props5.content,
71612 shape = _props5.shape;
71613 var others = args.others,
71614 stepCls = args.stepCls,
71615 overlayCls = args.overlayCls;
71616
71617 var nodeElement = this._getNode();
71618 var containerStyle = shape === 'dot' && { fontSize: 'initial' } || {};
71619 var finalNodeElement = _react2.default.createElement('div', {
71620 className: prefix + 'step-item-container',
71621 style: containerStyle,
71622 ref: this._refHandlerCreator('container')
71623 }, _react2.default.createElement('div', { className: prefix + 'step-item-node-placeholder', onClick: this.onClick }, _react2.default.createElement('div', {
71624 className: prefix + 'step-item-node',
71625 ref: this._refHandlerCreator('stepNode'),
71626 onTransitionEnd: this.removeClickedCls
71627 }, nodeElement)));
71628
71629 if (!nodeElement) {
71630 // 需要自定义子节点
71631 finalNodeElement = _react2.default.createElement('div', {
71632 className: prefix + 'step-item-container',
71633 style: containerStyle,
71634 ref: this._refHandlerCreator('container')
71635 }, _react2.default.createElement('div', { className: prefix + 'step-item-node-placeholder', onClick: this.onClick }, itemRender(index, status, title, content)));
71636 }
71637 if (shape !== 'arrow') {
71638 delete others.tabIndex;
71639 delete others['aria-current'];
71640 }
71641
71642 return _react2.default.createElement('li', (0, _extends3.default)({}, others, { style: this.getStyle(), className: stepCls, ref: this._refHandlerCreator('step') }), finalNodeElement, _react2.default.createElement('div', {
71643 className: prefix + 'step-item-body',
71644 ref: this._refHandlerCreator('body'),
71645 tabIndex: this.props.tabIndex,
71646 'aria-current': this.props['aria-current']
71647 }, _react2.default.createElement('div', { className: prefix + 'step-item-title', ref: this._refHandlerCreator('title') }, title), _react2.default.createElement('div', { className: prefix + 'step-item-content' }, content)), _react2.default.createElement('div', { className: prefix + 'step-item-tail', ref: this._refHandlerCreator('tail') }, _react2.default.createElement('div', { className: prefix + 'step-item-tail-underlay' }, _react2.default.createElement('div', { className: prefix + 'step-item-tail-overlay', style: overlayCls }))));
71648 };
71649
71650 StepItem.prototype.getStyle = function getStyle() {
71651 var _props6 = this.props,
71652 parentWidth = _props6.parentWidth,
71653 parentHeight = _props6.parentHeight,
71654 direction = _props6.direction,
71655 total = _props6.total,
71656 index = _props6.index,
71657 shape = _props6.shape;
71658
71659 var width = 'auto';
71660
71661 if (Number(parentWidth) && Number(parentHeight)) {
71662 if (!_util.support.flex && shape === 'arrow') {
71663 width = Math.floor(parentWidth / total - parentHeight / 2 - parentHeight / 8);
71664 }
71665 }
71666 if (shape !== 'arrow' && (direction === 'horizontal' || direction === 'hoz')) {
71667 width = total - 1 !== index ? Math.floor(100 / total) + '%' : 'auto';
71668 }
71669 return {
71670 width: width
71671 };
71672 };
71673
71674 StepItem.prototype.removeClickedCls = function removeClickedCls() {
71675 var animation = this.props.animation;
71676
71677 if (animation && this.stepNode && _util.dom.hasClass(this.stepNode, 'clicked')) {
71678 _util.dom.removeClass(this.stepNode, 'clicked');
71679 }
71680 };
71681
71682 // 节点的渲染方法
71683
71684
71685 StepItem.prototype._itemRender = function _itemRender(index, status) {
71686 var itemRender = this.props.itemRender;
71687
71688 if (itemRender) {
71689 return itemRender(index, status);
71690 }
71691 return status === 'finish' ? _react2.default.createElement(_icon2.default, { type: 'select' }) : index + 1;
71692 };
71693
71694 StepItem.prototype._refHandlerCreator = function _refHandlerCreator(refName) {
71695 var self = this;
71696 return function (ref) {
71697 self[refName] = ref;
71698 };
71699 };
71700
71701 StepItem.prototype.render = function render() {
71702 var _classNames;
71703
71704 // eslint-disable-next-line
71705 var _props7 = this.props,
71706 prefix = _props7.prefix,
71707 locale = _props7.locale,
71708 className = _props7.className,
71709 status = _props7.status,
71710 title = _props7.title,
71711 icon = _props7.icon,
71712 index = _props7.index,
71713 total = _props7.total,
71714 shape = _props7.shape,
71715 content = _props7.content,
71716 direction = _props7.direction,
71717 disabled = _props7.disabled,
71718 onClick = _props7.onClick,
71719 readOnly = _props7.readOnly,
71720 animation = _props7.animation,
71721 parentHeight = _props7.parentHeight,
71722 itemRender = _props7.itemRender,
71723 parentWidth = _props7.parentWidth,
71724 labelPlacement = _props7.labelPlacement,
71725 rtl = _props7.rtl,
71726 onResize = _props7.onResize;
71727
71728 var others = _util.obj.pickOthers(StepItem.propTypes, this.props);
71729
71730 var stepCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'step-item'] = true, _classNames[prefix + 'step-item-' + status] = status, _classNames[prefix + 'step-item-first'] = index === 0, _classNames[prefix + 'step-item-last'] = index === total - 1, _classNames[prefix + 'step-item-disabled'] = disabled, _classNames[prefix + 'step-item-read-only'] = readOnly, _classNames[className] = className, _classNames));
71731
71732 var overlayCls = status === 'finish' ? { width: '100%' } : null;
71733 var arrowElement = _react2.default.createElement('li', (0, _extends3.default)({}, others, { style: this.getStyle(), className: stepCls, onClick: this.onClick }), _react2.default.createElement('div', { className: prefix + 'step-item-container' }, _react2.default.createElement('div', { className: prefix + 'step-item-title' }, title)));
71734 var otherElement = this.getNode({ others: others, stepCls: stepCls, overlayCls: overlayCls });
71735
71736 return shape === 'arrow' ? arrowElement : otherElement;
71737 };
71738
71739 return StepItem;
71740}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
71741 prefix: _propTypes2.default.string,
71742 rtl: _propTypes2.default.bool,
71743 /**
71744 * 步骤的状态,如不传,会根据外层的 Step 的 current 属性生成,可选值为 `wait`, `process`, `finish`
71745 */
71746 status: _propTypes2.default.oneOf(['wait', 'process', 'finish']),
71747 /**
71748 * 标题
71749 */
71750 title: _propTypes2.default.node,
71751 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
71752 labelPlacement: _propTypes2.default.oneOf(['hoz', 'ver']),
71753 shape: _propTypes2.default.oneOf(['circle', 'arrow', 'dot']),
71754 /**
71755 * 图标
71756 */
71757 icon: _propTypes2.default.string,
71758 /**
71759 * 内容填充, shape为 arrow 时无效
71760 */
71761 content: _propTypes2.default.node,
71762 /**
71763 * StepItem 的自定义渲染, 会覆盖父节点设置的itemRender
71764 * @param {Number} index 节点索引
71765 * @param {String} status 节点状态
71766 * @returns {Node} 节点的渲染结果
71767 */
71768 itemRender: _propTypes2.default.func,
71769 /**
71770 * 百分比
71771 */
71772 percent: _propTypes2.default.number,
71773 index: _propTypes2.default.number,
71774 total: _propTypes2.default.number,
71775 animation: _propTypes2.default.bool, // 是否开启动效,由父级传入
71776 /**
71777 * 是否禁用
71778 */
71779 disabled: _propTypes2.default.bool,
71780 parentWidth: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
71781 parentHeight: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
71782 /**
71783 * 点击步骤时的回调
71784 * @param {Number} index 节点索引
71785 */
71786 onClick: _propTypes2.default.func,
71787 /**
71788 * 自定义样式
71789 */
71790 className: _propTypes2.default.string,
71791 readOnly: _propTypes2.default.bool,
71792 onResize: _propTypes2.default.func,
71793 stretch: _propTypes2.default.bool
71794}), _class.defaultProps = {
71795 shape: 'circle',
71796 index: 0,
71797 total: 1,
71798 onClick: function onClick() {},
71799 stretch: false
71800}, _temp);
71801StepItem.displayName = 'StepItem';
71802exports.default = _configProvider2.default.config(StepItem);
71803module.exports = exports['default'];
71804
71805/***/ }),
71806/* 419 */
71807/***/ (function(module, exports, __webpack_require__) {
71808
71809"use strict";
71810
71811
71812exports.__esModule = true;
71813
71814var _extends2 = __webpack_require__(1);
71815
71816var _extends3 = _interopRequireDefault(_extends2);
71817
71818var _objectWithoutProperties2 = __webpack_require__(8);
71819
71820var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
71821
71822var _classCallCheck2 = __webpack_require__(2);
71823
71824var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
71825
71826var _possibleConstructorReturn2 = __webpack_require__(3);
71827
71828var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
71829
71830var _inherits2 = __webpack_require__(4);
71831
71832var _inherits3 = _interopRequireDefault(_inherits2);
71833
71834var _class, _temp;
71835
71836var _classnames = __webpack_require__(7);
71837
71838var _classnames2 = _interopRequireDefault(_classnames);
71839
71840var _react = __webpack_require__(0);
71841
71842var _react2 = _interopRequireDefault(_react);
71843
71844var _propTypes = __webpack_require__(5);
71845
71846var _propTypes2 = _interopRequireDefault(_propTypes);
71847
71848var _reactLifecyclesCompat = __webpack_require__(10);
71849
71850var _util = __webpack_require__(6);
71851
71852var _icon = __webpack_require__(11);
71853
71854var _icon2 = _interopRequireDefault(_icon);
71855
71856var _configProvider = __webpack_require__(9);
71857
71858var _configProvider2 = _interopRequireDefault(_configProvider);
71859
71860var _zhCn = __webpack_require__(13);
71861
71862var _zhCn2 = _interopRequireDefault(_zhCn);
71863
71864function _interopRequireDefault(obj) {
71865 return obj && obj.__esModule ? obj : { default: obj };
71866}
71867
71868/** Switch*/
71869var Switch = (_temp = _class = function (_React$Component) {
71870 (0, _inherits3.default)(Switch, _React$Component);
71871
71872 function Switch(props, context) {
71873 (0, _classCallCheck3.default)(this, Switch);
71874
71875 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
71876
71877 var checked = props.checked || props.defaultChecked;
71878 _this.onChange = _this.onChange.bind(_this);
71879 _this.onKeyDown = _this.onKeyDown.bind(_this);
71880 _this.state = {
71881 checked: checked
71882 };
71883 return _this;
71884 }
71885
71886 Switch.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
71887 if ('checked' in props && props.checked !== state.checked) {
71888 return {
71889 checked: !!props.checked
71890 };
71891 }
71892
71893 return null;
71894 };
71895
71896 Switch.prototype.onChange = function onChange(ev) {
71897 var checked = !this.state.checked;
71898
71899 if (!('checked' in this.props)) {
71900 this.setState({
71901 checked: checked
71902 });
71903 }
71904 this.props.onChange(checked, ev);
71905 this.props.onClick && this.props.onClick(ev);
71906 };
71907
71908 Switch.prototype.onKeyDown = function onKeyDown(e) {
71909 if (e.keyCode === _util.KEYCODE.ENTER || e.keyCode === _util.KEYCODE.SPACE) {
71910 this.onChange(e);
71911 }
71912 this.props.onKeyDown && this.props.onKeyDown(e);
71913 };
71914
71915 Switch.prototype.render = function render() {
71916 var _classNames;
71917
71918 var _props = this.props,
71919 prefix = _props.prefix,
71920 className = _props.className,
71921 disabled = _props.disabled,
71922 readOnly = _props.readOnly,
71923 size = _props.size,
71924 loading = _props.loading,
71925 autoWidth = _props.autoWidth,
71926 checkedChildren = _props.checkedChildren,
71927 unCheckedChildren = _props.unCheckedChildren,
71928 rtl = _props.rtl,
71929 isPreview = _props.isPreview,
71930 renderPreview = _props.renderPreview,
71931 locale = _props.locale,
71932 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'disabled', 'readOnly', 'size', 'loading', 'autoWidth', 'checkedChildren', 'unCheckedChildren', 'rtl', 'isPreview', 'renderPreview', 'locale']);
71933 var checked = this.state.checked;
71934
71935 var status = checked ? 'on' : 'off';
71936 var children = checked ? checkedChildren : unCheckedChildren;
71937
71938 var _size = size;
71939 if (_size !== 'small' && _size !== 'medium') {
71940 _size = 'medium';
71941 }
71942
71943 var classes = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'switch'] = true, _classNames[prefix + 'switch-loading'] = loading, _classNames[prefix + 'switch-' + status] = true, _classNames[prefix + 'switch-' + _size] = true, _classNames[prefix + 'switch-auto-width'] = autoWidth, _classNames[className] = className, _classNames));
71944 var attrs = void 0;
71945 var isDisabled = disabled || readOnly;
71946
71947 if (!isDisabled) {
71948 attrs = {
71949 onClick: this.onChange,
71950 tabIndex: 0,
71951 onKeyDown: this.onKeyDown,
71952 disabled: false
71953 };
71954 } else {
71955 attrs = {
71956 disabled: true
71957 };
71958 }
71959
71960 if (isPreview) {
71961 var _classNames2;
71962
71963 var previewCls = (0, _classnames2.default)(className, (_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2));
71964
71965 if ('renderPreview' in this.props) {
71966 return _react2.default.createElement('div', (0, _extends3.default)({ className: previewCls }, others), renderPreview(checked, this.props));
71967 }
71968
71969 return _react2.default.createElement('p', (0, _extends3.default)({ className: previewCls }, others), children || locale[status]);
71970 }
71971
71972 return _react2.default.createElement('div', (0, _extends3.default)({
71973 role: 'switch',
71974 dir: rtl ? 'rtl' : undefined,
71975 tabIndex: '0'
71976 }, others, {
71977 className: classes
71978 }, attrs, {
71979 'aria-checked': checked
71980 }), _react2.default.createElement('div', { className: prefix + 'switch-btn' }, loading && _react2.default.createElement(_icon2.default, { type: 'loading', className: prefix + 'switch-inner-icon' })), _react2.default.createElement('div', { className: prefix + 'switch-children' }, children));
71981 };
71982
71983 return Switch;
71984}(_react2.default.Component), _class.contextTypes = {
71985 prefix: _propTypes2.default.string
71986}, _class.propTypes = {
71987 prefix: _propTypes2.default.string,
71988 rtl: _propTypes2.default.bool,
71989 pure: _propTypes2.default.bool,
71990 /**
71991 * 自定义类名
71992 */
71993 className: _propTypes2.default.string,
71994 /**
71995 * 自定义内敛样式
71996 */
71997 style: _propTypes2.default.object,
71998 /**
71999 * 打开时的内容
72000 */
72001 checkedChildren: _propTypes2.default.any,
72002 /**
72003 * 关闭时的内容
72004 */
72005 unCheckedChildren: _propTypes2.default.any,
72006 /**
72007 * 开关状态改变是触发此事件
72008 * @param {Boolean} checked 是否为打开状态
72009 * @param {Event} e DOM事件对象
72010 */
72011 onChange: _propTypes2.default.func,
72012 /**
72013 * 开关当前的值(针对受控组件)
72014 */
72015 checked: _propTypes2.default.bool,
72016 /**
72017 * 开关默认值 (针对非受控组件)
72018 */
72019 defaultChecked: _propTypes2.default.bool,
72020 /**
72021 * 表示开关被禁用
72022 */
72023 disabled: _propTypes2.default.bool,
72024 /**
72025 * loading
72026 */
72027 loading: _propTypes2.default.bool,
72028 /**
72029 * switch的尺寸
72030 * @enumdesc 正常大小, 缩小版大小
72031 */
72032 size: _propTypes2.default.oneOf(['medium', 'small']),
72033 /**
72034 * 鼠标点击事件
72035 * @param {Event} e DOM事件对象
72036 */
72037 onClick: _propTypes2.default.func,
72038 /**
72039 * 键盘按键事件
72040 * @param {Event} e DOM事件对象
72041 */
72042 onKeyDown: _propTypes2.default.func,
72043 /**
72044 * 是否为预览态
72045 */
72046 isPreview: _propTypes2.default.bool,
72047 /**
72048 * 预览态模式下渲染的内容
72049 * @param {number} value 评分值
72050 */
72051 renderPreview: _propTypes2.default.func,
72052 /**
72053 * 开启后宽度根据内容自适应
72054 * @version 1.23
72055 */
72056 autoWidth: _propTypes2.default.bool,
72057 /**
72058 * 国际化配置
72059 */
72060 locale: _propTypes2.default.object
72061}, _class.defaultProps = {
72062 prefix: 'next-',
72063 size: 'medium',
72064 disabled: false,
72065 defaultChecked: false,
72066 isPreview: false,
72067 loading: false,
72068 readOnly: false,
72069 autoWidth: false,
72070 onChange: function onChange() {},
72071 locale: _zhCn2.default.Switch
72072}, _temp);
72073Switch.displayName = 'Switch';
72074exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Switch));
72075module.exports = exports['default'];
72076
72077/***/ }),
72078/* 420 */
72079/***/ (function(module, exports, __webpack_require__) {
72080
72081"use strict";
72082
72083
72084exports.__esModule = true;
72085
72086var _extends2 = __webpack_require__(1);
72087
72088var _extends3 = _interopRequireDefault(_extends2);
72089
72090var _objectWithoutProperties2 = __webpack_require__(8);
72091
72092var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
72093
72094var _configProvider = __webpack_require__(9);
72095
72096var _configProvider2 = _interopRequireDefault(_configProvider);
72097
72098var _tab = __webpack_require__(421);
72099
72100var _tab2 = _interopRequireDefault(_tab);
72101
72102var _tabItem = __webpack_require__(424);
72103
72104var _tabItem2 = _interopRequireDefault(_tabItem);
72105
72106function _interopRequireDefault(obj) {
72107 return obj && obj.__esModule ? obj : { default: obj };
72108}
72109
72110_tab2.default.Item = _tabItem2.default;
72111
72112_tab2.default.TabPane = _configProvider2.default.config(_tabItem2.default, {
72113 transform: function transform(props, deprecated) {
72114 deprecated('Tab.TabPane', 'Tab.Item', 'Tab');
72115 return props;
72116 }
72117});
72118
72119exports.default = _configProvider2.default.config(_tab2.default, {
72120 transform: /* istanbul ignore next */function transform(props, deprecated) {
72121 if ('type' in props) {
72122 deprecated('type', 'shape', 'Tab');
72123 var _props = props,
72124 type = _props.type,
72125 others = (0, _objectWithoutProperties3.default)(_props, ['type']);
72126
72127 props = (0, _extends3.default)({ shape: type }, others);
72128 }
72129 if ('resDirection' in props) {
72130 var _props2 = props,
72131 resDirection = _props2.resDirection,
72132 _others = (0, _objectWithoutProperties3.default)(_props2, ['resDirection']);
72133
72134 var excessMode = void 0;
72135 if (resDirection === 'horizontal') {
72136 deprecated('resDirection=horizontal', 'excessMode=slide', 'Tab');
72137
72138 excessMode = 'slide';
72139 } else if (resDirection === 'vertical') {
72140 deprecated('resDirection=vertical', 'excessMode=dropdown', 'Tab');
72141
72142 excessMode = 'dropdown';
72143 }
72144 props = (0, _extends3.default)({ excessMode: excessMode }, _others);
72145 }
72146 if ('tabBarExtraContent' in props) {
72147 deprecated('tabBarExtraContent', 'extra', 'Tab');
72148
72149 var _props3 = props,
72150 tabBarExtraContent = _props3.tabBarExtraContent,
72151 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['tabBarExtraContent']);
72152
72153 props = (0, _extends3.default)({ extra: tabBarExtraContent }, _others2);
72154 }
72155
72156 return props;
72157 }
72158});
72159module.exports = exports['default'];
72160
72161/***/ }),
72162/* 421 */
72163/***/ (function(module, exports, __webpack_require__) {
72164
72165"use strict";
72166
72167
72168exports.__esModule = true;
72169
72170var _extends2 = __webpack_require__(1);
72171
72172var _extends3 = _interopRequireDefault(_extends2);
72173
72174var _objectWithoutProperties2 = __webpack_require__(8);
72175
72176var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
72177
72178var _classCallCheck2 = __webpack_require__(2);
72179
72180var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
72181
72182var _possibleConstructorReturn2 = __webpack_require__(3);
72183
72184var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
72185
72186var _inherits2 = __webpack_require__(4);
72187
72188var _inherits3 = _interopRequireDefault(_inherits2);
72189
72190var _class, _temp;
72191
72192var _react = __webpack_require__(0);
72193
72194var _react2 = _interopRequireDefault(_react);
72195
72196var _propTypes = __webpack_require__(5);
72197
72198var _propTypes2 = _interopRequireDefault(_propTypes);
72199
72200var _classnames2 = __webpack_require__(7);
72201
72202var _classnames3 = _interopRequireDefault(_classnames2);
72203
72204var _reactLifecyclesCompat = __webpack_require__(10);
72205
72206var _util = __webpack_require__(6);
72207
72208var _nav = __webpack_require__(422);
72209
72210var _nav2 = _interopRequireDefault(_nav);
72211
72212var _content = __webpack_require__(423);
72213
72214var _content2 = _interopRequireDefault(_content);
72215
72216var _utils = __webpack_require__(181);
72217
72218var _zhCn = __webpack_require__(13);
72219
72220var _zhCn2 = _interopRequireDefault(_zhCn);
72221
72222function _interopRequireDefault(obj) {
72223 return obj && obj.__esModule ? obj : { default: obj };
72224}
72225
72226var noop = function noop() {};
72227
72228/** Tab */
72229var Tab = (_temp = _class = function (_Component) {
72230 (0, _inherits3.default)(Tab, _Component);
72231
72232 function Tab(props, context) {
72233 (0, _classCallCheck3.default)(this, Tab);
72234
72235 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
72236
72237 _this.handleTriggerEvent = function (eventType, key) {
72238 var _this$props = _this.props,
72239 triggerType = _this$props.triggerType,
72240 onClick = _this$props.onClick,
72241 onChange = _this$props.onChange;
72242
72243 if (triggerType === eventType) {
72244 onClick(key);
72245 _this.setActiveKey(key);
72246 if (_this.state.activeKey !== key) {
72247 onChange(key);
72248 }
72249 }
72250 };
72251
72252 _this.onNavKeyDown = function (e) {
72253 var keyCode = e.keyCode;
72254 var disableKeyboard = _this.props.disableKeyboard;
72255
72256 if (disableKeyboard) {
72257 return;
72258 }
72259
72260 if (keyCode >= _util.KEYCODE.LEFT && keyCode <= _util.KEYCODE.DOWN) {
72261 e.preventDefault();
72262 }
72263
72264 var newKey = void 0;
72265 if (keyCode === _util.KEYCODE.RIGHT || keyCode === _util.KEYCODE.DOWN) {
72266 newKey = _this.getNextActiveKey(true);
72267 _this.handleTriggerEvent(_this.props.triggerType, newKey);
72268 } else if (keyCode === _util.KEYCODE.LEFT || keyCode === _util.KEYCODE.UP) {
72269 newKey = _this.getNextActiveKey(false);
72270 _this.handleTriggerEvent(_this.props.triggerType, newKey);
72271 }
72272 };
72273
72274 _this.state = {
72275 activeKey: _this.getDefaultActiveKey(props)
72276 };
72277 return _this;
72278 }
72279
72280 Tab.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
72281 if (props.activeKey !== undefined && state.activeKey !== '' + props.activeKey) {
72282 return {
72283 activeKey: '' + props.activeKey
72284 };
72285 }
72286
72287 return {};
72288 };
72289
72290 Tab.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
72291 var preChildLen = prevProps.children && prevProps.children.length || 0;
72292 var curChildLen = this.props.children && this.props.children.length || 0;
72293 if (preChildLen !== 0 && curChildLen !== 0 && !('activeKey' in this.props) & !this.isActiveKeyExist(this.state.activeKey)) {
72294 var activeKey = this.getDefaultActiveKey(this.props);
72295 if (activeKey) {
72296 // eslint-disable-next-line react/no-did-update-set-state
72297 this.setState({
72298 activeKey: activeKey
72299 });
72300 }
72301 }
72302 };
72303
72304 Tab.prototype.getDefaultActiveKey = function getDefaultActiveKey(props) {
72305 var activeKey = props.activeKey === undefined ? props.defaultActiveKey : props.activeKey;
72306
72307 if (activeKey === undefined) {
72308 _react2.default.Children.forEach(props.children, function (child, index) {
72309 if (activeKey !== undefined) return;
72310 if (_react2.default.isValidElement(child)) {
72311 if (!child.props.disabled) {
72312 activeKey = child.key || index;
72313 }
72314 }
72315 });
72316 }
72317
72318 return activeKey !== undefined ? '' + activeKey : undefined;
72319 };
72320
72321 Tab.prototype.getNextActiveKey = function getNextActiveKey(isNext) {
72322 var _this2 = this;
72323
72324 var children = [];
72325 _react2.default.Children.forEach(this.props.children, function (child) {
72326 if (_react2.default.isValidElement(child)) {
72327 if (!child.props.disabled) {
72328 if (isNext) {
72329 children.push(child);
72330 } else {
72331 children.unshift(child);
72332 }
72333 }
72334 }
72335 });
72336
72337 var length = children.length;
72338 var key = length && children[0].key;
72339 children.forEach(function (child, i) {
72340 if (child.key === _this2.state.activeKey) {
72341 if (i === length - 1) {
72342 key = children[0].key;
72343 } else {
72344 key = children[i + 1].key;
72345 }
72346 }
72347 });
72348 return key;
72349 };
72350
72351 Tab.prototype.isActiveKeyExist = function isActiveKeyExist(activeKey) {
72352 var exist = false;
72353 _react2.default.Children.forEach(this.props.children, function (child, index) {
72354 if (exist) return;
72355 if (_react2.default.isValidElement(child)) {
72356 if (!child.props.disabled) {
72357 var key = child.key || index;
72358 if (activeKey === '' + key) {
72359 exist = true;
72360 }
72361 }
72362 }
72363 });
72364 return exist;
72365 };
72366
72367 Tab.prototype.setActiveKey = function setActiveKey(key) {
72368 var activeKey = this.state.activeKey;
72369
72370 // 如果 key 没变,或者受控状态下,则跳过
72371
72372 if (key === activeKey || 'activeKey' in this.props) {
72373 return;
72374 }
72375 this.setState({
72376 activeKey: key
72377 });
72378 };
72379
72380 Tab.prototype.render = function render() {
72381 var _classnames;
72382
72383 var _props = this.props,
72384 prefix = _props.prefix,
72385 animation = _props.animation,
72386 shape = _props.shape,
72387 size = _props.size,
72388 extra = _props.extra,
72389 excessMode = _props.excessMode,
72390 tabPosition = _props.tabPosition,
72391 tabRender = _props.tabRender,
72392 triggerType = _props.triggerType,
72393 lazyLoad = _props.lazyLoad,
72394 unmountInactiveTabs = _props.unmountInactiveTabs,
72395 popupProps = _props.popupProps,
72396 navStyle = _props.navStyle,
72397 navClassName = _props.navClassName,
72398 contentStyle = _props.contentStyle,
72399 contentClassName = _props.contentClassName,
72400 className = _props.className,
72401 onClose = _props.onClose,
72402 children = _props.children,
72403 rtl = _props.rtl,
72404 device = _props.device,
72405 locale = _props.locale,
72406 icons = _props.icons,
72407 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'animation', 'shape', 'size', 'extra', 'excessMode', 'tabPosition', 'tabRender', 'triggerType', 'lazyLoad', 'unmountInactiveTabs', 'popupProps', 'navStyle', 'navClassName', 'contentStyle', 'contentClassName', 'className', 'onClose', 'children', 'rtl', 'device', 'locale', 'icons']);
72408 var activeKey = this.state.activeKey;
72409
72410 var tabs = (0, _utils.toArray)(children);
72411 var newPosition = tabPosition;
72412 if (rtl && ['left', 'right'].indexOf(tabPosition) >= 0) {
72413 newPosition = tabPosition === 'left' ? 'right' : 'left';
72414 }
72415 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'tabs'] = true, _classnames[prefix + 'tabs-' + shape] = shape, _classnames[prefix + 'tabs-vertical'] = shape === 'wrapped' && ['left', 'right'].indexOf(tabPosition) >= 0, _classnames[prefix + 'tabs-scrollable'] = true, _classnames[prefix + 'tabs-' + newPosition] = shape === 'wrapped', _classnames['' + (prefix + size)] = size, _classnames), className);
72416
72417 var navProps = {
72418 prefix: prefix,
72419 rtl: rtl,
72420 animation: animation,
72421 activeKey: activeKey,
72422 excessMode: excessMode,
72423 extra: extra,
72424 tabs: tabs,
72425 tabPosition: tabPosition,
72426 tabRender: tabRender,
72427 triggerType: triggerType,
72428 popupProps: popupProps,
72429 onClose: onClose,
72430 onTriggerEvent: this.handleTriggerEvent,
72431 onKeyDown: this.onNavKeyDown,
72432 style: navStyle,
72433 className: navClassName,
72434 locale: locale,
72435 icons: icons
72436 };
72437
72438 var contentProps = {
72439 prefix: prefix,
72440 activeKey: activeKey,
72441 lazyLoad: lazyLoad,
72442 unmountInactiveTabs: unmountInactiveTabs,
72443 style: contentStyle,
72444 className: contentClassName
72445 };
72446
72447 var tabChildren = [_react2.default.createElement(_nav2.default, (0, _extends3.default)({ key: 'tab-nav' }, navProps)), _react2.default.createElement(_content2.default, (0, _extends3.default)({ key: 'tab-content' }, contentProps), tabs)];
72448
72449 if (tabPosition === 'bottom') {
72450 tabChildren.reverse();
72451 }
72452
72453 return _react2.default.createElement('div', (0, _extends3.default)({ dir: rtl ? 'rtl' : undefined, className: classNames }, _util.obj.pickOthers(Tab.propTypes, others)), tabChildren);
72454 };
72455
72456 return Tab;
72457}(_react.Component), _class.propTypes = {
72458 prefix: _propTypes2.default.string,
72459 rtl: _propTypes2.default.bool,
72460 device: _propTypes2.default.oneOf(['tablet', 'desktop', 'phone']),
72461 /**
72462 * 被激活的选项卡的 key, 赋值则tab为受控组件, 用户无法切换
72463 */
72464 activeKey: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
72465 /**
72466 * 初始化时被激活的选项卡的 key
72467 */
72468 defaultActiveKey: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
72469 /**
72470 * 外观形态
72471 */
72472 shape: _propTypes2.default.oneOf(['pure', 'wrapped', 'text', 'capsule']),
72473 /**
72474 * 是否开启动效
72475 */
72476 animation: _propTypes2.default.bool,
72477 /**
72478 * 选项卡过多时的滑动模式
72479 */
72480 excessMode: _propTypes2.default.oneOf(['slide', 'dropdown']),
72481 /**
72482 * 导航选项卡的位置,只适用于包裹型(wrapped)选项卡
72483 */
72484 tabPosition: _propTypes2.default.oneOf(['top', 'bottom', 'left', 'right']),
72485 /**
72486 * 尺寸
72487 */
72488 size: _propTypes2.default.oneOf(['small', 'medium']),
72489 /**
72490 * 激活选项卡的触发方式
72491 */
72492 triggerType: _propTypes2.default.oneOf(['hover', 'click']),
72493 /**
72494 * 是否延迟加载 TabItem 的内容, 默认开启, 即不提前渲染
72495 */
72496 lazyLoad: _propTypes2.default.bool,
72497 /**
72498 * 是否自动卸载未处于激活状态的选项卡
72499 */
72500 unmountInactiveTabs: _propTypes2.default.bool,
72501 /**
72502 * 导航条的自定义样式
72503 */
72504 navStyle: _propTypes2.default.object,
72505 /**
72506 * 导航条的自定义样式类
72507 */
72508 navClassName: _propTypes2.default.string,
72509 /**
72510 * 内容区容器的自定义样式
72511 */
72512 contentStyle: _propTypes2.default.object,
72513 /**
72514 * 内容区容器的自定义样式类
72515 */
72516 contentClassName: _propTypes2.default.string,
72517 /**
72518 * 导航栏附加内容
72519 */
72520 extra: _propTypes2.default.node,
72521 /**
72522 * 禁止键盘事件,设置后无法通过键盘的上下左右按键,切换当前选中的tab
72523 */
72524 disableKeyboard: _propTypes2.default.bool,
72525 /**
72526 * 点击单个选项卡时触发的回调
72527 */
72528 onClick: _propTypes2.default.func,
72529 /**
72530 * 选项卡发生切换时的事件回调
72531 * @param {String|Number} key 改变后的 key
72532 */
72533 onChange: _propTypes2.default.func,
72534 /**
72535 * 选项卡被关闭时的事件回调
72536 * @param {String|Number} key 关闭的选项卡的 key
72537 */
72538 onClose: _propTypes2.default.func,
72539 /**
72540 * 自定义选项卡模板渲染函数
72541 * @param {String} key 当前 Tab.Item 的 key 值
72542 * @param {Object} props 传给 Tab.Item 的所有属性键值对
72543 * @return {ReactNode} 返回自定义组件
72544 */
72545 tabRender: _propTypes2.default.func,
72546 /**
72547 * 弹层属性透传, 只有当 excessMode 为 dropdown 时生效
72548 */
72549 popupProps: _propTypes2.default.object,
72550 children: _propTypes2.default.any,
72551 className: _propTypes2.default.string,
72552 locale: _propTypes2.default.object,
72553 /**
72554 * 自定义组件内 icon
72555 */
72556 icons: _propTypes2.default.shape({
72557 prev: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
72558 next: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
72559 dropdown: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string])
72560 })
72561}, _class.defaultProps = {
72562 prefix: 'next-',
72563 shape: 'pure',
72564 size: 'medium',
72565 animation: true,
72566 tabPosition: 'top',
72567 excessMode: 'slide',
72568 triggerType: 'click',
72569 lazyLoad: true,
72570 unmountInactiveTabs: false,
72571 disableKeyboard: false,
72572 onClick: noop,
72573 onChange: noop,
72574 onClose: noop,
72575 locale: _zhCn2.default.Tab,
72576 icons: {}
72577}, _temp);
72578Tab.displayName = 'Tab';
72579exports.default = (0, _reactLifecyclesCompat.polyfill)(Tab);
72580module.exports = exports['default'];
72581
72582/***/ }),
72583/* 422 */
72584/***/ (function(module, exports, __webpack_require__) {
72585
72586"use strict";
72587
72588
72589exports.__esModule = true;
72590
72591var _extends2 = __webpack_require__(1);
72592
72593var _extends3 = _interopRequireDefault(_extends2);
72594
72595var _classCallCheck2 = __webpack_require__(2);
72596
72597var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
72598
72599var _possibleConstructorReturn2 = __webpack_require__(3);
72600
72601var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
72602
72603var _inherits2 = __webpack_require__(4);
72604
72605var _inherits3 = _interopRequireDefault(_inherits2);
72606
72607var _class, _temp;
72608
72609var _react = __webpack_require__(0);
72610
72611var _react2 = _interopRequireDefault(_react);
72612
72613var _reactDom = __webpack_require__(12);
72614
72615var _propTypes = __webpack_require__(5);
72616
72617var _propTypes2 = _interopRequireDefault(_propTypes);
72618
72619var _classnames3 = __webpack_require__(7);
72620
72621var _classnames4 = _interopRequireDefault(_classnames3);
72622
72623var _icon = __webpack_require__(11);
72624
72625var _icon2 = _interopRequireDefault(_icon);
72626
72627var _overlay = __webpack_require__(15);
72628
72629var _overlay2 = _interopRequireDefault(_overlay);
72630
72631var _menu = __webpack_require__(16);
72632
72633var _menu2 = _interopRequireDefault(_menu);
72634
72635var _animate = __webpack_require__(20);
72636
72637var _animate2 = _interopRequireDefault(_animate);
72638
72639var _util = __webpack_require__(6);
72640
72641var _utils = __webpack_require__(181);
72642
72643function _interopRequireDefault(obj) {
72644 return obj && obj.__esModule ? obj : { default: obj };
72645}
72646
72647var floatRight = { float: 'right', zIndex: 1 };
72648var floatLeft = { float: 'left', zIndex: 1 };
72649var iconTypeMap = {
72650 dropdown: 'arrow-down',
72651 prev: 'arrow-left',
72652 next: 'arrow-right'
72653};
72654var Popup = _overlay2.default.Popup;
72655var Nav = (_temp = _class = function (_React$Component) {
72656 (0, _inherits3.default)(Nav, _React$Component);
72657
72658 function Nav(props, context) {
72659 (0, _classCallCheck3.default)(this, Nav);
72660
72661 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
72662
72663 _this.removeTab = function (key, e) {
72664 e && e.stopPropagation(); // stop bubble, so that it won't trigger upstream listener
72665 _this.props.onClose(key);
72666 };
72667
72668 _this.onCloseKeyDown = function (key, e) {
72669 if (e.keyCode === _util.KEYCODE.ENTER) {
72670 e.stopPropagation();
72671 e.preventDefault();
72672 _this.props.onClose(key);
72673 }
72674 };
72675
72676 _this.defaultTabTemplateRender = function (key, _ref) {
72677 var title = _ref.title,
72678 closeable = _ref.closeable;
72679 var _this$props = _this.props,
72680 locale = _this$props.locale,
72681 prefix = _this$props.prefix;
72682
72683 var tail = closeable ? _react2.default.createElement(_icon2.default, {
72684 'aria-label': locale.closeAriaLabel,
72685 type: 'close',
72686 tabIndex: '0',
72687 onKeyDown: function onKeyDown(e) {
72688 return _this.onCloseKeyDown(key, e);
72689 },
72690 onClick: function onClick(e) {
72691 return _this.removeTab(key, e);
72692 },
72693 className: prefix + 'tabs-tab-close'
72694 }) : null;
72695 return _react2.default.createElement('div', { className: prefix + 'tabs-tab-inner' }, title, tail);
72696 };
72697
72698 _this.scrollToActiveTab = function () {
72699 if (_this.activeTab && ['slide', 'dropdown'].includes(_this.props.excessMode)) {
72700 var activeTabWH = (0, _utils.getOffsetWH)(_this.activeTab);
72701 var wrapperWH = (0, _utils.getOffsetWH)(_this.wrapper);
72702 var activeTabOffset = (0, _utils.getOffsetLT)(_this.activeTab);
72703 var wrapperOffset = (0, _utils.getOffsetLT)(_this.wrapper);
72704 var target = _this.offset;
72705
72706 if (activeTabOffset + activeTabWH >= wrapperOffset + wrapperWH || activeTabOffset < wrapperOffset) {
72707 _this.setOffset(_this.offset + wrapperOffset - activeTabOffset, true, true);
72708 return;
72709 }
72710 _this.setOffset(target, true, true);
72711 }
72712 };
72713
72714 _this.onPrevClick = function () {
72715 var wrapperWH = (0, _utils.getOffsetWH)(_this.wrapper);
72716 _this.setOffset(_this.offset + wrapperWH, true, false);
72717 };
72718
72719 _this.onNextClick = function () {
72720 var wrapperWH = (0, _utils.getOffsetWH)(_this.wrapper);
72721 _this.setOffset(_this.offset - wrapperWH, true, false);
72722 };
72723
72724 _this.onSelectMenuItem = function (keys) {
72725 var _this$props2 = _this.props,
72726 onTriggerEvent = _this$props2.onTriggerEvent,
72727 triggerType = _this$props2.triggerType;
72728
72729 onTriggerEvent(triggerType, keys[0]);
72730 };
72731
72732 _this.onWindowResized = function () {
72733 if (_this.updateTimer) {
72734 clearTimeout(_this.updateTimer);
72735 }
72736
72737 _this.updateTimer = setTimeout(function () {
72738 _this.setSlideBtn();
72739 _this.getDropdownItems(_this.props);
72740 }, 100);
72741 };
72742
72743 _this.navRefHandler = function (ref) {
72744 _this.nav = (0, _reactDom.findDOMNode)(ref);
72745 };
72746
72747 _this.wrapperRefHandler = function (ref) {
72748 _this.wrapper = ref;
72749 };
72750
72751 _this.navbarRefHandler = function (ref) {
72752 _this.navbar = ref;
72753 };
72754
72755 _this.activeTabRefHandler = function (ref) {
72756 _this.activeTab = ref;
72757 };
72758
72759 _this.prevBtnHandler = function (ref) {
72760 _this.prevBtn = (0, _reactDom.findDOMNode)(ref);
72761 };
72762
72763 _this.nextBtnHandler = function (ref) {
72764 _this.nextBtn = (0, _reactDom.findDOMNode)(ref);
72765 };
72766
72767 _this.state = {
72768 showBtn: false,
72769 dropdownTabs: []
72770 };
72771 _this.offset = 0;
72772 return _this;
72773 }
72774
72775 Nav.prototype.componentDidMount = function componentDidMount() {
72776 if (!this.props.animation) {
72777 this.initialSettings();
72778 }
72779
72780 _util.events.on(window, 'resize', this.onWindowResized);
72781 };
72782
72783 Nav.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
72784 var _this2 = this;
72785
72786 // 此处通过延时处理,屏蔽动画带来的定位不准确问题(由于要支持ie9,因此无法使用transitionend)
72787 clearTimeout(this.scrollTimer);
72788 this.scrollTimer = setTimeout(function () {
72789 _this2.scrollToActiveTab();
72790 }, 410); // transition-duration is set to be .4s, wait for the transition finishes before re-calc
72791
72792 clearTimeout(this.slideTimer);
72793 this.slideTimer = setTimeout(function () {
72794 _this2.setSlideBtn();
72795 }, 410);
72796
72797 // 更改tabs后如果有dropdown属性,应该重新执行getDropdownItems函数更新dropdown数据
72798 if (this.props.excessMode === 'dropdown') {
72799 if (!(0, _utils.tabsArrayShallowEqual)(this.props.tabs, prevProps.tabs)) {
72800 this.getDropdownItems(this.props);
72801 }
72802 }
72803 };
72804
72805 Nav.prototype.componentWillUnmount = function componentWillUnmount() {
72806 _util.events.off(window, 'resize', this.onWindowResized);
72807 };
72808
72809 Nav.prototype.initialSettings = function initialSettings() {
72810 this.setSlideBtn();
72811 this.getDropdownItems(this.props);
72812 };
72813
72814 /**
72815 * The key method about move
72816 * @param {number} target position to slide to
72817 * @param {bool} checkSlideBtn need to check the slide button status or not
72818 * @param {bool} setActive need to check the active status or not
72819 */
72820
72821 Nav.prototype.setOffset = function setOffset(target) {
72822 var checkSlideBtn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
72823 var setActive = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
72824 var _props = this.props,
72825 tabPosition = _props.tabPosition,
72826 rtl = _props.rtl;
72827
72828 var navWH = (0, _utils.getOffsetWH)(this.nav, tabPosition);
72829 var wrapperWH = (0, _utils.getOffsetWH)(this.wrapper);
72830
72831 // target should not be great than 0, i.e. should not over slide to left-most
72832 target = target >= 0 ? 0 : target;
72833 // when need to slide, should not slide to exceed right-most
72834 target = target <= wrapperWH - navWH && wrapperWH - navWH < 0 ? wrapperWH - navWH : target;
72835
72836 var relativeOffset = target - this.offset;
72837 if (this.activeTab && this.props.excessMode === 'slide' && setActive) {
72838 var activeTabWH = (0, _utils.getOffsetWH)(this.activeTab);
72839 var activeTabOffset = (0, _utils.getOffsetLT)(this.activeTab) + relativeOffset;
72840 var wrapperOffset = (0, _utils.getOffsetLT)(this.wrapper);
72841 target = this._adjustTarget({
72842 wrapperOffset: wrapperOffset,
72843 wrapperWH: wrapperWH,
72844 activeTabWH: activeTabWH,
72845 activeTabOffset: activeTabOffset,
72846 rtl: rtl,
72847 target: target
72848 });
72849 }
72850
72851 var scaleRate = 1;
72852
72853 if (this.nav && this.nav.offsetWidth) {
72854 scaleRate = (0, _utils.getOffsetWH)(this.nav) / this.nav.offsetWidth;
72855 }
72856
72857 var _ov = target / scaleRate;
72858 var offsetValue = isNaN(_ov) ? target : _ov;
72859
72860 if (this.offset !== target && this.nav) {
72861 // needs move
72862 this.offset = target;
72863 var divScroll = this.nav.parentElement;
72864
72865 if (tabPosition === 'left' || tabPosition === 'right') {
72866 divScroll.scrollTo({ top: -offsetValue, left: 0, behavior: 'smooth' });
72867 } else if (!this.props.rtl) {
72868 divScroll.scrollTo({ top: 0, left: -offsetValue, behavior: 'smooth' });
72869 } else {
72870 divScroll.scrollTo({ top: 0, left: offsetValue, behavior: 'smooth' });
72871 }
72872
72873 if (checkSlideBtn) {
72874 this.setSlideBtn();
72875 }
72876 }
72877 };
72878
72879 Nav.prototype._adjustTarget = function _adjustTarget(_ref2) {
72880 var wrapperOffset = _ref2.wrapperOffset,
72881 wrapperWH = _ref2.wrapperWH,
72882 activeTabWH = _ref2.activeTabWH,
72883 activeTabOffset = _ref2.activeTabOffset,
72884 rtl = _ref2.rtl,
72885 target = _ref2.target;
72886
72887 if (
72888 // active tab covers wrapper right edge
72889 wrapperOffset + wrapperWH < activeTabOffset + activeTabWH && activeTabOffset < wrapperOffset + wrapperWH) {
72890 if (rtl) {
72891 target += activeTabOffset + activeTabWH - (wrapperOffset + wrapperWH); // Move more to make active tab totally in visible zone
72892 } else {
72893 target -= activeTabOffset + activeTabWH - (wrapperOffset + wrapperWH) + 1;
72894 }
72895
72896 return target;
72897 }
72898 if (
72899 // active tab covers wrapper left edge
72900 wrapperOffset < activeTabOffset + activeTabWH && activeTabOffset < wrapperOffset) {
72901 if (rtl) {
72902 target -= wrapperOffset - activeTabOffset + 1;
72903 } else {
72904 target += wrapperOffset - activeTabOffset;
72905 }
72906 return target;
72907 }
72908 return target;
72909 };
72910
72911 Nav.prototype._setBtnStyle = function _setBtnStyle(prev, next) {
72912 if (this.prevBtn && this.nextBtn) {
72913 var cls = 'disabled';
72914 this.prevBtn.disabled = !prev;
72915 this.nextBtn.disabled = !next;
72916 if (prev) {
72917 _util.dom.removeClass(this.prevBtn, cls);
72918 } else {
72919 _util.dom.addClass(this.prevBtn, cls);
72920 }
72921 if (next) {
72922 _util.dom.removeClass(this.nextBtn, cls);
72923 } else {
72924 _util.dom.addClass(this.nextBtn, cls);
72925 }
72926 }
72927 };
72928
72929 Nav.prototype.setSlideBtn = function setSlideBtn() {
72930 var tabPosition = this.props.tabPosition;
72931
72932 // TEMP: 这里会受 Animate 影响,re-render 过程中 this.nav 实际上指向的是上次的 tabList 元素,建议暂时关闭 animation 解决
72933
72934 var navWH = (0, _utils.getOffsetWH)(this.nav, tabPosition);
72935 var wrapperWH = (0, _utils.getOffsetWH)(this.wrapper, tabPosition);
72936 var minOffset = wrapperWH - navWH;
72937
72938 var next = void 0;
72939 var prev = void 0;
72940 if (minOffset >= 0 || navWH <= wrapperWH) {
72941 next = false;
72942 prev = false;
72943 this.setOffset(0, false); // no need to check slide again since this call is invoked from inside setSlideBtn
72944 } else if (this.offset < 0 && this.offset <= minOffset) {
72945 prev = true;
72946 next = false;
72947 } else if (this.offset >= 0) {
72948 prev = false;
72949 next = true;
72950 } else {
72951 prev = true;
72952 next = true;
72953 }
72954
72955 if ((prev || next) !== this.state.showBtn) {
72956 this.setState({
72957 showBtn: prev || next
72958 });
72959 } else {
72960 this._setBtnStyle(prev, next);
72961 }
72962 };
72963
72964 Nav.prototype.getDropdownItems = function getDropdownItems(_ref3) {
72965 var excessMode = _ref3.excessMode,
72966 tabs = _ref3.tabs;
72967
72968 if (excessMode !== 'dropdown') {
72969 return;
72970 }
72971
72972 var wrapperWidth = this.wrapper.offsetWidth;
72973 var childNodes = this.nav.childNodes;
72974
72975 var index = void 0;
72976 var tabsWidth = 0;
72977 for (index = 0; index < tabs.length; index++) {
72978 tabsWidth += childNodes[index].offsetWidth;
72979 if (tabsWidth > wrapperWidth) {
72980 break;
72981 }
72982 }
72983
72984 if (index === tabs.length) {
72985 this.setState({
72986 dropdownTabs: []
72987 });
72988 } else {
72989 this.setState({
72990 dropdownTabs: tabs
72991 });
72992 }
72993 };
72994
72995 Nav.prototype.renderTabList = function renderTabList(props) {
72996 var _this3 = this;
72997
72998 var prefix = props.prefix,
72999 tabs = props.tabs,
73000 activeKey = props.activeKey,
73001 tabRender = props.tabRender;
73002
73003 var tabTemplateFn = tabRender || this.defaultTabTemplateRender;
73004
73005 var rst = [];
73006 _react2.default.Children.forEach(tabs, function (child) {
73007 var _classnames;
73008
73009 var _child$props = child.props,
73010 disabled = _child$props.disabled,
73011 className = _child$props.className,
73012 onClick = _child$props.onClick,
73013 onMouseEnter = _child$props.onMouseEnter,
73014 onMouseLeave = _child$props.onMouseLeave,
73015 style = _child$props.style;
73016
73017 var active = activeKey === child.key;
73018 var cls = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'tabs-tab'] = true, _classnames.disabled = disabled, _classnames.active = active, _classnames), className);
73019
73020 var events = {};
73021
73022 if (!disabled) {
73023 events = {
73024 onClick: _this3.onNavItemClick.bind(_this3, child.key, onClick),
73025 onMouseEnter: _this3.onNavItemMouseEnter.bind(_this3, child.key, onMouseEnter),
73026 onMouseLeave: _this3.onNavItemMouseLeave.bind(_this3, child.key, onMouseLeave)
73027 };
73028 }
73029
73030 var dataProps = _util.obj.pickAttrsWith(child.props, 'data-');
73031
73032 rst.push(_react2.default.createElement('li', (0, _extends3.default)({}, dataProps, {
73033 role: 'tab',
73034 key: child.key,
73035 ref: active ? _this3.activeTabRefHandler : null,
73036 'aria-hidden': disabled ? 'true' : 'false',
73037 'aria-selected': active ? 'true' : 'false',
73038 tabIndex: active ? 0 : -1,
73039 className: cls,
73040 style: style
73041 }, events), tabTemplateFn(child.key, child.props)));
73042 });
73043 return rst;
73044 };
73045
73046 Nav.prototype.onNavItemClick = function onNavItemClick(key, callback, e) {
73047 this.props.onTriggerEvent(_utils.triggerEvents.CLICK, key);
73048 if (callback) {
73049 return callback(key, e);
73050 }
73051 };
73052
73053 Nav.prototype.onNavItemMouseEnter = function onNavItemMouseEnter(key, callback, e) {
73054 this.props.onTriggerEvent(_utils.triggerEvents.HOVER, key);
73055 if (callback) {
73056 return callback(key, e);
73057 }
73058 };
73059
73060 Nav.prototype.onNavItemMouseLeave = function onNavItemMouseLeave(key, callback, e) {
73061 if (callback) {
73062 return callback(key, e);
73063 }
73064 };
73065
73066 Nav.prototype.getIcon = function getIcon(type) {
73067 var _props2 = this.props,
73068 prefix = _props2.prefix,
73069 icons = _props2.icons,
73070 rtl = _props2.rtl;
73071
73072 var iconType = iconTypeMap[type];
73073 var icon = _react2.default.createElement(_icon2.default, { type: iconType, rtl: rtl, className: prefix + 'tab-icon-' + type });
73074 if (icons[type]) {
73075 icon = typeof icons[type] === 'string' ? _react2.default.createElement(_icon2.default, { rtl: rtl, type: icons[type] }) : icons[type];
73076 }
73077
73078 return icon;
73079 };
73080
73081 Nav.prototype.renderDropdownTabs = function renderDropdownTabs() {
73082 var _this4 = this;
73083
73084 var tabs = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
73085
73086 if (!tabs.length) {
73087 return null;
73088 }
73089
73090 var _props3 = this.props,
73091 prefix = _props3.prefix,
73092 activeKey = _props3.activeKey,
73093 triggerType = _props3.triggerType,
73094 popupProps = _props3.popupProps,
73095 rtl = _props3.rtl;
73096
73097 var dropdownIcon = this.getIcon('dropdown');
73098
73099 var trigger = _react2.default.createElement('button', { className: prefix + 'tabs-btn-down' }, dropdownIcon);
73100
73101 return _react2.default.createElement(Popup, (0, _extends3.default)({
73102 rtl: rtl,
73103 triggerType: triggerType,
73104 trigger: trigger,
73105 container: function container(target) {
73106 return target.parentNode;
73107 },
73108 className: prefix + 'tabs-bar-popup'
73109 }, popupProps), _react2.default.createElement(_menu2.default, { rtl: rtl, selectedKeys: [activeKey], onSelect: this.onSelectMenuItem, selectMode: 'single' }, tabs.map(function (tab) {
73110 var _tab$props = tab.props,
73111 disabled = _tab$props.disabled,
73112 onClick = _tab$props.onClick,
73113 onMouseEnter = _tab$props.onMouseEnter,
73114 onMouseLeave = _tab$props.onMouseLeave;
73115
73116 var events = {};
73117 if (!disabled) {
73118 events = {
73119 onClick: _this4.onNavItemClick.bind(_this4, tab.key, onClick),
73120 onMouseEnter: _this4.onNavItemMouseEnter.bind(_this4, tab.key, onMouseEnter),
73121 onMouseLeave: _this4.onNavItemMouseLeave.bind(_this4, tab.key, onMouseLeave)
73122 };
73123 }
73124 return _react2.default.createElement(_menu2.default.Item, (0, _extends3.default)({ key: tab.key }, events), tab.props.title);
73125 })));
73126 };
73127
73128 Nav.prototype.render = function render() {
73129 var _classnames2;
73130
73131 var _props4 = this.props,
73132 prefix = _props4.prefix,
73133 tabPosition = _props4.tabPosition,
73134 excessMode = _props4.excessMode,
73135 extra = _props4.extra,
73136 onKeyDown = _props4.onKeyDown,
73137 animation = _props4.animation,
73138 style = _props4.style,
73139 className = _props4.className,
73140 rtl = _props4.rtl;
73141
73142 var state = this.state;
73143 var nextButton = void 0;
73144 var prevButton = void 0;
73145 var restButton = void 0;
73146
73147 var showNextPrev = state.showBtn;
73148
73149 if (excessMode === 'dropdown' && showNextPrev && state.dropdownTabs.length) {
73150 restButton = this.renderDropdownTabs(state.dropdownTabs);
73151 prevButton = null;
73152 nextButton = null;
73153 } else if (showNextPrev) {
73154 var prevIcon = this.getIcon('prev');
73155 prevButton = _react2.default.createElement('button', {
73156 onClick: this.onPrevClick,
73157 className: prefix + 'tabs-btn-prev',
73158 ref: this.prevBtnHandler,
73159 type: 'button'
73160 }, prevIcon);
73161
73162 var nextIcon = this.getIcon('next');
73163
73164 nextButton = _react2.default.createElement('button', {
73165 onClick: this.onNextClick,
73166 className: prefix + 'tabs-btn-next',
73167 ref: this.nextBtnHandler,
73168 type: 'button'
73169 }, nextIcon);
73170 restButton = null;
73171 } else {
73172 nextButton = null;
73173 prevButton = null;
73174 restButton = null;
73175 }
73176
73177 var containerCls = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'tabs-nav-container'] = true, _classnames2[prefix + 'tabs-nav-container-scrolling'] = showNextPrev, _classnames2));
73178
73179 var navCls = prefix + 'tabs-nav';
73180 var tabList = this.renderTabList(this.props);
73181
73182 var container = _react2.default.createElement('div', { className: containerCls, onKeyDown: onKeyDown, key: 'nav-container' }, _react2.default.createElement('div', { className: prefix + 'tabs-nav-wrap', ref: this.wrapperRefHandler }, _react2.default.createElement('div', { className: prefix + 'tabs-nav-scroll' }, animation ? _react2.default.createElement(_animate2.default, {
73183 role: 'tablist',
73184 'aria-multiselectable': false,
73185 component: 'ul',
73186 className: navCls,
73187 animation: navCls,
73188 singleMode: false,
73189 ref: this.navRefHandler,
73190 afterAppear: this.initialSettings.bind(this)
73191 }, tabList) : _react2.default.createElement('ul', {
73192 role: 'tablist',
73193 className: navCls + ' ' + prefix + 'disable-animation',
73194 ref: this.navRefHandler
73195 }, tabList))), prevButton, nextButton, restButton);
73196
73197 var navChildren = [container];
73198
73199 if (extra) {
73200 var extraProps = {
73201 className: prefix + 'tabs-nav-extra',
73202 key: 'nav-extra'
73203 };
73204 if (tabPosition === 'top' || tabPosition === 'bottom') {
73205 var _style = rtl ? floatLeft : floatRight;
73206 navChildren.unshift(_react2.default.createElement('div', (0, _extends3.default)({}, extraProps, { style: _style }), extra));
73207 } else {
73208 navChildren.push(_react2.default.createElement('div', extraProps, extra));
73209 }
73210 }
73211
73212 var navbarCls = (0, _classnames4.default)(prefix + 'tabs-bar', className);
73213
73214 return _react2.default.createElement('div', { className: navbarCls, style: style, ref: this.navbarRefHandler }, navChildren);
73215 };
73216
73217 return Nav;
73218}(_react2.default.Component), _class.propTypes = {
73219 prefix: _propTypes2.default.string,
73220 rtl: _propTypes2.default.bool,
73221 animation: _propTypes2.default.bool,
73222 activeKey: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
73223 excessMode: _propTypes2.default.string,
73224 extra: _propTypes2.default.any,
73225 tabs: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),
73226 tabPosition: _propTypes2.default.string,
73227 tabRender: _propTypes2.default.func,
73228 triggerType: _propTypes2.default.string,
73229 popupProps: _propTypes2.default.object,
73230 onTriggerEvent: _propTypes2.default.func,
73231 onKeyDown: _propTypes2.default.func,
73232 onClose: _propTypes2.default.func,
73233 style: _propTypes2.default.object,
73234 className: _propTypes2.default.string,
73235 locale: _propTypes2.default.object,
73236 icons: _propTypes2.default.object
73237}, _temp);
73238Nav.displayName = 'Nav';
73239exports.default = Nav;
73240module.exports = exports['default'];
73241
73242/***/ }),
73243/* 423 */
73244/***/ (function(module, exports, __webpack_require__) {
73245
73246"use strict";
73247
73248
73249exports.__esModule = true;
73250
73251var _extends2 = __webpack_require__(1);
73252
73253var _extends3 = _interopRequireDefault(_extends2);
73254
73255var _objectWithoutProperties2 = __webpack_require__(8);
73256
73257var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
73258
73259var _classCallCheck2 = __webpack_require__(2);
73260
73261var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
73262
73263var _possibleConstructorReturn2 = __webpack_require__(3);
73264
73265var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
73266
73267var _inherits2 = __webpack_require__(4);
73268
73269var _inherits3 = _interopRequireDefault(_inherits2);
73270
73271var _class, _temp;
73272
73273var _react = __webpack_require__(0);
73274
73275var _react2 = _interopRequireDefault(_react);
73276
73277var _propTypes = __webpack_require__(5);
73278
73279var _propTypes2 = _interopRequireDefault(_propTypes);
73280
73281var _classnames2 = __webpack_require__(7);
73282
73283var _classnames3 = _interopRequireDefault(_classnames2);
73284
73285function _interopRequireDefault(obj) {
73286 return obj && obj.__esModule ? obj : { default: obj };
73287}
73288
73289var TabContent = (_temp = _class = function (_PureComponent) {
73290 (0, _inherits3.default)(TabContent, _PureComponent);
73291
73292 function TabContent() {
73293 (0, _classCallCheck3.default)(this, TabContent);
73294 return (0, _possibleConstructorReturn3.default)(this, _PureComponent.apply(this, arguments));
73295 }
73296
73297 TabContent.prototype.render = function render() {
73298 var _classnames;
73299
73300 var _props = this.props,
73301 prefix = _props.prefix,
73302 activeKey = _props.activeKey,
73303 lazyLoad = _props.lazyLoad,
73304 unmountInactiveTabs = _props.unmountInactiveTabs,
73305 children = _props.children,
73306 className = _props.className,
73307 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'activeKey', 'lazyLoad', 'unmountInactiveTabs', 'children', 'className']);
73308
73309 var formatChildren = [];
73310 _react2.default.Children.forEach(children, function (child) {
73311 /* eslint-disable eqeqeq */
73312 var active = activeKey == child.key;
73313 formatChildren.push(_react2.default.cloneElement(child, {
73314 prefix: prefix,
73315 active: active,
73316 lazyLoad: lazyLoad,
73317 unmountInactiveTabs: unmountInactiveTabs
73318 }));
73319 });
73320
73321 var classNames = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'tabs-content'] = true, _classnames), className);
73322
73323 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: classNames }), formatChildren);
73324 };
73325
73326 return TabContent;
73327}(_react.PureComponent), _class.propTypes = {
73328 prefix: _propTypes2.default.string,
73329 activeKey: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
73330 lazyLoad: _propTypes2.default.bool,
73331 children: _propTypes2.default.any
73332}, _temp);
73333exports.default = TabContent;
73334module.exports = exports['default'];
73335
73336/***/ }),
73337/* 424 */
73338/***/ (function(module, exports, __webpack_require__) {
73339
73340"use strict";
73341
73342
73343exports.__esModule = true;
73344
73345var _classCallCheck2 = __webpack_require__(2);
73346
73347var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
73348
73349var _possibleConstructorReturn2 = __webpack_require__(3);
73350
73351var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
73352
73353var _inherits2 = __webpack_require__(4);
73354
73355var _inherits3 = _interopRequireDefault(_inherits2);
73356
73357var _class, _temp;
73358
73359var _react = __webpack_require__(0);
73360
73361var _react2 = _interopRequireDefault(_react);
73362
73363var _propTypes = __webpack_require__(5);
73364
73365var _propTypes2 = _interopRequireDefault(_propTypes);
73366
73367var _classnames2 = __webpack_require__(7);
73368
73369var _classnames3 = _interopRequireDefault(_classnames2);
73370
73371var _reactLifecyclesCompat = __webpack_require__(10);
73372
73373function _interopRequireDefault(obj) {
73374 return obj && obj.__esModule ? obj : { default: obj };
73375}
73376
73377/** Tab.Item */
73378var TabItem = (_temp = _class = function (_React$Component) {
73379 (0, _inherits3.default)(TabItem, _React$Component);
73380
73381 function TabItem() {
73382 (0, _classCallCheck3.default)(this, TabItem);
73383 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
73384 }
73385
73386 TabItem.prototype.render = function render() {
73387 var _classnames;
73388
73389 var _props = this.props,
73390 prefix = _props.prefix,
73391 active = _props.active,
73392 lazyLoad = _props.lazyLoad,
73393 unmountInactiveTabs = _props.unmountInactiveTabs,
73394 children = _props.children;
73395
73396 this._actived = this._actived || active;
73397 if (lazyLoad && !this._actived) {
73398 return null;
73399 }
73400
73401 if (unmountInactiveTabs && !active) {
73402 return null;
73403 }
73404
73405 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'tabs-tabpane'] = true, _classnames['' + (active ? 'active' : 'hidden')] = true, _classnames));
73406
73407 return _react2.default.createElement('div', {
73408 role: 'tabpanel',
73409 'aria-hidden': active ? 'false' : 'true',
73410 className: cls
73411 }, children);
73412 };
73413
73414 return TabItem;
73415}(_react2.default.Component), _class.propTypes = {
73416 prefix: _propTypes2.default.string,
73417 /**
73418 * 选项卡标题
73419 */
73420 title: _propTypes2.default.node,
73421 /**
73422 * 单个选项卡是否可关闭
73423 */
73424 closeable: _propTypes2.default.bool,
73425 /**
73426 * 选项卡是否被禁用
73427 */
73428 disabled: _propTypes2.default.bool,
73429 active: _propTypes2.default.bool,
73430 lazyLoad: _propTypes2.default.bool,
73431 unmountInactiveTabs: _propTypes2.default.bool,
73432 children: _propTypes2.default.any
73433}, _class.defaultProps = {
73434 prefix: 'next-',
73435 closeable: false
73436}, _temp);
73437TabItem.displayName = 'TabItem';
73438exports.default = (0, _reactLifecyclesCompat.polyfill)(TabItem);
73439module.exports = exports['default'];
73440
73441/***/ }),
73442/* 425 */
73443/***/ (function(module, exports, __webpack_require__) {
73444
73445"use strict";
73446
73447
73448exports.__esModule = true;
73449
73450var _extends2 = __webpack_require__(1);
73451
73452var _extends3 = _interopRequireDefault(_extends2);
73453
73454var _objectWithoutProperties2 = __webpack_require__(8);
73455
73456var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
73457
73458var _configProvider = __webpack_require__(9);
73459
73460var _configProvider2 = _interopRequireDefault(_configProvider);
73461
73462var _base = __webpack_require__(426);
73463
73464var _base2 = _interopRequireDefault(_base);
73465
73466var _tree = __webpack_require__(431);
73467
73468var _tree2 = _interopRequireDefault(_tree);
73469
73470var _fixed = __webpack_require__(434);
73471
73472var _fixed2 = _interopRequireDefault(_fixed);
73473
73474var _selection = __webpack_require__(435);
73475
73476var _selection2 = _interopRequireDefault(_selection);
73477
73478var _expanded = __webpack_require__(436);
73479
73480var _expanded2 = _interopRequireDefault(_expanded);
73481
73482var _virtual = __webpack_require__(437);
73483
73484var _virtual2 = _interopRequireDefault(_virtual);
73485
73486var _lock = __webpack_require__(439);
73487
73488var _lock2 = _interopRequireDefault(_lock);
73489
73490var _newLock = __webpack_require__(440);
73491
73492var _newLock2 = _interopRequireDefault(_newLock);
73493
73494var _list = __webpack_require__(441);
73495
73496var _list2 = _interopRequireDefault(_list);
73497
73498var _sticky = __webpack_require__(444);
73499
73500var _sticky2 = _interopRequireDefault(_sticky);
73501
73502var _listHeader = __webpack_require__(190);
73503
73504var _listHeader2 = _interopRequireDefault(_listHeader);
73505
73506var _listFooter = __webpack_require__(191);
73507
73508var _listFooter2 = _interopRequireDefault(_listFooter);
73509
73510var _util = __webpack_require__(6);
73511
73512function _interopRequireDefault(obj) {
73513 return obj && obj.__esModule ? obj : { default: obj };
73514}
73515
73516var ieVersion = _util.env.ieVersion;
73517
73518var ORDER_LIST = [_fixed2.default, _lock2.default, _selection2.default, _expanded2.default, _virtual2.default, _tree2.default, _list2.default, _sticky2.default];
73519var Table = ORDER_LIST.reduce(function (ret, current) {
73520 ret = current(ret);
73521 return ret;
73522}, _base2.default);
73523
73524_lock2.default._typeMark = 'lock';
73525_expanded2.default._typeMark = 'expanded';
73526_fixed2.default._typeMark = 'fixed';
73527
73528var StickyLockTable = ORDER_LIST.reduce(function (ret, current) {
73529 var newLock = !ieVersion;
73530 if (current._typeMark === 'lock') {
73531 ret = newLock ? (0, _newLock2.default)(ret) : (0, _lock2.default)(ret);
73532 } else if (current._typeMark === 'expanded') {
73533 ret = newLock ? (0, _expanded2.default)(ret, true) : (0, _expanded2.default)(ret);
73534 } else if (current._typeMark === 'fixed') {
73535 ret = newLock ? (0, _fixed2.default)(ret, true) : (0, _fixed2.default)(ret);
73536 } else {
73537 ret = current(ret);
73538 }
73539 return ret;
73540}, _base2.default);
73541
73542Table.Base = _base2.default;
73543Table.fixed = _fixed2.default;
73544Table.lock = _lock2.default;
73545Table.selection = _selection2.default;
73546Table.expanded = _expanded2.default;
73547Table.tree = _tree2.default;
73548Table.virtual = _virtual2.default;
73549Table.list = _list2.default;
73550Table.sticky = _sticky2.default;
73551
73552Table.GroupHeader = _listHeader2.default;
73553Table.GroupFooter = _listFooter2.default;
73554
73555Table.StickyLock = _configProvider2.default.config(StickyLockTable, {
73556 componentName: 'Table'
73557});
73558
73559exports.default = _configProvider2.default.config(Table, {
73560 componentName: 'Table',
73561 transform: /* istanbul ignore next */function transform(props, deprecated) {
73562 if ('expandedRowKeys' in props) {
73563 deprecated('expandedRowKeys', 'openRowKeys', 'Table');
73564
73565 var _props = props,
73566 expandedRowKeys = _props.expandedRowKeys,
73567 others = (0, _objectWithoutProperties3.default)(_props, ['expandedRowKeys']);
73568
73569 props = (0, _extends3.default)({ openRowKeys: expandedRowKeys }, others);
73570 }
73571 if ('onExpandedChange' in props) {
73572 deprecated('onExpandedChange', 'onRowOpen', 'Table');
73573
73574 var _props2 = props,
73575 onExpandedChange = _props2.onExpandedChange,
73576 _others = (0, _objectWithoutProperties3.default)(_props2, ['onExpandedChange']);
73577
73578 props = (0, _extends3.default)({ onRowOpen: onExpandedChange }, _others);
73579 }
73580 if ('isLoading' in props) {
73581 deprecated('isLoading', 'loading', 'Table');
73582
73583 var _props3 = props,
73584 isLoading = _props3.isLoading,
73585 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['isLoading']);
73586
73587 props = (0, _extends3.default)({ loading: isLoading }, _others2);
73588 }
73589 if ('indentSize' in props) {
73590 deprecated('indentSize', 'indent', 'Table');
73591
73592 var _props4 = props,
73593 indentSize = _props4.indentSize,
73594 _others3 = (0, _objectWithoutProperties3.default)(_props4, ['indentSize']);
73595
73596 props = (0, _extends3.default)({ indent: indentSize }, _others3);
73597 }
73598 if ('optimization' in props) {
73599 deprecated('optimization', 'pure', 'Table');
73600
73601 var _props5 = props,
73602 optimization = _props5.optimization,
73603 _others4 = (0, _objectWithoutProperties3.default)(_props5, ['optimization']);
73604
73605 props = (0, _extends3.default)({ pure: optimization }, _others4);
73606 }
73607
73608 if ('getRowClassName' in props) {
73609 deprecated('getRowClassName', 'getRowProps', 'Table');
73610
73611 var _props6 = props,
73612 getRowClassName = _props6.getRowClassName,
73613 getRowProps = _props6.getRowProps,
73614 _others5 = (0, _objectWithoutProperties3.default)(_props6, ['getRowClassName', 'getRowProps']);
73615
73616 if (getRowClassName) {
73617 var newGetRowProps = function newGetRowProps() {
73618 return (0, _extends3.default)({
73619 className: getRowClassName.apply(undefined, arguments)
73620 }, getRowProps ? getRowProps.apply(undefined, arguments) : {});
73621 };
73622
73623 props = (0, _extends3.default)({ getRowProps: newGetRowProps }, _others5);
73624 } else {
73625 props = (0, _extends3.default)({ getRowProps: getRowProps }, _others5);
73626 }
73627 }
73628
73629 if ('getRowProps' in props) {
73630 deprecated('getRowProps', 'rowProps', 'Table in 1.15.0');
73631
73632 var _props7 = props,
73633 _getRowProps = _props7.getRowProps,
73634 _others6 = (0, _objectWithoutProperties3.default)(_props7, ['getRowProps']);
73635
73636 props = (0, _extends3.default)({ rowProps: _getRowProps }, _others6);
73637 }
73638
73639 if ('getCellProps' in props) {
73640 deprecated('getCellProps', 'cellProps', 'Table in 1.15.0');
73641
73642 var _props8 = props,
73643 getCellProps = _props8.getCellProps,
73644 _others7 = (0, _objectWithoutProperties3.default)(_props8, ['getCellProps']);
73645
73646 props = (0, _extends3.default)({ cellProps: getCellProps }, _others7);
73647 }
73648
73649 return props;
73650 }
73651});
73652module.exports = exports['default'];
73653
73654/***/ }),
73655/* 426 */
73656/***/ (function(module, exports, __webpack_require__) {
73657
73658"use strict";
73659
73660
73661exports.__esModule = true;
73662
73663var _objectWithoutProperties2 = __webpack_require__(8);
73664
73665var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
73666
73667var _typeof2 = __webpack_require__(14);
73668
73669var _typeof3 = _interopRequireDefault(_typeof2);
73670
73671var _extends2 = __webpack_require__(1);
73672
73673var _extends3 = _interopRequireDefault(_extends2);
73674
73675var _classCallCheck2 = __webpack_require__(2);
73676
73677var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
73678
73679var _possibleConstructorReturn2 = __webpack_require__(3);
73680
73681var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
73682
73683var _inherits2 = __webpack_require__(4);
73684
73685var _inherits3 = _interopRequireDefault(_inherits2);
73686
73687var _class, _temp;
73688
73689var _react = __webpack_require__(0);
73690
73691var _react2 = _interopRequireDefault(_react);
73692
73693var _propTypes = __webpack_require__(5);
73694
73695var _propTypes2 = _interopRequireDefault(_propTypes);
73696
73697var _reactDom = __webpack_require__(12);
73698
73699var _classnames2 = __webpack_require__(7);
73700
73701var _classnames3 = _interopRequireDefault(_classnames2);
73702
73703var _shallowElementEquals = __webpack_require__(102);
73704
73705var _shallowElementEquals2 = _interopRequireDefault(_shallowElementEquals);
73706
73707var _reactLifecyclesCompat = __webpack_require__(10);
73708
73709var _loading = __webpack_require__(100);
73710
73711var _loading2 = _interopRequireDefault(_loading);
73712
73713var _configProvider = __webpack_require__(9);
73714
73715var _configProvider2 = _interopRequireDefault(_configProvider);
73716
73717var _zhCn = __webpack_require__(13);
73718
73719var _zhCn2 = _interopRequireDefault(_zhCn);
73720
73721var _util = __webpack_require__(6);
73722
73723var _body = __webpack_require__(63);
73724
73725var _body2 = _interopRequireDefault(_body);
73726
73727var _header = __webpack_require__(182);
73728
73729var _header2 = _interopRequireDefault(_header);
73730
73731var _wrapper = __webpack_require__(429);
73732
73733var _wrapper2 = _interopRequireDefault(_wrapper);
73734
73735var _row = __webpack_require__(64);
73736
73737var _row2 = _interopRequireDefault(_row);
73738
73739var _cell = __webpack_require__(65);
73740
73741var _cell2 = _interopRequireDefault(_cell);
73742
73743var _filter = __webpack_require__(183);
73744
73745var _filter2 = _interopRequireDefault(_filter);
73746
73747var _sort = __webpack_require__(184);
73748
73749var _sort2 = _interopRequireDefault(_sort);
73750
73751var _column = __webpack_require__(103);
73752
73753var _column2 = _interopRequireDefault(_column);
73754
73755var _columnGroup = __webpack_require__(430);
73756
73757var _columnGroup2 = _interopRequireDefault(_columnGroup);
73758
73759function _interopRequireDefault(obj) {
73760 return obj && obj.__esModule ? obj : { default: obj };
73761}
73762
73763var Children = _react2.default.Children,
73764 noop = function noop() {};
73765
73766//<Table>
73767// <Table.Column/>
73768// <Table.ColumnGroup>
73769// <Table.Column/>
73770// <Table.Column/>
73771// </Table.ColumnGroup>
73772//</Table>
73773
73774/** Table */
73775var Table = (_temp = _class = function (_React$Component) {
73776 (0, _inherits3.default)(Table, _React$Component);
73777
73778 function Table(props, context) {
73779 (0, _classCallCheck3.default)(this, Table);
73780
73781 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
73782
73783 _this.state = {
73784 sort: _this.props.sort || {}
73785 };
73786
73787 _this.onSort = function (dataIndex, order, sort) {
73788 if (typeof _this.props.sort === 'undefined') {
73789 _this.setState({
73790 sort: sort
73791 }, function () {
73792 _this.props.onSort(dataIndex, order, sort);
73793 });
73794 } else {
73795 _this.props.onSort(dataIndex, order, sort);
73796 }
73797 };
73798
73799 _this.onFilter = function (filterParams) {
73800 _this.props.onFilter(filterParams);
73801 };
73802
73803 _this.onResizeChange = function (dataIndex, value) {
73804 _this.props.onResizeChange(dataIndex, value);
73805 };
73806
73807 _this.getResizeProxyDomRef = function (resizeProxyDom) {
73808 if (!resizeProxyDom) {
73809 return _this.resizeProxyDomRef;
73810 }
73811 _this.resizeProxyDomRef = resizeProxyDom;
73812 };
73813
73814 _this.getWrapperRef = function (wrapper) {
73815 if (!wrapper) {
73816 return _this.wrapper;
73817 }
73818 _this.wrapper = wrapper;
73819 };
73820
73821 _this.getAffixRef = function (affixRef) {
73822 if (!affixRef) {
73823 return _this.affixRef;
73824 }
73825 _this.affixRef = affixRef;
73826 };
73827
73828 _this.getHeaderCellRef = function (i, j, cell) {
73829 var cellRef = 'header_cell_' + i + '_' + j;
73830 if (!cell) {
73831 return _this[cellRef];
73832 }
73833 _this[cellRef] = cell;
73834 };
73835
73836 _this.getRowRef = function (i, row) {
73837 var rowRef = 'row_' + i;
73838 if (!row) {
73839 return _this[rowRef];
73840 }
73841 _this[rowRef] = row;
73842 };
73843
73844 _this.getCellRef = function (i, j, cell) {
73845 var cellRef = 'cell_' + i + '_' + j;
73846 if (!cell) {
73847 return _this[cellRef];
73848 }
73849 _this[cellRef] = cell;
73850 };
73851
73852 _this.handleColHoverClass = function (rowIndex, colIndex, isAdd) {
73853 var crossline = _this.props.crossline;
73854
73855 var funcName = isAdd ? 'addClass' : 'removeClass';
73856 if (crossline) {
73857 _this.props.entireDataSource.forEach(function (val, index) {
73858 try {
73859 // in case of finding an unmounted component due to cached data
73860 // need to clear refs of this.tableInc when dataSource Changed
73861 // in virtual table
73862 var currentCol = (0, _reactDom.findDOMNode)(_this.getCellRef(index, colIndex));
73863 currentCol && _util.dom[funcName](currentCol, 'hovered');
73864 } catch (error) {
73865 return null;
73866 }
73867 });
73868 }
73869 };
73870
73871 _this.findEventTarget = function (e) {
73872 var prefix = _this.props.prefix;
73873
73874 var target = _util.dom.getClosest(e.target, 'td.' + prefix + 'table-cell');
73875 var colIndex = target && target.getAttribute('data-next-table-col');
73876 var rowIndex = target && target.getAttribute('data-next-table-row');
73877
73878 try {
73879 // in case of finding an unmounted component due to cached data
73880 // need to clear refs of this.tableInc when dataSource Changed
73881 // in virtual table
73882 var currentCol = (0, _reactDom.findDOMNode)(_this.getCellRef(rowIndex, colIndex));
73883 if (currentCol === target) {
73884 return {
73885 colIndex: colIndex,
73886 rowIndex: rowIndex
73887 };
73888 }
73889 } catch (error) {
73890 return {};
73891 }
73892
73893 return {};
73894 };
73895
73896 _this.onBodyMouseOver = function (e) {
73897 var crossline = _this.props.crossline;
73898
73899 if (!crossline) {
73900 return;
73901 }
73902
73903 var _this$findEventTarget = _this.findEventTarget(e),
73904 colIndex = _this$findEventTarget.colIndex,
73905 rowIndex = _this$findEventTarget.rowIndex;
73906 // colIndex, rowIndex are string
73907
73908
73909 if (!colIndex || !rowIndex) {
73910 return;
73911 }
73912 _this.handleColHoverClass(rowIndex, colIndex, true);
73913 _this.colIndex = colIndex;
73914 _this.rowIndex = rowIndex;
73915 };
73916
73917 _this.onBodyMouseOut = function (e) {
73918 var crossline = _this.props.crossline;
73919
73920 if (!crossline) {
73921 return;
73922 }
73923
73924 var _this$findEventTarget2 = _this.findEventTarget(e),
73925 colIndex = _this$findEventTarget2.colIndex,
73926 rowIndex = _this$findEventTarget2.rowIndex;
73927 // colIndex, rowIndex are string
73928
73929
73930 if (!colIndex || !rowIndex) {
73931 return;
73932 }
73933 _this.handleColHoverClass(_this.rowIndex, _this.colIndex, false);
73934 _this.colIndex = -1;
73935 _this.rowIndex = -1;
73936 };
73937
73938 _this.addColIndex = function (children) {
73939 var start = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
73940
73941 children.forEach(function (child, i) {
73942 child.__colIndex = start + i;
73943 });
73944 };
73945
73946 _this.getTableEl = function (ref) {
73947 _this.tableEl = ref;
73948 };
73949
73950 var _this$context = _this.context,
73951 getTableInstance = _this$context.getTableInstance,
73952 getTableInstanceForVirtual = _this$context.getTableInstanceForVirtual,
73953 getTableInstanceForFixed = _this$context.getTableInstanceForFixed,
73954 getTableInstanceForExpand = _this$context.getTableInstanceForExpand;
73955
73956 getTableInstance && getTableInstance(props.lockType, _this);
73957 getTableInstanceForFixed && getTableInstanceForFixed(props.lockType, _this);
73958 getTableInstanceForVirtual && getTableInstanceForVirtual(props.lockType, _this);
73959 getTableInstanceForExpand && getTableInstanceForExpand(_this);
73960 _this.notRenderCellIndex = [];
73961 return _this;
73962 }
73963
73964 Table.prototype.getChildContext = function getChildContext() {
73965 return {
73966 notRenderCellIndex: this.notRenderCellIndex || [],
73967 lockType: this.props.lockType
73968 };
73969 };
73970
73971 Table.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
73972 var state = {};
73973
73974 if (typeof nextProps.sort !== 'undefined') {
73975 state.sort = nextProps.sort;
73976 }
73977
73978 return state;
73979 };
73980
73981 Table.prototype.componentDidMount = function componentDidMount() {
73982 this.notRenderCellIndex = [];
73983 };
73984
73985 Table.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
73986 if (nextProps.pure) {
73987 var isEqual = (0, _shallowElementEquals2.default)(nextProps, this.props) && _util.obj.shallowEqual(nextState, this.state) && _util.obj.shallowEqual(nextContext, this.context);
73988 return !isEqual;
73989 }
73990
73991 return true;
73992 };
73993
73994 Table.prototype.componentDidUpdate = function componentDidUpdate() {
73995 this.notRenderCellIndex = [];
73996 };
73997
73998 Table.prototype.normalizeChildrenState = function normalizeChildrenState(props) {
73999 var columns = props.columns;
74000 if (props.children) {
74001 columns = this.normalizeChildren(props);
74002 }
74003 return this.fetchInfoFromBinaryChildren(columns);
74004 };
74005
74006 // 将React结构化数据提取props转换成数组
74007
74008
74009 Table.prototype.normalizeChildren = function normalizeChildren(props) {
74010 var columns = props.columns;
74011
74012 var getChildren = function getChildren(children) {
74013 var ret = [];
74014 Children.forEach(children, function (child) {
74015 if (child) {
74016 var _props = (0, _extends3.default)({}, child.props);
74017
74018 if (child.ref) {
74019 _props.ref = child.ref;
74020 }
74021
74022 if (!(child && ['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1 && (child.type._typeMark === 'column' || child.type._typeMark === 'columnGroup'))) {
74023 _util.log.warning('Use <Table.Column/>, <Table.ColumnGroup/> as child.');
74024 }
74025 ret.push(_props);
74026 if (child.props.children) {
74027 _props.children = getChildren(child.props.children);
74028 }
74029 }
74030 });
74031 return ret;
74032 };
74033 if (props.children) {
74034 columns = getChildren(props.children);
74035 }
74036 return columns;
74037 };
74038
74039 Table.prototype.fetchInfoFromBinaryChildren = function fetchInfoFromBinaryChildren(children) {
74040 var hasGroupHeader = false;
74041 var flatChildren = [],
74042 groupChildren = [],
74043 getChildren = function getChildren() {
74044 var propsChildren = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
74045 var level = arguments[1];
74046
74047 groupChildren[level] = groupChildren[level] || [];
74048 propsChildren.forEach(function (child) {
74049 if (child.children) {
74050 hasGroupHeader = true;
74051 getChildren(child.children, level + 1);
74052 } else {
74053 flatChildren.push(child);
74054 }
74055 groupChildren[level].push(child);
74056 });
74057 },
74058 getColSpan = function getColSpan(children, colSpan) {
74059 colSpan = colSpan || 0;
74060 children.forEach(function (child) {
74061 if (child.children) {
74062 colSpan = getColSpan(child.children, colSpan);
74063 } else {
74064 colSpan += 1;
74065 }
74066 });
74067 return colSpan;
74068 };
74069
74070 getChildren(children, 0);
74071
74072 groupChildren.forEach(function (groupChild, i) {
74073 groupChild.forEach(function (child, j) {
74074 var colSpan = void 0;
74075 var children = child.children;
74076
74077 if (children) {
74078 colSpan = getColSpan(children);
74079 child.colSpan = colSpan;
74080 groupChildren[i][j] = child;
74081 }
74082 });
74083 });
74084
74085 var _props2 = this.props,
74086 lockType = _props2.lockType,
74087 lengths = _props2.lengths;
74088
74089 var start = lockType === 'right' ? lengths.origin - lengths.right : 0;
74090 this.addColIndex(flatChildren, start);
74091
74092 return {
74093 flatChildren: flatChildren,
74094 groupChildren: groupChildren,
74095 hasGroupHeader: hasGroupHeader
74096 };
74097 };
74098
74099 Table.prototype.renderColGroup = function renderColGroup(flatChildren) {
74100 var cols = flatChildren.map(function (col, index) {
74101 var width = col.width;
74102 var style = {};
74103 if (width) {
74104 style = {
74105 width: width
74106 };
74107 }
74108
74109 return _react2.default.createElement('col', { style: style, key: index });
74110 });
74111 return _react2.default.createElement('colgroup', { key: 'table-colgroup' }, cols);
74112 };
74113
74114 // 通过头部和扁平的结构渲染表格
74115 Table.prototype.renderTable = function renderTable(groupChildren, flatChildren) {
74116 if (flatChildren.length || !flatChildren.length && !this.props.lockType) {
74117 var _props3 = this.props,
74118 hasHeader = _props3.hasHeader,
74119 components = _props3.components,
74120 prefix = _props3.prefix,
74121 wrapperContent = _props3.wrapperContent,
74122 filterParams = _props3.filterParams,
74123 locale = _props3.locale,
74124 dataSource = _props3.dataSource,
74125 emptyContent = _props3.emptyContent,
74126 loading = _props3.loading,
74127 primaryKey = _props3.primaryKey,
74128 cellProps = _props3.cellProps,
74129 rowProps = _props3.rowProps,
74130 onRowClick = _props3.onRowClick,
74131 onRowMouseEnter = _props3.onRowMouseEnter,
74132 onRowMouseLeave = _props3.onRowMouseLeave,
74133 expandedIndexSimulate = _props3.expandedIndexSimulate,
74134 pure = _props3.pure,
74135 rtl = _props3.rtl,
74136 crossline = _props3.crossline,
74137 sortIcons = _props3.sortIcons,
74138 tableWidth = _props3.tableWidth;
74139 var sort = this.state.sort;
74140 var _components$Header = components.Header,
74141 Header = _components$Header === undefined ? _header2.default : _components$Header,
74142 _components$Wrapper = components.Wrapper,
74143 Wrapper = _components$Wrapper === undefined ? _wrapper2.default : _components$Wrapper,
74144 _components$Body = components.Body,
74145 Body = _components$Body === undefined ? _body2.default : _components$Body;
74146
74147 var colGroup = this.renderColGroup(flatChildren);
74148
74149 return [_react2.default.createElement('div', {
74150 key: prefix + 'table-column-resize-proxy',
74151 ref: this.getResizeProxyDomRef,
74152 className: prefix + 'table-column-resize-proxy'
74153 }), _react2.default.createElement(Wrapper, {
74154 key: prefix + 'table-wrapper',
74155 colGroup: colGroup,
74156 ref: this.getWrapperRef,
74157 prefix: prefix,
74158 tableWidth: tableWidth
74159 }, hasHeader ? _react2.default.createElement(Header, {
74160 prefix: prefix,
74161 rtl: rtl,
74162 pure: pure,
74163 affixRef: this.getAffixRef,
74164 colGroup: colGroup,
74165 className: prefix + 'table-header',
74166 filterParams: filterParams,
74167 tableEl: this.tableEl,
74168 columns: groupChildren,
74169 locale: locale,
74170 headerCellRef: this.getHeaderCellRef,
74171 components: components,
74172 onFilter: this.onFilter,
74173 sort: sort,
74174 onResizeChange: this.onResizeChange,
74175 onSort: this.onSort,
74176 sortIcons: sortIcons,
74177 tableWidth: tableWidth,
74178 resizeProxyDomRef: this.resizeProxyDomRef
74179 }) : null, _react2.default.createElement(Body, {
74180 prefix: prefix,
74181 rtl: rtl,
74182 pure: pure,
74183 crossline: crossline,
74184 colGroup: colGroup,
74185 className: prefix + 'table-body',
74186 components: components,
74187 loading: loading,
74188 emptyContent: emptyContent,
74189 getCellProps: cellProps,
74190 primaryKey: primaryKey,
74191 getRowProps: rowProps,
74192 columns: flatChildren,
74193 rowRef: this.getRowRef,
74194 cellRef: this.getCellRef,
74195 onRowClick: onRowClick,
74196 expandedIndexSimulate: expandedIndexSimulate,
74197 tableEl: this.tableEl,
74198 onRowMouseEnter: onRowMouseEnter,
74199 onRowMouseLeave: onRowMouseLeave,
74200 dataSource: dataSource,
74201 locale: locale,
74202 onBodyMouseOver: this.onBodyMouseOver,
74203 onBodyMouseOut: this.onBodyMouseOut,
74204 tableWidth: tableWidth
74205 }), wrapperContent)];
74206 } else {
74207 return null;
74208 }
74209 };
74210
74211 /**
74212 * @param event
74213 * @returns {Object} { rowIndex: string; colIndex: string }
74214 */
74215
74216 Table.prototype.render = function render() {
74217 var _classnames;
74218
74219 var ret = this.normalizeChildrenState(this.props);
74220 this.groupChildren = ret.groupChildren;
74221 this.flatChildren = ret.flatChildren;
74222 /* eslint-disable no-unused-vars, prefer-const */
74223 var table = this.renderTable(ret.groupChildren, ret.flatChildren),
74224 _props4 = this.props,
74225 className = _props4.className,
74226 style = _props4.style,
74227 hasBorder = _props4.hasBorder,
74228 isZebra = _props4.isZebra,
74229 loading = _props4.loading,
74230 size = _props4.size,
74231 hasHeader = _props4.hasHeader,
74232 prefix = _props4.prefix,
74233 dataSource = _props4.dataSource,
74234 entireDataSource = _props4.entireDataSource,
74235 onSort = _props4.onSort,
74236 onResizeChange = _props4.onResizeChange,
74237 onRowClick = _props4.onRowClick,
74238 onRowMouseEnter = _props4.onRowMouseEnter,
74239 onRowMouseLeave = _props4.onRowMouseLeave,
74240 onFilter = _props4.onFilter,
74241 rowProps = _props4.rowProps,
74242 cellProps = _props4.cellProps,
74243 scrollToRow = _props4.scrollToRow,
74244 primaryKey = _props4.primaryKey,
74245 components = _props4.components,
74246 wrapperContent = _props4.wrapperContent,
74247 lockType = _props4.lockType,
74248 locale = _props4.locale,
74249 expandedIndexSimulate = _props4.expandedIndexSimulate,
74250 refs = _props4.refs,
74251 pure = _props4.pure,
74252 rtl = _props4.rtl,
74253 emptyContent = _props4.emptyContent,
74254 filterParams = _props4.filterParams,
74255 columns = _props4.columns,
74256 sortIcons = _props4.sortIcons,
74257 _props4$loadingCompon = _props4.loadingComponent,
74258 LoadingComponent = _props4$loadingCompon === undefined ? _loading2.default : _props4$loadingCompon,
74259 tableLayout = _props4.tableLayout,
74260 tableWidth = _props4.tableWidth,
74261 ref = _props4.ref,
74262 others = (0, _objectWithoutProperties3.default)(_props4, ['className', 'style', 'hasBorder', 'isZebra', 'loading', 'size', 'hasHeader', 'prefix', 'dataSource', 'entireDataSource', 'onSort', 'onResizeChange', 'onRowClick', 'onRowMouseEnter', 'onRowMouseLeave', 'onFilter', 'rowProps', 'cellProps', 'scrollToRow', 'primaryKey', 'components', 'wrapperContent', 'lockType', 'locale', 'expandedIndexSimulate', 'refs', 'pure', 'rtl', 'emptyContent', 'filterParams', 'columns', 'sortIcons', 'loadingComponent', 'tableLayout', 'tableWidth', 'ref']),
74263 cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table'] = true, _classnames[prefix + 'table-' + size] = size, _classnames[prefix + 'table-layout-' + tableLayout] = tableLayout, _classnames['only-bottom-border'] = !hasBorder, _classnames['no-header'] = !hasHeader, _classnames.zebra = isZebra, _classnames[className] = className, _classnames));
74264
74265 if (rtl) {
74266 others.dir = 'rtl';
74267 }
74268
74269 var content = _react2.default.createElement('div', (0, _extends3.default)({
74270 className: cls,
74271 style: style,
74272 ref: ref || this.getTableEl
74273 }, _util.obj.pickOthers(Object.keys(Table.propTypes), others)), table);
74274 if (loading) {
74275 var loadingClassName = prefix + 'table-loading';
74276 return _react2.default.createElement(LoadingComponent, { className: loadingClassName }, content);
74277 }
74278 return content;
74279 };
74280
74281 return Table;
74282}(_react2.default.Component), _class.Column = _column2.default, _class.ColumnGroup = _columnGroup2.default, _class.Header = _header2.default, _class.Body = _body2.default, _class.Wrapper = _wrapper2.default, _class.Row = _row2.default, _class.Cell = _cell2.default, _class.Filter = _filter2.default, _class.Sort = _sort2.default, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
74283 /**
74284 * 样式类名的品牌前缀
74285 */
74286 prefix: _propTypes2.default.string,
74287 pure: _propTypes2.default.bool,
74288 rtl: _propTypes2.default.bool,
74289 /**
74290 * 表格元素的 table-layout 属性,设为 fixed 表示内容不会影响列的布局
74291 */
74292 tableLayout: _propTypes2.default.oneOf(['fixed', 'auto']),
74293 /**
74294 * 表格的总长度,可以这么用:设置表格总长度 、设置部分列的宽度,这样表格会按照剩余空间大小,自动其他列分配宽度
74295 */
74296 tableWidth: _propTypes2.default.number,
74297 /**
74298 * 自定义类名
74299 */
74300 className: _propTypes2.default.string,
74301 /**
74302 * 自定义内联样式
74303 */
74304 style: _propTypes2.default.object,
74305 /**
74306 * 尺寸 small为紧凑模式
74307 */
74308 size: _propTypes2.default.oneOf(['small', 'medium']),
74309 /**
74310 * 表格展示的数据源
74311 */
74312 dataSource: _propTypes2.default.array,
74313 entireDataSource: _propTypes2.default.array,
74314 /**
74315 * 点击表格每一行触发的事件
74316 * @param {Object} record 该行所对应的数据
74317 * @param {Number} index 该行所对应的序列
74318 * @param {Event} e DOM事件对象
74319 */
74320 onRowClick: _propTypes2.default.func,
74321 /**
74322 * 悬浮在表格每一行的时候触发的事件
74323 * @param {Object} record 该行所对应的数据
74324 * @param {Number} index 该行所对应的序列
74325 * @param {Event} e DOM事件对象
74326 */
74327 onRowMouseEnter: _propTypes2.default.func,
74328 /**
74329 * 离开表格每一行的时候触发的事件
74330 * @param {Object} record 该行所对应的数据
74331 * @param {Number} index 该行所对应的序列
74332 * @param {Event} e DOM事件对象
74333 */
74334 onRowMouseLeave: _propTypes2.default.func,
74335 /**
74336 * 点击列排序触发的事件
74337 * @param {String} dataIndex 指定的排序的字段
74338 * @param {String} order 排序对应的顺序, 有`desc`和`asc`两种
74339 */
74340 onSort: _propTypes2.default.func,
74341 /**
74342 * 点击过滤确认按钮触发的事件
74343 * @param {Object} filterParams 过滤的字段信息
74344 */
74345 onFilter: _propTypes2.default.func,
74346 /**
74347 * 重设列尺寸的时候触发的事件
74348 * @param {String} dataIndex 指定重设的字段
74349 * @param {Number} value 列宽变动的数值
74350 */
74351 onResizeChange: _propTypes2.default.func,
74352 /**
74353 * 设置每一行的属性,如果返回值和其他针对行操作的属性冲突则无效。
74354 * @param {Object} record 该行所对应的数据
74355 * @param {Number} index 该行所对应的序列
74356 * @returns {Object} 需要设置的行属性
74357 */
74358 rowProps: _propTypes2.default.func,
74359 /**
74360 * 设置单元格的属性,通过该属性可以进行合并单元格
74361 * @param {Number} rowIndex 该行所对应的序列
74362 * @param {Number} colIndex 该列所对应的序列
74363 * @param {String} dataIndex 该列所对应的字段名称
74364 * @param {Object} record 该行对应的记录
74365 * @returns {Object} 返回td元素的所支持的属性对象
74366 */
74367 cellProps: _propTypes2.default.func,
74368 /**
74369 * 表格是否具有边框
74370 */
74371 hasBorder: _propTypes2.default.bool,
74372 /**
74373 * 表格是否具有头部
74374 */
74375 hasHeader: _propTypes2.default.bool,
74376 /**
74377 * 表格是否是斑马线
74378 */
74379 isZebra: _propTypes2.default.bool,
74380 /**
74381 * 表格是否在加载中
74382 */
74383 loading: _propTypes2.default.bool,
74384 /**
74385 * 自定义 Loading 组件
74386 * 请务必传递 props, 使用方式: loadingComponent={props => <Loading {...props}/>}
74387 * @param {LoadingProps} props 需要透传给组件的参数
74388 * @return {React.ReactNode} 展示的组件
74389 */
74390 loadingComponent: _propTypes2.default.func,
74391 /**
74392 * 当前过滤的的keys,使用此属性可以控制表格的头部的过滤选项中哪个菜单被选中,格式为 {dataIndex: {selectedKeys:[]}}
74393 * 示例:
74394 * 假设要控制dataIndex为id的列的过滤菜单中key为one的菜单项选中
74395 * `<Table filterParams={{id: {selectedKeys: ['one']}}}/>`
74396 */
74397 filterParams: _propTypes2.default.object,
74398 /**
74399 * 当前排序的字段,使用此属性可以控制表格的字段的排序,格式为{[dataIndex]: 'asc' | 'desc' } , 例如 {id: 'desc'}
74400 */
74401 sort: _propTypes2.default.object,
74402 /**
74403 * 自定义排序按钮,例如上下排布的: `{desc: <Icon style={{top: '6px', left: '4px'}} type={'arrow-down'} size="small" />, asc: <Icon style={{top: '-6px', left: '4px'}} type={'arrow-up'} size="small" />}`
74404 */
74405 sortIcons: _propTypes2.default.object,
74406 /**
74407 * 自定义国际化文案对象
74408 * @property {String} ok 过滤器中确认按钮文案
74409 * @property {String} reset 过滤器中重置按钮文案
74410 * @property {String} empty 没有数据情况下 table内的文案
74411 * @property {String} asc 排序升序状态下的文案
74412 * @property {String} desc 排序将序状态下的文案
74413 * @property {String} expanded 可折叠行,展开状态下的文案
74414 * @property {String} folded 可折叠行,折叠状态下的文案
74415 * @property {String} filter 过滤器文案
74416 * @property {String} selectAll header里全选的按钮文案
74417 */
74418 locale: _propTypes2.default.object,
74419 components: _propTypes2.default.object,
74420 /**
74421 * 等同于写子组件 Table.Column ,子组件优先级更高
74422 */
74423 columns: _propTypes2.default.array,
74424 /**
74425 * 设置数据为空的时候的表格内容展现
74426 */
74427 emptyContent: _propTypes2.default.node,
74428 /**
74429 * dataSource当中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中
74430 */
74431 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
74432 lockType: _propTypes2.default.oneOf(['left', 'right']),
74433 wrapperContent: _propTypes2.default.any,
74434 refs: _propTypes2.default.object,
74435 /**
74436 * 额外渲染行的渲染函数
74437 * @param {Object} record 该行所对应的数据
74438 * @param {Number} index 该行所对应的序列
74439 * @returns {Element} 渲染内容
74440 */
74441 expandedRowRender: _propTypes2.default.func,
74442 /**
74443 * 设置行是否可展开,设置 false 为不可展开
74444 * @param {Object} record 该行所对应的数据
74445 * @param {Number} index 该行所对应的序列
74446 * @returns {Boolean} 是否可展开
74447 */
74448 rowExpandable: _propTypes2.default.func,
74449 /**
74450 * 额外渲染行的缩进
74451 */
74452 expandedRowIndent: _propTypes2.default.array,
74453 /**
74454 * 是否显示点击展开额外渲染行的+号按钮
74455 */
74456 hasExpandedRowCtrl: _propTypes2.default.bool,
74457 /**
74458 * 设置额外渲染行的属性
74459 * @param {Object} record 该行所对应的数据
74460 * @param {Number} index 该行所对应的序列
74461 * @returns {Object} 额外渲染行的属性
74462 */
74463 getExpandedColProps: _propTypes2.default.func,
74464 /**
74465 * 当前展开的 Expand行 或者 Tree行 , 传入此属性为受控状态,一般配合 onRowOpen 使用
74466 */
74467 openRowKeys: _propTypes2.default.array,
74468 /**
74469 * 默认情况下展开的 Expand行 或者 Tree行,非受控模式
74470 * @version 1.23.22
74471 */
74472 defaultOpenRowKeys: _propTypes2.default.array,
74473 /**
74474 * 在 Expand行 或者 Tree行 展开或者收起的时候触发的事件
74475 * @param {Array} openRowKeys 展开的渲染行的key
74476 * @param {String} currentRowKey 当前点击的渲染行的key
74477 * @param {Boolean} expanded 当前点击是展开还是收起
74478 * @param {Object} currentRecord 当前点击额外渲染行的记录
74479 */
74480 onRowOpen: _propTypes2.default.func,
74481 onExpandedRowClick: _propTypes2.default.func,
74482 /**
74483 * 表头是否固定,该属性配合maxBodyHeight使用,当内容区域的高度超过maxBodyHeight的时候,在内容区域会出现滚动条
74484 */
74485 fixedHeader: _propTypes2.default.bool,
74486 /**
74487 * 最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条
74488 */
74489 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
74490 /**
74491 * 是否启用选择模式
74492 * @property {Function} getProps `Function(record, index)=>Object` 获取selection的默认属性
74493 * @property {Function} onChange `Function(selectedRowKeys:Array, records:Array)` 选择改变的时候触发的事件,**注意:** 其中records只会包含当前dataSource的数据,很可能会小于selectedRowKeys的长度。
74494 * @property {Function} onSelect `Function(selected:Boolean, record:Object, records:Array)` 用户手动选择/取消选择某行的回调
74495 * @property {Function} onSelectAll `Function(selected:Boolean, records:Array)` 用户手动选择/取消选择所有行的回调
74496 * @property {Array} selectedRowKeys 设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值
74497 * @property {String} mode 选择selection的模式, 可选值为`single`, `multiple`,默认为`multiple`
74498 * @property {Function} columnProps `Function()=>Object` 选择列 的props,例如锁列、对齐等,可使用`Table.Column` 的所有参数
74499 * @property {Function} titleProps `Function()=>Object` 选择列 表头的props,仅在 `multiple` 模式下生效
74500 * @property {Function} titleAddons `Function()=>Node` 选择列 表头添加的元素,在`single` `multiple` 下都生效
74501 */
74502 rowSelection: _propTypes2.default.object,
74503 /**
74504 * 表头是否是sticky
74505 */
74506 stickyHeader: _propTypes2.default.bool,
74507 /**
74508 * 距离窗口顶部达到指定偏移量后触发
74509 */
74510 offsetTop: _propTypes2.default.number,
74511 /**
74512 * affix组件的的属性
74513 */
74514 affixProps: _propTypes2.default.object,
74515 /**
74516 * 在tree模式下的缩进尺寸, 仅在isTree为true时候有效
74517 */
74518 indent: _propTypes2.default.number,
74519 /**
74520 * 开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table
74521 */
74522 isTree: _propTypes2.default.bool,
74523 /**
74524 * 是否开启虚拟滚动
74525 */
74526 useVirtual: _propTypes2.default.bool,
74527 rowHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),
74528 /**
74529 * 滚动到第几行,需要保证行高相同。1.22.15 版本之前仅在虚拟滚动场景下生效,之后在所有情况下生效
74530 * @version 1.22.15
74531 */
74532 scrollToRow: _propTypes2.default.number,
74533 /**
74534 * 在内容区域滚动的时候触发的函数
74535 */
74536 onBodyScroll: _propTypes2.default.func,
74537 /**
74538 * 开启时,getExpandedColProps() / rowProps() / expandedRowRender() 的第二个参数 index (该行所对应的序列) 将按照01,2,3,4...的顺序返回,否则返回真实index(0,2,4,6... / 1,3,5,7...)
74539 */
74540 expandedIndexSimulate: _propTypes2.default.bool,
74541 /**
74542 * 在 hover 时出现十字参考轴,适用于表头比较复杂,需要做表头分类的场景。
74543 */
74544 crossline: _propTypes2.default.bool,
74545 lengths: _propTypes2.default.object
74546}), _class.defaultProps = {
74547 dataSource: [],
74548 onRowClick: noop,
74549 onRowMouseEnter: noop,
74550 onRowMouseLeave: noop,
74551 onSort: noop,
74552 onFilter: noop,
74553 onResizeChange: noop,
74554 size: 'medium',
74555 rowProps: noop,
74556 cellProps: noop,
74557 prefix: 'next-',
74558 hasBorder: true,
74559 hasHeader: true,
74560 isZebra: false,
74561 loading: false,
74562 expandedIndexSimulate: false,
74563 primaryKey: 'id',
74564 components: {},
74565 locale: _zhCn2.default.Table,
74566 crossline: false
74567}, _class.childContextTypes = {
74568 notRenderCellIndex: _propTypes2.default.array,
74569 lockType: _propTypes2.default.oneOf(['left', 'right'])
74570}, _class.contextTypes = {
74571 getTableInstance: _propTypes2.default.func,
74572 getTableInstanceForFixed: _propTypes2.default.func,
74573 getTableInstanceForVirtual: _propTypes2.default.func,
74574 getTableInstanceForExpand: _propTypes2.default.func
74575}, _temp);
74576Table.displayName = 'Table';
74577exports.default = (0, _reactLifecyclesCompat.polyfill)(Table);
74578module.exports = exports['default'];
74579
74580/***/ }),
74581/* 427 */
74582/***/ (function(module, exports) {
74583
74584var hasOwnProperty = Object.prototype.hasOwnProperty;
74585
74586function transformEntryEqual(a, b) {
74587 for (var k in a) {
74588 if (hasOwnProperty.call(a, k)) {
74589 return a[k] === b[k];
74590 }
74591 }
74592 return false;
74593}
74594
74595function transformEqual(a, b) {
74596 if ((!a && !b) || (a === b)) {
74597 return true;
74598 }
74599 if (!a !== !b) {
74600 return false;
74601 }
74602 if (a.length !== b.length) {
74603 return false;
74604 }
74605 for (var i = 0; i < a.length; i++) {
74606 if (!transformEntryEqual(a[i], b[i])) {
74607 return false;
74608 }
74609 }
74610 return true;
74611}
74612
74613function shallowObjectEquals(a, b) {
74614 var k;
74615 var i = 0;
74616 var j = 0;
74617 for (k in a) {
74618 if (hasOwnProperty.call(a, k)) {
74619 switch (k) {
74620 case 'transform':
74621 if (!transformEqual(a[k], b[k])) {
74622 return false;
74623 }
74624 break;
74625 case 'shadowOffset':
74626 if (!shallowObjectEquals(a[k], b[k])) {
74627 return false;
74628 }
74629 break;
74630 default:
74631 if (a[k] !== b[k]) {
74632 return false;
74633 }
74634 break;
74635 }
74636 i++;
74637 }
74638 }
74639 for (k in b) {
74640 if (hasOwnProperty.call(b, k)) {
74641 j++;
74642 }
74643 }
74644 return i === j;
74645}
74646
74647function styleEqual(a, b) {
74648 if ((!a && !b) || (a === b)) {
74649 return true;
74650 }
74651 if (!a !== !b) {
74652 return false;
74653 }
74654 switch (typeof a) {
74655 case 'object':
74656 if (a instanceof Array) {
74657 for (var i = 0; i < a.length; i++) {
74658 if (!styleEqual(a[i], b[i])) {
74659 return false;
74660 }
74661 }
74662 return a.length === b.length;
74663 } else {
74664 return shallowObjectEquals(a, b);
74665 }
74666 break;
74667 case 'number':
74668 default:
74669 return a === b;
74670 }
74671}
74672
74673module.exports = styleEqual;
74674
74675
74676/***/ }),
74677/* 428 */
74678/***/ (function(module, exports, __webpack_require__) {
74679
74680"use strict";
74681
74682
74683exports.__esModule = true;
74684
74685var _classCallCheck2 = __webpack_require__(2);
74686
74687var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
74688
74689var _possibleConstructorReturn2 = __webpack_require__(3);
74690
74691var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
74692
74693var _inherits2 = __webpack_require__(4);
74694
74695var _inherits3 = _interopRequireDefault(_inherits2);
74696
74697var _class, _temp;
74698
74699var _react = __webpack_require__(0);
74700
74701var _react2 = _interopRequireDefault(_react);
74702
74703var _reactDom = __webpack_require__(12);
74704
74705var _propTypes = __webpack_require__(5);
74706
74707var _propTypes2 = _interopRequireDefault(_propTypes);
74708
74709var _util = __webpack_require__(6);
74710
74711function _interopRequireDefault(obj) {
74712 return obj && obj.__esModule ? obj : { default: obj };
74713}
74714
74715var Resize = (_temp = _class = function (_React$Component) {
74716 (0, _inherits3.default)(Resize, _React$Component);
74717
74718 function Resize() {
74719 (0, _classCallCheck3.default)(this, Resize);
74720
74721 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this));
74722
74723 _this.showResizeProxy = function () {
74724 _this.props.resizeProxyDomRef.style.cssText = 'display:block;left:' + _this.startLeft + 'px;';
74725 };
74726
74727 _this.moveResizeProxy = function () {
74728 var moveLeft = _this.startLeft + _this.changedPageX;
74729 _this.props.resizeProxyDomRef.style.cssText = 'left:' + moveLeft + 'px;display:block;';
74730 };
74731
74732 _this.resetResizeProxy = function () {
74733 // when the mouse was not moved,don't change cell width
74734 if (_this.asyncResizeFlag) {
74735 _this.props.onChange(_this.props.dataIndex, _this.changedPageX);
74736 }
74737 _this.changedPageX = 0;
74738 _this.tRight = 0;
74739 _this.asyncResizeFlag = false;
74740 _this.props.resizeProxyDomRef.style.cssText = 'display:none;';
74741 };
74742
74743 _this.movingLimit = function () {
74744 // table right limit
74745 var moveLeft = _this.startLeft + _this.changedPageX;
74746 if (moveLeft > _this.tRight) {
74747 moveLeft = _this.tRight;
74748 _this.changedPageX = _this.tRight - _this.startLeft;
74749 }
74750
74751 // cell left limit
74752 if (moveLeft - _this.cellLeft < _this.cellMinWidth) {
74753 _this.changedPageX = _this.cellLeft + _this.cellMinWidth - _this.startLeft;
74754 }
74755
74756 // table left limit
74757 if (moveLeft < 0) {
74758 _this.changedPageX = 0 - _this.startLeft;
74759 }
74760
74761 if (_this.props.col.width + _this.changedPageX < _this.cellMinWidth) {
74762 _this.changedPageX = _this.cellMinWidth - _this.props.col.width;
74763 }
74764 };
74765
74766 _this.onMouseDown = function (e) {
74767 var _this$props$tableEl$g = _this.props.tableEl.getBoundingClientRect(),
74768 tableLeft = _this$props$tableEl$g.left,
74769 tableWidth = _this$props$tableEl$g.width;
74770
74771 if (!_this.props.cellDomRef) {
74772 return;
74773 }
74774
74775 var _this$props$cellDomRe = _this.props.cellDomRef.getBoundingClientRect(),
74776 cellDomLeft = _this$props$cellDomRe.left;
74777
74778 _this.lastPageX = e.pageX;
74779 _this.tLeft = tableLeft;
74780 _this.tRight = tableWidth;
74781 _this.startLeft = e.pageX - tableLeft;
74782 _this.cellLeft = cellDomLeft - tableLeft;
74783
74784 if (_this.props.asyncResizable) _this.showResizeProxy();
74785 _util.events.on(document, 'mousemove', _this.onMouseMove);
74786 _util.events.on(document, 'mouseup', _this.onMouseUp);
74787 _this.unSelect();
74788 };
74789
74790 _this.onMouseMove = function (e) {
74791 var pageX = e.pageX;
74792 _this.changedPageX = pageX - _this.lastPageX;
74793
74794 if (_this.props.rtl) {
74795 _this.changedPageX = -_this.changedPageX;
74796 }
74797
74798 if (_this.props.hasLock) {
74799 if (!_this.props.asyncResizable) {
74800 // when hasn't lock attribute, cellLeft will change
74801 _this.cellLeft = _this.props.cellDomRef.getBoundingClientRect().left - _this.tLeft;
74802 }
74803 }
74804 _this.movingLimit();
74805
74806 // stop at here when async
74807 if (_this.props.asyncResizable) {
74808 // asyncResizeFlag use to prevent just click without mouse move
74809 _this.asyncResizeFlag = true;
74810 _this.moveResizeProxy();
74811 return;
74812 }
74813 _this.props.onChange(_this.props.dataIndex, _this.changedPageX);
74814 _this.lastPageX = pageX;
74815 };
74816
74817 _this.onMouseUp = function () {
74818 if (_this.props.asyncResizable) {
74819 _this.resetResizeProxy();
74820 }
74821 _this.startLeft = 0;
74822 _this.destory();
74823 };
74824
74825 _this.cellMinWidth = 40;
74826
74827 _this.lastPageX = 0;
74828 _this.tRight = 0;
74829 _this.tLeft = 0;
74830 _this.cellLeft = 0;
74831 _this.startLeft = 0;
74832 _this.changedPageX = 0;
74833
74834 _this.asyncResizeFlag = false;
74835 return _this;
74836 }
74837
74838 Resize.prototype.componentWillUnmount = function componentWillUnmount() {
74839 this.destory();
74840 };
74841
74842 Resize.prototype.destory = function destory() {
74843 _util.events.off(document, 'mousemove', this.onMouseMove);
74844 _util.events.off(document, 'mouseup', this.onMouseUp);
74845 this.select();
74846 };
74847
74848 Resize.prototype.unSelect = function unSelect() {
74849 _util.dom.setStyle(document.body, {
74850 userSelect: 'none',
74851 cursor: 'ew-resize'
74852 });
74853 document.body.setAttribute('unselectable', 'on');
74854 };
74855
74856 Resize.prototype.select = function select() {
74857 _util.dom.setStyle(document.body, {
74858 userSelect: '',
74859 cursor: ''
74860 });
74861 document.body.removeAttribute('unselectable');
74862 };
74863
74864 Resize.prototype.render = function render() {
74865 var prefix = this.props.prefix;
74866
74867 return _react2.default.createElement('a', { className: prefix + 'table-resize-handler', onMouseDown: this.onMouseDown });
74868 };
74869
74870 return Resize;
74871}(_react2.default.Component), _class.propTypes = {
74872 prefix: _propTypes2.default.string,
74873 rtl: _propTypes2.default.bool,
74874 onChange: _propTypes2.default.func,
74875 dataIndex: _propTypes2.default.string,
74876 tableEl: _propTypes2.default.any,
74877 resizeProxyDomRef: _propTypes2.default.any,
74878 cellDomRef: _propTypes2.default.any,
74879 col: _propTypes2.default.any,
74880 hasLock: _propTypes2.default.bool,
74881 asyncResizable: _propTypes2.default.bool
74882}, _class.defaultProps = {
74883 onChange: function onChange() {}
74884}, _temp);
74885Resize.displayName = 'Resize';
74886exports.default = Resize;
74887module.exports = exports['default'];
74888
74889/***/ }),
74890/* 429 */
74891/***/ (function(module, exports, __webpack_require__) {
74892
74893"use strict";
74894
74895
74896exports.__esModule = true;
74897exports.default = undefined;
74898
74899var _classCallCheck2 = __webpack_require__(2);
74900
74901var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
74902
74903var _possibleConstructorReturn2 = __webpack_require__(3);
74904
74905var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
74906
74907var _inherits2 = __webpack_require__(4);
74908
74909var _inherits3 = _interopRequireDefault(_inherits2);
74910
74911var _class, _temp;
74912
74913var _react = __webpack_require__(0);
74914
74915var _react2 = _interopRequireDefault(_react);
74916
74917var _propTypes = __webpack_require__(5);
74918
74919var _propTypes2 = _interopRequireDefault(_propTypes);
74920
74921function _interopRequireDefault(obj) {
74922 return obj && obj.__esModule ? obj : { default: obj };
74923}
74924
74925/* eslint-disable react/prefer-stateless-function */
74926var Wrapper = (_temp = _class = function (_Component) {
74927 (0, _inherits3.default)(Wrapper, _Component);
74928
74929 function Wrapper() {
74930 (0, _classCallCheck3.default)(this, Wrapper);
74931 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
74932 }
74933
74934 Wrapper.prototype.render = function render() {
74935 var _props = this.props,
74936 colGroup = _props.colGroup,
74937 children = _props.children,
74938 tableWidth = _props.tableWidth,
74939 Tag = _props.component;
74940
74941 return _react2.default.createElement(Tag, { role: 'table', style: { width: tableWidth } }, colGroup, children);
74942 };
74943
74944 return Wrapper;
74945}(_react.Component), _class.propTypes = {
74946 tableWidth: _propTypes2.default.number
74947}, _temp);
74948Wrapper.displayName = 'Wrapper';
74949exports.default = Wrapper;
74950
74951Wrapper.defaultProps = {
74952 component: 'table'
74953};
74954
74955Wrapper.propTypes = {
74956 children: _propTypes2.default.any,
74957 prefix: _propTypes2.default.string,
74958 colGroup: _propTypes2.default.any,
74959 component: _propTypes2.default.string
74960};
74961module.exports = exports['default'];
74962
74963/***/ }),
74964/* 430 */
74965/***/ (function(module, exports, __webpack_require__) {
74966
74967"use strict";
74968
74969
74970exports.__esModule = true;
74971exports.default = undefined;
74972
74973var _classCallCheck2 = __webpack_require__(2);
74974
74975var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
74976
74977var _possibleConstructorReturn2 = __webpack_require__(3);
74978
74979var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
74980
74981var _inherits2 = __webpack_require__(4);
74982
74983var _inherits3 = _interopRequireDefault(_inherits2);
74984
74985var _class, _temp;
74986
74987var _react = __webpack_require__(0);
74988
74989var _react2 = _interopRequireDefault(_react);
74990
74991var _propTypes = __webpack_require__(5);
74992
74993var _propTypes2 = _interopRequireDefault(_propTypes);
74994
74995function _interopRequireDefault(obj) {
74996 return obj && obj.__esModule ? obj : { default: obj };
74997}
74998
74999/**
75000 * Table.ColumnGroup
75001 * @order 1
75002 **/
75003var ColumnGroup = (_temp = _class = function (_React$Component) {
75004 (0, _inherits3.default)(ColumnGroup, _React$Component);
75005
75006 function ColumnGroup() {
75007 (0, _classCallCheck3.default)(this, ColumnGroup);
75008 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
75009 }
75010
75011 ColumnGroup.prototype.getChildContext = function getChildContext() {
75012 return {
75013 parent: this
75014 };
75015 };
75016
75017 ColumnGroup.prototype.render = function render() {
75018 return null;
75019 };
75020
75021 return ColumnGroup;
75022}(_react2.default.Component), _class.propTypes = {
75023 /**
75024 * 表头显示的内容
75025 */
75026 title: _propTypes2.default.oneOfType([_propTypes2.default.element, _propTypes2.default.node, _propTypes2.default.func])
75027}, _class.childContextTypes = {
75028 parent: _propTypes2.default.any
75029}, _class.defaultProps = {
75030 title: 'column-group'
75031}, _class._typeMark = 'columnGroup', _temp);
75032ColumnGroup.displayName = 'ColumnGroup';
75033exports.default = ColumnGroup;
75034module.exports = exports['default'];
75035
75036/***/ }),
75037/* 431 */
75038/***/ (function(module, exports, __webpack_require__) {
75039
75040"use strict";
75041
75042
75043exports.__esModule = true;
75044
75045var _extends2 = __webpack_require__(1);
75046
75047var _extends3 = _interopRequireDefault(_extends2);
75048
75049var _objectWithoutProperties2 = __webpack_require__(8);
75050
75051var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75052
75053var _classCallCheck2 = __webpack_require__(2);
75054
75055var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75056
75057var _possibleConstructorReturn2 = __webpack_require__(3);
75058
75059var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75060
75061var _inherits2 = __webpack_require__(4);
75062
75063var _inherits3 = _interopRequireDefault(_inherits2);
75064
75065exports.default = tree;
75066
75067var _react = __webpack_require__(0);
75068
75069var _react2 = _interopRequireDefault(_react);
75070
75071var _propTypes = __webpack_require__(5);
75072
75073var _propTypes2 = _interopRequireDefault(_propTypes);
75074
75075var _reactLifecyclesCompat = __webpack_require__(10);
75076
75077var _row = __webpack_require__(432);
75078
75079var _row2 = _interopRequireDefault(_row);
75080
75081var _cell = __webpack_require__(433);
75082
75083var _cell2 = _interopRequireDefault(_cell);
75084
75085var _util = __webpack_require__(21);
75086
75087function _interopRequireDefault(obj) {
75088 return obj && obj.__esModule ? obj : { default: obj };
75089}
75090
75091var noop = function noop() {};
75092
75093function tree(BaseComponent) {
75094 var _class, _temp;
75095
75096 var TreeTable = (_temp = _class = function (_React$Component) {
75097 (0, _inherits3.default)(TreeTable, _React$Component);
75098
75099 function TreeTable(props, context) {
75100 (0, _classCallCheck3.default)(this, TreeTable);
75101
75102 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
75103
75104 _this.onTreeNodeClick = function (record) {
75105 var primaryKey = _this.props.primaryKey,
75106 id = record[primaryKey],
75107 dataSource = _this.ds,
75108 openRowKeys = [].concat(_this.state.openRowKeys),
75109 index = openRowKeys.indexOf(id),
75110 getChildrenKeyById = function getChildrenKeyById(id) {
75111 var ret = [id];
75112 var loop = function loop(data) {
75113 data.forEach(function (item) {
75114 ret.push(item[primaryKey]);
75115 if (item.children) {
75116 loop(item.children);
75117 }
75118 });
75119 };
75120 dataSource.forEach(function (item) {
75121 if (item[primaryKey] === id) {
75122 if (item.children) {
75123 loop(item.children);
75124 }
75125 }
75126 });
75127 return ret;
75128 };
75129
75130 if (index > -1) {
75131 // 不仅要删除当前的openRowKey,还需要删除关联子节点的openRowKey
75132 var ids = getChildrenKeyById(id);
75133 ids.forEach(function (id) {
75134 var i = openRowKeys.indexOf(id);
75135 if (i > -1) {
75136 openRowKeys.splice(i, 1);
75137 }
75138 });
75139 } else {
75140 openRowKeys.push(id);
75141 }
75142
75143 if (!('openRowKeys' in _this.props)) {
75144 _this.setState({
75145 openRowKeys: openRowKeys
75146 });
75147 }
75148 _this.props.onRowOpen(openRowKeys, id, index === -1, record);
75149 };
75150
75151 _this.state = {
75152 openRowKeys: props.openRowKeys || props.defaultOpenRowKeys || []
75153 };
75154 return _this;
75155 }
75156
75157 TreeTable.prototype.getChildContext = function getChildContext() {
75158 return {
75159 openTreeRowKeys: this.state.openRowKeys,
75160 indent: this.props.indent,
75161 treeStatus: this.getTreeNodeStatus(this.ds),
75162 onTreeNodeClick: this.onTreeNodeClick,
75163 isTree: this.props.isTree
75164 };
75165 };
75166
75167 TreeTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
75168 if ('openRowKeys' in nextProps) {
75169 return {
75170 openRowKeys: nextProps.openRowKeys || []
75171 };
75172 }
75173
75174 return null;
75175 };
75176
75177 TreeTable.prototype.normalizeDataSource = function normalizeDataSource(dataSource) {
75178 var openRowKeys = this.state.openRowKeys;
75179 var primaryKey = this.props.primaryKey;
75180
75181 var ret = [],
75182 loop = function loop(dataSource, level) {
75183 var parentId = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
75184
75185 dataSource.forEach(function (item) {
75186 item.__level = level;
75187
75188 if (level === 0 || openRowKeys.indexOf(parentId) > -1) {
75189 item.__hidden = false;
75190 } else {
75191 item.__hidden = true;
75192 }
75193 ret.push(item);
75194
75195 if (item.children) {
75196 loop(item.children, level + 1, item[primaryKey]);
75197 }
75198 });
75199 };
75200 loop(dataSource, 0);
75201 this.ds = ret;
75202 return ret;
75203 };
75204
75205 TreeTable.prototype.getTreeNodeStatus = function getTreeNodeStatus() {
75206 var dataSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
75207 var openRowKeys = this.state.openRowKeys,
75208 primaryKey = this.props.primaryKey,
75209 ret = [];
75210
75211 openRowKeys.forEach(function (openKey) {
75212 dataSource.forEach(function (item) {
75213 if (item[primaryKey] === openKey) {
75214 if (item.children) {
75215 item.children.forEach(function (child) {
75216 ret.push(child[primaryKey]);
75217 });
75218 }
75219 }
75220 });
75221 });
75222 return ret;
75223 };
75224
75225 TreeTable.prototype.render = function render() {
75226 /* eslint-disable no-unused-vars, prefer-const */
75227 var _props = this.props,
75228 components = _props.components,
75229 isTree = _props.isTree,
75230 dataSource = _props.dataSource,
75231 indent = _props.indent,
75232 others = (0, _objectWithoutProperties3.default)(_props, ['components', 'isTree', 'dataSource', 'indent']);
75233
75234 if (isTree) {
75235 components = (0, _extends3.default)({}, components);
75236 if (!components.Row) {
75237 components.Row = _row2.default;
75238 }
75239 if (!components.Cell) {
75240 components.Cell = _cell2.default;
75241 }
75242
75243 dataSource = this.normalizeDataSource(dataSource);
75244 }
75245 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, { dataSource: dataSource, components: components }));
75246 };
75247
75248 return TreeTable;
75249 }(_react2.default.Component), _class.TreeRow = _row2.default, _class.TreeCell = _cell2.default, _class.propTypes = (0, _extends3.default)({
75250 /**
75251 * 默认情况下展开的树形表格,传入了此属性代表tree的展开为受控操作
75252 */
75253 openRowKeys: _propTypes2.default.array,
75254 /**
75255 * 默认情况下展开的 Expand行 或者 Tree行,非受控模式
75256 * @version 1.23.22
75257 */
75258 defaultOpenRowKeys: _propTypes2.default.array,
75259 /**
75260 * 点击tree展开或者关闭的时候触发的事件
75261 * @param {Array} openRowKeys tree模式下展开的key
75262 * @param {String} currentRowKey 当前点击行的key
75263 * @param {Boolean} opened 当前点击是展开还是收起
75264 * @param {Object} currentRecord 当前点击行的记录
75265 */
75266 onRowOpen: _propTypes2.default.func,
75267 /**
75268 * dataSource当中数据的主键,如果给定的数据源中的属性不包含该主键,会造成选择状态全部选中
75269 */
75270 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
75271 /**
75272 * 在tree模式下的缩进尺寸, 仅在isTree为true时候有效
75273 */
75274 indent: _propTypes2.default.number,
75275 /**
75276 * 开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table
75277 */
75278 isTree: _propTypes2.default.bool,
75279 locale: _propTypes2.default.object
75280 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
75281 primaryKey: 'id',
75282 onRowOpen: noop,
75283 components: {},
75284 indent: 12
75285 }), _class.childContextTypes = {
75286 openTreeRowKeys: _propTypes2.default.array,
75287 indent: _propTypes2.default.number,
75288 treeStatus: _propTypes2.default.array,
75289 onTreeNodeClick: _propTypes2.default.func,
75290 isTree: _propTypes2.default.bool
75291 }, _temp);
75292 TreeTable.displayName = 'TreeTable';
75293
75294 (0, _util.statics)(TreeTable, BaseComponent);
75295 return (0, _reactLifecyclesCompat.polyfill)(TreeTable);
75296}
75297module.exports = exports['default'];
75298
75299/***/ }),
75300/* 432 */
75301/***/ (function(module, exports, __webpack_require__) {
75302
75303"use strict";
75304
75305
75306exports.__esModule = true;
75307exports.default = undefined;
75308
75309var _extends2 = __webpack_require__(1);
75310
75311var _extends3 = _interopRequireDefault(_extends2);
75312
75313var _objectWithoutProperties2 = __webpack_require__(8);
75314
75315var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75316
75317var _classCallCheck2 = __webpack_require__(2);
75318
75319var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75320
75321var _possibleConstructorReturn2 = __webpack_require__(3);
75322
75323var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75324
75325var _inherits2 = __webpack_require__(4);
75326
75327var _inherits3 = _interopRequireDefault(_inherits2);
75328
75329var _class, _temp;
75330
75331var _react = __webpack_require__(0);
75332
75333var _react2 = _interopRequireDefault(_react);
75334
75335var _propTypes = __webpack_require__(5);
75336
75337var _propTypes2 = _interopRequireDefault(_propTypes);
75338
75339var _classnames2 = __webpack_require__(7);
75340
75341var _classnames3 = _interopRequireDefault(_classnames2);
75342
75343var _row = __webpack_require__(185);
75344
75345var _row2 = _interopRequireDefault(_row);
75346
75347function _interopRequireDefault(obj) {
75348 return obj && obj.__esModule ? obj : { default: obj };
75349}
75350
75351/* eslint-disable react/prefer-stateless-function */
75352var TreeRow = (_temp = _class = function (_React$Component) {
75353 (0, _inherits3.default)(TreeRow, _React$Component);
75354
75355 function TreeRow() {
75356 (0, _classCallCheck3.default)(this, TreeRow);
75357 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
75358 }
75359
75360 TreeRow.prototype.render = function render() {
75361 var _classnames;
75362
75363 /* eslint-disable no-unused-vars*/
75364 var _props = this.props,
75365 className = _props.className,
75366 record = _props.record,
75367 primaryKey = _props.primaryKey,
75368 prefix = _props.prefix,
75369 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'record', 'primaryKey', 'prefix']);
75370 var _context = this.context,
75371 treeStatus = _context.treeStatus,
75372 openRowKeys = _context.openRowKeys;
75373
75374 var cls = (0, _classnames3.default)((_classnames = {
75375 hidden: !(treeStatus.indexOf(record[primaryKey]) > -1) && record.__level !== 0
75376 }, _classnames[prefix + 'table-row-level-' + record.__level] = true, _classnames.opened = openRowKeys.indexOf(record[primaryKey]) > -1, _classnames[className] = className, _classnames));
75377 return _react2.default.createElement(_row2.default, (0, _extends3.default)({}, others, {
75378 record: record,
75379 className: cls,
75380 primaryKey: primaryKey,
75381 prefix: prefix
75382 }));
75383 };
75384
75385 return TreeRow;
75386}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({}, _row2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _row2.default.defaultProps), _class.contextTypes = {
75387 treeStatus: _propTypes2.default.array,
75388 openRowKeys: _propTypes2.default.array
75389}, _temp);
75390TreeRow.displayName = 'TreeRow';
75391exports.default = TreeRow;
75392module.exports = exports['default'];
75393
75394/***/ }),
75395/* 433 */
75396/***/ (function(module, exports, __webpack_require__) {
75397
75398"use strict";
75399
75400
75401exports.__esModule = true;
75402exports.default = undefined;
75403
75404var _extends2 = __webpack_require__(1);
75405
75406var _extends3 = _interopRequireDefault(_extends2);
75407
75408var _classCallCheck2 = __webpack_require__(2);
75409
75410var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75411
75412var _possibleConstructorReturn2 = __webpack_require__(3);
75413
75414var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75415
75416var _inherits2 = __webpack_require__(4);
75417
75418var _inherits3 = _interopRequireDefault(_inherits2);
75419
75420var _class, _temp2;
75421
75422var _react = __webpack_require__(0);
75423
75424var _react2 = _interopRequireDefault(_react);
75425
75426var _propTypes = __webpack_require__(5);
75427
75428var _propTypes2 = _interopRequireDefault(_propTypes);
75429
75430var _icon = __webpack_require__(11);
75431
75432var _icon2 = _interopRequireDefault(_icon);
75433
75434var _util = __webpack_require__(6);
75435
75436var _cell = __webpack_require__(65);
75437
75438var _cell2 = _interopRequireDefault(_cell);
75439
75440function _interopRequireDefault(obj) {
75441 return obj && obj.__esModule ? obj : { default: obj };
75442}
75443
75444var TreeCell = (_temp2 = _class = function (_React$Component) {
75445 (0, _inherits3.default)(TreeCell, _React$Component);
75446
75447 function TreeCell() {
75448 var _temp, _this, _ret;
75449
75450 (0, _classCallCheck3.default)(this, TreeCell);
75451
75452 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
75453 args[_key] = arguments[_key];
75454 }
75455
75456 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.onTreeNodeClick = function (record, e) {
75457 e.stopPropagation();
75458 _this.context.onTreeNodeClick(record);
75459 }, _this.expandedKeydown = function (record, e) {
75460 e.preventDefault();
75461 e.stopPropagation();
75462
75463 if (e.keyCode === _util.KEYCODE.ENTER) {
75464 _this.onTreeNodeClick(record, e);
75465 }
75466 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
75467 }
75468
75469 TreeCell.prototype.render = function render() {
75470 var _this2 = this;
75471
75472 var _props = this.props,
75473 colIndex = _props.colIndex,
75474 record = _props.record,
75475 prefix = _props.prefix,
75476 primaryKey = _props.primaryKey,
75477 locale = _props.locale,
75478 rtl = _props.rtl,
75479 children = _props.children;
75480 var _context = this.context,
75481 openRowKeys = _context.openTreeRowKeys,
75482 indent = _context.indent,
75483 isTree = _context.isTree,
75484 rowSelection = _context.rowSelection;
75485
75486 var treeArrowNodeIndex = rowSelection ? 1 : 0;
75487 var firstCellStyle = void 0,
75488 treeArrowNode = void 0;
75489 if (colIndex === treeArrowNodeIndex) {
75490 var treeArrowType = void 0;
75491 if (isTree) {
75492 var _firstCellStyle;
75493
75494 var paddingType = rtl ? 'paddingRight' : 'paddingLeft';
75495 firstCellStyle = (_firstCellStyle = {}, _firstCellStyle[paddingType] = indent * (record.__level + 1), _firstCellStyle);
75496 treeArrowNode = _react2.default.createElement(_icon2.default, {
75497 size: 'xs',
75498 rtl: rtl,
75499 className: prefix + 'table-tree-placeholder'
75500 });
75501 if (record.children && record.children.length) {
75502 var hasExpanded = openRowKeys.indexOf(record[primaryKey]) > -1;
75503
75504 treeArrowType = hasExpanded ? 'arrow-down' : 'arrow-right';
75505
75506 treeArrowNode = _react2.default.createElement(_icon2.default, {
75507 className: prefix + 'table-tree-arrow',
75508 type: treeArrowType,
75509 size: 'xs',
75510 rtl: rtl,
75511 onClick: function onClick(e) {
75512 return _this2.onTreeNodeClick(record, e);
75513 },
75514 onKeyDown: function onKeyDown(e) {
75515 return _this2.expandedKeydown(record, e);
75516 },
75517 role: 'button',
75518 tabIndex: '0',
75519 'aria-expanded': hasExpanded,
75520 'aria-label': hasExpanded ? locale.expanded : locale.folded
75521 });
75522 }
75523 }
75524 }
75525 return _react2.default.createElement(_cell2.default, (0, _extends3.default)({}, this.props, {
75526 innerStyle: firstCellStyle,
75527 isIconLeft: !!treeArrowNode
75528 }), children, treeArrowNode);
75529 };
75530
75531 return TreeCell;
75532}(_react2.default.Component), _class.propTypes = (0, _extends3.default)({
75533 indent: _propTypes2.default.number,
75534 locale: _propTypes2.default.object
75535}, _cell2.default.propTypes), _class.defaultProps = (0, _extends3.default)({}, _cell2.default.defaultProps, {
75536 component: 'td',
75537 indent: 20
75538}), _class.contextTypes = {
75539 openTreeRowKeys: _propTypes2.default.array,
75540 indent: _propTypes2.default.number,
75541 onTreeNodeClick: _propTypes2.default.func,
75542 isTree: _propTypes2.default.bool,
75543 rowSelection: _propTypes2.default.object
75544}, _temp2);
75545TreeCell.displayName = 'TreeCell';
75546exports.default = TreeCell;
75547module.exports = exports['default'];
75548
75549/***/ }),
75550/* 434 */
75551/***/ (function(module, exports, __webpack_require__) {
75552
75553"use strict";
75554
75555
75556exports.__esModule = true;
75557
75558var _extends2 = __webpack_require__(1);
75559
75560var _extends3 = _interopRequireDefault(_extends2);
75561
75562var _objectWithoutProperties2 = __webpack_require__(8);
75563
75564var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75565
75566var _classCallCheck2 = __webpack_require__(2);
75567
75568var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75569
75570var _possibleConstructorReturn2 = __webpack_require__(3);
75571
75572var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75573
75574var _inherits2 = __webpack_require__(4);
75575
75576var _inherits3 = _interopRequireDefault(_inherits2);
75577
75578exports.default = fixed;
75579
75580var _react = __webpack_require__(0);
75581
75582var _react2 = _interopRequireDefault(_react);
75583
75584var _propTypes = __webpack_require__(5);
75585
75586var _propTypes2 = _interopRequireDefault(_propTypes);
75587
75588var _reactDom = __webpack_require__(12);
75589
75590var _classnames2 = __webpack_require__(7);
75591
75592var _classnames3 = _interopRequireDefault(_classnames2);
75593
75594var _util = __webpack_require__(6);
75595
75596var _header = __webpack_require__(66);
75597
75598var _header2 = _interopRequireDefault(_header);
75599
75600var _body = __webpack_require__(187);
75601
75602var _body2 = _interopRequireDefault(_body);
75603
75604var _wrapper = __webpack_require__(67);
75605
75606var _wrapper2 = _interopRequireDefault(_wrapper);
75607
75608var _util2 = __webpack_require__(21);
75609
75610function _interopRequireDefault(obj) {
75611 return obj && obj.__esModule ? obj : { default: obj };
75612}
75613
75614function fixed(BaseComponent, stickyLock) {
75615 var _class, _temp2;
75616
75617 /** Table */
75618 var FixedTable = (_temp2 = _class = function (_React$Component) {
75619 (0, _inherits3.default)(FixedTable, _React$Component);
75620
75621 function FixedTable() {
75622 var _temp, _this, _ret;
75623
75624 (0, _classCallCheck3.default)(this, FixedTable);
75625
75626 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
75627 args[_key] = arguments[_key];
75628 }
75629
75630 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {}, _this.getNode = function (type, node, lockType) {
75631 lockType = lockType ? lockType.charAt(0).toUpperCase() + lockType.substr(1) : '';
75632 _this['' + type + lockType + 'Node'] = node;
75633 }, _this.getTableInstance = function (type, instance) {
75634 type = '';
75635 _this['table' + type + 'Inc'] = instance;
75636 }, _this.onFixedScrollSync = function () {
75637 var current = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { currentTarget: {} };
75638
75639 var currentTarget = current.currentTarget || {},
75640 headerNode = _this.headerNode,
75641 bodyNode = _this.bodyNode;
75642
75643 var scrollLeft = currentTarget.scrollLeft,
75644 scrollWidth = currentTarget.scrollWidth,
75645 clientWidth = currentTarget.clientWidth;
75646
75647 var scrollToRightEnd = !(scrollLeft < scrollWidth - clientWidth);
75648 var _this$props = _this.props,
75649 prefix = _this$props.prefix,
75650 loading = _this$props.loading;
75651
75652 if (!loading && scrollToRightEnd !== _this.scrollToRightEnd) {
75653 _this.scrollToRightEnd = scrollToRightEnd;
75654 var table = _this.getTableNode();
75655
75656 var leftFunc = scrollToRightEnd ? 'removeClass' : 'addClass';
75657 _util.dom[leftFunc](table, prefix + 'table-scrolling-to-right');
75658 }
75659 if (current.currentTarget !== current.target) {
75660 return;
75661 }
75662 if (currentTarget === bodyNode) {
75663 if (headerNode && scrollLeft !== headerNode.scrollLeft) {
75664 headerNode.scrollLeft = scrollLeft;
75665 }
75666 } else if (currentTarget === headerNode) {
75667 if (bodyNode && scrollLeft !== bodyNode.scrollLeft) {
75668 bodyNode.scrollLeft = scrollLeft;
75669 }
75670 }
75671 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
75672 }
75673
75674 FixedTable.prototype.getChildContext = function getChildContext() {
75675 return {
75676 fixedHeader: this.props.fixedHeader,
75677 maxBodyHeight: this.props.maxBodyHeight,
75678 getTableInstanceForFixed: this.getTableInstance,
75679 onFixedScrollSync: this.onFixedScrollSync,
75680 getNode: this.getNode
75681 };
75682 };
75683
75684 FixedTable.prototype.componentDidMount = function componentDidMount() {
75685 this.adjustFixedHeaderSize();
75686 this.scrollToRightEnd = undefined;
75687 this.onFixedScrollSync({ currentTarget: this.bodyNode, target: this.bodyNode });
75688 };
75689
75690 FixedTable.prototype.componentDidUpdate = function componentDidUpdate() {
75691 this.adjustFixedHeaderSize();
75692 this.onFixedScrollSync({ currentTarget: this.bodyNode, target: this.bodyNode });
75693 };
75694
75695 FixedTable.prototype.getTableNode = function getTableNode() {
75696 var table = this.tableInc;
75697 try {
75698 // in case of finding an unmounted component due to cached data
75699 // need to clear refs of table when dataSource Changed
75700 // use try catch for temporary
75701 return (0, _reactDom.findDOMNode)(table.tableEl);
75702 } catch (error) {
75703 return null;
75704 }
75705 };
75706
75707 // for fixed header scroll left
75708
75709
75710 FixedTable.prototype.adjustFixedHeaderSize = function adjustFixedHeaderSize() {
75711 var _props = this.props,
75712 hasHeader = _props.hasHeader,
75713 rtl = _props.rtl,
75714 prefix = _props.prefix;
75715
75716 var paddingName = rtl ? 'paddingLeft' : 'paddingRight';
75717 var marginName = rtl ? 'marginLeft' : 'marginRight';
75718 var body = this.bodyNode;
75719 var scrollBarSize = +_util.dom.scrollbar().width || 0;
75720
75721 if (hasHeader && !this.props.lockType && body) {
75722 var hasVerScroll = body.scrollHeight > body.clientHeight,
75723 hasHozScroll = body.scrollWidth > body.clientWidth;
75724 var style = {};
75725 if (!hasVerScroll) {
75726 style[paddingName] = 0;
75727 style[marginName] = 0;
75728 }
75729
75730 if (+scrollBarSize) {
75731 style.marginBottom = -scrollBarSize;
75732 if (hasHozScroll) {
75733 style.paddingBottom = scrollBarSize;
75734 } else {
75735 style.paddingBottom = scrollBarSize;
75736 }
75737 if (hasVerScroll) {
75738 style[marginName] = scrollBarSize;
75739 }
75740 }
75741
75742 _util.dom.setStyle(this.headerNode, style);
75743 }
75744
75745 if (hasHeader && !this.props.lockType && this.headerNode) {
75746 var fixer = this.headerNode.querySelector('.' + prefix + 'table-header-fixer');
75747 var height = _util.dom.getStyle(this.headerNode, 'height');
75748 var paddingBottom = _util.dom.getStyle(this.headerNode, 'paddingBottom');
75749
75750 _util.dom.setStyle(fixer, {
75751 width: scrollBarSize,
75752 height: height - paddingBottom
75753 });
75754 }
75755 };
75756
75757 FixedTable.prototype.render = function render() {
75758 /* eslint-disable no-unused-vars, prefer-const */
75759 var _props2 = this.props,
75760 components = _props2.components,
75761 className = _props2.className,
75762 prefix = _props2.prefix,
75763 fixedHeader = _props2.fixedHeader,
75764 lockType = _props2.lockType,
75765 dataSource = _props2.dataSource,
75766 maxBodyHeight = _props2.maxBodyHeight,
75767 others = (0, _objectWithoutProperties3.default)(_props2, ['components', 'className', 'prefix', 'fixedHeader', 'lockType', 'dataSource', 'maxBodyHeight']);
75768
75769 if (fixedHeader) {
75770 var _classnames;
75771
75772 components = (0, _extends3.default)({}, components);
75773 if (!components.Header) {
75774 components.Header = _header2.default;
75775 }
75776 if (!components.Body) {
75777 components.Body = _body2.default;
75778 }
75779 if (!components.Wrapper) {
75780 components.Wrapper = _wrapper2.default;
75781 }
75782 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-fixed'] = true, _classnames[prefix + 'table-wrap-empty'] = !dataSource.length, _classnames[className] = className, _classnames));
75783 }
75784
75785 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
75786 dataSource: dataSource,
75787 lockType: lockType,
75788 components: components,
75789 className: className,
75790 prefix: prefix
75791 }));
75792 };
75793
75794 return FixedTable;
75795 }(_react2.default.Component), _class.FixedHeader = _header2.default, _class.FixedBody = _body2.default, _class.FixedWrapper = _wrapper2.default, _class.propTypes = (0, _extends3.default)({
75796 /**
75797 * 是否具有表头
75798 */
75799 hasHeader: _propTypes2.default.bool,
75800 /**
75801 * 表头是否固定,该属性配合maxBodyHeight使用,当内容区域的高度超过maxBodyHeight的时候,在内容区域会出现滚动条
75802 */
75803 fixedHeader: _propTypes2.default.bool,
75804 /**
75805 * 最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条
75806 */
75807 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])
75808 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
75809 hasHeader: true,
75810 fixedHeader: false,
75811 maxBodyHeight: 200,
75812 components: {},
75813 refs: {},
75814 prefix: 'next-'
75815 }), _class.childContextTypes = {
75816 fixedHeader: _propTypes2.default.bool,
75817 getNode: _propTypes2.default.func,
75818 onFixedScrollSync: _propTypes2.default.func,
75819 getTableInstanceForFixed: _propTypes2.default.func,
75820 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])
75821 }, _temp2);
75822 FixedTable.displayName = 'FixedTable';
75823
75824 (0, _util2.statics)(FixedTable, BaseComponent);
75825 return FixedTable;
75826}
75827module.exports = exports['default'];
75828
75829/***/ }),
75830/* 435 */
75831/***/ (function(module, exports, __webpack_require__) {
75832
75833"use strict";
75834
75835
75836exports.__esModule = true;
75837
75838var _objectWithoutProperties2 = __webpack_require__(8);
75839
75840var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
75841
75842var _extends2 = __webpack_require__(1);
75843
75844var _extends3 = _interopRequireDefault(_extends2);
75845
75846var _classCallCheck2 = __webpack_require__(2);
75847
75848var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
75849
75850var _possibleConstructorReturn2 = __webpack_require__(3);
75851
75852var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
75853
75854var _inherits2 = __webpack_require__(4);
75855
75856var _inherits3 = _interopRequireDefault(_inherits2);
75857
75858exports.default = selection;
75859
75860var _react = __webpack_require__(0);
75861
75862var _react2 = _interopRequireDefault(_react);
75863
75864var _propTypes = __webpack_require__(5);
75865
75866var _propTypes2 = _interopRequireDefault(_propTypes);
75867
75868var _reactLifecyclesCompat = __webpack_require__(10);
75869
75870var _checkbox = __webpack_require__(49);
75871
75872var _checkbox2 = _interopRequireDefault(_checkbox);
75873
75874var _radio = __webpack_require__(50);
75875
75876var _radio2 = _interopRequireDefault(_radio);
75877
75878var _util = __webpack_require__(6);
75879
75880var _zhCn = __webpack_require__(13);
75881
75882var _zhCn2 = _interopRequireDefault(_zhCn);
75883
75884var _row = __webpack_require__(185);
75885
75886var _row2 = _interopRequireDefault(_row);
75887
75888var _column = __webpack_require__(103);
75889
75890var _column2 = _interopRequireDefault(_column);
75891
75892var _util2 = __webpack_require__(21);
75893
75894function _interopRequireDefault(obj) {
75895 return obj && obj.__esModule ? obj : { default: obj };
75896}
75897
75898var makeChain = _util.func.makeChain;
75899
75900var unique = function unique(arr) {
75901 var key = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'this';
75902
75903 var temp = {},
75904 ret = [];
75905 arr.forEach(function (item) {
75906 var value = void 0;
75907 if (key === 'this') {
75908 value = item;
75909 } else {
75910 value = item[key];
75911 }
75912 if (!temp[value]) {
75913 ret.push(item);
75914 temp[value] = true;
75915 }
75916 });
75917 return ret;
75918};
75919
75920function selection(BaseComponent) {
75921 var _class, _temp;
75922
75923 /** Table */
75924 var SelectionTable = (_temp = _class = function (_React$Component) {
75925 (0, _inherits3.default)(SelectionTable, _React$Component);
75926
75927 function SelectionTable(props, context) {
75928 (0, _classCallCheck3.default)(this, SelectionTable);
75929
75930 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
75931
75932 _this.addSelection = function (columns) {
75933 var _this$props = _this.props,
75934 prefix = _this$props.prefix,
75935 rowSelection = _this$props.rowSelection,
75936 size = _this$props.size;
75937
75938 var attrs = rowSelection.columnProps && rowSelection.columnProps() || {};
75939
75940 if (!columns.find(function (record) {
75941 return record.key === 'selection';
75942 })) {
75943 columns.unshift((0, _extends3.default)({
75944 key: 'selection',
75945 title: _this.renderSelectionHeader.bind(_this),
75946 cell: _this.renderSelectionBody.bind(_this),
75947 width: size === 'small' ? 34 : 50,
75948 className: prefix + 'table-selection ' + prefix + 'table-prerow',
75949 __normalized: true
75950 }, attrs));
75951 }
75952 };
75953
75954 _this.renderSelectionHeader = function () {
75955 var onChange = _this.selectAllRow,
75956 attrs = {},
75957 _this$props2 = _this.props,
75958 rowSelection = _this$props2.rowSelection,
75959 primaryKey = _this$props2.primaryKey,
75960 dataSource = _this$props2.dataSource,
75961 entireDataSource = _this$props2.entireDataSource,
75962 locale = _this$props2.locale,
75963 selectedRowKeys = _this.state.selectedRowKeys,
75964 mode = rowSelection.mode ? rowSelection.mode : 'multiple';
75965
75966 var checked = !!selectedRowKeys.length;
75967 var indeterminate = false;
75968
75969 var source = entireDataSource || dataSource;
75970
75971 _this.flatDataSource(source).filter(function (record, index) {
75972 if (!rowSelection.getProps) {
75973 return true;
75974 } else {
75975 return !(rowSelection.getProps(record, index) || {}).disabled;
75976 }
75977 }).map(function (record) {
75978 return record[primaryKey];
75979 }).forEach(function (id) {
75980 if (selectedRowKeys.indexOf(id) === -1) {
75981 checked = false;
75982 } else {
75983 indeterminate = true;
75984 }
75985 });
75986 attrs.onClick = makeChain(function (e) {
75987 e.stopPropagation();
75988 }, attrs.onClick);
75989
75990 var userAttrs = rowSelection.titleProps && rowSelection.titleProps() || {};
75991
75992 if (checked) {
75993 indeterminate = false;
75994 }
75995 return [mode === 'multiple' ? _react2.default.createElement(_checkbox2.default, (0, _extends3.default)({
75996 key: '_total',
75997 indeterminate: indeterminate,
75998 'aria-label': locale.selectAll,
75999 checked: checked,
76000 onChange: onChange
76001 }, attrs, userAttrs)) : null, rowSelection.titleAddons && rowSelection.titleAddons()];
76002 };
76003
76004 _this.renderSelectionBody = function (value, index, record) {
76005 var _this$props3 = _this.props,
76006 rowSelection = _this$props3.rowSelection,
76007 primaryKey = _this$props3.primaryKey;
76008 var selectedRowKeys = _this.state.selectedRowKeys;
76009
76010 var mode = rowSelection.mode ? rowSelection.mode : 'multiple';
76011 var checked = selectedRowKeys.indexOf(record[primaryKey]) > -1;
76012 var onChange = _this.selectOneRow.bind(_this, index, record);
76013 var attrs = rowSelection.getProps ? rowSelection.getProps(record, index) || {} : {};
76014
76015 attrs.onClick = makeChain(function (e) {
76016 e.stopPropagation();
76017 }, attrs.onClick);
76018 return mode === 'multiple' ? _react2.default.createElement(_checkbox2.default, (0, _extends3.default)({ checked: checked, onChange: onChange }, attrs)) : _react2.default.createElement(_radio2.default, (0, _extends3.default)({ checked: checked, onChange: onChange }, attrs));
76019 };
76020
76021 _this.selectAllRow = function (checked, e) {
76022 var ret = [].concat(_this.state.selectedRowKeys),
76023 _this$props4 = _this.props,
76024 rowSelection = _this$props4.rowSelection,
76025 primaryKey = _this$props4.primaryKey,
76026 dataSource = _this$props4.dataSource,
76027 entireDataSource = _this$props4.entireDataSource,
76028 selectedRowKeys = _this.state.selectedRowKeys,
76029 getProps = rowSelection.getProps;
76030
76031 var attrs = {},
76032 records = [];
76033
76034 var source = entireDataSource ? entireDataSource : dataSource;
76035
76036 _this.flatDataSource(source).forEach(function (record, index) {
76037 var id = record[primaryKey];
76038 if (getProps) {
76039 attrs = getProps(record, index) || {};
76040 }
76041 // 反选和全选的时候不要丢弃禁用项的选中状态
76042 if (checked && (!attrs.disabled || selectedRowKeys.indexOf(id) > -1)) {
76043 ret.push(id);
76044 records.push(record);
76045 } else if (attrs.disabled && selectedRowKeys.indexOf(id) > -1) {
76046 ret.push(id);
76047 records.push(record);
76048 } else {
76049 var i = ret.indexOf(id);
76050 i > -1 && ret.splice(i, 1);
76051 }
76052 });
76053
76054 records = unique(records, primaryKey);
76055 if (typeof rowSelection.onSelectAll === 'function') {
76056 rowSelection.onSelectAll(checked, records);
76057 }
76058 _this.triggerSelection(rowSelection, unique(ret), records);
76059 e.stopPropagation();
76060 };
76061
76062 _this.state = {
76063 selectedRowKeys: props.rowSelection && 'selectedRowKeys' in props.rowSelection ? props.rowSelection.selectedRowKeys || [] : []
76064 };
76065 return _this;
76066 }
76067
76068 SelectionTable.prototype.getChildContext = function getChildContext() {
76069 return {
76070 rowSelection: this.props.rowSelection,
76071 selectedRowKeys: this.state.selectedRowKeys
76072 };
76073 };
76074
76075 SelectionTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
76076 if (nextProps.rowSelection && 'selectedRowKeys' in nextProps.rowSelection) {
76077 var selectedRowKeys = nextProps.rowSelection.selectedRowKeys || [];
76078 return {
76079 selectedRowKeys: selectedRowKeys
76080 };
76081 }
76082
76083 return null;
76084 };
76085
76086 SelectionTable.prototype.normalizeChildren = function normalizeChildren(children) {
76087 var _props = this.props,
76088 prefix = _props.prefix,
76089 rowSelection = _props.rowSelection,
76090 size = _props.size;
76091
76092 if (rowSelection) {
76093 children = _react.Children.map(children, function (child, index) {
76094 return _react2.default.cloneElement(child, {
76095 key: index
76096 });
76097 });
76098
76099 var attrs = rowSelection.columnProps && rowSelection.columnProps() || {};
76100
76101 children.unshift(_react2.default.createElement(_column2.default, (0, _extends3.default)({
76102 key: 'selection',
76103 title: this.renderSelectionHeader.bind(this),
76104 cell: this.renderSelectionBody.bind(this),
76105 width: size === 'small' ? 34 : 50,
76106 className: prefix + 'table-selection ' + prefix + 'table-prerow',
76107 __normalized: true
76108 }, attrs)));
76109 return children;
76110 }
76111 return children;
76112 };
76113
76114 SelectionTable.prototype.selectOneRow = function selectOneRow(index, record, checked, e) {
76115 var selectedRowKeys = [].concat(this.state.selectedRowKeys),
76116 i = void 0;
76117 var _props2 = this.props,
76118 primaryKey = _props2.primaryKey,
76119 rowSelection = _props2.rowSelection,
76120 dataSource = _props2.dataSource,
76121 entireDataSource = _props2.entireDataSource,
76122 mode = rowSelection.mode ? rowSelection.mode : 'multiple',
76123 id = record[primaryKey];
76124
76125 if (!id) {
76126 _util.log.warning('Can\'t get value from record using given ' + primaryKey + ' as primaryKey.');
76127 }
76128 if (mode === 'multiple') {
76129 if (checked) {
76130 selectedRowKeys.push(id);
76131 } else {
76132 i = selectedRowKeys.indexOf(id);
76133 selectedRowKeys.splice(i, 1);
76134 }
76135 } else if (checked) {
76136 selectedRowKeys = [id];
76137 }
76138 var totalDS = dataSource;
76139 if (Array.isArray(entireDataSource) && entireDataSource.length > dataSource.length) {
76140 totalDS = entireDataSource;
76141 }
76142 var records = unique(totalDS.filter(function (item) {
76143 return selectedRowKeys.indexOf(item[primaryKey]) > -1;
76144 }), primaryKey);
76145 if (typeof rowSelection.onSelect === 'function') {
76146 rowSelection.onSelect(checked, record, records);
76147 }
76148
76149 this.triggerSelection(rowSelection, selectedRowKeys, records);
76150
76151 e.stopPropagation();
76152 };
76153
76154 SelectionTable.prototype.triggerSelection = function triggerSelection(rowSelection, selectedRowKeys, records) {
76155 if (!('selectedRowKeys' in rowSelection)) {
76156 this.setState({
76157 selectedRowKeys: selectedRowKeys
76158 });
76159 }
76160 if (typeof rowSelection.onChange === 'function') {
76161 rowSelection.onChange(selectedRowKeys, records);
76162 }
76163 };
76164
76165 SelectionTable.prototype.flatDataSource = function flatDataSource(dataSource) {
76166 var ret = dataSource;
76167 var listHeader = this.context.listHeader;
76168
76169 if (listHeader) {
76170 ret = [];
76171 var hasChildrenSelection = listHeader.hasChildrenSelection,
76172 hasSelection = listHeader.hasSelection;
76173
76174 dataSource.forEach(function (item) {
76175 var children = item.children;
76176 // 如果需要渲染selection才将这条记录插入到dataSource
76177 // 或者没有孩子节点
76178 if (hasSelection) {
76179 ret.push(item);
76180 }
76181 if (children && hasChildrenSelection) {
76182 ret = ret.concat(children);
76183 }
76184 });
76185 }
76186 return ret;
76187 };
76188
76189 SelectionTable.prototype.render = function render() {
76190 /* eslint-disable prefer-const */
76191 var _props3 = this.props,
76192 rowSelection = _props3.rowSelection,
76193 components = _props3.components,
76194 children = _props3.children,
76195 columns = _props3.columns,
76196 others = (0, _objectWithoutProperties3.default)(_props3, ['rowSelection', 'components', 'children', 'columns']);
76197
76198 var useColumns = columns && !children;
76199
76200 if (rowSelection) {
76201 if (useColumns) {
76202 this.addSelection(columns);
76203 } else {
76204 children = this.normalizeChildren(children || []);
76205 }
76206 components = (0, _extends3.default)({}, components);
76207 components.Row = components.Row || _row2.default;
76208 }
76209 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, { columns: columns, components: components, children: children }));
76210 };
76211
76212 return SelectionTable;
76213 }(_react2.default.Component), _class.SelectionRow = _row2.default, _class.propTypes = (0, _extends3.default)({
76214 /**
76215 * 是否启用选择模式
76216 * @property {Function} getProps `Function(record, index)=>Object` 获取selection的默认属性
76217 * @property {Function} onChange `Function(selectedRowKeys:Array, records:Array)` 选择改变的时候触发的事件,**注意:** 其中records只会包含当前dataSource的数据,很可能会小于selectedRowKeys的长度。
76218 * @property {Function} onSelect `Function(selected:Boolean, record:Object, records:Array)` 用户手动选择/取消选择某行的回调
76219 * @property {Function} onSelectAll `Function(selected:Boolean, records:Array)` 用户手动选择/取消选择所有行的回调
76220 * @property {Array} selectedRowKeys 设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值
76221 * @property {String} mode 选择selection的模式, 可选值为`single`, `multiple`,默认为`multiple`
76222 * @property {Function} columnProps `Function()=>Object` 选择列 的props,例如锁列、对齐等,可使用`Table.Column` 的所有参数
76223 * @property {Function} titleProps `Function()=>Object` 选择列 表头的props,仅在 `multiple` 模式下生效
76224 */
76225 rowSelection: _propTypes2.default.object,
76226 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
76227 dataSource: _propTypes2.default.array,
76228 entireDataSource: _propTypes2.default.array
76229 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
76230 locale: _zhCn2.default.Table,
76231 primaryKey: 'id',
76232 prefix: 'next-'
76233 }), _class.contextTypes = {
76234 listHeader: _propTypes2.default.any
76235 }, _class.childContextTypes = {
76236 rowSelection: _propTypes2.default.object,
76237 selectedRowKeys: _propTypes2.default.array
76238 }, _temp);
76239 SelectionTable.displayName = 'SelectionTable';
76240
76241 (0, _util2.statics)(SelectionTable, BaseComponent);
76242 return (0, _reactLifecyclesCompat.polyfill)(SelectionTable);
76243}
76244module.exports = exports['default'];
76245
76246/***/ }),
76247/* 436 */
76248/***/ (function(module, exports, __webpack_require__) {
76249
76250"use strict";
76251
76252
76253exports.__esModule = true;
76254
76255var _objectWithoutProperties2 = __webpack_require__(8);
76256
76257var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
76258
76259var _extends2 = __webpack_require__(1);
76260
76261var _extends3 = _interopRequireDefault(_extends2);
76262
76263var _classCallCheck2 = __webpack_require__(2);
76264
76265var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
76266
76267var _possibleConstructorReturn2 = __webpack_require__(3);
76268
76269var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
76270
76271var _inherits2 = __webpack_require__(4);
76272
76273var _inherits3 = _interopRequireDefault(_inherits2);
76274
76275exports.default = expanded;
76276
76277var _react = __webpack_require__(0);
76278
76279var _react2 = _interopRequireDefault(_react);
76280
76281var _reactDom = __webpack_require__(12);
76282
76283var _propTypes = __webpack_require__(5);
76284
76285var _propTypes2 = _interopRequireDefault(_propTypes);
76286
76287var _classnames2 = __webpack_require__(7);
76288
76289var _classnames3 = _interopRequireDefault(_classnames2);
76290
76291var _reactLifecyclesCompat = __webpack_require__(10);
76292
76293var _icon = __webpack_require__(11);
76294
76295var _icon2 = _interopRequireDefault(_icon);
76296
76297var _util = __webpack_require__(6);
76298
76299var _row = __webpack_require__(186);
76300
76301var _row2 = _interopRequireDefault(_row);
76302
76303var _column = __webpack_require__(103);
76304
76305var _column2 = _interopRequireDefault(_column);
76306
76307var _util2 = __webpack_require__(21);
76308
76309function _interopRequireDefault(obj) {
76310 return obj && obj.__esModule ? obj : { default: obj };
76311}
76312
76313var noop = function noop() {};
76314
76315function expanded(BaseComponent, stickyLock) {
76316 var _class, _temp2;
76317
76318 /** Table */
76319 var ExpandedTable = (_temp2 = _class = function (_React$Component) {
76320 (0, _inherits3.default)(ExpandedTable, _React$Component);
76321
76322 function ExpandedTable() {
76323 var _temp, _this, _ret;
76324
76325 (0, _classCallCheck3.default)(this, ExpandedTable);
76326
76327 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
76328 args[_key] = arguments[_key];
76329 }
76330
76331 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
76332 openRowKeys: _this.props.openRowKeys || _this.props.defaultOpenRowKeys || []
76333 }, _this.saveExpandedRowRef = function (key, rowRef) {
76334 if (!_this.expandedRowRefs) {
76335 _this.expandedRowRefs = {};
76336 }
76337 _this.expandedRowRefs[key] = rowRef;
76338 }, _this.setExpandedWidth = function () {
76339 var prefix = _this.props.prefix;
76340
76341 var tableEl = _this.getTableNode();
76342 var totalWidth = +(tableEl && tableEl.clientWidth) - 1 || '100%';
76343 var bodyNode = tableEl && tableEl.querySelector('.' + prefix + 'table-body');
76344
76345 Object.keys(_this.expandedRowRefs || {}).forEach(function (key) {
76346 _util.dom.setStyle(_this.expandedRowRefs[key], { width: bodyNode && bodyNode.clientWidth || totalWidth });
76347 });
76348 }, _this.getTableInstance = function (instance) {
76349 _this.tableInc = instance;
76350 }, _this.expandedKeydown = function (value, record, index, e) {
76351 e.preventDefault();
76352 e.stopPropagation();
76353
76354 if (e.keyCode === _util.KEYCODE.ENTER) {
76355 _this.onExpandedClick(value, record, index, e);
76356 }
76357 }, _this.renderExpandedCell = function (value, index, record) {
76358 var _classnames;
76359
76360 var _this$props = _this.props,
76361 getExpandedColProps = _this$props.getExpandedColProps,
76362 prefix = _this$props.prefix,
76363 locale = _this$props.locale,
76364 rowExpandable = _this$props.rowExpandable;
76365
76366 if (typeof rowExpandable === 'function' && !rowExpandable(record, index)) {
76367 return '';
76368 }
76369
76370 var openRowKeys = _this.state.openRowKeys,
76371 primaryKey = _this.props.primaryKey,
76372 hasExpanded = openRowKeys.indexOf(record[primaryKey]) > -1,
76373 switchNode = hasExpanded ? _react2.default.createElement(_icon2.default, { type: 'minus', size: 'xs', className: prefix + 'table-expand-unfold' }) : _react2.default.createElement(_icon2.default, { type: 'add', size: 'xs', className: prefix + 'table-expand-fold' }),
76374 attrs = getExpandedColProps(record, index) || {};
76375
76376 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-expanded-ctrl'] = true, _classnames.disabled = attrs.disabled, _classnames[attrs.className] = attrs.className, _classnames));
76377
76378 if (!attrs.disabled) {
76379 attrs.onClick = _this.onExpandedClick.bind(_this, value, record, index);
76380 }
76381 return _react2.default.createElement('span', (0, _extends3.default)({}, attrs, {
76382 role: 'button',
76383 tabIndex: '0',
76384 onKeyDown: _this.expandedKeydown.bind(_this, value, record, index),
76385 'aria-label': hasExpanded ? locale.expanded : locale.folded,
76386 'aria-expanded': hasExpanded,
76387 className: cls
76388 }), switchNode);
76389 }, _this.addExpandCtrl = function (columns) {
76390 var _this$props2 = _this.props,
76391 prefix = _this$props2.prefix,
76392 size = _this$props2.size;
76393
76394 if (!columns.find(function (record) {
76395 return record.key === 'expanded';
76396 })) {
76397 columns.unshift({
76398 key: 'expanded',
76399 title: '',
76400 cell: _this.renderExpandedCell.bind(_this),
76401 width: size === 'small' ? 34 : 50,
76402 className: prefix + 'table-expanded ' + prefix + 'table-prerow',
76403 __normalized: true
76404 });
76405 }
76406 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
76407 }
76408
76409 ExpandedTable.prototype.getChildContext = function getChildContext() {
76410 return {
76411 openRowKeys: this.state.openRowKeys,
76412 expandedRowRender: this.props.expandedRowRender,
76413 expandedIndexSimulate: this.props.expandedIndexSimulate,
76414 expandedRowWidthEquals2Table: stickyLock,
76415 getExpandedRowRef: this.saveExpandedRowRef,
76416 getTableInstanceForExpand: this.getTableInstance,
76417 expandedRowIndent: stickyLock ? [0, 0] : this.props.expandedRowIndent
76418 };
76419 };
76420
76421 ExpandedTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) {
76422 if ('openRowKeys' in nextProps) {
76423 return {
76424 openRowKeys: nextProps.openRowKeys || []
76425 };
76426 }
76427
76428 return null;
76429 };
76430
76431 ExpandedTable.prototype.componentDidMount = function componentDidMount() {
76432 this.setExpandedWidth();
76433 _util.events.on(window, 'resize', this.setExpandedWidth);
76434 };
76435
76436 ExpandedTable.prototype.componentDidUpdate = function componentDidUpdate() {
76437 this.setExpandedWidth();
76438 };
76439
76440 ExpandedTable.prototype.componentWillUnmount = function componentWillUnmount() {
76441 _util.events.off(window, 'resize', this.setExpandedWidth);
76442 };
76443
76444 ExpandedTable.prototype.getTableNode = function getTableNode() {
76445 var table = this.tableInc;
76446 try {
76447 // in case of finding an unmounted component due to cached data
76448 // need to clear refs of table when dataSource Changed
76449 // use try catch for temporary
76450 return (0, _reactDom.findDOMNode)(table.tableEl);
76451 } catch (error) {
76452 return null;
76453 }
76454 };
76455
76456 ExpandedTable.prototype.onExpandedClick = function onExpandedClick(value, record, i, e) {
76457 var openRowKeys = [].concat(this.state.openRowKeys),
76458 primaryKey = this.props.primaryKey,
76459 id = record[primaryKey],
76460 index = openRowKeys.indexOf(id);
76461
76462 if (index > -1) {
76463 openRowKeys.splice(index, 1);
76464 } else {
76465 openRowKeys.push(id);
76466 }
76467 if (!('openRowKeys' in this.props)) {
76468 this.setState({
76469 openRowKeys: openRowKeys
76470 });
76471 }
76472 this.props.onRowOpen(openRowKeys, id, index === -1, record);
76473 e.stopPropagation();
76474 };
76475
76476 ExpandedTable.prototype.normalizeChildren = function normalizeChildren(children) {
76477 var _props = this.props,
76478 prefix = _props.prefix,
76479 size = _props.size;
76480
76481 var toArrayChildren = _react.Children.map(children, function (child, index) {
76482 return _react2.default.cloneElement(child, {
76483 key: index
76484 });
76485 });
76486 toArrayChildren.unshift(_react2.default.createElement(_column2.default, {
76487 title: '',
76488 key: 'expanded',
76489 cell: this.renderExpandedCell.bind(this),
76490 width: size === 'small' ? 34 : 50,
76491 className: prefix + 'table-expanded ' + prefix + 'table-prerow',
76492 __normalized: true
76493 }));
76494 return toArrayChildren;
76495 };
76496
76497 ExpandedTable.prototype.normalizeDataSource = function normalizeDataSource(ds) {
76498 var ret = [];
76499 ds.forEach(function (item) {
76500 var itemCopy = (0, _extends3.default)({}, item);
76501 itemCopy.__expanded = true;
76502 ret.push(item, itemCopy);
76503 });
76504 return ret;
76505 };
76506
76507 ExpandedTable.prototype.render = function render() {
76508 /* eslint-disable no-unused-vars, prefer-const */
76509 var _props2 = this.props,
76510 components = _props2.components,
76511 openRowKeys = _props2.openRowKeys,
76512 expandedRowRender = _props2.expandedRowRender,
76513 rowExpandable = _props2.rowExpandable,
76514 hasExpandedRowCtrl = _props2.hasExpandedRowCtrl,
76515 children = _props2.children,
76516 columns = _props2.columns,
76517 dataSource = _props2.dataSource,
76518 entireDataSource = _props2.entireDataSource,
76519 getExpandedColProps = _props2.getExpandedColProps,
76520 expandedRowIndent = _props2.expandedRowIndent,
76521 onRowOpen = _props2.onRowOpen,
76522 onExpandedRowClick = _props2.onExpandedRowClick,
76523 others = (0, _objectWithoutProperties3.default)(_props2, ['components', 'openRowKeys', 'expandedRowRender', 'rowExpandable', 'hasExpandedRowCtrl', 'children', 'columns', 'dataSource', 'entireDataSource', 'getExpandedColProps', 'expandedRowIndent', 'onRowOpen', 'onExpandedRowClick']);
76524
76525 if (expandedRowRender && !components.Row) {
76526 components = (0, _extends3.default)({}, components);
76527 components.Row = _row2.default;
76528 dataSource = this.normalizeDataSource(dataSource);
76529 entireDataSource = this.normalizeDataSource(entireDataSource);
76530 }
76531 if (expandedRowRender && hasExpandedRowCtrl) {
76532 var useColumns = columns && !children;
76533
76534 if (useColumns) {
76535 this.addExpandCtrl(columns);
76536 } else {
76537 children = this.normalizeChildren(children || []);
76538 }
76539 }
76540
76541 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
76542 columns: columns,
76543 dataSource: dataSource,
76544 entireDataSource: entireDataSource,
76545 components: components
76546 }), children);
76547 };
76548
76549 return ExpandedTable;
76550 }(_react2.default.Component), _class.ExpandedRow = _row2.default, _class.propTypes = (0, _extends3.default)({
76551 /**
76552 * 额外渲染行的渲染函数
76553 * @param {Object} record 该行所对应的数据
76554 * @param {Number} index 该行所对应的序列
76555 * @returns {Element}
76556 */
76557 expandedRowRender: _propTypes2.default.func,
76558 /**
76559 * 设置行是否可展开,设置 false 为不可展开
76560 * @param {Object} record 该行所对应的数据
76561 * @param {Number} index 该行所对应的序列
76562 * @returns {Boolean} 是否可展开
76563 * @version 1.21
76564 */
76565 rowExpandable: _propTypes2.default.func,
76566 /**
76567 * 额外渲染行的缩进
76568 */
76569 expandedRowIndent: _propTypes2.default.array,
76570 /**
76571 * 默认情况下展开的渲染行或者Tree, 传入此属性为受控状态
76572 */
76573 openRowKeys: _propTypes2.default.array,
76574 /**
76575 * 默认情况下展开的 Expand行 或者 Tree行,非受控模式
76576 * @version 1.23.22
76577 */
76578 defaultOpenRowKeys: _propTypes2.default.array,
76579 /**
76580 * 是否显示点击展开额外渲染行的+号按钮
76581 */
76582 hasExpandedRowCtrl: _propTypes2.default.bool,
76583 /**
76584 * 设置额外渲染行的属性
76585 */
76586 getExpandedColProps: _propTypes2.default.func,
76587 /**
76588 * 在额外渲染行或者Tree展开或者收起的时候触发的事件
76589 * @param {Array} openRowKeys 展开的渲染行的key
76590 * @param {String} currentRowKey 当前点击的渲染行的key
76591 * @param {Boolean} expanded 当前点击是展开还是收起
76592 * @param {Object} currentRecord 当前点击额外渲染行的记录
76593 */
76594 onRowOpen: _propTypes2.default.func,
76595 onExpandedRowClick: _propTypes2.default.func,
76596 locale: _propTypes2.default.object
76597 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
76598 getExpandedColProps: noop,
76599 onRowOpen: noop,
76600 hasExpandedRowCtrl: true,
76601 components: {},
76602 expandedRowIndent: stickyLock ? [0, 0] : [1, 0],
76603 prefix: 'next-'
76604 }), _class.childContextTypes = {
76605 openRowKeys: _propTypes2.default.array,
76606 expandedRowRender: _propTypes2.default.func,
76607 expandedIndexSimulate: _propTypes2.default.bool,
76608 expandedRowWidthEquals2Table: _propTypes2.default.bool,
76609 expandedRowIndent: _propTypes2.default.array,
76610 getExpandedRowRef: _propTypes2.default.func,
76611 getTableInstanceForExpand: _propTypes2.default.func
76612 }, _temp2);
76613 ExpandedTable.displayName = 'ExpandedTable';
76614
76615 (0, _util2.statics)(ExpandedTable, BaseComponent);
76616 return (0, _reactLifecyclesCompat.polyfill)(ExpandedTable);
76617}
76618module.exports = exports['default'];
76619
76620/***/ }),
76621/* 437 */
76622/***/ (function(module, exports, __webpack_require__) {
76623
76624"use strict";
76625
76626
76627exports.__esModule = true;
76628
76629var _extends2 = __webpack_require__(1);
76630
76631var _extends3 = _interopRequireDefault(_extends2);
76632
76633var _objectWithoutProperties2 = __webpack_require__(8);
76634
76635var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
76636
76637var _classCallCheck2 = __webpack_require__(2);
76638
76639var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
76640
76641var _possibleConstructorReturn2 = __webpack_require__(3);
76642
76643var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
76644
76645var _inherits2 = __webpack_require__(4);
76646
76647var _inherits3 = _interopRequireDefault(_inherits2);
76648
76649exports.default = virtual;
76650
76651var _react = __webpack_require__(0);
76652
76653var _react2 = _interopRequireDefault(_react);
76654
76655var _reactDom = __webpack_require__(12);
76656
76657var _propTypes = __webpack_require__(5);
76658
76659var _propTypes2 = _interopRequireDefault(_propTypes);
76660
76661var _reactLifecyclesCompat = __webpack_require__(10);
76662
76663var _util = __webpack_require__(6);
76664
76665var _body = __webpack_require__(438);
76666
76667var _body2 = _interopRequireDefault(_body);
76668
76669var _util2 = __webpack_require__(21);
76670
76671function _interopRequireDefault(obj) {
76672 return obj && obj.__esModule ? obj : { default: obj };
76673}
76674
76675var noop = function noop() {};
76676var THRESHOLD = 10;
76677function virtual(BaseComponent) {
76678 var _class, _temp;
76679
76680 var VirtualTable = (_temp = _class = function (_React$Component) {
76681 (0, _inherits3.default)(VirtualTable, _React$Component);
76682
76683 function VirtualTable(props, context) {
76684 (0, _classCallCheck3.default)(this, VirtualTable);
76685
76686 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
76687
76688 _this.onScroll = function () {
76689 // 避免横向滚动带来的性能问题
76690 var scrollTop = _this.bodyNode.scrollTop;
76691 if (scrollTop === _this.lastScrollTop) {
76692 return;
76693 }
76694 var start = _this.computeScrollToRow(scrollTop);
76695 if (!('scrollToRow' in _this.props)) {
76696 _this.setState({
76697 scrollToRow: start
76698 });
76699 }
76700 _this.props.onBodyScroll(start);
76701 _this.lastScrollTop = scrollTop;
76702 };
76703
76704 _this.getBodyNode = function (node, lockType) {
76705 lockType = lockType ? lockType.charAt(0).toUpperCase() + lockType.substr(1) : '';
76706 _this['body' + lockType + 'Node'] = node;
76707 };
76708
76709 _this.getTableInstance = function (type, instance) {
76710 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
76711 _this['table' + type + 'Inc'] = instance;
76712 };
76713
76714 var useVirtual = props.useVirtual,
76715 dataSource = props.dataSource;
76716
76717 var hasVirtualData = useVirtual && dataSource && dataSource.length > 0;
76718
76719 _this.state = {
76720 rowHeight: _this.props.rowHeight,
76721 scrollToRow: _this.props.scrollToRow,
76722 height: _this.props.maxBodyHeight,
76723 hasVirtualData: hasVirtualData
76724 };
76725 return _this;
76726 }
76727
76728 VirtualTable.prototype.getChildContext = function getChildContext() {
76729 return {
76730 onVirtualScroll: this.onScroll,
76731 bodyHeight: this.computeBodyHeight(),
76732 innerTop: this.computeInnerTop(),
76733 getBodyNode: this.getBodyNode,
76734 getTableInstanceForVirtual: this.getTableInstance,
76735 rowSelection: this.rowSelection
76736 };
76737 };
76738
76739 VirtualTable.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
76740 var state = {};
76741
76742 if ('maxBodyHeight' in nextProps) {
76743 if (prevState.height !== nextProps.maxBodyHeight) {
76744 state.height = nextProps.maxBodyHeight;
76745 }
76746 }
76747
76748 if ('scrollToRow' in nextProps) {
76749 state.scrollToRow = nextProps.scrollToRow;
76750 }
76751
76752 if (prevState.useVirtual !== nextProps.useVirtual || prevState.dataSource !== nextProps.dataSource) {
76753 state.hasVirtualData = nextProps.useVirtual && nextProps.dataSource && nextProps.dataSource.length > 0;
76754 }
76755
76756 return state;
76757 };
76758
76759 VirtualTable.prototype.componentDidMount = function componentDidMount() {
76760 if (this.state.hasVirtualData && this.bodyNode) {
76761 this.lastScrollTop = this.bodyNode.scrollTop;
76762 }
76763
76764 this.adjustScrollTop();
76765 this.adjustSize();
76766 this.reComputeSize();
76767 };
76768
76769 VirtualTable.prototype.componentDidUpdate = function componentDidUpdate() {
76770 this.adjustScrollTop();
76771 this.adjustSize();
76772 this.reComputeSize();
76773 };
76774
76775 VirtualTable.prototype.reComputeSize = function reComputeSize() {
76776 var _state = this.state,
76777 rowHeight = _state.rowHeight,
76778 hasVirtualData = _state.hasVirtualData;
76779
76780 if (typeof rowHeight === 'function' && hasVirtualData) {
76781 var row = this.getRowNode();
76782 var rowClientHeight = row && row.clientHeight;
76783 if (rowClientHeight !== this.state.rowHeight) {
76784 this.setState({
76785 rowHeight: rowClientHeight
76786 });
76787 }
76788 }
76789 };
76790
76791 VirtualTable.prototype.computeBodyHeight = function computeBodyHeight() {
76792 var rowHeight = this.state.rowHeight;
76793 var dataSource = this.props.dataSource;
76794
76795 if (typeof rowHeight === 'function') {
76796 return 0;
76797 }
76798 var count = 0;
76799 dataSource.forEach(function (item) {
76800 if (!item.__hidden) {
76801 count += 1;
76802 }
76803 });
76804 return count * rowHeight;
76805 };
76806
76807 VirtualTable.prototype.computeInnerTop = function computeInnerTop() {
76808 var rowHeight = this.state.rowHeight;
76809
76810 if (typeof rowHeight === 'function') {
76811 return 0;
76812 }
76813
76814 var start = Math.max(this.start - THRESHOLD, 0);
76815
76816 return start * rowHeight;
76817 };
76818
76819 VirtualTable.prototype.getVisibleRange = function getVisibleRange(ExpectStart) {
76820 var _state2 = this.state,
76821 height = _state2.height,
76822 rowHeight = _state2.rowHeight;
76823
76824 var len = this.props.dataSource.length;
76825
76826 var end = void 0,
76827 visibleCount = 0;
76828 var start = 0;
76829 if (typeof rowHeight === 'function') {
76830 // try get cell height;
76831 end = 1;
76832 } else {
76833 visibleCount = parseInt(_util.dom.getPixels(height) / rowHeight, 10);
76834
76835 if ('number' === typeof ExpectStart) {
76836 start = ExpectStart < len ? ExpectStart : 0;
76837 }
76838
76839 end = Math.min(+start + 1 + visibleCount + 10, len);
76840 }
76841 this.end = end;
76842 this.visibleCount = visibleCount;
76843 return {
76844 start: start,
76845 end: end
76846 };
76847 };
76848
76849 VirtualTable.prototype.adjustScrollTop = function adjustScrollTop() {
76850 if (this.state.hasVirtualData && this.bodyNode) {
76851 this.bodyNode.scrollTop = this.lastScrollTop % this.state.rowHeight + this.state.rowHeight * this.state.scrollToRow;
76852 }
76853 };
76854
76855 VirtualTable.prototype.adjustSize = function adjustSize() {
76856 if (this.state.hasVirtualData && this.bodyNode) {
76857 var body = this.bodyNode;
76858 var virtualScrollNode = body.querySelector('div');
76859 var clientHeight = body.clientHeight,
76860 clientWidth = body.clientWidth;
76861
76862 var tableInc = this.tableInc;
76863 var tableNode = (0, _reactDom.findDOMNode)(tableInc);
76864 var prefix = this.props.prefix;
76865
76866 var headerNode = tableNode.querySelector('.' + prefix + 'table-header table');
76867 var headerClientWidth = headerNode && headerNode.clientWidth;
76868 // todo 2.0 设置宽度这个可以去掉
76869 if (clientWidth < headerClientWidth) {
76870 _util.dom.setStyle(virtualScrollNode, 'min-width', headerClientWidth);
76871 var leftNode = this.bodyLeftNode;
76872 var rightNode = this.bodyRightNode;
76873 leftNode && _util.dom.setStyle(leftNode, 'max-height', clientHeight);
76874 rightNode && _util.dom.setStyle(rightNode, 'max-height', clientHeight);
76875 } else {
76876 _util.dom.setStyle(virtualScrollNode, 'min-width', 'auto');
76877 }
76878 }
76879 };
76880
76881 VirtualTable.prototype.computeScrollToRow = function computeScrollToRow(offset) {
76882 var rowHeight = this.state.rowHeight;
76883
76884 var start = parseInt(offset / rowHeight);
76885 this.start = start;
76886 return start;
76887 };
76888
76889 VirtualTable.prototype.getRowNode = function getRowNode() {
76890 try {
76891 // in case of finding an unmounted component due to cached data
76892 // need to clear refs of this.tableInc when dataSource Changed
76893 // use try catch for temporary
76894 return (0, _reactDom.findDOMNode)(this.tableInc.getRowRef(0));
76895 } catch (error) {
76896 return null;
76897 }
76898 };
76899
76900 VirtualTable.prototype.render = function render() {
76901 /* eslint-disable no-unused-vars, prefer-const */
76902 var _props = this.props,
76903 useVirtual = _props.useVirtual,
76904 components = _props.components,
76905 dataSource = _props.dataSource,
76906 fixedHeader = _props.fixedHeader,
76907 rowHeight = _props.rowHeight,
76908 scrollToRow = _props.scrollToRow,
76909 onBodyScroll = _props.onBodyScroll,
76910 others = (0, _objectWithoutProperties3.default)(_props, ['useVirtual', 'components', 'dataSource', 'fixedHeader', 'rowHeight', 'scrollToRow', 'onBodyScroll']);
76911
76912 var entireDataSource = dataSource;
76913 var newDataSource = dataSource;
76914
76915 this.rowSelection = this.props.rowSelection;
76916 if (this.state.hasVirtualData) {
76917 newDataSource = [];
76918 components = (0, _extends3.default)({}, components);
76919
76920 var _getVisibleRange = this.getVisibleRange(this.state.scrollToRow),
76921 start = _getVisibleRange.start,
76922 end = _getVisibleRange.end;
76923
76924 var count = -1;
76925 dataSource.forEach(function (current, index, record) {
76926 if (!current.__hidden) {
76927 count += 1;
76928 if (count >= Math.max(start - THRESHOLD, 0) && count < end) {
76929 newDataSource.push(current);
76930 }
76931 }
76932 current.__rowIndex = index;
76933 });
76934
76935 if (!components.Body) {
76936 components.Body = _body2.default;
76937 }
76938 fixedHeader = true;
76939 }
76940
76941 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
76942 scrollToRow: scrollToRow,
76943 dataSource: newDataSource,
76944 entireDataSource: entireDataSource,
76945 components: components,
76946 fixedHeader: fixedHeader
76947 }));
76948 };
76949
76950 return VirtualTable;
76951 }(_react2.default.Component), _class.VirtualBody = _body2.default, _class.propTypes = (0, _extends3.default)({
76952 /**
76953 * 是否开启虚拟滚动
76954 */
76955 useVirtual: _propTypes2.default.bool,
76956 /**
76957 * 设置行高
76958 */
76959 rowHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.func]),
76960 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
76961 primaryKey: _propTypes2.default.oneOfType([_propTypes2.default.symbol, _propTypes2.default.string]),
76962 dataSource: _propTypes2.default.array,
76963 /**
76964 * 在内容区域滚动的时候触发的函数
76965 */
76966 onBodyScroll: _propTypes2.default.func
76967 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps, {
76968 primaryKey: 'id',
76969 rowHeight: noop,
76970 maxBodyHeight: 200,
76971 components: {},
76972 prefix: 'next-',
76973 onBodyScroll: noop
76974 }), _class.childContextTypes = {
76975 onVirtualScroll: _propTypes2.default.func,
76976 bodyHeight: _propTypes2.default.number,
76977 innerTop: _propTypes2.default.number,
76978 getBodyNode: _propTypes2.default.func,
76979 getTableInstanceForVirtual: _propTypes2.default.func,
76980 rowSelection: _propTypes2.default.object
76981 }, _temp);
76982 VirtualTable.displayName = 'VirtualTable';
76983
76984 (0, _util2.statics)(VirtualTable, BaseComponent);
76985 return (0, _reactLifecyclesCompat.polyfill)(VirtualTable);
76986}
76987module.exports = exports['default'];
76988
76989/***/ }),
76990/* 438 */
76991/***/ (function(module, exports, __webpack_require__) {
76992
76993"use strict";
76994
76995
76996exports.__esModule = true;
76997exports.default = undefined;
76998
76999var _extends2 = __webpack_require__(1);
77000
77001var _extends3 = _interopRequireDefault(_extends2);
77002
77003var _objectWithoutProperties2 = __webpack_require__(8);
77004
77005var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
77006
77007var _classCallCheck2 = __webpack_require__(2);
77008
77009var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
77010
77011var _possibleConstructorReturn2 = __webpack_require__(3);
77012
77013var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
77014
77015var _inherits2 = __webpack_require__(4);
77016
77017var _inherits3 = _interopRequireDefault(_inherits2);
77018
77019var _class, _temp2;
77020
77021var _react = __webpack_require__(0);
77022
77023var _react2 = _interopRequireDefault(_react);
77024
77025var _reactDom = __webpack_require__(12);
77026
77027var _propTypes = __webpack_require__(5);
77028
77029var _propTypes2 = _interopRequireDefault(_propTypes);
77030
77031var _body = __webpack_require__(63);
77032
77033var _body2 = _interopRequireDefault(_body);
77034
77035function _interopRequireDefault(obj) {
77036 return obj && obj.__esModule ? obj : { default: obj };
77037}
77038
77039/* eslint-disable react/prefer-stateless-function */
77040var VirtualBody = (_temp2 = _class = function (_React$Component) {
77041 (0, _inherits3.default)(VirtualBody, _React$Component);
77042
77043 function VirtualBody() {
77044 var _temp, _this, _ret;
77045
77046 (0, _classCallCheck3.default)(this, VirtualBody);
77047
77048 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
77049 args[_key] = arguments[_key];
77050 }
77051
77052 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.tableRef = function (table) {
77053 _this.tableNode = table;
77054 }, _this.virtualScrollRef = function (virtualScroll) {
77055 _this.virtualScrollNode = virtualScroll;
77056 }, _this.onScroll = function (current) {
77057 // for fixed
77058 _this.context.onFixedScrollSync(current);
77059 // for lock
77060 _this.context.onLockBodyScroll(current);
77061 // for virtual
77062 _this.context.onVirtualScroll();
77063 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
77064 }
77065
77066 VirtualBody.prototype.componentDidMount = function componentDidMount() {
77067 var bodyNode = (0, _reactDom.findDOMNode)(this);
77068 // // for fixed
77069 this.context.getNode('body', bodyNode);
77070 // for virtual
77071 this.context.getBodyNode(bodyNode, this.context.lockType);
77072 // for lock
77073 this.context.getLockNode('body', bodyNode, this.context.lockType);
77074 };
77075
77076 VirtualBody.prototype.render = function render() {
77077 var _props = this.props,
77078 prefix = _props.prefix,
77079 className = _props.className,
77080 colGroup = _props.colGroup,
77081 tableWidth = _props.tableWidth,
77082 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'colGroup', 'tableWidth']);
77083 var _context = this.context,
77084 maxBodyHeight = _context.maxBodyHeight,
77085 bodyHeight = _context.bodyHeight,
77086 innerTop = _context.innerTop;
77087
77088 var style = {
77089 width: tableWidth
77090 };
77091 var wrapperStyle = {
77092 position: 'relative'
77093 };
77094 // todo 2.0 ,这里最好自己画滚动条
77095 if (bodyHeight > maxBodyHeight) {
77096 wrapperStyle.height = bodyHeight;
77097 }
77098 return _react2.default.createElement('div', { style: { maxHeight: maxBodyHeight }, className: className, onScroll: this.onScroll }, _react2.default.createElement('div', { style: wrapperStyle, ref: this.virtualScrollRef }, _react2.default.createElement('div', {
77099 style: {
77100 position: 'relative',
77101 transform: 'translateY(' + innerTop + 'px)',
77102 willChange: 'transform'
77103 }
77104 }, _react2.default.createElement('table', { ref: this.tableRef, style: style }, colGroup, _react2.default.createElement(_body2.default, (0, _extends3.default)({}, others, { prefix: prefix }))))));
77105 };
77106
77107 return VirtualBody;
77108}(_react2.default.Component), _class.propTypes = {
77109 children: _propTypes2.default.any,
77110 prefix: _propTypes2.default.string,
77111 className: _propTypes2.default.string,
77112 colGroup: _propTypes2.default.any,
77113 tableWidth: _propTypes2.default.number
77114}, _class.contextTypes = {
77115 maxBodyHeight: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
77116 onBodyScroll: _propTypes2.default.func,
77117 onFixedScrollSync: _propTypes2.default.func,
77118 onVirtualScroll: _propTypes2.default.func,
77119 onLockBodyScroll: _propTypes2.default.func,
77120 bodyHeight: _propTypes2.default.number,
77121 innerTop: _propTypes2.default.number,
77122 getNode: _propTypes2.default.func,
77123 getBodyNode: _propTypes2.default.func,
77124 getLockNode: _propTypes2.default.func,
77125 lockType: _propTypes2.default.oneOf(['left', 'right'])
77126}, _temp2);
77127VirtualBody.displayName = 'VirtualBody';
77128exports.default = VirtualBody;
77129module.exports = exports['default'];
77130
77131/***/ }),
77132/* 439 */
77133/***/ (function(module, exports, __webpack_require__) {
77134
77135"use strict";
77136
77137
77138exports.__esModule = true;
77139
77140var _objectWithoutProperties2 = __webpack_require__(8);
77141
77142var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
77143
77144var _typeof2 = __webpack_require__(14);
77145
77146var _typeof3 = _interopRequireDefault(_typeof2);
77147
77148var _extends2 = __webpack_require__(1);
77149
77150var _extends3 = _interopRequireDefault(_extends2);
77151
77152var _classCallCheck2 = __webpack_require__(2);
77153
77154var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
77155
77156var _possibleConstructorReturn2 = __webpack_require__(3);
77157
77158var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
77159
77160var _inherits2 = __webpack_require__(4);
77161
77162var _inherits3 = _interopRequireDefault(_inherits2);
77163
77164exports.default = lock;
77165
77166var _react = __webpack_require__(0);
77167
77168var _react2 = _interopRequireDefault(_react);
77169
77170var _reactDom = __webpack_require__(12);
77171
77172var _propTypes = __webpack_require__(5);
77173
77174var _propTypes2 = _interopRequireDefault(_propTypes);
77175
77176var _classnames2 = __webpack_require__(7);
77177
77178var _classnames3 = _interopRequireDefault(_classnames2);
77179
77180var _shallowElementEquals = __webpack_require__(102);
77181
77182var _shallowElementEquals2 = _interopRequireDefault(_shallowElementEquals);
77183
77184var _util = __webpack_require__(6);
77185
77186var _row = __webpack_require__(104);
77187
77188var _row2 = _interopRequireDefault(_row);
77189
77190var _body = __webpack_require__(188);
77191
77192var _body2 = _interopRequireDefault(_body);
77193
77194var _header = __webpack_require__(189);
77195
77196var _header2 = _interopRequireDefault(_header);
77197
77198var _wrapper = __webpack_require__(67);
77199
77200var _wrapper2 = _interopRequireDefault(_wrapper);
77201
77202var _util2 = __webpack_require__(21);
77203
77204function _interopRequireDefault(obj) {
77205 return obj && obj.__esModule ? obj : { default: obj };
77206}
77207
77208var ieVersion = _util.env.ieVersion;
77209function lock(BaseComponent) {
77210 var _class, _temp;
77211
77212 /** Table */
77213 var LockTable = (_temp = _class = function (_React$Component) {
77214 (0, _inherits3.default)(LockTable, _React$Component);
77215
77216 function LockTable(props, context) {
77217 (0, _classCallCheck3.default)(this, LockTable);
77218
77219 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
77220
77221 _this.state = {};
77222
77223 _this.getTableInstance = function (type, instance) {
77224 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77225 _this['table' + type + 'Inc'] = instance;
77226 };
77227
77228 _this.getNode = function (type, node, lockType) {
77229 lockType = lockType ? lockType.charAt(0).toUpperCase() + lockType.substr(1) : '';
77230 _this['' + type + lockType + 'Node'] = node;
77231 if (type === 'header' && !_this.innerHeaderNode && !lockType) {
77232 _this.innerHeaderNode = _this.headerNode.querySelector('div');
77233 }
77234 };
77235
77236 _this.onRowMouseEnter = function (record, index) {
77237 if (_this.isLock()) {
77238 var row = _this.getRowNode(index);
77239 var leftRow = _this.getRowNode(index, 'left');
77240 var rightRow = _this.getRowNode(index, 'right');
77241 [row, leftRow, rightRow].forEach(function (row) {
77242 row && _util.dom.addClass(row, 'hovered');
77243 });
77244 }
77245 };
77246
77247 _this.onRowMouseLeave = function (record, index) {
77248 if (_this.isLock()) {
77249 var row = _this.getRowNode(index);
77250 var leftRow = _this.getRowNode(index, 'left');
77251 var rightRow = _this.getRowNode(index, 'right');
77252 [row, leftRow, rightRow].forEach(function (row) {
77253 row && _util.dom.removeClass(row, 'hovered');
77254 });
77255 }
77256 };
77257
77258 _this.onLockBodyScrollTop = function (event) {
77259 // set scroll top for lock columns & main body
77260 var target = event.target;
77261 if (event.currentTarget !== target) {
77262 return;
77263 }
77264 var distScrollTop = target.scrollTop;
77265
77266 if (_this.isLock() && distScrollTop !== _this.lastScrollTop) {
77267 var lockRightBody = _this.bodyRightNode,
77268 lockLeftBody = _this.bodyLeftNode,
77269 bodyNode = _this.bodyNode;
77270
77271 var arr = [lockLeftBody, lockRightBody, bodyNode];
77272
77273 arr.forEach(function (node) {
77274 if (node && node.scrollTop !== distScrollTop) {
77275 node.scrollTop = distScrollTop;
77276 }
77277 });
77278
77279 _this.lastScrollTop = distScrollTop;
77280 }
77281 };
77282
77283 _this.onLockBodyScrollLeft = function () {
77284 // add shadow class for lock columns
77285 if (_this.isLock()) {
77286 var rtl = _this.props.rtl;
77287
77288 var lockRightTable = rtl ? _this.getWrapperNode('left') : _this.getWrapperNode('right'),
77289 lockLeftTable = rtl ? _this.getWrapperNode('right') : _this.getWrapperNode('left'),
77290 shadowClassName = 'shadow';
77291
77292 var x = _this.bodyNode.scrollLeft;
77293
77294 if (x === 0) {
77295 lockLeftTable && _util.dom.removeClass(lockLeftTable, shadowClassName);
77296 lockRightTable && _util.dom.addClass(lockRightTable, shadowClassName);
77297 } else if (x === _this.bodyNode.scrollWidth - _this.bodyNode.clientWidth) {
77298 lockLeftTable && _util.dom.addClass(lockLeftTable, shadowClassName);
77299 lockRightTable && _util.dom.removeClass(lockRightTable, shadowClassName);
77300 } else {
77301 lockLeftTable && _util.dom.addClass(lockLeftTable, shadowClassName);
77302 lockRightTable && _util.dom.addClass(lockRightTable, shadowClassName);
77303 }
77304 }
77305 };
77306
77307 _this.onLockBodyScroll = function (event) {
77308 _this.onLockBodyScrollTop(event);
77309 _this.onLockBodyScrollLeft();
77310 };
77311
77312 _this.adjustSize = function () {
77313 if (!_this.adjustIfTableNotNeedLock()) {
77314 _this.adjustHeaderSize();
77315 _this.adjustBodySize();
77316 _this.adjustRowHeight();
77317 _this.onLockBodyScrollLeft();
77318 }
77319 };
77320
77321 _this.getFlatenChildrenLength = function () {
77322 var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
77323
77324 var loop = function loop(arr) {
77325 var newArray = [];
77326 arr.forEach(function (child) {
77327 if (child && child.children) {
77328 newArray.push.apply(newArray, loop(child.children));
77329 } else {
77330 newArray.push(child);
77331 }
77332 });
77333 return newArray;
77334 };
77335
77336 return loop(children).length;
77337 };
77338
77339 _this.saveLockLeftRef = function (ref) {
77340 _this.lockLeftEl = ref;
77341 };
77342
77343 _this.saveLockRightRef = function (ref) {
77344 _this.lockRightEl = ref;
77345 };
77346
77347 _this.lockLeftChildren = [];
77348 _this.lockRightChildren = [];
77349 return _this;
77350 }
77351
77352 LockTable.prototype.getChildContext = function getChildContext() {
77353 return {
77354 getTableInstance: this.getTableInstance,
77355 getLockNode: this.getNode,
77356 onLockBodyScroll: this.onLockBodyScroll,
77357 onRowMouseEnter: this.onRowMouseEnter,
77358 onRowMouseLeave: this.onRowMouseLeave
77359 };
77360 };
77361
77362 LockTable.prototype.componentDidMount = function componentDidMount() {
77363 _util.events.on(window, 'resize', this.adjustSize);
77364
77365 this.scroll();
77366 this.adjustSize();
77367 this.forceUpdate();
77368 };
77369
77370 LockTable.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
77371 if (nextProps.pure) {
77372 var isEqual = (0, _shallowElementEquals2.default)(nextProps, this.props);
77373 return !(isEqual && _util.obj.shallowEqual(nextContext, this.context));
77374 }
77375
77376 return true;
77377 };
77378
77379 LockTable.prototype.componentDidUpdate = function componentDidUpdate() {
77380 this.adjustSize();
77381 this._isLock = false;
77382 };
77383
77384 LockTable.prototype.componentWillUnmount = function componentWillUnmount() {
77385 _util.events.off(window, 'resize', this.adjustSize);
77386 };
77387
77388 LockTable.prototype.normalizeChildrenState = function normalizeChildrenState(props) {
77389 var columns = this.normalizeChildren(props);
77390 var splitChildren = this.splitFromNormalizeChildren(columns);
77391 var lockLeftChildren = splitChildren.lockLeftChildren,
77392 lockRightChildren = splitChildren.lockRightChildren;
77393
77394 return {
77395 lockLeftChildren: lockLeftChildren,
77396 lockRightChildren: lockRightChildren,
77397 children: this.mergeFromSplitLockChildren(splitChildren)
77398 };
77399 };
77400
77401 // 将React结构化数据提取props转换成数组
77402
77403
77404 LockTable.prototype.normalizeChildren = function normalizeChildren(props) {
77405 var children = props.children,
77406 columns = props.columns;
77407
77408 var isLock = false,
77409 ret = void 0;
77410 var checkLock = function checkLock(col) {
77411 if ([true, 'left', 'right'].indexOf(col.lock) > -1) {
77412 if (!('width' in col)) {
77413 _util.log.warning('Should config width for lock column named [ ' + col.dataIndex + ' ].');
77414 }
77415 isLock = true;
77416 }
77417 };
77418 if (columns && !children) {
77419 ret = columns;
77420
77421 var getColumns = function getColumns(cols) {
77422 cols.forEach(function () {
77423 var col = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
77424
77425 checkLock(col);
77426
77427 if (col.children) {
77428 getColumns(col.children);
77429 }
77430 });
77431 };
77432
77433 getColumns(columns);
77434 } else {
77435 var getChildren = function getChildren(children) {
77436 var ret = [];
77437 _react.Children.forEach(children, function (child) {
77438 if (child) {
77439 var _props = (0, _extends3.default)({}, child.props);
77440 checkLock(_props);
77441 ret.push(_props);
77442 if (child.props.children) {
77443 _props.children = getChildren(child.props.children);
77444 }
77445 }
77446 });
77447 return ret;
77448 };
77449
77450 ret = getChildren(children);
77451 }
77452
77453 ret.forEach(function (child) {
77454 // 为自定义的列特殊处理
77455 if (child.__normalized && isLock) {
77456 // users can set lock type for column selection now, so its origin lock type comes first
77457 child.lock = child.lock || 'left';
77458 delete child.__normalized;
77459 }
77460 });
77461 this._isLock = isLock;
77462 return ret;
77463 };
77464
77465 //从数组中分离出lock的列和正常的列
77466
77467
77468 LockTable.prototype.splitFromNormalizeChildren = function splitFromNormalizeChildren(children) {
77469 var originChildren = deepCopy(children);
77470 var lockLeftChildren = deepCopy(children);
77471 var lockRightChildren = deepCopy(children);
77472 var loop = function loop(lockChildren, condition) {
77473 var ret = [];
77474 lockChildren.forEach(function (child) {
77475 if (child.children) {
77476 var res = loop(child.children, condition);
77477 if (!res.length) {
77478 ret.push(child);
77479 }
77480 } else {
77481 var order = condition(child);
77482 if (!order) {
77483 ret.push(child);
77484 }
77485 }
77486 });
77487 ret.forEach(function (res) {
77488 var index = lockChildren.indexOf(res);
77489 lockChildren.splice(index, 1);
77490 });
77491 return lockChildren;
77492 };
77493 loop(lockLeftChildren, function (child) {
77494 if (child.lock === true || child.lock === 'left') {
77495 return 'left';
77496 }
77497 });
77498 loop(lockRightChildren, function (child) {
77499 if (child.lock === 'right') {
77500 return 'right';
77501 }
77502 });
77503 loop(originChildren, function (child) {
77504 return child.lock !== true && child.lock !== 'left' && child.lock !== 'right';
77505 });
77506 return {
77507 lockLeftChildren: lockLeftChildren,
77508 lockRightChildren: lockRightChildren,
77509 originChildren: originChildren
77510 };
77511 };
77512
77513 //将左侧的锁列树和中间的普通树及右侧的锁列树进行合并
77514
77515
77516 LockTable.prototype.mergeFromSplitLockChildren = function mergeFromSplitLockChildren(splitChildren) {
77517 var lockLeftChildren = splitChildren.lockLeftChildren,
77518 lockRightChildren = splitChildren.lockRightChildren;
77519 var originChildren = splitChildren.originChildren;
77520
77521 Array.prototype.unshift.apply(originChildren, lockLeftChildren);
77522 originChildren = originChildren.concat(lockRightChildren);
77523 return originChildren;
77524 };
77525
77526 LockTable.prototype.scroll = function scroll() {
77527 var _props2 = this.props,
77528 _props2$scrollToCol = _props2.scrollToCol,
77529 scrollToCol = _props2$scrollToCol === undefined ? 0 : _props2$scrollToCol,
77530 _props2$scrollToRow = _props2.scrollToRow,
77531 scrollToRow = _props2$scrollToRow === undefined ? 0 : _props2$scrollToRow;
77532
77533 if (!scrollToCol && !scrollToRow || !this.bodyNode) {
77534 return;
77535 }
77536 var colCellNode = this.getCellNode(0, scrollToCol);
77537 var rowCellNode = this.getCellNode(scrollToRow, 0);
77538 var bodyNodeOffset = this.bodyNode.getBoundingClientRect() || {};
77539 if (colCellNode) {
77540 var cellNodeoffset = colCellNode.getBoundingClientRect();
77541 var scrollLeft = cellNodeoffset.left - bodyNodeOffset.left;
77542 this.bodyNode.scrollLeft = scrollLeft;
77543 }
77544 if (rowCellNode) {
77545 var _cellNodeoffset = rowCellNode.getBoundingClientRect();
77546 var scrollTop = _cellNodeoffset.top - bodyNodeOffset.top;
77547 this.bodyNode.scrollTop = scrollTop;
77548 }
77549 };
77550
77551 // Table处理过后真实的lock状态
77552 LockTable.prototype.isLock = function isLock() {
77553 return this.lockLeftChildren.length || this.lockRightChildren.length;
77554 };
77555
77556 // 用户设置的lock状态
77557
77558
77559 LockTable.prototype.isOriginLock = function isOriginLock() {
77560 return this._isLock;
77561 };
77562
77563 LockTable.prototype.removeLockTable = function removeLockTable() {
77564 var lockLeftLen = this.lockLeftChildren.length;
77565 var lockRightLen = this.lockRightChildren.length;
77566
77567 if (lockLeftLen) {
77568 this._notNeedAdjustLockLeft = true;
77569 }
77570 if (lockRightLen) {
77571 this._notNeedAdjustLockRight = true;
77572 }
77573 if (lockRightLen || lockLeftLen) {
77574 this.forceUpdate();
77575 return true;
77576 }
77577 };
77578
77579 LockTable.prototype.adjustIfTableNotNeedLock = function adjustIfTableNotNeedLock() {
77580 var _this2 = this;
77581
77582 if (this.isOriginLock()) {
77583 var widthObj = this.tableInc.flatChildren.map(function (item, index) {
77584 var cell = _this2.getCellNode(0, index) || {};
77585 var headerCell = _this2.getHeaderCellNode(0, index) || {};
77586
77587 // fix https://codesandbox.io/s/fusion-next-template-d9bu8
77588 // close #1832
77589 try {
77590 return {
77591 cellWidths: parseFloat(getComputedStyle(cell).width) || 0,
77592 headerWidths: parseFloat(getComputedStyle(headerCell).width) || 0
77593 };
77594 } catch (error) {
77595 return {
77596 cellWidths: cell.clientWidth || 0,
77597 headerWidths: headerCell.clientWidth || 0
77598 };
77599 }
77600 }).reduce(function (a, b) {
77601 return {
77602 cellWidths: a.cellWidths + b.cellWidths,
77603 headerWidths: a.headerWidths + b.headerWidths
77604 };
77605 }, {
77606 cellWidths: 0,
77607 headerWidths: 0
77608 });
77609
77610 var node = void 0,
77611 width = void 0;
77612
77613 try {
77614 node = (0, _reactDom.findDOMNode)(this);
77615 width = node.clientWidth;
77616 } catch (err) {
77617 node = null;
77618 width = 0;
77619 }
77620
77621 // if the table doesn't exist, there is no need to adjust
77622 if (width === 0) {
77623 return true;
77624 }
77625
77626 var configWidths = parseInt(widthObj.cellWidths) || parseInt(widthObj.headerWidths);
77627
77628 if (configWidths <= width && configWidths > 0) {
77629 this.removeLockTable();
77630 } else if (this._notNeedAdjustLockLeft || this._notNeedAdjustLockRight) {
77631 this._notNeedAdjustLockLeft = this._notNeedAdjustLockRight = false;
77632 this.forceUpdate();
77633 } else {
77634 this._notNeedAdjustLockLeft = this._notNeedAdjustLockRight = false;
77635 return false;
77636 }
77637 }
77638
77639 return false;
77640 };
77641
77642 LockTable.prototype.adjustBodySize = function adjustBodySize() {
77643 var _style;
77644
77645 var _props3 = this.props,
77646 rtl = _props3.rtl,
77647 hasHeader = _props3.hasHeader;
77648
77649 var header = this.headerNode;
77650 var paddingName = rtl ? 'paddingLeft' : 'paddingRight';
77651 var marginName = rtl ? 'marginLeft' : 'marginRight';
77652 var scrollBarSize = +_util.dom.scrollbar().width || 0;
77653 var style = (_style = {}, _style[paddingName] = scrollBarSize, _style[marginName] = scrollBarSize, _style);
77654 var body = this.bodyNode,
77655 hasVerScroll = body && body.scrollHeight > body.clientHeight;
77656
77657 if (this.isLock()) {
77658 var lockLeftBody = this.bodyLeftNode,
77659 lockRightBody = this.bodyRightNode,
77660 lockRightBodyWrapper = this.getWrapperNode('right'),
77661 bodyHeight = body.offsetHeight,
77662 width = hasVerScroll ? scrollBarSize : 0,
77663 lockBodyHeight = bodyHeight - scrollBarSize;
77664
77665 if (!hasVerScroll) {
77666 style[paddingName] = 0;
77667 style[marginName] = 0;
77668 }
77669 if (+scrollBarSize) {
77670 style.marginBottom = -scrollBarSize;
77671 style.paddingBottom = scrollBarSize;
77672 } else {
77673 style.marginBottom = -20;
77674 style.paddingBottom = 20;
77675 }
77676
77677 var lockStyle = {
77678 'max-height': lockBodyHeight
77679 };
77680 if (!hasHeader && !+scrollBarSize) {
77681 lockStyle[marginName] = 0;
77682 }
77683 if (+scrollBarSize) {
77684 lockStyle[marginName] = -scrollBarSize;
77685 }
77686 lockLeftBody && _util.dom.setStyle(lockLeftBody, lockStyle);
77687 lockRightBody && _util.dom.setStyle(lockRightBody, lockStyle);
77688 lockRightBodyWrapper && +scrollBarSize && _util.dom.setStyle(lockRightBodyWrapper, rtl ? 'left' : 'right', width + 'px');
77689 } else {
77690 style.marginBottom = -scrollBarSize;
77691 style.paddingBottom = scrollBarSize;
77692 style[marginName] = 0;
77693 if (!hasVerScroll) {
77694 style[paddingName] = 0;
77695 }
77696 }
77697
77698 header && _util.dom.setStyle(header, style);
77699 };
77700
77701 LockTable.prototype.adjustHeaderSize = function adjustHeaderSize() {
77702 var _this3 = this;
77703
77704 if (this.isLock()) {
77705 this.tableInc.groupChildren.forEach(function (child, index) {
77706 var lastIndex = _this3.tableInc.groupChildren[index].length - 1;
77707 var headerRightRow = _this3.getHeaderCellNode(index, lastIndex),
77708 headerLeftRow = _this3.getHeaderCellNode(index, 0),
77709 headerRightLockRow = _this3.getHeaderCellNode(index, 0, 'right'),
77710 headerLeftLockRow = _this3.getHeaderCellNode(index, 0, 'left');
77711
77712 if (headerRightRow && headerRightLockRow) {
77713 var maxRightRowHeight = headerRightRow.offsetHeight;
77714
77715 _util.dom.setStyle(headerRightLockRow, 'height', maxRightRowHeight);
77716
77717 setTimeout(function () {
77718 var affixRef = _this3.tableRightInc.affixRef;
77719 // if rendered then update postion of affix
77720 return affixRef && affixRef.getInstance() && affixRef.getInstance().updatePosition();
77721 });
77722 }
77723
77724 if (headerLeftRow && headerLeftLockRow) {
77725 var maxLeftRowHeight = headerLeftRow.offsetHeight;
77726
77727 _util.dom.setStyle(headerLeftLockRow, 'height', maxLeftRowHeight);
77728
77729 setTimeout(function () {
77730 var affixRef = _this3.tableLeftInc.affixRef;
77731 // if rendered then update postion of affix
77732 return affixRef && affixRef.getInstance() && affixRef.getInstance().updatePosition();
77733 });
77734 }
77735 });
77736 }
77737 };
77738
77739 LockTable.prototype.adjustRowHeight = function adjustRowHeight() {
77740 var _this4 = this;
77741
77742 if (this.isLock()) {
77743 this.tableInc.props.dataSource.forEach(function (item, index) {
77744 // record may be a string
77745 var rowIndex = '' + ((typeof item === 'undefined' ? 'undefined' : (0, _typeof3.default)(item)) === 'object' && '__rowIndex' in item ? item.__rowIndex : index) + (item.__expanded ? '_expanded' : '');
77746
77747 // 同步左侧的锁列
77748 _this4.setRowHeight(rowIndex, 'left');
77749 // 同步右侧的锁列
77750 _this4.setRowHeight(rowIndex, 'right');
77751 });
77752 }
77753 };
77754
77755 LockTable.prototype.setRowHeight = function setRowHeight(rowIndex, dir) {
77756 var lockRow = this.getRowNode(rowIndex, dir),
77757 row = this.getRowNode(rowIndex),
77758 rowHeight = (ieVersion ? row && row.offsetHeight : row && parseFloat(getComputedStyle(row).height)) || 'auto',
77759 lockHeight = (ieVersion ? lockRow && lockRow.offsetHeight : lockRow && parseFloat(getComputedStyle(lockRow).height)) || 'auto';
77760
77761 if (lockRow && rowHeight !== lockHeight) {
77762 _util.dom.setStyle(lockRow, 'height', rowHeight);
77763 }
77764 };
77765
77766 LockTable.prototype.getWrapperNode = function getWrapperNode(type) {
77767 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77768 try {
77769 // in case of finding an unmounted component due to cached data
77770 // need to clear refs of table when dataSource Changed
77771 // use try catch for temporary
77772 return (0, _reactDom.findDOMNode)(this['lock' + type + 'El']);
77773 } catch (error) {
77774 return null;
77775 }
77776 };
77777
77778 // remove this in next major version, keep this for temperary incase of using it
77779 // getFirstNormalCellNode(index) {
77780 // let i = 0;
77781 // let row;
77782 // do {
77783 // row = this.getCellNode(index, i);
77784 // i++;
77785 // } while (
77786 // (!row || (row && row.rowSpan && row.rowSpan > 1)) &&
77787 // this.tableInc.flatChildren.length > i
77788 // );
77789
77790 // return row;
77791 // }
77792
77793 LockTable.prototype.getRowNode = function getRowNode(index, type) {
77794 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77795 var table = this['table' + type + 'Inc'];
77796
77797 try {
77798 // in case of finding an unmounted component due to cached data
77799 // need to clear refs of table when dataSource Changed
77800 // use try catch for temporary
77801 return (0, _reactDom.findDOMNode)(table.getRowRef(index));
77802 } catch (error) {
77803 return null;
77804 }
77805 };
77806
77807 LockTable.prototype.getHeaderCellNode = function getHeaderCellNode(index, i, type) {
77808 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77809 var table = this['table' + type + 'Inc'];
77810
77811 try {
77812 // in case of finding an unmounted component due to cached data
77813 // need to clear refs of table when dataSource Changed
77814 // use try catch for temporary
77815 return (0, _reactDom.findDOMNode)(table.getHeaderCellRef(index, i));
77816 } catch (error) {
77817 return null;
77818 }
77819 };
77820
77821 LockTable.prototype.getCellNode = function getCellNode(index, i, type) {
77822 type = type ? type.charAt(0).toUpperCase() + type.substr(1) : '';
77823 var table = this['table' + type + 'Inc'];
77824
77825 try {
77826 // in case of finding an unmounted component due to cached data
77827 // need to clear refs of table when dataSource Changed
77828 // use try catch for temporary
77829 return (0, _reactDom.findDOMNode)(table.getCellRef(index, i));
77830 } catch (error) {
77831 return null;
77832 }
77833 };
77834
77835 LockTable.prototype.render = function render() {
77836 /* eslint-disable no-unused-vars, prefer-const */
77837 var _props4 = this.props,
77838 children = _props4.children,
77839 columns = _props4.columns,
77840 prefix = _props4.prefix,
77841 components = _props4.components,
77842 className = _props4.className,
77843 dataSource = _props4.dataSource,
77844 tableWidth = _props4.tableWidth,
77845 others = (0, _objectWithoutProperties3.default)(_props4, ['children', 'columns', 'prefix', 'components', 'className', 'dataSource', 'tableWidth']);
77846
77847 var _normalizeChildrenSta = this.normalizeChildrenState(this.props),
77848 lockLeftChildren = _normalizeChildrenSta.lockLeftChildren,
77849 lockRightChildren = _normalizeChildrenSta.lockRightChildren,
77850 normalizedChildren = _normalizeChildrenSta.children;
77851
77852 var leftLen = this.getFlatenChildrenLength(lockLeftChildren);
77853 var rightLen = this.getFlatenChildrenLength(lockRightChildren);
77854 var originLen = this.getFlatenChildrenLength(normalizedChildren);
77855
77856 var lengths = {
77857 left: leftLen,
77858 right: rightLen,
77859 origin: originLen
77860 };
77861 if (this._notNeedAdjustLockLeft) {
77862 lockLeftChildren = [];
77863 }
77864 if (this._notNeedAdjustLockRight) {
77865 lockRightChildren = [];
77866 }
77867 this.lockLeftChildren = lockLeftChildren;
77868 this.lockRightChildren = lockRightChildren;
77869
77870 if (this.isOriginLock()) {
77871 var _classnames;
77872
77873 components = (0, _extends3.default)({}, components);
77874 components.Body = components.Body || _body2.default;
77875 components.Header = components.Header || _header2.default;
77876 components.Wrapper = components.Wrapper || _wrapper2.default;
77877 components.Row = components.Row || _row2.default;
77878 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-lock'] = true, _classnames[prefix + 'table-wrap-empty'] = !dataSource.length, _classnames[className] = className, _classnames));
77879 var content = [_react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
77880 dataSource: dataSource,
77881 key: 'lock-left',
77882 columns: lockLeftChildren,
77883 className: prefix + 'table-lock-left',
77884 lengths: lengths,
77885 prefix: prefix,
77886 lockType: 'left',
77887 components: components,
77888 ref: this.saveLockLeftRef,
77889 loading: false,
77890 'aria-hidden': true
77891 })), _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
77892 dataSource: dataSource,
77893 key: 'lock-right',
77894 columns: lockRightChildren,
77895 className: prefix + 'table-lock-right',
77896 lengths: lengths,
77897 prefix: prefix,
77898 lockType: 'right',
77899 components: components,
77900 ref: this.saveLockRightRef,
77901 loading: false,
77902 'aria-hidden': true
77903 }))];
77904 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
77905 tableWidth: tableWidth,
77906 dataSource: dataSource,
77907 columns: normalizedChildren,
77908 prefix: prefix,
77909 lengths: lengths,
77910 wrapperContent: content,
77911 components: components,
77912 className: className
77913 }));
77914 }
77915 return _react2.default.createElement(BaseComponent, this.props);
77916 };
77917
77918 return LockTable;
77919 }(_react2.default.Component), _class.LockRow = _row2.default, _class.LockBody = _body2.default, _class.LockHeader = _header2.default, _class.propTypes = (0, _extends3.default)({
77920 scrollToCol: _propTypes2.default.number,
77921 /**
77922 * 指定滚动到某一行,仅在`useVirtual`的时候生效
77923 */
77924 scrollToRow: _propTypes2.default.number
77925 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps), _class.childContextTypes = {
77926 getTableInstance: _propTypes2.default.func,
77927 getLockNode: _propTypes2.default.func,
77928 onLockBodyScroll: _propTypes2.default.func,
77929 onRowMouseEnter: _propTypes2.default.func,
77930 onRowMouseLeave: _propTypes2.default.func
77931 }, _temp);
77932 LockTable.displayName = 'LockTable';
77933
77934 (0, _util2.statics)(LockTable, BaseComponent);
77935 return LockTable;
77936}
77937
77938function deepCopy(arr) {
77939 var copy = function copy(arr) {
77940 return arr.map(function (item) {
77941 var newItem = (0, _extends3.default)({}, item);
77942 if (item.children) {
77943 item.children = copy(item.children);
77944 }
77945 return newItem;
77946 });
77947 };
77948 return copy(arr);
77949}
77950module.exports = exports['default'];
77951
77952/***/ }),
77953/* 440 */
77954/***/ (function(module, exports, __webpack_require__) {
77955
77956"use strict";
77957
77958
77959exports.__esModule = true;
77960
77961var _objectWithoutProperties2 = __webpack_require__(8);
77962
77963var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
77964
77965var _extends2 = __webpack_require__(1);
77966
77967var _extends3 = _interopRequireDefault(_extends2);
77968
77969var _classCallCheck2 = __webpack_require__(2);
77970
77971var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
77972
77973var _possibleConstructorReturn2 = __webpack_require__(3);
77974
77975var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
77976
77977var _inherits2 = __webpack_require__(4);
77978
77979var _inherits3 = _interopRequireDefault(_inherits2);
77980
77981exports.default = stickyLock;
77982
77983var _react = __webpack_require__(0);
77984
77985var _react2 = _interopRequireDefault(_react);
77986
77987var _reactDom = __webpack_require__(12);
77988
77989var _propTypes = __webpack_require__(5);
77990
77991var _propTypes2 = _interopRequireDefault(_propTypes);
77992
77993var _classnames2 = __webpack_require__(7);
77994
77995var _classnames3 = _interopRequireDefault(_classnames2);
77996
77997var _shallowElementEquals = __webpack_require__(102);
77998
77999var _shallowElementEquals2 = _interopRequireDefault(_shallowElementEquals);
78000
78001var _util = __webpack_require__(6);
78002
78003var _row = __webpack_require__(104);
78004
78005var _row2 = _interopRequireDefault(_row);
78006
78007var _body = __webpack_require__(188);
78008
78009var _body2 = _interopRequireDefault(_body);
78010
78011var _header = __webpack_require__(189);
78012
78013var _header2 = _interopRequireDefault(_header);
78014
78015var _wrapper = __webpack_require__(67);
78016
78017var _wrapper2 = _interopRequireDefault(_wrapper);
78018
78019var _util2 = __webpack_require__(21);
78020
78021function _interopRequireDefault(obj) {
78022 return obj && obj.__esModule ? obj : { default: obj };
78023}
78024
78025function stickyLock(BaseComponent) {
78026 var _class, _temp;
78027
78028 /** Table */
78029 var LockTable = (_temp = _class = function (_React$Component) {
78030 (0, _inherits3.default)(LockTable, _React$Component);
78031
78032 function LockTable(props, context) {
78033 (0, _classCallCheck3.default)(this, LockTable);
78034
78035 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
78036
78037 _this.state = {};
78038
78039 _this.updateOffsetArr = function () {
78040 var _ref = _this.splitChildren || {},
78041 lockLeftChildren = _ref.lockLeftChildren,
78042 lockRightChildren = _ref.lockRightChildren,
78043 originChildren = _ref.originChildren;
78044
78045 var leftLen = _this.getFlatenChildren(lockLeftChildren).length;
78046 var rightLen = _this.getFlatenChildren(lockRightChildren).length;
78047 var totalLen = leftLen + rightLen + _this.getFlatenChildren(originChildren).length;
78048
78049 var hasLockLeft = leftLen > 0;
78050 var hasLockRight = rightLen > 0;
78051
78052 var leftOffsetArr = _this.getStickyWidth(lockLeftChildren, 'left', totalLen);
78053 var rightOffsetArr = _this.getStickyWidth(lockRightChildren, 'right', totalLen);
78054
78055 var state = {};
78056
78057 if ('' + leftOffsetArr !== '' + _this.state.leftOffsetArr) {
78058 state.leftOffsetArr = leftOffsetArr;
78059 }
78060
78061 if ('' + rightOffsetArr !== '' + _this.state.rightOffsetArr) {
78062 state.rightOffsetArr = rightOffsetArr;
78063 }
78064
78065 if (hasLockLeft !== _this.state.hasLockLeft) {
78066 state.hasLockLeft = hasLockLeft;
78067 }
78068
78069 if (hasLockRight !== _this.state.hasLockRight) {
78070 state.hasLockRight = hasLockRight;
78071 }
78072
78073 if (Object.keys(state).length > 0) {
78074 _this.setState(state);
78075 }
78076 };
78077
78078 _this.onLockBodyScroll = function (e, forceSet) {
78079 var _ref2 = e.currentTarget || {},
78080 scrollLeft = _ref2.scrollLeft,
78081 scrollWidth = _ref2.scrollWidth,
78082 clientWidth = _ref2.clientWidth;
78083
78084 var pingRight = _this.pingRight,
78085 pingLeft = _this.pingLeft;
78086
78087 var pingLeftNext = scrollLeft > 0 && _this.state.hasLockLeft;
78088 var pingRightNext = scrollLeft < scrollWidth - clientWidth && _this.state.hasLockRight;
78089
78090 if (forceSet || pingLeft !== pingLeftNext || pingRight !== pingRightNext) {
78091 var prefix = _this.props.prefix;
78092
78093 var table = _this.getTableNode();
78094
78095 _this.pingLeft = pingLeftNext;
78096 _this.pingRight = pingRightNext;
78097
78098 var leftFunc = pingLeftNext ? 'addClass' : 'removeClass';
78099 _util.dom[leftFunc](table, prefix + 'table-ping-left');
78100 var rightFunc = pingRightNext ? 'addClass' : 'removeClass';
78101 _util.dom[rightFunc](table, prefix + 'table-ping-right');
78102 }
78103 };
78104
78105 _this.getStickyWidth = function (lockChildren, dir, totalLen) {
78106 var _this$props = _this.props,
78107 dataSource = _this$props.dataSource,
78108 scrollToRow = _this$props.scrollToRow;
78109
78110 var offsetArr = [];
78111 var flatenChildren = _this.getFlatenChildren(lockChildren);
78112 var len = flatenChildren.length;
78113
78114 flatenChildren.reduce(function (ret, col, index) {
78115 var tag = dir === 'left' ? index : len - 1 - index;
78116 var tagNext = dir === 'left' ? tag - 1 : tag + 1;
78117 var nodeToGetWidth = dir === 'left' ? tag - 1 : totalLen - index;
78118
78119 if (dir === 'left' && tag === 0) {
78120 ret[0] = 0;
78121 return ret;
78122 } else if (dir === 'right' && tag === len - 1) {
78123 ret[tag] = 0;
78124 return ret;
78125 }
78126
78127 // header with no dataSource
78128 var isEmpty = !(dataSource && dataSource.length > 0);
78129 // no header
78130 var node = isEmpty ? _this.getHeaderCellNode(0, nodeToGetWidth) : _this.getCellNode(scrollToRow || dataSource[0] && dataSource[0].__rowIndex || 0, nodeToGetWidth);
78131 var colWidth = node && parseFloat(getComputedStyle(node).width) || 0;
78132
78133 ret[tag] = (ret[tagNext] || 0) + colWidth;
78134 return ret;
78135 }, offsetArr);
78136
78137 return offsetArr;
78138 };
78139
78140 _this.getTableInstance = function (type, instance) {
78141 type = '';
78142 _this['table' + type + 'Inc'] = instance;
78143 };
78144
78145 _this.getNode = function (type, node) {
78146 _this[type + 'Node'] = node;
78147 };
78148
78149 _this.getFlatenChildren = function () {
78150 var children = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
78151
78152 var loop = function loop(arr) {
78153 var newArray = [];
78154 arr.forEach(function (child) {
78155 if (child.children) {
78156 newArray.push.apply(newArray, loop(child.children));
78157 } else {
78158 newArray.push(child);
78159 }
78160 });
78161 return newArray;
78162 };
78163
78164 return loop(children);
78165 };
78166
78167 _this.state = {
78168 hasLockLeft: true,
78169 hasLockRight: true
78170 };
78171
78172 _this.pingLeft = false;
78173 _this.pingRight = false;
78174 return _this;
78175 }
78176
78177 LockTable.prototype.getChildContext = function getChildContext() {
78178 return {
78179 getTableInstance: this.getTableInstance,
78180 getLockNode: this.getNode,
78181 onLockBodyScroll: this.onLockBodyScroll
78182 };
78183 };
78184
78185 LockTable.prototype.componentDidMount = function componentDidMount() {
78186 var dataSource = this.props.dataSource;
78187
78188 var isEmpty = !(dataSource && dataSource.length > 0);
78189
78190 this.updateOffsetArr();
78191 this.onLockBodyScroll(isEmpty ? { currentTarget: this.headerNode } : { currentTarget: this.bodyNode });
78192 this.forceUpdate();
78193
78194 _util.events.on(window, 'resize', this.updateOffsetArr);
78195 };
78196
78197 LockTable.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps, nextState, nextContext) {
78198 if (nextProps.pure) {
78199 var isEqual = (0, _shallowElementEquals2.default)(nextProps, this.props);
78200 return !(isEqual && _util.obj.shallowEqual(nextContext, this.context));
78201 }
78202
78203 return true;
78204 };
78205
78206 LockTable.prototype.componentDidUpdate = function componentDidUpdate() {
78207 this.updateOffsetArr();
78208 this.onLockBodyScroll(this.bodyNode ? { currentTarget: this.bodyNode } : { currentTarget: this.headerNode }, true);
78209 };
78210
78211 LockTable.prototype.componentWillUnmount = function componentWillUnmount() {
78212 this.pingLeft = false;
78213 this.pingRight = false;
78214 _util.events.off(window, 'resize', this.updateOffsetArr);
78215 };
78216
78217 LockTable.prototype.normalizeChildrenState = function normalizeChildrenState(props) {
78218 var columns = this.normalizeChildren(props);
78219
78220 this.splitChildren = this.splitFromNormalizeChildren(columns);
78221
78222 return this.mergeFromSplitLockChildren(this.splitChildren, props.prefix);
78223 };
78224
78225 // 将React结构化数据提取props转换成数组
78226
78227
78228 LockTable.prototype.normalizeChildren = function normalizeChildren(props) {
78229 var children = props.children,
78230 columns = props.columns;
78231
78232 var isLock = false,
78233 ret = void 0;
78234 var getChildren = function getChildren(children) {
78235 var ret = [];
78236 _react.Children.forEach(children, function (child) {
78237 if (child) {
78238 var _props = (0, _extends3.default)({}, child.props);
78239 if ([true, 'left', 'right'].indexOf(_props.lock) > -1) {
78240 isLock = true;
78241 if (!('width' in _props)) {
78242 _util.log.warning('Should config width for lock column named [ ' + _props.dataIndex + ' ].');
78243 }
78244 }
78245 ret.push(_props);
78246 if (child.props.children) {
78247 _props.children = getChildren(child.props.children);
78248 }
78249 }
78250 });
78251 return ret;
78252 };
78253
78254 if (columns && !children) {
78255 ret = columns;
78256 isLock = columns.find(function (record) {
78257 return [true, 'left', 'right'].indexOf(record.lock) > -1;
78258 });
78259 } else {
78260 ret = getChildren(children);
78261 }
78262 ret.forEach(function (child) {
78263 // 为自定义的列特殊处理
78264 if (child.__normalized && isLock) {
78265 // users can set lock type for column selection now, so its origin lock type comes first
78266 child.lock = child.lock || 'left';
78267 delete child.__normalized;
78268 }
78269 });
78270 return ret;
78271 };
78272
78273 /**
78274 * 从数组中分离出lock的列和正常的列
78275 * @param {Array} children
78276 * @return {Object} { lockLeftChildren, lockRightChildren, originChildren } 锁左列, 锁左列, 剩余列
78277 */
78278
78279 LockTable.prototype.splitFromNormalizeChildren = function splitFromNormalizeChildren(children) {
78280 var originChildren = deepCopy(children);
78281 var lockLeftChildren = deepCopy(children);
78282 var lockRightChildren = deepCopy(children);
78283 var loop = function loop(lockChildren, condition) {
78284 var ret = [];
78285 lockChildren.forEach(function (child) {
78286 if (child.children) {
78287 var res = loop(child.children, condition);
78288 if (!res.length) {
78289 ret.push(child);
78290 }
78291 } else {
78292 var order = condition(child);
78293 if (!order) {
78294 ret.push(child);
78295 }
78296 }
78297 });
78298 ret.forEach(function (res) {
78299 var index = lockChildren.indexOf(res);
78300 lockChildren.splice(index, 1);
78301 });
78302 return lockChildren;
78303 };
78304 loop(lockLeftChildren, function (child) {
78305 if (child.lock === true || child.lock === 'left') {
78306 return 'left';
78307 }
78308 });
78309 loop(lockRightChildren, function (child) {
78310 if (child.lock === 'right') {
78311 return 'right';
78312 }
78313 });
78314 loop(originChildren, function (child) {
78315 return child.lock !== true && child.lock !== 'left' && child.lock !== 'right';
78316 });
78317 return {
78318 lockLeftChildren: lockLeftChildren,
78319 lockRightChildren: lockRightChildren,
78320 originChildren: originChildren
78321 };
78322 };
78323
78324 /**
78325 * 将左侧的锁列树和中间的普通树及右侧的锁列树进行合并
78326 * 会在原始 originChildren 上做改动
78327 * @param {Object} splitChildren { lockLeftChildren, lockRightChildren, originChildren }
78328 * @return {Array} originChildren
78329 */
78330
78331 LockTable.prototype.mergeFromSplitLockChildren = function mergeFromSplitLockChildren(splitChildren, prefix) {
78332 var lockLeftChildren = splitChildren.lockLeftChildren,
78333 lockRightChildren = splitChildren.lockRightChildren;
78334 var originChildren = splitChildren.originChildren;
78335
78336 var flatenLeftChildren = this.getFlatenChildren(lockLeftChildren);
78337 var flatenRightChildren = this.getFlatenChildren(lockRightChildren);
78338
78339 (0, _util2.setStickyStyle)(lockLeftChildren, flatenLeftChildren, 'left', this.state.leftOffsetArr, prefix);
78340 (0, _util2.setStickyStyle)(lockRightChildren, flatenRightChildren, 'right', this.state.rightOffsetArr, prefix);
78341
78342 return [].concat(lockLeftChildren, originChildren, lockRightChildren);
78343 };
78344
78345 LockTable.prototype.getCellNode = function getCellNode(index, i) {
78346 var table = this.tableInc;
78347
78348 try {
78349 // in case of finding an unmounted component due to cached data
78350 // need to clear refs of table when dataSource Changed
78351 // use try catch for temporary
78352 return (0, _reactDom.findDOMNode)(table.getCellRef(index, i));
78353 } catch (error) {
78354 return null;
78355 }
78356 };
78357
78358 LockTable.prototype.getTableNode = function getTableNode() {
78359 var table = this.tableInc;
78360 try {
78361 // in case of finding an unmounted component due to cached data
78362 // need to clear refs of table when dataSource Changed
78363 // use try catch for temporary
78364 return (0, _reactDom.findDOMNode)(table.tableEl);
78365 } catch (error) {
78366 return null;
78367 }
78368 };
78369
78370 LockTable.prototype.getHeaderCellNode = function getHeaderCellNode(index, i) {
78371 var table = this.tableInc;
78372
78373 try {
78374 // in case of finding an unmounted component due to cached data
78375 // need to clear refs of table when dataSource Changed
78376 // use try catch for temporary
78377 return (0, _reactDom.findDOMNode)(table.getHeaderCellRef(index, i));
78378 } catch (error) {
78379 return null;
78380 }
78381 };
78382
78383 LockTable.prototype.render = function render() {
78384 var _classnames;
78385
78386 /* eslint-disable no-unused-vars, prefer-const */
78387 var _props2 = this.props,
78388 children = _props2.children,
78389 columns = _props2.columns,
78390 prefix = _props2.prefix,
78391 components = _props2.components,
78392 scrollToRow = _props2.scrollToRow,
78393 className = _props2.className,
78394 dataSource = _props2.dataSource,
78395 others = (0, _objectWithoutProperties3.default)(_props2, ['children', 'columns', 'prefix', 'components', 'scrollToRow', 'className', 'dataSource']);
78396
78397 var normalizedChildren = this.normalizeChildrenState(this.props);
78398
78399 components = (0, _extends3.default)({}, components);
78400 components.Body = components.Body || _body2.default;
78401 components.Header = components.Header || _header2.default;
78402 components.Wrapper = components.Wrapper || _wrapper2.default;
78403 components.Row = components.Row || _row2.default;
78404 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-lock'] = true, _classnames[prefix + 'table-stickylock'] = true, _classnames[prefix + 'table-wrap-empty'] = !dataSource.length, _classnames[className] = className, _classnames));
78405
78406 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
78407 dataSource: dataSource,
78408 columns: normalizedChildren,
78409 prefix: prefix,
78410 components: components,
78411 className: className
78412 }));
78413 };
78414
78415 return LockTable;
78416 }(_react2.default.Component), _class.LockRow = _row2.default, _class.LockBody = _body2.default, _class.LockHeader = _header2.default, _class.propTypes = (0, _extends3.default)({
78417 scrollToCol: _propTypes2.default.number,
78418 /**
78419 * 指定滚动到某一行,仅在`useVirtual`的时候生效
78420 */
78421 scrollToRow: _propTypes2.default.number
78422 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps), _class.childContextTypes = {
78423 getTableInstance: _propTypes2.default.func,
78424 getLockNode: _propTypes2.default.func,
78425 onLockBodyScroll: _propTypes2.default.func
78426 }, _temp);
78427 LockTable.displayName = 'LockTable';
78428
78429 (0, _util2.statics)(LockTable, BaseComponent);
78430 return LockTable;
78431}
78432
78433function deepCopy(arr) {
78434 var copy = function copy(arr) {
78435 return arr.map(function (item) {
78436 var newItem = (0, _extends3.default)({}, item);
78437 if (item.children) {
78438 item.children = copy(item.children);
78439 }
78440 return newItem;
78441 });
78442 };
78443 return copy(arr);
78444}
78445module.exports = exports['default'];
78446
78447/***/ }),
78448/* 441 */
78449/***/ (function(module, exports, __webpack_require__) {
78450
78451"use strict";
78452
78453
78454exports.__esModule = true;
78455
78456var _typeof2 = __webpack_require__(14);
78457
78458var _typeof3 = _interopRequireDefault(_typeof2);
78459
78460var _objectWithoutProperties2 = __webpack_require__(8);
78461
78462var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78463
78464var _extends2 = __webpack_require__(1);
78465
78466var _extends3 = _interopRequireDefault(_extends2);
78467
78468var _classCallCheck2 = __webpack_require__(2);
78469
78470var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78471
78472var _possibleConstructorReturn2 = __webpack_require__(3);
78473
78474var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78475
78476var _inherits2 = __webpack_require__(4);
78477
78478var _inherits3 = _interopRequireDefault(_inherits2);
78479
78480exports.default = list;
78481
78482var _react = __webpack_require__(0);
78483
78484var _react2 = _interopRequireDefault(_react);
78485
78486var _propTypes = __webpack_require__(5);
78487
78488var _propTypes2 = _interopRequireDefault(_propTypes);
78489
78490var _classnames2 = __webpack_require__(7);
78491
78492var _classnames3 = _interopRequireDefault(_classnames2);
78493
78494var _listHeader = __webpack_require__(190);
78495
78496var _listHeader2 = _interopRequireDefault(_listHeader);
78497
78498var _listFooter = __webpack_require__(191);
78499
78500var _listFooter2 = _interopRequireDefault(_listFooter);
78501
78502var _row = __webpack_require__(442);
78503
78504var _row2 = _interopRequireDefault(_row);
78505
78506var _body = __webpack_require__(443);
78507
78508var _body2 = _interopRequireDefault(_body);
78509
78510var _header = __webpack_require__(66);
78511
78512var _header2 = _interopRequireDefault(_header);
78513
78514var _wrapper = __webpack_require__(67);
78515
78516var _wrapper2 = _interopRequireDefault(_wrapper);
78517
78518var _util = __webpack_require__(21);
78519
78520function _interopRequireDefault(obj) {
78521 return obj && obj.__esModule ? obj : { default: obj };
78522}
78523
78524function list(BaseComponent) {
78525 var _class, _temp2;
78526
78527 var ListTable = (_temp2 = _class = function (_React$Component) {
78528 (0, _inherits3.default)(ListTable, _React$Component);
78529
78530 function ListTable() {
78531 var _temp, _this, _ret;
78532
78533 (0, _classCallCheck3.default)(this, ListTable);
78534
78535 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
78536 args[_key] = arguments[_key];
78537 }
78538
78539 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
78540 }
78541
78542 ListTable.prototype.getChildContext = function getChildContext() {
78543 return {
78544 listHeader: this.listHeader,
78545 listFooter: this.listFooter,
78546 rowSelection: this.rowSelection
78547 };
78548 };
78549
78550 ListTable.prototype.normalizeDataSource = function normalizeDataSource(dataSource) {
78551 var ret = [];
78552 var loop = function loop(dataSource, level) {
78553 dataSource.forEach(function (item) {
78554 var itemCopy = (0, _extends3.default)({}, item);
78555 itemCopy.__level = level;
78556 ret.push(itemCopy);
78557 if (itemCopy.children) {
78558 loop(itemCopy.children, level + 1);
78559 }
78560 });
78561 };
78562 loop(dataSource, 0);
78563 this.ds = ret;
78564 return ret;
78565 };
78566
78567 ListTable.prototype.render = function render() {
78568 var _this2 = this;
78569
78570 /* eslint-disable prefer-const */
78571 var _props = this.props,
78572 components = _props.components,
78573 children = _props.children,
78574 className = _props.className,
78575 prefix = _props.prefix,
78576 others = (0, _objectWithoutProperties3.default)(_props, ['components', 'children', 'className', 'prefix']);
78577
78578 var isList = false,
78579 ret = [];
78580 _react.Children.forEach(children, function (child) {
78581 if (child) {
78582 if (['function', 'object'].indexOf((0, _typeof3.default)(child.type)) > -1) {
78583 if (child.type._typeMark === 'listHeader') {
78584 _this2.listHeader = child.props;
78585 isList = true;
78586 } else if (child.type._typeMark === 'listFooter') {
78587 _this2.listFooter = child.props;
78588 } else {
78589 ret.push(child);
78590 }
78591 } else {
78592 ret.push(child);
78593 }
78594 }
78595 });
78596 this.rowSelection = this.props.rowSelection;
78597 if (isList) {
78598 var _classnames;
78599
78600 components = (0, _extends3.default)({}, components);
78601 components.Row = components.Row || _row2.default;
78602 components.Body = components.Body || _body2.default;
78603 components.Header = components.Header || _header2.default;
78604 components.Wrapper = components.Wrapper || _wrapper2.default;
78605 className = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-group'] = true, _classnames[className] = className, _classnames));
78606 }
78607 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
78608 components: components,
78609 children: ret.length > 0 ? ret : undefined,
78610 className: className,
78611 prefix: prefix
78612 }));
78613 };
78614
78615 return ListTable;
78616 }(_react2.default.Component), _class.ListHeader = _listHeader2.default, _class.ListFooter = _listFooter2.default, _class.ListRow = _row2.default, _class.ListBody = _body2.default, _class.propTypes = (0, _extends3.default)({}, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({}, BaseComponent.defaultProps), _class.childContextTypes = {
78617 listHeader: _propTypes2.default.any,
78618 listFooter: _propTypes2.default.any,
78619 rowSelection: _propTypes2.default.object
78620 }, _temp2);
78621 ListTable.displayName = 'ListTable';
78622
78623 (0, _util.statics)(ListTable, BaseComponent);
78624 return ListTable;
78625}
78626module.exports = exports['default'];
78627
78628/***/ }),
78629/* 442 */
78630/***/ (function(module, exports, __webpack_require__) {
78631
78632"use strict";
78633
78634
78635exports.__esModule = true;
78636exports.default = undefined;
78637
78638var _extends2 = __webpack_require__(1);
78639
78640var _extends3 = _interopRequireDefault(_extends2);
78641
78642var _objectWithoutProperties2 = __webpack_require__(8);
78643
78644var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78645
78646var _classCallCheck2 = __webpack_require__(2);
78647
78648var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78649
78650var _possibleConstructorReturn2 = __webpack_require__(3);
78651
78652var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78653
78654var _inherits2 = __webpack_require__(4);
78655
78656var _inherits3 = _interopRequireDefault(_inherits2);
78657
78658var _class, _temp;
78659
78660var _react = __webpack_require__(0);
78661
78662var _react2 = _interopRequireDefault(_react);
78663
78664var _propTypes = __webpack_require__(5);
78665
78666var _propTypes2 = _interopRequireDefault(_propTypes);
78667
78668var _classnames2 = __webpack_require__(7);
78669
78670var _classnames3 = _interopRequireDefault(_classnames2);
78671
78672var _util = __webpack_require__(6);
78673
78674var _row = __webpack_require__(64);
78675
78676var _row2 = _interopRequireDefault(_row);
78677
78678function _interopRequireDefault(obj) {
78679 return obj && obj.__esModule ? obj : { default: obj };
78680}
78681
78682var GroupListRow = (_temp = _class = function (_Row) {
78683 (0, _inherits3.default)(GroupListRow, _Row);
78684
78685 function GroupListRow() {
78686 (0, _classCallCheck3.default)(this, GroupListRow);
78687 return (0, _possibleConstructorReturn3.default)(this, _Row.apply(this, arguments));
78688 }
78689
78690 GroupListRow.prototype.render = function render() {
78691 var _classnames;
78692
78693 /* eslint-disable no-unused-vars*/
78694 var _props = this.props,
78695 prefix = _props.prefix,
78696 className = _props.className,
78697 onClick = _props.onClick,
78698 onMouseEnter = _props.onMouseEnter,
78699 onMouseLeave = _props.onMouseLeave,
78700 columns = _props.columns,
78701 Cell = _props.Cell,
78702 rowIndex = _props.rowIndex,
78703 __rowIndex = _props.__rowIndex,
78704 record = _props.record,
78705 children = _props.children,
78706 primaryKey = _props.primaryKey,
78707 colGroup = _props.colGroup,
78708 cellRef = _props.cellRef,
78709 getCellProps = _props.getCellProps,
78710 locale = _props.locale,
78711 wrapper = _props.wrapper,
78712 rtl = _props.rtl,
78713 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'onClick', 'onMouseEnter', 'onMouseLeave', 'columns', 'Cell', 'rowIndex', '__rowIndex', 'record', 'children', 'primaryKey', 'colGroup', 'cellRef', 'getCellProps', 'locale', 'wrapper', 'rtl']);
78714
78715 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-row'] = true, _classnames[className] = className, _classnames));
78716
78717 // clear notRenderCellIndex, incase of cached data
78718 this.context.notRenderCellIndex = [];
78719
78720 return _react2.default.createElement('table', (0, _extends3.default)({
78721 className: cls,
78722 role: 'row'
78723 }, others, {
78724 onClick: this.onClick,
78725 onMouseEnter: this.onMouseEnter,
78726 onMouseLeave: this.onMouseLeave
78727 }), colGroup, _react2.default.createElement('tbody', null, this.renderContent('header'), this.renderChildren(), this.renderContent('footer')));
78728 };
78729
78730 GroupListRow.prototype.isChildrenSelection = function isChildrenSelection() {
78731 return this.context.listHeader && this.context.listHeader.hasChildrenSelection;
78732 };
78733
78734 GroupListRow.prototype.isFirstLevelDataWhenNoChildren = function isFirstLevelDataWhenNoChildren() {
78735 return this.context.listHeader && this.context.listHeader.useFirstLevelDataWhenNoChildren;
78736 };
78737
78738 GroupListRow.prototype.isSelection = function isSelection() {
78739 return this.context.listHeader && this.context.listHeader.hasSelection;
78740 };
78741
78742 GroupListRow.prototype.renderChildren = function renderChildren() {
78743 var _this2 = this;
78744
78745 var _props2 = this.props,
78746 record = _props2.record,
78747 primaryKey = _props2.primaryKey;
78748 var children = record.children;
78749
78750 var toRenderList = children;
78751 if (this.isFirstLevelDataWhenNoChildren()) {
78752 _util.log.warning('useFirstLevelDataWhenNoChildren is deprecated, change your dataSource structure, make sure there is \'children\' in your dataSource.');
78753
78754 toRenderList = children || [record];
78755 }
78756
78757 if (toRenderList) {
78758 return toRenderList.map(function (child, index) {
78759 var cells = _this2.renderCells(child, index);
78760 if (_this2.isChildrenSelection()) {
78761 if (!child[primaryKey]) {
78762 _util.log.warning('record.children/recored should contains primaryKey when childrenSelection is true.');
78763 }
78764 return _react2.default.createElement('tr', { key: child[primaryKey] }, cells);
78765 }
78766 if (_this2.context.rowSelection) {
78767 cells.shift();
78768 cells[0] = cells[0] && _react2.default.cloneElement(cells[0], (0, _extends3.default)({
78769 colSpan: 2
78770 }, cells[0].props));
78771 }
78772 return _react2.default.createElement('tr', { key: index }, cells);
78773 });
78774 }
78775 return null;
78776 };
78777
78778 GroupListRow.prototype.renderContent = function renderContent(type) {
78779 var _props3 = this.props,
78780 columns = _props3.columns,
78781 prefix = _props3.prefix,
78782 record = _props3.record,
78783 rowIndex = _props3.rowIndex;
78784
78785 var cameType = type.charAt(0).toUpperCase() + type.substr(1);
78786 var list = this.context['list' + cameType];
78787 var listNode = void 0;
78788 if (list) {
78789 if (_react2.default.isValidElement(list.cell)) {
78790 listNode = _react2.default.cloneElement(list.cell, {
78791 record: record,
78792 index: rowIndex
78793 });
78794 } else if (typeof list.cell === 'function') {
78795 listNode = list.cell(record, rowIndex);
78796 }
78797 if (listNode) {
78798 var cells = this.renderCells(record);
78799 if (type === 'header' && this.context.rowSelection && this.isSelection()) {
78800 cells = cells.slice(0, 1);
78801 cells.push(_react2.default.createElement('td', { colSpan: columns.length - 1, key: 'listNode' }, _react2.default.createElement('div', { className: prefix + 'table-cell-wrapper' }, listNode)));
78802 listNode = _react2.default.createElement('tr', { className: prefix + 'table-group-' + type }, cells);
78803 } else {
78804 listNode = _react2.default.createElement('tr', { className: prefix + 'table-group-' + type }, _react2.default.createElement('td', { colSpan: columns.length }, _react2.default.createElement('div', { className: prefix + 'table-cell-wrapper' }, listNode)));
78805 }
78806 }
78807 }
78808 return listNode;
78809 };
78810
78811 return GroupListRow;
78812}(_row2.default), _class.contextTypes = {
78813 listHeader: _propTypes2.default.any,
78814 listFooter: _propTypes2.default.any,
78815 rowSelection: _propTypes2.default.object,
78816 notRenderCellIndex: _propTypes2.default.array,
78817 lockType: _propTypes2.default.oneOf(['left', 'right'])
78818}, _temp);
78819exports.default = GroupListRow;
78820module.exports = exports['default'];
78821
78822/***/ }),
78823/* 443 */
78824/***/ (function(module, exports, __webpack_require__) {
78825
78826"use strict";
78827
78828
78829exports.__esModule = true;
78830
78831var _extends2 = __webpack_require__(1);
78832
78833var _extends3 = _interopRequireDefault(_extends2);
78834
78835exports.default = ListBody;
78836
78837var _react = __webpack_require__(0);
78838
78839var _react2 = _interopRequireDefault(_react);
78840
78841var _body = __webpack_require__(63);
78842
78843var _body2 = _interopRequireDefault(_body);
78844
78845function _interopRequireDefault(obj) {
78846 return obj && obj.__esModule ? obj : { default: obj };
78847}
78848
78849function ListBody(props) {
78850 return _react2.default.createElement(_body2.default, (0, _extends3.default)({ component: 'div' }, props));
78851}
78852module.exports = exports['default'];
78853
78854/***/ }),
78855/* 444 */
78856/***/ (function(module, exports, __webpack_require__) {
78857
78858"use strict";
78859
78860
78861exports.__esModule = true;
78862
78863var _extends2 = __webpack_require__(1);
78864
78865var _extends3 = _interopRequireDefault(_extends2);
78866
78867var _objectWithoutProperties2 = __webpack_require__(8);
78868
78869var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
78870
78871var _classCallCheck2 = __webpack_require__(2);
78872
78873var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
78874
78875var _possibleConstructorReturn2 = __webpack_require__(3);
78876
78877var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
78878
78879var _inherits2 = __webpack_require__(4);
78880
78881var _inherits3 = _interopRequireDefault(_inherits2);
78882
78883exports.default = sticky;
78884
78885var _react = __webpack_require__(0);
78886
78887var _react2 = _interopRequireDefault(_react);
78888
78889var _propTypes = __webpack_require__(5);
78890
78891var _propTypes2 = _interopRequireDefault(_propTypes);
78892
78893var _header = __webpack_require__(66);
78894
78895var _header2 = _interopRequireDefault(_header);
78896
78897var _header3 = __webpack_require__(445);
78898
78899var _header4 = _interopRequireDefault(_header3);
78900
78901var _util = __webpack_require__(21);
78902
78903function _interopRequireDefault(obj) {
78904 return obj && obj.__esModule ? obj : { default: obj };
78905}
78906
78907function sticky(BaseComponent) {
78908 var _class, _temp2;
78909
78910 /** Table */
78911 var StickyTable = (_temp2 = _class = function (_React$Component) {
78912 (0, _inherits3.default)(StickyTable, _React$Component);
78913
78914 function StickyTable() {
78915 var _temp, _this, _ret;
78916
78917 (0, _classCallCheck3.default)(this, StickyTable);
78918
78919 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
78920 args[_key] = arguments[_key];
78921 }
78922
78923 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {}, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
78924 }
78925
78926 StickyTable.prototype.getChildContext = function getChildContext() {
78927 return {
78928 Header: this.props.components.Header || _header2.default,
78929 offsetTop: this.props.offsetTop,
78930 affixProps: this.props.affixProps
78931 };
78932 };
78933
78934 StickyTable.prototype.render = function render() {
78935 /* eslint-disable no-unused-vars */
78936 var _props = this.props,
78937 stickyHeader = _props.stickyHeader,
78938 offsetTop = _props.offsetTop,
78939 affixProps = _props.affixProps,
78940 others = (0, _objectWithoutProperties3.default)(_props, ['stickyHeader', 'offsetTop', 'affixProps']);
78941 var _props2 = this.props,
78942 components = _props2.components,
78943 maxBodyHeight = _props2.maxBodyHeight,
78944 fixedHeader = _props2.fixedHeader;
78945
78946 if (stickyHeader) {
78947 components = (0, _extends3.default)({}, components);
78948 components.Header = _header4.default;
78949 fixedHeader = true;
78950 maxBodyHeight = Math.max(maxBodyHeight, 10000);
78951 }
78952 return _react2.default.createElement(BaseComponent, (0, _extends3.default)({}, others, {
78953 components: components,
78954 fixedHeader: fixedHeader,
78955 maxBodyHeight: maxBodyHeight
78956 }));
78957 };
78958
78959 return StickyTable;
78960 }(_react2.default.Component), _class.StickyHeader = _header4.default, _class.propTypes = (0, _extends3.default)({
78961 /**
78962 * 表头是否是sticky
78963 */
78964 stickyHeader: _propTypes2.default.bool,
78965 /**
78966 * 距离窗口顶部达到指定偏移量后触发
78967 */
78968 offsetTop: _propTypes2.default.number,
78969 /**
78970 * affix组件的的属性
78971 */
78972 affixProps: _propTypes2.default.object,
78973 components: _propTypes2.default.object
78974 }, BaseComponent.propTypes), _class.defaultProps = (0, _extends3.default)({
78975 components: {}
78976 }, BaseComponent.defaultProps), _class.childContextTypes = {
78977 Header: _propTypes2.default.any,
78978 offsetTop: _propTypes2.default.number,
78979 affixProps: _propTypes2.default.object
78980 }, _temp2);
78981 StickyTable.displayName = 'StickyTable';
78982
78983 (0, _util.statics)(StickyTable, BaseComponent);
78984 return StickyTable;
78985}
78986module.exports = exports['default'];
78987
78988/***/ }),
78989/* 445 */
78990/***/ (function(module, exports, __webpack_require__) {
78991
78992"use strict";
78993
78994
78995exports.__esModule = true;
78996exports.default = undefined;
78997
78998var _extends2 = __webpack_require__(1);
78999
79000var _extends3 = _interopRequireDefault(_extends2);
79001
79002var _objectWithoutProperties2 = __webpack_require__(8);
79003
79004var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
79005
79006var _classCallCheck2 = __webpack_require__(2);
79007
79008var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
79009
79010var _possibleConstructorReturn2 = __webpack_require__(3);
79011
79012var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
79013
79014var _inherits2 = __webpack_require__(4);
79015
79016var _inherits3 = _interopRequireDefault(_inherits2);
79017
79018var _class, _temp2;
79019
79020var _react = __webpack_require__(0);
79021
79022var _react2 = _interopRequireDefault(_react);
79023
79024var _propTypes = __webpack_require__(5);
79025
79026var _propTypes2 = _interopRequireDefault(_propTypes);
79027
79028var _classnames2 = __webpack_require__(7);
79029
79030var _classnames3 = _interopRequireDefault(_classnames2);
79031
79032var _affix = __webpack_require__(69);
79033
79034var _affix2 = _interopRequireDefault(_affix);
79035
79036function _interopRequireDefault(obj) {
79037 return obj && obj.__esModule ? obj : { default: obj };
79038}
79039
79040/* eslint-disable react/prefer-stateless-function*/
79041var StickHeader = (_temp2 = _class = function (_React$Component) {
79042 (0, _inherits3.default)(StickHeader, _React$Component);
79043
79044 function StickHeader() {
79045 var _temp, _this, _ret;
79046
79047 (0, _classCallCheck3.default)(this, StickHeader);
79048
79049 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
79050 args[_key] = arguments[_key];
79051 }
79052
79053 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.getAffixRef = function (ref) {
79054 _this.props.affixRef && _this.props.affixRef(ref);
79055 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
79056 }
79057
79058 StickHeader.prototype.render = function render() {
79059 var _classnames;
79060
79061 var prefix = this.props.prefix;
79062 var _context = this.context,
79063 Header = _context.Header,
79064 offsetTop = _context.offsetTop,
79065 affixProps = _context.affixProps;
79066
79067 var newAffixProps = affixProps || {};
79068 var className = newAffixProps.className,
79069 others = (0, _objectWithoutProperties3.default)(newAffixProps, ['className']);
79070
79071 var cls = (0, _classnames3.default)((_classnames = {}, _classnames[prefix + 'table-affix'] = true, _classnames.className = className, _classnames));
79072
79073 return _react2.default.createElement(_affix2.default, (0, _extends3.default)({
79074 ref: this.getAffixRef
79075 }, others, {
79076 className: cls,
79077 offsetTop: offsetTop
79078 }), _react2.default.createElement(Header, this.props));
79079 };
79080
79081 return StickHeader;
79082}(_react2.default.Component), _class.propTypes = {
79083 prefix: _propTypes2.default.string
79084}, _class.contextTypes = {
79085 Header: _propTypes2.default.any,
79086 offsetTop: _propTypes2.default.number,
79087 affixProps: _propTypes2.default.object
79088}, _temp2);
79089StickHeader.displayName = 'StickHeader';
79090exports.default = StickHeader;
79091module.exports = exports['default'];
79092
79093/***/ }),
79094/* 446 */
79095/***/ (function(module, exports, __webpack_require__) {
79096
79097"use strict";
79098
79099
79100exports.__esModule = true;
79101
79102var _extends2 = __webpack_require__(1);
79103
79104var _extends3 = _interopRequireDefault(_extends2);
79105
79106var _objectWithoutProperties2 = __webpack_require__(8);
79107
79108var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
79109
79110var _configProvider = __webpack_require__(9);
79111
79112var _configProvider2 = _interopRequireDefault(_configProvider);
79113
79114var _timePicker = __webpack_require__(447);
79115
79116var _timePicker2 = _interopRequireDefault(_timePicker);
79117
79118function _interopRequireDefault(obj) {
79119 return obj && obj.__esModule ? obj : { default: obj };
79120}
79121
79122exports.default = _configProvider2.default.config(_timePicker2.default, {
79123 transform: /* istanbul ignore next */function transform(props, deprecated) {
79124 if ('defaultOpen' in props) {
79125 deprecated('defaultOpen', 'defaultVisible', 'TimePicker');
79126 var _props = props,
79127 defaultOpen = _props.defaultOpen,
79128 others = (0, _objectWithoutProperties3.default)(_props, ['defaultOpen']);
79129
79130 props = (0, _extends3.default)({ defaultVisible: defaultOpen }, others);
79131 }
79132 if ('open' in props) {
79133 deprecated('open', 'visible', 'TimePicker');
79134
79135 var _props2 = props,
79136 open = _props2.open,
79137 _others = (0, _objectWithoutProperties3.default)(_props2, ['open']);
79138
79139 props = (0, _extends3.default)({ visible: open }, _others);
79140 }
79141 if ('onOpenChange' in props) {
79142 deprecated('onOpenChange', 'onVisibleChange', 'TimePicker');
79143
79144 var _props3 = props,
79145 onOpenChange = _props3.onOpenChange,
79146 _others2 = (0, _objectWithoutProperties3.default)(_props3, ['onOpenChange']);
79147
79148 props = (0, _extends3.default)({ onVisibleChange: onOpenChange }, _others2);
79149 }
79150
79151 return props;
79152 }
79153});
79154module.exports = exports['default'];
79155
79156/***/ }),
79157/* 447 */
79158/***/ (function(module, exports, __webpack_require__) {
79159
79160"use strict";
79161
79162
79163exports.__esModule = true;
79164
79165var _objectWithoutProperties2 = __webpack_require__(8);
79166
79167var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
79168
79169var _extends2 = __webpack_require__(1);
79170
79171var _extends3 = _interopRequireDefault(_extends2);
79172
79173var _classCallCheck2 = __webpack_require__(2);
79174
79175var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
79176
79177var _possibleConstructorReturn2 = __webpack_require__(3);
79178
79179var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
79180
79181var _inherits2 = __webpack_require__(4);
79182
79183var _inherits3 = _interopRequireDefault(_inherits2);
79184
79185var _class, _temp, _initialiseProps;
79186
79187var _react = __webpack_require__(0);
79188
79189var _react2 = _interopRequireDefault(_react);
79190
79191var _propTypes = __webpack_require__(5);
79192
79193var _propTypes2 = _interopRequireDefault(_propTypes);
79194
79195var _reactLifecyclesCompat = __webpack_require__(10);
79196
79197var _classnames3 = __webpack_require__(7);
79198
79199var _classnames4 = _interopRequireDefault(_classnames3);
79200
79201var _moment = __webpack_require__(19);
79202
79203var _moment2 = _interopRequireDefault(_moment);
79204
79205var _configProvider = __webpack_require__(9);
79206
79207var _configProvider2 = _interopRequireDefault(_configProvider);
79208
79209var _input = __webpack_require__(18);
79210
79211var _input2 = _interopRequireDefault(_input);
79212
79213var _icon = __webpack_require__(11);
79214
79215var _icon2 = _interopRequireDefault(_icon);
79216
79217var _overlay = __webpack_require__(15);
79218
79219var _overlay2 = _interopRequireDefault(_overlay);
79220
79221var _zhCn = __webpack_require__(13);
79222
79223var _zhCn2 = _interopRequireDefault(_zhCn);
79224
79225var _util = __webpack_require__(6);
79226
79227var _panel = __webpack_require__(91);
79228
79229var _panel2 = _interopRequireDefault(_panel);
79230
79231var _utils = __webpack_require__(92);
79232
79233var _util2 = __webpack_require__(30);
79234
79235function _interopRequireDefault(obj) {
79236 return obj && obj.__esModule ? obj : { default: obj };
79237}
79238
79239var Popup = _overlay2.default.Popup;
79240var noop = _util.func.noop;
79241
79242var timePickerLocale = _zhCn2.default.TimePicker;
79243
79244/**
79245 * TimePicker
79246 */
79247var TimePicker = (_temp = _class = function (_Component) {
79248 (0, _inherits3.default)(TimePicker, _Component);
79249
79250 function TimePicker(props, context) {
79251 (0, _classCallCheck3.default)(this, TimePicker);
79252
79253 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
79254
79255 _initialiseProps.call(_this);
79256
79257 var value = (0, _utils.formatDateValue)(props.value || props.defaultValue, props.format);
79258 _this.inputAsString = typeof (props.value || props.defaultValue) === 'string';
79259 _this.state = {
79260 value: value,
79261 inputStr: '',
79262 inputing: false,
79263 visible: props.visible || props.defaultVisible
79264 };
79265 return _this;
79266 }
79267
79268 TimePicker.getDerivedStateFromProps = function getDerivedStateFromProps(props) {
79269 var state = {};
79270
79271 if ('value' in props) {
79272 state.value = (0, _utils.formatDateValue)(props.value, props.format);
79273 }
79274
79275 if ('visible' in props) {
79276 state.visible = props.visible;
79277 }
79278
79279 return state;
79280 };
79281
79282 TimePicker.prototype.onValueChange = function onValueChange(newValue) {
79283 var ret = this.inputAsString && newValue ? newValue.format(this.props.format) : newValue;
79284 this.props.onChange(ret);
79285 };
79286
79287 TimePicker.prototype.renderPreview = function renderPreview(others) {
79288 var _props = this.props,
79289 prefix = _props.prefix,
79290 format = _props.format,
79291 className = _props.className,
79292 renderPreview = _props.renderPreview;
79293 var value = this.state.value;
79294
79295 var previewCls = (0, _classnames4.default)(className, prefix + 'form-preview');
79296
79297 var label = value ? value.format(format) : '';
79298
79299 if (typeof renderPreview === 'function') {
79300 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
79301 }
79302
79303 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
79304 };
79305
79306 TimePicker.prototype.render = function render() {
79307 var _classnames, _classnames2;
79308
79309 var _props2 = this.props,
79310 prefix = _props2.prefix,
79311 label = _props2.label,
79312 state = _props2.state,
79313 placeholder = _props2.placeholder,
79314 size = _props2.size,
79315 format = _props2.format,
79316 hasClear = _props2.hasClear,
79317 hourStep = _props2.hourStep,
79318 minuteStep = _props2.minuteStep,
79319 secondStep = _props2.secondStep,
79320 disabledHours = _props2.disabledHours,
79321 disabledMinutes = _props2.disabledMinutes,
79322 disabledSeconds = _props2.disabledSeconds,
79323 renderTimeMenuItems = _props2.renderTimeMenuItems,
79324 inputProps = _props2.inputProps,
79325 popupAlign = _props2.popupAlign,
79326 popupTriggerType = _props2.popupTriggerType,
79327 popupContainer = _props2.popupContainer,
79328 popupStyle = _props2.popupStyle,
79329 popupClassName = _props2.popupClassName,
79330 popupProps = _props2.popupProps,
79331 popupComponent = _props2.popupComponent,
79332 popupContent = _props2.popupContent,
79333 followTrigger = _props2.followTrigger,
79334 disabled = _props2.disabled,
79335 className = _props2.className,
79336 locale = _props2.locale,
79337 rtl = _props2.rtl,
79338 isPreview = _props2.isPreview,
79339 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'label', 'state', 'placeholder', 'size', 'format', 'hasClear', 'hourStep', 'minuteStep', 'secondStep', 'disabledHours', 'disabledMinutes', 'disabledSeconds', 'renderTimeMenuItems', 'inputProps', 'popupAlign', 'popupTriggerType', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'popupComponent', 'popupContent', 'followTrigger', 'disabled', 'className', 'locale', 'rtl', 'isPreview']);
79340 var _state = this.state,
79341 value = _state.value,
79342 inputStr = _state.inputStr,
79343 inputing = _state.inputing,
79344 visible = _state.visible;
79345
79346 var triggerCls = (0, _classnames4.default)((_classnames = {}, _classnames[prefix + 'time-picker-trigger'] = true, _classnames));
79347
79348 if (rtl) {
79349 others.dir = 'rtl';
79350 }
79351
79352 if (isPreview) {
79353 return this.renderPreview(_util.obj.pickOthers(others, TimePicker.PropTypes));
79354 }
79355
79356 var inputValue = inputing ? inputStr : value && value.format(format) || '';
79357 var sharedInputProps = (0, _extends3.default)({}, inputProps, {
79358 size: size,
79359 disabled: disabled,
79360 value: inputValue,
79361 hasClear: value && hasClear,
79362 onChange: this.onInputChange,
79363 onBlur: this.onInputBlur,
79364 onPressEnter: this.onInputBlur,
79365 onKeyDown: this.onKeyown,
79366 hint: _react2.default.createElement(_icon2.default, {
79367 type: 'clock',
79368 className: prefix + 'time-picker-symbol-clock-icon'
79369 })
79370 });
79371
79372 var triggerInput = _react2.default.createElement('div', { className: triggerCls }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
79373 label: label,
79374 state: state,
79375 placeholder: placeholder || locale.placeholder,
79376 className: prefix + 'time-picker-input'
79377 })));
79378
79379 var panelProps = {
79380 prefix: prefix,
79381 locale: locale,
79382 value: value,
79383 disabled: disabled,
79384 showHour: format.indexOf('H') > -1,
79385 showSecond: format.indexOf('s') > -1,
79386 showMinute: format.indexOf('m') > -1,
79387 hourStep: hourStep,
79388 minuteStep: minuteStep,
79389 secondStep: secondStep,
79390 disabledHours: disabledHours,
79391 disabledMinutes: disabledMinutes,
79392 disabledSeconds: disabledSeconds,
79393 renderTimeMenuItems: renderTimeMenuItems,
79394 onSelect: this.onTimePanelSelect
79395 };
79396
79397 var classNames = (0, _classnames4.default)((_classnames2 = {}, _classnames2[prefix + 'time-picker'] = true, _classnames2[prefix + 'time-picker-' + size] = size, _classnames2[prefix + 'disabled'] = disabled, _classnames2), className);
79398
79399 var PopupComponent = popupComponent ? popupComponent : Popup;
79400
79401 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(TimePicker.propTypes, others), {
79402 className: classNames
79403 }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
79404 autoFocus: true,
79405 align: popupAlign
79406 }, popupProps, {
79407 followTrigger: followTrigger,
79408 visible: visible,
79409 onVisibleChange: this.onVisibleChange,
79410 trigger: triggerInput,
79411 container: popupContainer,
79412 disabled: disabled,
79413 triggerType: popupTriggerType,
79414 style: popupStyle,
79415 className: popupClassName
79416 }), popupContent ? popupContent : _react2.default.createElement('div', {
79417 dir: others.dir,
79418 className: prefix + 'time-picker-body'
79419 }, _react2.default.createElement('div', {
79420 className: prefix + 'time-picker-panel-header'
79421 }, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedInputProps, {
79422 placeholder: format,
79423 className: prefix + 'time-picker-panel-input'
79424 }))), _react2.default.createElement(_panel2.default, panelProps))));
79425 };
79426
79427 return TimePicker;
79428}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
79429 prefix: _propTypes2.default.string,
79430 rtl: _propTypes2.default.bool,
79431 /**
79432 * 按钮的文案
79433 */
79434 label: _propTypes2.default.node,
79435 /**
79436 * 输入框状态
79437 */
79438 state: _propTypes2.default.oneOf(['error', 'success']),
79439 /**
79440 * 输入框提示
79441 */
79442 placeholder: _propTypes2.default.string,
79443 /**
79444 * 时间值(moment 对象或时间字符串,受控状态使用)
79445 */
79446 value: _utils.checkDateValue,
79447 /**
79448 * 时间初值(moment 对象或时间字符串,非受控状态使用)
79449 */
79450 defaultValue: _utils.checkDateValue,
79451 /**
79452 * 时间选择框的尺寸
79453 */
79454 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
79455 /**
79456 * 是否允许清空时间
79457 */
79458 hasClear: _propTypes2.default.bool,
79459 /**
79460 * 时间的格式
79461 * https://momentjs.com/docs/#/parsing/string-format/
79462 */
79463 format: _propTypes2.default.string,
79464 /**
79465 * 小时选项步长
79466 */
79467 hourStep: _propTypes2.default.number,
79468 /**
79469 * 分钟选项步长
79470 */
79471 minuteStep: _propTypes2.default.number,
79472 /**
79473 * 秒钟选项步长
79474 */
79475 secondStep: _propTypes2.default.number,
79476 /**
79477 * 禁用小时函数
79478 * @param {Number} index 时 0 - 23
79479 * @return {Boolean} 是否禁用
79480 */
79481 disabledHours: _propTypes2.default.func,
79482 /**
79483 * 禁用分钟函数
79484 * @param {Number} index 分 0 - 59
79485 * @return {Boolean} 是否禁用
79486 */
79487 disabledMinutes: _propTypes2.default.func,
79488 /**
79489 * 禁用秒钟函数
79490 * @param {Number} index 秒 0 - 59
79491 * @return {Boolean} 是否禁用
79492 */
79493 disabledSeconds: _propTypes2.default.func,
79494 /**
79495 * 渲染的可选择时间列表
79496 * [{
79497 * label: '01',
79498 * value: 1
79499 * }]
79500 * @param {Array} list 默认渲染的列表
79501 * @param {String} mode 渲染的菜单 hour, minute, second
79502 * @param {moment} value 当前时间,可能为 null
79503 * @return {Array} 返回需要渲染的数据
79504 */
79505 renderTimeMenuItems: _propTypes2.default.func,
79506 /**
79507 * 弹层是否显示(受控)
79508 */
79509 visible: _propTypes2.default.bool,
79510 /**
79511 * 弹层默认是否显示(非受控)
79512 */
79513 defaultVisible: _propTypes2.default.bool,
79514 /**
79515 * 弹层容器
79516 * @param {Object} target 目标节点
79517 * @return {ReactNode} 容器节点
79518 */
79519 popupContainer: _propTypes2.default.any,
79520 /**
79521 * 弹层对齐方式, 详情见Overlay 文档
79522 */
79523 popupAlign: _propTypes2.default.string,
79524 /**
79525 * 弹层触发方式
79526 */
79527 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
79528 /**
79529 * 弹层展示状态变化时的回调
79530 * @param {Boolean} visible 弹层是否隐藏和显示
79531 * @param {String} type 触发弹层显示和隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
79532 */
79533 onVisibleChange: _propTypes2.default.func,
79534 /**
79535 * 弹层自定义样式
79536 */
79537 popupStyle: _propTypes2.default.object,
79538 /**
79539 * 弹层自定义样式类
79540 */
79541 popupClassName: _propTypes2.default.string,
79542 /**
79543 * 弹层属性
79544 */
79545 popupProps: _propTypes2.default.object,
79546 /**
79547 * 是否跟随滚动
79548 */
79549 followTrigger: _propTypes2.default.bool,
79550 /**
79551 * 是否禁用
79552 */
79553 disabled: _propTypes2.default.bool,
79554 /**
79555 * 是否为预览态
79556 */
79557 isPreview: _propTypes2.default.bool,
79558 /**
79559 * 预览态模式下渲染的内容
79560 * @param {MomentObject} value 时间
79561 */
79562 renderPreview: _propTypes2.default.func,
79563 /**
79564 * 时间值改变时的回调
79565 * @param {Object|String} value 时间对象或时间字符串
79566 */
79567 onChange: _propTypes2.default.func,
79568 className: _propTypes2.default.string,
79569 name: _propTypes2.default.string,
79570 inputProps: _propTypes2.default.object,
79571 popupComponent: _propTypes2.default.elementType,
79572 popupContent: _propTypes2.default.node
79573}), _class.defaultProps = {
79574 prefix: 'next-',
79575 rtl: false,
79576 locale: timePickerLocale,
79577 size: 'medium',
79578 format: 'HH:mm:ss',
79579 hasClear: true,
79580 disabled: false,
79581 popupAlign: 'tl tl',
79582 popupTriggerType: 'click',
79583 onChange: noop,
79584 onVisibleChange: noop
79585}, _initialiseProps = function _initialiseProps() {
79586 var _this2 = this;
79587
79588 this.onClearValue = function () {
79589 _this2.setState({
79590 value: null
79591 });
79592 if (_this2.state.value) {
79593 _this2.onValueChange(null);
79594 }
79595 };
79596
79597 this.onInputChange = function (inputValue, e, eventType) {
79598 if (!('value' in _this2.props)) {
79599 if (eventType === 'clear' || !inputValue) {
79600 e.stopPropagation();
79601 _this2.onClearValue();
79602 }
79603
79604 _this2.setState({
79605 inputStr: inputValue,
79606 inputing: true
79607 });
79608 } else if (eventType === 'clear') {
79609 // 受控状态下用户点击 clear
79610 e.stopPropagation();
79611 _this2.onValueChange(null);
79612 }
79613 };
79614
79615 this.onInputBlur = function () {
79616 var inputStr = _this2.state.inputStr;
79617
79618 if (inputStr) {
79619 var format = _this2.props.format;
79620
79621 var parsed = (0, _moment2.default)(inputStr, format, true);
79622 if (parsed.isValid()) {
79623 _this2.setState({
79624 value: parsed,
79625 inputStr: ''
79626 });
79627 _this2.onValueChange(parsed);
79628 }
79629 _this2.setState({
79630 inputing: false
79631 });
79632 }
79633 };
79634
79635 this.onKeyown = function (e) {
79636 var _state2 = _this2.state,
79637 value = _state2.value,
79638 inputStr = _state2.inputStr;
79639 var _props3 = _this2.props,
79640 format = _props3.format,
79641 _props3$hourStep = _props3.hourStep,
79642 hourStep = _props3$hourStep === undefined ? 1 : _props3$hourStep,
79643 _props3$minuteStep = _props3.minuteStep,
79644 minuteStep = _props3$minuteStep === undefined ? 1 : _props3$minuteStep,
79645 _props3$secondStep = _props3.secondStep,
79646 secondStep = _props3$secondStep === undefined ? 1 : _props3$secondStep,
79647 disabledMinutes = _props3.disabledMinutes,
79648 disabledSeconds = _props3.disabledSeconds;
79649
79650 var unit = 'second';
79651
79652 if (disabledSeconds) {
79653 unit = disabledMinutes ? 'hour' : 'minute';
79654 }
79655 var timeStr = (0, _util2.onTimeKeydown)(e, {
79656 format: format,
79657 timeInputStr: inputStr,
79658 steps: {
79659 hour: hourStep,
79660 minute: minuteStep,
79661 second: secondStep
79662 },
79663 value: value
79664 }, unit);
79665
79666 if (!timeStr) return;
79667
79668 _this2.onInputChange(timeStr);
79669 };
79670
79671 this.onTimePanelSelect = function (value) {
79672 if (!('value' in _this2.props)) {
79673 _this2.setState({
79674 value: value,
79675 inputing: false
79676 });
79677 }
79678 if (!_this2.state.value || value.valueOf() !== _this2.state.value.valueOf()) {
79679 _this2.onValueChange(value);
79680 }
79681 };
79682
79683 this.onVisibleChange = function (visible, type) {
79684 if (!('visible' in _this2.props)) {
79685 _this2.setState({
79686 visible: visible
79687 });
79688 }
79689 _this2.props.onVisibleChange(visible, type);
79690 };
79691}, _temp);
79692TimePicker.displayName = 'TimePicker';
79693exports.default = (0, _reactLifecyclesCompat.polyfill)(TimePicker);
79694module.exports = exports['default'];
79695
79696/***/ }),
79697/* 448 */
79698/***/ (function(module, exports, __webpack_require__) {
79699
79700"use strict";
79701
79702
79703exports.__esModule = true;
79704
79705var _timeline = __webpack_require__(449);
79706
79707var _timeline2 = _interopRequireDefault(_timeline);
79708
79709var _timelineItem = __webpack_require__(450);
79710
79711var _timelineItem2 = _interopRequireDefault(_timelineItem);
79712
79713function _interopRequireDefault(obj) {
79714 return obj && obj.__esModule ? obj : { default: obj };
79715}
79716
79717_timeline2.default.Item = _timelineItem2.default;
79718
79719exports.default = _timeline2.default;
79720module.exports = exports['default'];
79721
79722/***/ }),
79723/* 449 */
79724/***/ (function(module, exports, __webpack_require__) {
79725
79726"use strict";
79727
79728
79729exports.__esModule = true;
79730
79731var _objectWithoutProperties2 = __webpack_require__(8);
79732
79733var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
79734
79735var _extends2 = __webpack_require__(1);
79736
79737var _extends3 = _interopRequireDefault(_extends2);
79738
79739var _classCallCheck2 = __webpack_require__(2);
79740
79741var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
79742
79743var _possibleConstructorReturn2 = __webpack_require__(3);
79744
79745var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
79746
79747var _inherits2 = __webpack_require__(4);
79748
79749var _inherits3 = _interopRequireDefault(_inherits2);
79750
79751var _class, _temp;
79752
79753var _react = __webpack_require__(0);
79754
79755var _react2 = _interopRequireDefault(_react);
79756
79757var _propTypes = __webpack_require__(5);
79758
79759var _propTypes2 = _interopRequireDefault(_propTypes);
79760
79761var _classnames = __webpack_require__(7);
79762
79763var _classnames2 = _interopRequireDefault(_classnames);
79764
79765var _reactLifecyclesCompat = __webpack_require__(10);
79766
79767var _util = __webpack_require__(6);
79768
79769var _configProvider = __webpack_require__(9);
79770
79771var _configProvider2 = _interopRequireDefault(_configProvider);
79772
79773var _zhCn = __webpack_require__(13);
79774
79775var _zhCn2 = _interopRequireDefault(_zhCn);
79776
79777function _interopRequireDefault(obj) {
79778 return obj && obj.__esModule ? obj : { default: obj };
79779}
79780
79781/** Timeline */
79782var Timeline = (_temp = _class = function (_Component) {
79783 (0, _inherits3.default)(Timeline, _Component);
79784
79785 function Timeline(props, context) {
79786 (0, _classCallCheck3.default)(this, Timeline);
79787
79788 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
79789
79790 _this.state = {
79791 fold: props.fold
79792 };
79793 return _this;
79794 }
79795
79796 Timeline.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
79797 var innerUpdate = prevState.innerUpdate,
79798 fold = prevState.fold;
79799
79800 if (innerUpdate) {
79801 return {
79802 fold: fold,
79803 innerUpdate: false
79804 };
79805 }
79806
79807 if ('fold' in nextProps) {
79808 return {
79809 fold: nextProps.fold
79810 };
79811 }
79812
79813 return null;
79814 };
79815
79816 Timeline.prototype.toggleFold = function toggleFold(folderIndex, total) {
79817 var fold = this.state.fold.map(function (item) {
79818 return (0, _extends3.default)({}, item);
79819 });
79820
79821 if (folderIndex) {
79822 for (var i = 0; i < fold.length; i++) {
79823 var _fold$i = fold[i],
79824 foldArea = _fold$i.foldArea,
79825 foldShow = _fold$i.foldShow;
79826
79827 if (foldArea[1] && folderIndex === foldArea[1] || !foldArea[1] && folderIndex === total - 1) {
79828 fold[i].foldShow = !foldShow;
79829 }
79830 }
79831
79832 this.setState({ fold: fold, innerUpdate: true });
79833 }
79834 };
79835
79836 Timeline.prototype.render = function render() {
79837 var _this2 = this,
79838 _classNames;
79839
79840 var _props = this.props,
79841 prefix = _props.prefix,
79842 rtl = _props.rtl,
79843 className = _props.className,
79844 children = _props.children,
79845 locale = _props.locale,
79846 animation = _props.animation,
79847 mode = _props.mode,
79848 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'rtl', 'className', 'children', 'locale', 'animation', 'mode']);
79849 var fold = this.state.fold;
79850
79851 // 修改子节点属性
79852
79853 var childrenCount = _react2.default.Children.count(children);
79854 var isAlternateMode = mode === 'alternate';
79855 var getPositionCls = function getPositionCls(idx) {
79856 if (isAlternateMode) {
79857 return idx % 2 === 0 ? prefix + 'timeline-item-left' : prefix + 'timeline-item-right';
79858 }
79859 return prefix + 'timeline-item-left';
79860 };
79861
79862 var cloneChildren = _react.Children.map(children, function (child, i) {
79863 var folderIndex = null;
79864 var foldNodeShow = false;
79865
79866 fold.forEach(function (item) {
79867 var foldArea = item.foldArea,
79868 foldShow = item.foldShow;
79869
79870 if (foldArea[0] && i >= foldArea[0] && (i <= foldArea[1] || !foldArea[1])) {
79871 folderIndex = foldArea[1] || childrenCount - 1;
79872 foldNodeShow = foldShow;
79873 }
79874 });
79875
79876 return _react2.default.cloneElement(child, {
79877 prefix: prefix,
79878 locale: locale,
79879 total: childrenCount,
79880 className: getPositionCls(i),
79881 index: i,
79882 folderIndex: folderIndex,
79883 foldShow: foldNodeShow,
79884 toggleFold: folderIndex === i ? _this2.toggleFold.bind(_this2, folderIndex, childrenCount) : function () {},
79885 animation: animation
79886 });
79887 });
79888
79889 var timelineCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'timeline'] = true, _classNames[prefix + 'alternate'] = isAlternateMode, _classNames), className);
79890
79891 if (rtl) {
79892 others.dir = 'rtl';
79893 }
79894
79895 return _react2.default.createElement('ul', (0, _extends3.default)({}, _util.obj.pickOthers(Timeline.propTypes, others), { className: timelineCls }), cloneChildren);
79896 };
79897
79898 return Timeline;
79899}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
79900 /**
79901 * 样式的品牌前缀
79902 */
79903 prefix: _propTypes2.default.string,
79904 rtl: _propTypes2.default.bool,
79905 /**
79906 * 自定义折叠选项 示例`[{foldArea: [startIndex, endIndex], foldShow: boolean}]`
79907 */
79908 fold: _propTypes2.default.array,
79909 /**
79910 * 自定义类名
79911 */
79912 className: _propTypes2.default.string,
79913 children: _propTypes2.default.any,
79914 locale: _propTypes2.default.object,
79915 animation: _propTypes2.default.bool,
79916 /**
79917 * 展示的模式
79918 * @enumdesc 左, 交错显示
79919 * @version 1.23.18
79920 */
79921 mode: _propTypes2.default.oneOf(['left', 'alternate'])
79922}), _class.defaultProps = {
79923 prefix: 'next-',
79924 rtl: false,
79925 fold: [],
79926 locale: _zhCn2.default.Timeline,
79927 animation: true,
79928 mode: 'left'
79929}, _temp);
79930Timeline.displayName = 'Timeline';
79931exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Timeline));
79932module.exports = exports['default'];
79933
79934/***/ }),
79935/* 450 */
79936/***/ (function(module, exports, __webpack_require__) {
79937
79938"use strict";
79939
79940
79941exports.__esModule = true;
79942
79943var _extends2 = __webpack_require__(1);
79944
79945var _extends3 = _interopRequireDefault(_extends2);
79946
79947var _objectWithoutProperties2 = __webpack_require__(8);
79948
79949var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
79950
79951var _classCallCheck2 = __webpack_require__(2);
79952
79953var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
79954
79955var _possibleConstructorReturn2 = __webpack_require__(3);
79956
79957var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
79958
79959var _inherits2 = __webpack_require__(4);
79960
79961var _inherits3 = _interopRequireDefault(_inherits2);
79962
79963var _class, _temp2;
79964
79965var _react = __webpack_require__(0);
79966
79967var _react2 = _interopRequireDefault(_react);
79968
79969var _propTypes = __webpack_require__(5);
79970
79971var _propTypes2 = _interopRequireDefault(_propTypes);
79972
79973var _classnames = __webpack_require__(7);
79974
79975var _classnames2 = _interopRequireDefault(_classnames);
79976
79977var _configProvider = __webpack_require__(9);
79978
79979var _configProvider2 = _interopRequireDefault(_configProvider);
79980
79981var _animate = __webpack_require__(20);
79982
79983var _animate2 = _interopRequireDefault(_animate);
79984
79985var _icon = __webpack_require__(11);
79986
79987var _icon2 = _interopRequireDefault(_icon);
79988
79989var _button = __webpack_require__(17);
79990
79991var _button2 = _interopRequireDefault(_button);
79992
79993var _util = __webpack_require__(6);
79994
79995function _interopRequireDefault(obj) {
79996 return obj && obj.__esModule ? obj : { default: obj };
79997}
79998
79999var Expand = _animate2.default.Expand;
80000/** Timeline.Item */
80001
80002var TimelineItem = (_temp2 = _class = function (_Component) {
80003 (0, _inherits3.default)(TimelineItem, _Component);
80004
80005 function TimelineItem() {
80006 var _temp, _this, _ret;
80007
80008 (0, _classCallCheck3.default)(this, TimelineItem);
80009
80010 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
80011 args[_key] = arguments[_key];
80012 }
80013
80014 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.beforeEnter = function () {
80015 _this['timeline-item'].style['min-height'] = 'auto';
80016 }, _this.beforeLeave = function () {
80017 _this['timeline-item'].style['min-height'] = '48px'; // timeleft 节点最小高度
80018 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
80019 }
80020
80021 TimelineItem.prototype.toggleFold = function toggleFold(folderIndex) {
80022 this.props.toggleFold(folderIndex);
80023 };
80024
80025 TimelineItem.prototype.render = function render() {
80026 var _classNames,
80027 _classNames2,
80028 _classNames3,
80029 _classNames4,
80030 _this2 = this;
80031
80032 var _props = this.props,
80033 prefix = _props.prefix,
80034 className = _props.className,
80035 state = _props.state,
80036 icon = _props.icon,
80037 dot = _props.dot,
80038 time = _props.time,
80039 title = _props.title,
80040 timeLeft = _props.timeLeft,
80041 content = _props.content,
80042 index = _props.index,
80043 total = _props.total,
80044 folderIndex = _props.folderIndex,
80045 foldShow = _props.foldShow,
80046 locale = _props.locale,
80047 animation = _props.animation,
80048 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'state', 'icon', 'dot', 'time', 'title', 'timeLeft', 'content', 'index', 'total', 'folderIndex', 'foldShow', 'locale', 'animation']);
80049
80050 var finalItemNode = dot ? dot : icon ? _react2.default.createElement('span', { className: prefix + 'timeline-item-icon' }, _react2.default.createElement(_icon2.default, { type: icon, size: 'xs' })) : _react2.default.createElement('span', { className: prefix + 'timeline-item-dot' });
80051 var itemCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'timeline-item'] = true, _classNames[prefix + 'timeline-item-first'] = index === 0, _classNames[prefix + 'timeline-item-last'] = index === total - 1, _classNames[prefix + 'timeline-item-' + state] = state, _classNames[prefix + 'timeline-item-folded'] = folderIndex, _classNames[prefix + 'timeline-item-unfolded'] = foldShow, _classNames[prefix + 'timeline-item-has-left-content'] = timeLeft, _classNames[className] = className, _classNames));
80052 var folderCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'timeline-item-folder'] = true, _classNames2[prefix + 'timeline-item-has-left-content'] = timeLeft, _classNames2));
80053 var itemNodeCls = (0, _classnames2.default)((_classNames3 = {}, _classNames3[prefix + 'timeline-item-node'] = true, _classNames3[prefix + 'timeline-item-node-custom'] = dot, _classNames3));
80054 var dotTailCls = (0, _classnames2.default)((_classNames4 = {}, _classNames4[prefix + 'timeline-item-dot-tail'] = true, _classNames4[prefix + 'timeline-item-dot-tail-solid'] = foldShow, _classNames4[prefix + 'timeline-hide'] = index === total - 1 && foldShow, _classNames4));
80055
80056 var renderTimeLineItemContent = function renderTimeLineItemContent(isLeft) {
80057 if (isLeft) return _react2.default.createElement('p', { className: prefix + 'timeline-item-body' }, timeLeft);
80058 return _react2.default.createElement(_react2.default.Fragment, null, _react2.default.createElement('div', { className: prefix + 'timeline-item-title' }, title), _react2.default.createElement('div', { className: prefix + 'timeline-item-body' }, content), _react2.default.createElement('div', { className: prefix + 'timeline-item-time' }, time));
80059 };
80060
80061 var buttonProps = {
80062 text: true,
80063 size: 'small',
80064 type: 'primary',
80065 onClick: this.toggleFold.bind(this, folderIndex, total)
80066 };
80067 var timelineNode = folderIndex && foldShow || !folderIndex ? _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(TimelineItem.propTypes, others), {
80068 className: itemCls,
80069 ref: function ref(e) {
80070 _this2['timeline-item'] = e;
80071 }
80072 }), _react2.default.createElement('div', { className: prefix + 'timeline-item-left-content' }, renderTimeLineItemContent(className.includes(prefix + 'timeline-item-left'))), _react2.default.createElement('div', { className: prefix + 'timeline-item-timeline' }, _react2.default.createElement('div', { className: prefix + 'timeline-item-tail' }, _react2.default.createElement('i', null)), _react2.default.createElement('div', { className: itemNodeCls }, finalItemNode)), _react2.default.createElement('div', { className: prefix + 'timeline-item-content' }, renderTimeLineItemContent(!className.includes(prefix + 'timeline-item-left')))) : null;
80073 return _react2.default.createElement('li', { tabIndex: '0' }, animation && folderIndex ? _react2.default.createElement(Expand, {
80074 animationAppear: false,
80075 beforeEnter: this.beforeEnter,
80076 beforeLeave: this.beforeEnter,
80077 afterEnter: this.beforeLeave
80078 }, timelineNode) : timelineNode, folderIndex === index ? _react2.default.createElement('div', { className: folderCls }, _react2.default.createElement('div', { className: dotTailCls }), foldShow ? _react2.default.createElement(_button2.default, buttonProps, locale.fold, _react2.default.createElement(_icon2.default, { type: 'arrow-up' })) : _react2.default.createElement(_button2.default, buttonProps, locale.expand, _react2.default.createElement(_icon2.default, { type: 'arrow-down' }))) : null);
80079 };
80080
80081 return TimelineItem;
80082}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
80083 prefix: _propTypes2.default.string,
80084 index: _propTypes2.default.number,
80085 total: _propTypes2.default.number,
80086 folderIndex: _propTypes2.default.number,
80087 foldShow: _propTypes2.default.bool,
80088 /**
80089 * 节点状态
80090 */
80091 state: _propTypes2.default.oneOf(['done', 'process', 'error', 'success']),
80092 /**
80093 * 图标
80094 */
80095 icon: _propTypes2.default.string,
80096 /**
80097 * 自定义时间轴节点
80098 */
80099 dot: _propTypes2.default.node,
80100 /**
80101 * 格式化后的时间
80102 */
80103 time: _propTypes2.default.node,
80104 /**
80105 * 标题
80106 */
80107 title: _propTypes2.default.node,
80108 /**
80109 * 左侧时间
80110 */
80111 timeLeft: _propTypes2.default.node,
80112 /**
80113 * 右侧内容
80114 */
80115 content: _propTypes2.default.node,
80116 toggleFold: _propTypes2.default.func,
80117 className: _propTypes2.default.string,
80118 locale: _propTypes2.default.object,
80119 /**
80120 * 动画
80121 */
80122 animation: _propTypes2.default.bool
80123}), _class.defaultProps = {
80124 prefix: 'next-',
80125 state: 'done',
80126 toggleFold: function toggleFold() {},
80127 animation: true
80128}, _temp2);
80129TimelineItem.displayName = 'TimelineItem';
80130exports.default = TimelineItem;
80131module.exports = exports['default'];
80132
80133/***/ }),
80134/* 451 */
80135/***/ (function(module, exports, __webpack_require__) {
80136
80137"use strict";
80138
80139
80140exports.__esModule = true;
80141
80142var _transfer = __webpack_require__(452);
80143
80144var _transfer2 = _interopRequireDefault(_transfer);
80145
80146function _interopRequireDefault(obj) {
80147 return obj && obj.__esModule ? obj : { default: obj };
80148}
80149
80150exports.default = _transfer2.default;
80151module.exports = exports['default'];
80152
80153/***/ }),
80154/* 452 */
80155/***/ (function(module, exports, __webpack_require__) {
80156
80157"use strict";
80158
80159
80160exports.__esModule = true;
80161
80162var _extends2 = __webpack_require__(1);
80163
80164var _extends3 = _interopRequireDefault(_extends2);
80165
80166var _classCallCheck2 = __webpack_require__(2);
80167
80168var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
80169
80170var _possibleConstructorReturn2 = __webpack_require__(3);
80171
80172var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
80173
80174var _inherits2 = __webpack_require__(4);
80175
80176var _inherits3 = _interopRequireDefault(_inherits2);
80177
80178var _class, _temp;
80179
80180var _react = __webpack_require__(0);
80181
80182var _react2 = _interopRequireDefault(_react);
80183
80184var _classnames = __webpack_require__(7);
80185
80186var _classnames2 = _interopRequireDefault(_classnames);
80187
80188var _propTypes = __webpack_require__(5);
80189
80190var _propTypes2 = _interopRequireDefault(_propTypes);
80191
80192var _reactLifecyclesCompat = __webpack_require__(10);
80193
80194var _icon = __webpack_require__(11);
80195
80196var _icon2 = _interopRequireDefault(_icon);
80197
80198var _button = __webpack_require__(17);
80199
80200var _button2 = _interopRequireDefault(_button);
80201
80202var _zhCn = __webpack_require__(13);
80203
80204var _zhCn2 = _interopRequireDefault(_zhCn);
80205
80206var _util = __webpack_require__(6);
80207
80208var _configProvider = __webpack_require__(9);
80209
80210var _configProvider2 = _interopRequireDefault(_configProvider);
80211
80212var _transferPanel = __webpack_require__(453);
80213
80214var _transferPanel2 = _interopRequireDefault(_transferPanel);
80215
80216function _interopRequireDefault(obj) {
80217 return obj && obj.__esModule ? obj : { default: obj };
80218}
80219
80220var config = _configProvider2.default.config;
80221var bindCtx = _util.func.bindCtx;
80222var pickOthers = _util.obj.pickOthers;
80223
80224var getLeftValue = function getLeftValue(dataSource, rightValue) {
80225 return dataSource.map(function (item) {
80226 return item.value;
80227 }).filter(function (itemValue) {
80228 return rightValue.indexOf(itemValue) === -1;
80229 });
80230};
80231
80232var filterCheckedValue = function filterCheckedValue(left, right, dataSource) {
80233 var result = {
80234 left: [],
80235 right: []
80236 };
80237
80238 if (left.length || right.length) {
80239 var value = dataSource.map(function (item) {
80240 return item.value;
80241 });
80242 value.forEach(function (itemValue) {
80243 if (left.indexOf(itemValue) > -1) {
80244 result.left.push(itemValue);
80245 } else if (right.indexOf(itemValue) > -1) {
80246 result.right.push(itemValue);
80247 }
80248 });
80249 }
80250
80251 return result;
80252};
80253
80254/**
80255 * Transfer
80256 */
80257var Transfer = (_temp = _class = function (_Component) {
80258 (0, _inherits3.default)(Transfer, _Component);
80259
80260 Transfer.normalizeValue = function normalizeValue(value) {
80261 if (value) {
80262 if (Array.isArray(value)) {
80263 return value;
80264 }
80265 /* istanbul ignore next */
80266 return [value];
80267 }
80268
80269 return [];
80270 };
80271
80272 Transfer.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
80273 var innerUpdate = prevState.innerUpdate,
80274 value = prevState.value,
80275 leftValue = prevState.leftValue;
80276
80277 if (innerUpdate) {
80278 return {
80279 innerUpdate: false,
80280 value: value,
80281 leftValue: leftValue
80282 };
80283 }
80284 var st = {};
80285
80286 var newValue = void 0;
80287 if ('value' in nextProps) {
80288 var _value = Transfer.normalizeValue(nextProps.value);
80289 st.value = _value;
80290 newValue = _value;
80291 } else {
80292 /* istanbul ignore next */
80293 newValue = prevState.value;
80294 }
80295 st.leftValue = getLeftValue(nextProps.dataSource, newValue);
80296
80297 var _filterCheckedValue = filterCheckedValue(prevState.leftCheckedValue, prevState.rightCheckedValue, nextProps.dataSource),
80298 left = _filterCheckedValue.left,
80299 right = _filterCheckedValue.right;
80300
80301 st.leftCheckedValue = left;
80302 st.rightCheckedValue = right;
80303
80304 return st;
80305 };
80306
80307 function Transfer(props, context) {
80308 (0, _classCallCheck3.default)(this, Transfer);
80309
80310 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
80311
80312 var value = props.value,
80313 defaultValue = props.defaultValue,
80314 defaultLeftChecked = props.defaultLeftChecked,
80315 defaultRightChecked = props.defaultRightChecked,
80316 dataSource = props.dataSource,
80317 rtl = props.rtl,
80318 operations = props.operations;
80319
80320 if (operations.length === 0) {
80321 operations.push(_react2.default.createElement(_icon2.default, { rtl: rtl, type: 'arrow-right' }));
80322 operations.push(_react2.default.createElement(_icon2.default, { rtl: rtl, type: 'arrow-left' }));
80323 }
80324
80325 var _filterCheckedValue2 = filterCheckedValue(Transfer.normalizeValue(defaultLeftChecked), Transfer.normalizeValue(defaultRightChecked), dataSource),
80326 left = _filterCheckedValue2.left,
80327 right = _filterCheckedValue2.right;
80328
80329 var stValue = Transfer.normalizeValue('value' in props ? value : defaultValue);
80330 _this.state = {
80331 value: stValue,
80332 leftCheckedValue: left,
80333 rightCheckedValue: right,
80334 leftValue: getLeftValue(dataSource, stValue)
80335 };
80336
80337 bindCtx(_this, ['handlePanelChange', 'handlePanelSort', 'handleMoveItem', 'handleSimpleMove', 'handleSimpleMoveAll']);
80338 return _this;
80339 }
80340
80341 Transfer.prototype.groupDatasource = function groupDatasource(value, itemValues, dataSource) {
80342 return value.reduce(function (ret, itemValue) {
80343 var index = itemValues.indexOf(itemValue);
80344 if (index > -1) {
80345 ret.push(dataSource[index]);
80346 }
80347 return ret;
80348 }, []);
80349 };
80350
80351 Transfer.prototype.handlePanelChange = function handlePanelChange(position, value) {
80352 var _setState;
80353
80354 var _state = this.state,
80355 leftCheckedValue = _state.leftCheckedValue,
80356 rightCheckedValue = _state.rightCheckedValue;
80357 var onSelect = this.props.onSelect;
80358
80359 var valuePropName = position === 'left' ? 'leftCheckedValue' : 'rightCheckedValue';
80360 // inner state changed
80361 this.setState((_setState = {
80362 innerUpdate: true
80363 }, _setState[valuePropName] = value, _setState));
80364 onSelect && onSelect(position === 'left' ? value : leftCheckedValue, position === 'left' ? rightCheckedValue : value, position === 'left' ? 'source' : 'target');
80365 };
80366
80367 Transfer.prototype.handlePanelSort = function handlePanelSort(position, dragValue, referenceValue, dragGap) {
80368 var _this2 = this;
80369
80370 var _state2 = this.state,
80371 value = _state2.value,
80372 leftValue = _state2.leftValue;
80373
80374 var newValue = position === 'right' ? value : leftValue;
80375 var currentIndex = newValue.indexOf(dragValue);
80376 var referenceIndex = newValue.indexOf(referenceValue);
80377 var expectIndex = dragGap === 'before' ? referenceIndex : referenceIndex + 1;
80378 if (currentIndex === expectIndex) {
80379 return;
80380 }
80381
80382 newValue.splice(currentIndex, 1);
80383 if (currentIndex < expectIndex) {
80384 expectIndex = expectIndex - 1;
80385 }
80386 newValue.splice(expectIndex, 0, dragValue);
80387 this.setState({
80388 innerUpdate: true,
80389 value: value,
80390 leftValue: leftValue
80391 }, function () {
80392 _this2.props.onSort(newValue, position);
80393 });
80394 };
80395
80396 Transfer.prototype.handleMoveItem = function handleMoveItem(direction) {
80397 var _st;
80398
80399 var rightValue = void 0;
80400 var newLeftValue = void 0;
80401 var movedValue = void 0;
80402 var valuePropName = void 0;
80403
80404 var _state3 = this.state,
80405 value = _state3.value,
80406 leftValue = _state3.leftValue,
80407 leftCheckedValue = _state3.leftCheckedValue,
80408 rightCheckedValue = _state3.rightCheckedValue;
80409
80410 if (direction === 'right') {
80411 rightValue = leftCheckedValue.concat(value);
80412 newLeftValue = leftValue.filter(function (itemValue) {
80413 return leftCheckedValue.indexOf(itemValue) === -1;
80414 });
80415 movedValue = leftCheckedValue;
80416 valuePropName = 'leftCheckedValue';
80417 } else {
80418 rightValue = value.filter(function (itemValue) {
80419 return rightCheckedValue.indexOf(itemValue) === -1;
80420 });
80421 newLeftValue = rightCheckedValue.concat(leftValue);
80422 movedValue = rightCheckedValue;
80423 valuePropName = 'rightCheckedValue';
80424 }
80425
80426 var st = (_st = {}, _st[valuePropName] = [], _st);
80427
80428 this.setValueState(st, rightValue, newLeftValue, movedValue, direction);
80429 };
80430
80431 Transfer.prototype.handleSimpleMove = function handleSimpleMove(direction, v) {
80432 var rightValue = void 0;
80433 var newLeftValue = void 0;
80434
80435 var _state4 = this.state,
80436 value = _state4.value,
80437 leftValue = _state4.leftValue;
80438
80439 if (direction === 'right') {
80440 rightValue = [v].concat(value);
80441 newLeftValue = leftValue.filter(function (itemValue) {
80442 return itemValue !== v;
80443 });
80444 } else {
80445 rightValue = value.filter(function (itemValue) {
80446 return itemValue !== v;
80447 });
80448 newLeftValue = [v].concat(leftValue);
80449 }
80450
80451 this.setValueState({}, rightValue, newLeftValue, [v], direction);
80452 };
80453
80454 Transfer.prototype.handleSimpleMoveAll = function handleSimpleMoveAll(direction) {
80455 var rightValue = void 0;
80456 var newLeftValue = void 0;
80457 var movedValue = void 0;
80458
80459 var dataSource = this.props.dataSource;
80460 var _state5 = this.state,
80461 value = _state5.value,
80462 leftValue = _state5.leftValue;
80463
80464 var disabledValue = dataSource.reduce(function (ret, item) {
80465 if (item.disabled) {
80466 ret.push(item.value);
80467 }
80468
80469 return ret;
80470 }, []);
80471
80472 if (direction === 'right') {
80473 movedValue = leftValue.filter(function (itemValue) {
80474 return disabledValue.indexOf(itemValue) === -1;
80475 });
80476 rightValue = movedValue.concat(value);
80477 newLeftValue = leftValue.filter(function (itemValue) {
80478 return disabledValue.indexOf(itemValue) > -1;
80479 });
80480 } else {
80481 movedValue = value.filter(function (itemValue) {
80482 return disabledValue.indexOf(itemValue) === -1;
80483 });
80484 rightValue = value.filter(function (itemValue) {
80485 return disabledValue.indexOf(itemValue) > -1;
80486 });
80487 newLeftValue = movedValue.concat(leftValue);
80488 }
80489
80490 this.setValueState({}, rightValue, newLeftValue, movedValue, direction);
80491 };
80492
80493 // eslint-disable-next-line max-params
80494
80495
80496 Transfer.prototype.setValueState = function setValueState(st, rightValue, leftValue, movedValue, direction) {
80497 var _this3 = this;
80498
80499 var dataSource = this.props.dataSource;
80500
80501 var callback = function callback() {
80502 if ('onChange' in _this3.props) {
80503 var itemValues = dataSource.map(function (item) {
80504 return item.value;
80505 });
80506 var rightData = _this3.groupDatasource(rightValue, itemValues, dataSource);
80507 var leftData = _this3.groupDatasource(leftValue, itemValues, dataSource);
80508 var movedData = _this3.groupDatasource(movedValue, itemValues, dataSource);
80509
80510 _this3.props.onChange(rightValue, rightData, {
80511 leftValue: leftValue,
80512 leftData: leftData,
80513 movedValue: movedValue,
80514 movedData: movedData,
80515 direction: direction
80516 });
80517 }
80518 };
80519
80520 if (!('value' in this.props)) {
80521 st.value = rightValue;
80522 st.leftValue = leftValue;
80523 }
80524
80525 if (Object.keys(st).length) {
80526 this.setState(st, callback);
80527 } else {
80528 // eslint-disable-next-line callback-return
80529 callback();
80530 }
80531 };
80532
80533 Transfer.prototype.renderCenter = function renderCenter() {
80534 var _props = this.props,
80535 prefix = _props.prefix,
80536 mode = _props.mode,
80537 operations = _props.operations,
80538 disabled = _props.disabled,
80539 leftDisabled = _props.leftDisabled,
80540 rightDisabled = _props.rightDisabled,
80541 locale = _props.locale;
80542 var _state6 = this.state,
80543 leftCheckedValue = _state6.leftCheckedValue,
80544 rightCheckedValue = _state6.rightCheckedValue;
80545
80546 return _react2.default.createElement('div', { className: prefix + 'transfer-operations' }, mode === 'simple' ? _react2.default.createElement(_icon2.default, { className: prefix + 'transfer-move', size: 'large', type: 'switch' }) : [_react2.default.createElement(_button2.default, {
80547 'aria-label': locale.moveToRight,
80548 key: 'l2r',
80549 className: prefix + 'transfer-operation',
80550 type: leftCheckedValue.length ? 'primary' : 'normal',
80551 disabled: leftDisabled || disabled || !leftCheckedValue.length,
80552 onClick: this.handleMoveItem.bind(this, 'right')
80553 }, operations[0]), _react2.default.createElement(_button2.default, {
80554 'aria-label': locale.moveToLeft,
80555 key: 'r2l',
80556 className: prefix + 'transfer-operation',
80557 type: rightCheckedValue.length ? 'primary' : 'normal',
80558 disabled: rightDisabled || disabled || !rightCheckedValue.length,
80559 onClick: this.handleMoveItem.bind(this, 'left')
80560 }, operations[1])]);
80561 };
80562
80563 Transfer.prototype.render = function render() {
80564 var _props2 = this.props,
80565 prefix = _props2.prefix,
80566 mode = _props2.mode,
80567 disabled = _props2.disabled,
80568 className = _props2.className,
80569 dataSource = _props2.dataSource,
80570 locale = _props2.locale,
80571 _props2$showSearch = _props2.showSearch,
80572 showSearch = _props2$showSearch === undefined ? false : _props2$showSearch,
80573 _props2$searchProps = _props2.searchProps,
80574 searchProps = _props2$searchProps === undefined ? {} : _props2$searchProps,
80575 filter = _props2.filter,
80576 onSearch = _props2.onSearch,
80577 leftDisabled = _props2.leftDisabled,
80578 rightDisabled = _props2.rightDisabled,
80579 searchPlaceholder = _props2.searchPlaceholder,
80580 notFoundContent = _props2.notFoundContent,
80581 titles = _props2.titles,
80582 listClassName = _props2.listClassName,
80583 listStyle = _props2.listStyle,
80584 itemRender = _props2.itemRender,
80585 sortable = _props2.sortable,
80586 useVirtual = _props2.useVirtual,
80587 rtl = _props2.rtl,
80588 id = _props2.id,
80589 children = _props2.children,
80590 showCheckAll = _props2.showCheckAll;
80591 var _state7 = this.state,
80592 value = _state7.value,
80593 leftValue = _state7.leftValue,
80594 leftCheckedValue = _state7.leftCheckedValue,
80595 rightCheckedValue = _state7.rightCheckedValue;
80596
80597 var itemValues = dataSource.map(function (item) {
80598 return item.value;
80599 });
80600 var leftDatasource = this.groupDatasource(leftValue, itemValues, dataSource);
80601 var rightDatasource = this.groupDatasource(value, itemValues, dataSource);
80602 var panelProps = {
80603 prefix: prefix,
80604 mode: mode,
80605 locale: locale,
80606 filter: filter,
80607 onSearch: onSearch,
80608 searchPlaceholder: searchPlaceholder,
80609 listClassName: listClassName,
80610 listStyle: listStyle,
80611 itemRender: itemRender,
80612 onMove: this.handleSimpleMove,
80613 onMoveAll: this.handleSimpleMoveAll,
80614 onChange: this.handlePanelChange,
80615 sortable: sortable,
80616 useVirtual: useVirtual,
80617 onSort: this.handlePanelSort,
80618 baseId: id,
80619 customerList: children,
80620 showCheckAll: showCheckAll
80621 };
80622 var others = pickOthers(Object.keys(Transfer.propTypes), this.props);
80623
80624 if (rtl) {
80625 others.dir = 'rtl';
80626 }
80627 var _showSearch = Array.isArray(showSearch) ? showSearch : [showSearch, showSearch];
80628 var _searchProps = Array.isArray(searchProps) ? searchProps : [searchProps, searchProps];
80629 var _notFoundContent = Array.isArray(notFoundContent) ? notFoundContent : [notFoundContent, notFoundContent];
80630 return _react2.default.createElement('div', (0, _extends3.default)({ className: (0, _classnames2.default)(prefix + 'transfer', className), id: id }, others), _react2.default.createElement(_transferPanel2.default, (0, _extends3.default)({}, panelProps, {
80631 position: 'left',
80632 dataSource: leftDatasource,
80633 disabled: leftDisabled || disabled,
80634 value: leftCheckedValue,
80635 showSearch: _showSearch[0],
80636 searchProps: _searchProps[0],
80637 notFoundContent: _notFoundContent[0],
80638 title: titles[0]
80639 })), this.renderCenter(), _react2.default.createElement(_transferPanel2.default, (0, _extends3.default)({}, panelProps, {
80640 position: 'right',
80641 dataSource: rightDatasource,
80642 disabled: rightDisabled || disabled,
80643 value: rightCheckedValue,
80644 showSearch: _showSearch[1],
80645 searchProps: _searchProps[1],
80646 notFoundContent: _notFoundContent[1],
80647 title: titles[1]
80648 })));
80649 };
80650
80651 return Transfer;
80652}(_react.Component), _class.contextTypes = {
80653 prefix: _propTypes2.default.string
80654}, _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
80655 prefix: _propTypes2.default.string,
80656 pure: _propTypes2.default.bool,
80657 rtl: _propTypes2.default.bool,
80658 className: _propTypes2.default.string,
80659 /**
80660 * 移动选项模式
80661 */
80662 mode: _propTypes2.default.oneOf(['normal', 'simple']),
80663 /**
80664 * 数据源
80665 */
80666 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
80667 /**
80668 * (用于受控)当前值
80669 */
80670 value: _propTypes2.default.arrayOf(_propTypes2.default.string),
80671 /**
80672 * (用于非受控)初始值
80673 */
80674 defaultValue: _propTypes2.default.arrayOf(_propTypes2.default.string),
80675 /**
80676 * 值发生改变的时候触发的回调函数
80677 * @param {Array} value 右面板值
80678 * @param {Array} data 右面板数据
80679 * @param {Object} extra 额外参数
80680 * @param {Array} extra.leftValue 左面板值
80681 * @param {Array} extra.leftData 左面板数据
80682 * @param {Array} extra.movedValue 发生移动的值
80683 * @param {Object} extra.movedData 发生移动的数据
80684 * @param {String} extra.direction 移动的方向,值为'left'或'right'
80685 */
80686 onChange: _propTypes2.default.func,
80687 /**
80688 * Item 被选中的时候触发的回调函数
80689 * @param {Array} sourceSelectedValue 源面板选中的 Item 列表
80690 * @param {Array} targetSelectedValue 目标面板选中的 Item 列表
80691 * @param {String} trigger 触发面板,值为'source'或'target'
80692 */
80693 onSelect: _propTypes2.default.func,
80694 /**
80695 * 是否禁用
80696 */
80697 disabled: _propTypes2.default.bool,
80698 /**
80699 * 是否禁用左侧面板
80700 */
80701 leftDisabled: _propTypes2.default.bool,
80702 /**
80703 * 是否禁用右侧面板
80704 */
80705 rightDisabled: _propTypes2.default.bool,
80706 /**
80707 * 列表项渲染函数
80708 * @param {Object} data 数据
80709 * @return {ReactNode} 列表项内容
80710 */
80711 itemRender: _propTypes2.default.func,
80712 /**
80713 * 自定义搜索函数
80714 * @param {String} searchedValue 搜索的内容
80715 * @param {Object} data 数据
80716 * @return {Boolean} 是否匹配到
80717 * @default 根据 label 属性匹配
80718 */
80719 filter: _propTypes2.default.func,
80720 /**
80721 * 搜索框输入时触发的回调函数
80722 * @param {String} searchedValue 搜索的内容
80723 * @param {String} position 搜索面板的位置
80724 */
80725 onSearch: _propTypes2.default.func,
80726 /**
80727 * 搜索框占位符
80728 */
80729 searchPlaceholder: _propTypes2.default.string,
80730 /**
80731 * 左右面板是否显示搜索框
80732 */
80733 showSearch: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.arrayOf(_propTypes2.default.bool)]),
80734 /**
80735 * 左右面板搜索框配置项,同 Search 组件 props
80736 */
80737 searchProps: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.object)]),
80738 /**
80739 * 列表为空显示内容
80740 */
80741 notFoundContent: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.arrayOf(_propTypes2.default.node)]),
80742 /**
80743 * 左右面板标题
80744 */
80745 titles: _propTypes2.default.arrayOf(_propTypes2.default.node),
80746 /**
80747 * 向右向左移动按钮显示内容
80748 * @default [<Icon type="arrow-right" />, <Icon type="arrow-left" />]
80749 */
80750 operations: _propTypes2.default.arrayOf(_propTypes2.default.node),
80751 /**
80752 * 左面板默认选中值
80753 */
80754 defaultLeftChecked: _propTypes2.default.arrayOf(_propTypes2.default.string),
80755 /**
80756 * 右面板默认选中值
80757 */
80758 defaultRightChecked: _propTypes2.default.arrayOf(_propTypes2.default.string),
80759 /**
80760 * 左右面板列表自定义样式类名
80761 */
80762 listClassName: _propTypes2.default.string,
80763 /**
80764 * 左右面板列表自定义样式对象
80765 */
80766 listStyle: _propTypes2.default.object,
80767 /**
80768 * 是否允许拖拽排序
80769 */
80770 sortable: _propTypes2.default.bool,
80771 /**
80772 * 拖拽排序时触发的回调函数
80773 * @param {Array} value 排序后的值
80774 * @param {String} position 拖拽的面板位置,值为:left 或 right
80775 */
80776 onSort: _propTypes2.default.func,
80777 /**
80778 * 自定义国际化文案对象
80779 */
80780 locale: _propTypes2.default.object,
80781 /**
80782 * 请设置 id 以保证transfer的可访问性
80783 */
80784 id: _propTypes2.default.string,
80785 /**
80786 * 接收 children 自定义渲染列表
80787 */
80788 children: _propTypes2.default.func,
80789 /**
80790 * 是否开启虚拟滚动
80791 */
80792 useVirtual: _propTypes2.default.bool,
80793 /**
80794 * 是否显示底部全选 checkbox
80795 */
80796 showCheckAll: _propTypes2.default.bool
80797}), _class.defaultProps = {
80798 prefix: 'next-',
80799 pure: false,
80800 mode: 'normal',
80801 dataSource: [],
80802 defaultValue: [],
80803 disabled: false,
80804 leftDisabled: false,
80805 rightDisabled: false,
80806 showCheckAll: true,
80807 itemRender: function itemRender(data) {
80808 return data.label;
80809 },
80810 showSearch: false,
80811 filter: function filter(searchedValue, data) {
80812 var labelString = '';
80813 var loop = function loop(arg) {
80814 if (_react2.default.isValidElement(arg) && arg.props.children) {
80815 _react2.default.Children.forEach(arg.props.children, loop);
80816 } else if (typeof arg === 'string') {
80817 labelString += arg;
80818 }
80819 };
80820 loop(data.label);
80821
80822 return labelString.length >= searchedValue.length && labelString.indexOf(searchedValue) > -1;
80823 },
80824 onSearch: function onSearch() {},
80825 notFoundContent: 'Not Found',
80826 titles: [],
80827 operations: [],
80828 defaultLeftChecked: [],
80829 defaultRightChecked: [],
80830 sortable: false,
80831 onSort: function onSort() {},
80832 locale: _zhCn2.default.Transfer
80833}, _temp);
80834Transfer.displayName = 'Transfer';
80835exports.default = config((0, _reactLifecyclesCompat.polyfill)(Transfer));
80836module.exports = exports['default'];
80837
80838/***/ }),
80839/* 453 */
80840/***/ (function(module, exports, __webpack_require__) {
80841
80842"use strict";
80843
80844
80845exports.__esModule = true;
80846exports.default = undefined;
80847
80848var _extends2 = __webpack_require__(1);
80849
80850var _extends3 = _interopRequireDefault(_extends2);
80851
80852var _classCallCheck2 = __webpack_require__(2);
80853
80854var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
80855
80856var _possibleConstructorReturn2 = __webpack_require__(3);
80857
80858var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
80859
80860var _inherits2 = __webpack_require__(4);
80861
80862var _inherits3 = _interopRequireDefault(_inherits2);
80863
80864var _class, _temp;
80865
80866var _react = __webpack_require__(0);
80867
80868var _react2 = _interopRequireDefault(_react);
80869
80870var _propTypes = __webpack_require__(5);
80871
80872var _propTypes2 = _interopRequireDefault(_propTypes);
80873
80874var _classnames = __webpack_require__(7);
80875
80876var _classnames2 = _interopRequireDefault(_classnames);
80877
80878var _checkbox = __webpack_require__(49);
80879
80880var _checkbox2 = _interopRequireDefault(_checkbox);
80881
80882var _search = __webpack_require__(179);
80883
80884var _search2 = _interopRequireDefault(_search);
80885
80886var _menu = __webpack_require__(16);
80887
80888var _menu2 = _interopRequireDefault(_menu);
80889
80890var _util = __webpack_require__(6);
80891
80892var _transferItem = __webpack_require__(454);
80893
80894var _transferItem2 = _interopRequireDefault(_transferItem);
80895
80896var _virtualList = __webpack_require__(51);
80897
80898var _virtualList2 = _interopRequireDefault(_virtualList);
80899
80900function _interopRequireDefault(obj) {
80901 return obj && obj.__esModule ? obj : { default: obj };
80902}
80903
80904var bindCtx = _util.func.bindCtx;
80905var TransferPanel = (_temp = _class = function (_Component) {
80906 (0, _inherits3.default)(TransferPanel, _Component);
80907
80908 function TransferPanel(props, context) {
80909 (0, _classCallCheck3.default)(this, TransferPanel);
80910
80911 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
80912
80913 _this.state = {
80914 searchedValue: '',
80915 dragValue: null,
80916 dragOverValue: null
80917 };
80918 _this.footerId = props.baseId ? _util.htmlId.escapeForId(props.baseId + '-panel-footer-' + props.position) : '';
80919 _this.headerId = props.baseId ? _util.htmlId.escapeForId(props.baseId + '-panel-header-' + props.position) : '';
80920
80921 bindCtx(_this, ['handleCheck', 'handleAllCheck', 'handleSearch', 'handleItemDragStart', 'handleItemDragOver', 'handleItemDragEnd', 'handleItemDrop', 'getListDOM']);
80922 _this.firstRender = true;
80923 return _this;
80924 }
80925
80926 TransferPanel.prototype.componentDidMount = function componentDidMount() {
80927 this.firstRender = false;
80928 };
80929
80930 TransferPanel.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
80931 if (prevProps.dataSource.length !== this.props.dataSource.length && this.list) {
80932 if (this.list.scrollTop > 0) {
80933 this.list.scrollTop = 0;
80934 }
80935 }
80936
80937 this.searched = false;
80938 };
80939
80940 TransferPanel.prototype.getListDOM = function getListDOM(ref) {
80941 this.list = ref;
80942 };
80943
80944 TransferPanel.prototype.getListData = function getListData(dataSource, disableHighlight) {
80945 var _this2 = this;
80946
80947 var _props = this.props,
80948 prefix = _props.prefix,
80949 position = _props.position,
80950 mode = _props.mode,
80951 value = _props.value,
80952 onMove = _props.onMove,
80953 disabled = _props.disabled,
80954 itemRender = _props.itemRender,
80955 sortable = _props.sortable;
80956 var _state = this.state,
80957 dragPosition = _state.dragPosition,
80958 dragValue = _state.dragValue,
80959 dragOverValue = _state.dragOverValue;
80960
80961 return dataSource.map(function (item) {
80962 var others = 'title' in item ? {
80963 title: item.title
80964 } : {};
80965
80966 return _react2.default.createElement(_transferItem2.default, (0, _extends3.default)({
80967 key: item.value,
80968 prefix: prefix,
80969 mode: mode,
80970 checked: value.indexOf(item.value) > -1,
80971 disabled: disabled || item.disabled,
80972 item: item,
80973 onCheck: _this2.handleCheck,
80974 onClick: onMove,
80975 needHighlight: !_this2.firstRender && !_this2.searched && !disableHighlight,
80976 itemRender: itemRender,
80977 draggable: sortable,
80978 onDragStart: _this2.handleItemDragStart,
80979 onDragOver: _this2.handleItemDragOver,
80980 onDragEnd: _this2.handleItemDragEnd,
80981 onDrop: _this2.handleItemDrop,
80982 dragPosition: dragPosition,
80983 dragValue: dragValue,
80984 dragOverValue: dragOverValue,
80985 panelPosition: position
80986 }, others));
80987 });
80988 };
80989
80990 TransferPanel.prototype.handleAllCheck = function handleAllCheck(allChecked) {
80991 var _props2 = this.props,
80992 position = _props2.position,
80993 onChange = _props2.onChange,
80994 filter = _props2.filter;
80995 var searchedValue = this.state.searchedValue;
80996
80997 var newValue = void 0;
80998 if (allChecked) {
80999 if (searchedValue) {
81000 newValue = this.enabledDatasource.filter(function (item) {
81001 return filter(searchedValue, item);
81002 }).map(function (item) {
81003 return item.value;
81004 });
81005 } else {
81006 newValue = this.enabledDatasource.map(function (item) {
81007 return item.value;
81008 });
81009 }
81010 } else {
81011 newValue = [];
81012 }
81013
81014 onChange && onChange(position, newValue);
81015 };
81016
81017 TransferPanel.prototype.handleCheck = function handleCheck(itemValue, checked) {
81018 var _props3 = this.props,
81019 position = _props3.position,
81020 value = _props3.value,
81021 onChange = _props3.onChange;
81022
81023 var newValue = [].concat(value);
81024 var index = value.indexOf(itemValue);
81025 if (checked && index === -1) {
81026 newValue.push(itemValue);
81027 } else if (!checked && index > -1) {
81028 newValue.splice(index, 1);
81029 }
81030
81031 onChange && onChange(position, newValue);
81032 };
81033
81034 TransferPanel.prototype.handleSearch = function handleSearch(searchedValue) {
81035 this.setState({
81036 searchedValue: searchedValue
81037 });
81038 this.searched = true;
81039
81040 var _props4 = this.props,
81041 onSearch = _props4.onSearch,
81042 position = _props4.position;
81043
81044 onSearch(searchedValue, position);
81045 };
81046
81047 TransferPanel.prototype.handleItemDragStart = function handleItemDragStart(position, value) {
81048 this.setState({
81049 dragPosition: position,
81050 dragValue: value
81051 });
81052 };
81053
81054 TransferPanel.prototype.handleItemDragOver = function handleItemDragOver(value) {
81055 this.setState({
81056 dragOverValue: value
81057 });
81058 };
81059
81060 TransferPanel.prototype.handleItemDragEnd = function handleItemDragEnd() {
81061 this.setState({
81062 dragOverValue: null
81063 });
81064 };
81065
81066 TransferPanel.prototype.handleItemDrop = function handleItemDrop() {
81067 var _props5;
81068
81069 this.setState({
81070 dragOverValue: null
81071 });
81072
81073 (_props5 = this.props).onSort.apply(_props5, arguments);
81074 };
81075
81076 TransferPanel.prototype.renderHeader = function renderHeader() {
81077 var _props6 = this.props,
81078 title = _props6.title,
81079 prefix = _props6.prefix;
81080
81081 return _react2.default.createElement('div', { id: this.headerId, className: prefix + 'transfer-panel-header' }, title);
81082 };
81083
81084 TransferPanel.prototype.renderSearch = function renderSearch() {
81085 var _props7 = this.props,
81086 prefix = _props7.prefix,
81087 searchPlaceholder = _props7.searchPlaceholder,
81088 locale = _props7.locale,
81089 _props7$searchProps = _props7.searchProps,
81090 searchProps = _props7$searchProps === undefined ? {} : _props7$searchProps;
81091
81092 return _react2.default.createElement(_search2.default, (0, _extends3.default)({
81093 'aria-labelledby': this.headerId,
81094 shape: 'simple'
81095 }, searchProps, {
81096 className: prefix + 'transfer-panel-search',
81097 placeholder: searchPlaceholder || locale.searchPlaceholder,
81098 onChange: this.handleSearch
81099 }));
81100 };
81101
81102 TransferPanel.prototype.renderList = function renderList(dataSource) {
81103 var _cx;
81104
81105 var _props8 = this.props,
81106 prefix = _props8.prefix,
81107 listClassName = _props8.listClassName,
81108 listStyle = _props8.listStyle,
81109 customerList = _props8.customerList,
81110 useVirtual = _props8.useVirtual;
81111
81112 var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'transfer-panel-list'] = true, _cx[listClassName] = !!listClassName, _cx));
81113
81114 var customerPanel = customerList && customerList(this.props);
81115 if (customerPanel) {
81116 return _react2.default.createElement('div', { className: newClassName, style: listStyle, ref: this.getListDOM }, customerPanel);
81117 }
81118
81119 if (!dataSource.length) {
81120 return _react2.default.createElement('div', { className: newClassName, style: listStyle }, this.renderNotFoundContent());
81121 }
81122
81123 if (useVirtual) {
81124 return _react2.default.createElement('div', { className: newClassName, style: (0, _extends3.default)({ position: 'relative' }, listStyle) }, _react2.default.createElement(_virtualList2.default, {
81125 itemsRenderer: function itemsRenderer(items, ref) {
81126 return _react2.default.createElement(_menu2.default, { style: { border: 'none' }, ref: ref }, items);
81127 }
81128 }, this.getListData(dataSource, true)));
81129 }
81130
81131 return _react2.default.createElement(_menu2.default, { className: newClassName, style: listStyle, ref: this.getListDOM }, this.getListData(dataSource));
81132 };
81133
81134 TransferPanel.prototype.renderNotFoundContent = function renderNotFoundContent() {
81135 var _props9 = this.props,
81136 prefix = _props9.prefix,
81137 notFoundContent = _props9.notFoundContent;
81138
81139 return _react2.default.createElement('div', { className: prefix + 'transfer-panel-not-found-container' }, _react2.default.createElement('div', { className: prefix + 'transfer-panel-not-found' }, notFoundContent));
81140 };
81141
81142 TransferPanel.prototype.renderFooter = function renderFooter() {
81143 var _props10 = this.props,
81144 prefix = _props10.prefix,
81145 position = _props10.position,
81146 mode = _props10.mode,
81147 disabled = _props10.disabled,
81148 locale = _props10.locale,
81149 showCheckAll = _props10.showCheckAll;
81150
81151 if (mode === 'simple') {
81152 var _cx2;
81153
81154 var onMoveAll = this.props.onMoveAll;
81155
81156 var classNames = (0, _classnames2.default)((_cx2 = {}, _cx2[prefix + 'transfer-panel-move-all'] = true, _cx2[prefix + 'disabled'] = disabled, _cx2));
81157 return _react2.default.createElement('div', { className: prefix + 'transfer-panel-footer' }, _react2.default.createElement('a', { className: classNames, onClick: onMoveAll.bind(this, position === 'left' ? 'right' : 'left') }, locale.moveAll));
81158 }
81159
81160 var _props11 = this.props,
81161 value = _props11.value,
81162 showSearch = _props11.showSearch,
81163 filter = _props11.filter,
81164 dataSource = _props11.dataSource;
81165 var searchedValue = this.state.searchedValue;
81166
81167 var totalCount = dataSource.length;
81168 var _dataSource = dataSource;
81169 var checkedCount = value.length;
81170 var _checkedCount = checkedCount;
81171 if (showSearch && searchedValue) {
81172 _dataSource = dataSource.filter(function (item) {
81173 return filter(searchedValue, item);
81174 });
81175 totalCount = _dataSource.length;
81176 _checkedCount = _dataSource.filter(function (item) {
81177 return value.includes(item.value);
81178 }).length;
81179 }
81180 var totalEnabledCount = Math.min(totalCount, this.enabledDatasource.length);
81181 var checked = checkedCount > 0 && checkedCount >= totalEnabledCount;
81182 var indeterminate = checkedCount > 0 && _checkedCount >= 0 && _checkedCount < totalEnabledCount;
81183 var items = totalCount > 1 ? locale.items : locale.item;
81184 var countLabel = checkedCount === 0 ? totalCount + ' ' + items : checkedCount + '/' + totalCount + ' ' + items;
81185
81186 return _react2.default.createElement('div', { className: prefix + 'transfer-panel-footer' }, showCheckAll && _react2.default.createElement(_checkbox2.default, {
81187 disabled: disabled,
81188 checked: checked,
81189 indeterminate: indeterminate,
81190 onChange: this.handleAllCheck,
81191 'aria-labelledby': this.footerId
81192 }), _react2.default.createElement('span', { className: prefix + 'transfer-panel-count', id: this.footerId }, countLabel));
81193 };
81194
81195 TransferPanel.prototype.render = function render() {
81196 var _props12 = this.props,
81197 prefix = _props12.prefix,
81198 title = _props12.title,
81199 showSearch = _props12.showSearch,
81200 filter = _props12.filter,
81201 dataSource = _props12.dataSource;
81202 var searchedValue = this.state.searchedValue;
81203
81204 var _dataSource = this.props.dataSource;
81205 this.enabledDatasource = dataSource.filter(function (item) {
81206 return !item.disabled;
81207 });
81208 if (showSearch && searchedValue) {
81209 _dataSource = dataSource.filter(function (item) {
81210 return filter(searchedValue, item);
81211 });
81212 }
81213
81214 return _react2.default.createElement('div', { className: prefix + 'transfer-panel' }, title ? this.renderHeader() : null, showSearch ? this.renderSearch() : null, this.renderList(_dataSource), this.renderFooter());
81215 };
81216
81217 return TransferPanel;
81218}(_react.Component), _class.propTypes = {
81219 prefix: _propTypes2.default.string,
81220 position: _propTypes2.default.oneOf(['left', 'right']),
81221 mode: _propTypes2.default.oneOf(['normal', 'simple']),
81222 dataSource: _propTypes2.default.array,
81223 value: _propTypes2.default.array,
81224 onChange: _propTypes2.default.func,
81225 onMove: _propTypes2.default.func,
81226 onMoveAll: _propTypes2.default.func,
81227 disabled: _propTypes2.default.bool,
81228 locale: _propTypes2.default.object,
81229 title: _propTypes2.default.node,
81230 showSearch: _propTypes2.default.bool,
81231 searchProps: _propTypes2.default.object,
81232 filter: _propTypes2.default.func,
81233 onSearch: _propTypes2.default.func,
81234 searchPlaceholder: _propTypes2.default.string,
81235 notFoundContent: _propTypes2.default.node,
81236 listClassName: _propTypes2.default.string,
81237 listStyle: _propTypes2.default.object,
81238 itemRender: _propTypes2.default.func,
81239 sortable: _propTypes2.default.bool,
81240 onSort: _propTypes2.default.func,
81241 baseId: _propTypes2.default.string,
81242 customerList: _propTypes2.default.func,
81243 useVirtual: _propTypes2.default.bool,
81244 showCheckAll: _propTypes2.default.bool
81245}, _temp);
81246TransferPanel.displayName = 'TransferPanel';
81247exports.default = TransferPanel;
81248module.exports = exports['default'];
81249
81250/***/ }),
81251/* 454 */
81252/***/ (function(module, exports, __webpack_require__) {
81253
81254"use strict";
81255
81256
81257exports.__esModule = true;
81258exports.default = undefined;
81259
81260var _extends2 = __webpack_require__(1);
81261
81262var _extends3 = _interopRequireDefault(_extends2);
81263
81264var _classCallCheck2 = __webpack_require__(2);
81265
81266var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
81267
81268var _possibleConstructorReturn2 = __webpack_require__(3);
81269
81270var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
81271
81272var _inherits2 = __webpack_require__(4);
81273
81274var _inherits3 = _interopRequireDefault(_inherits2);
81275
81276var _class, _temp;
81277
81278var _react = __webpack_require__(0);
81279
81280var _react2 = _interopRequireDefault(_react);
81281
81282var _propTypes = __webpack_require__(5);
81283
81284var _propTypes2 = _interopRequireDefault(_propTypes);
81285
81286var _classnames = __webpack_require__(7);
81287
81288var _classnames2 = _interopRequireDefault(_classnames);
81289
81290var _menu = __webpack_require__(16);
81291
81292var _menu2 = _interopRequireDefault(_menu);
81293
81294var _util = __webpack_require__(6);
81295
81296function _interopRequireDefault(obj) {
81297 return obj && obj.__esModule ? obj : { default: obj };
81298}
81299
81300var Item = _menu2.default.Item,
81301 CheckboxItem = _menu2.default.CheckboxItem;
81302var bindCtx = _util.func.bindCtx;
81303var pickOthers = _util.obj.pickOthers;
81304var getOffset = _util.dom.getOffset;
81305var TransferItem = (_temp = _class = function (_Component) {
81306 (0, _inherits3.default)(TransferItem, _Component);
81307
81308 function TransferItem(props) {
81309 (0, _classCallCheck3.default)(this, TransferItem);
81310
81311 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
81312
81313 _this.state = {
81314 highlight: false
81315 };
81316
81317 bindCtx(_this, ['getItemDOM', 'handleClick', 'handleDragStart', 'handleDragOver', 'handleDragEnd', 'handleDrop']);
81318 return _this;
81319 }
81320
81321 TransferItem.prototype.componentDidMount = function componentDidMount() {
81322 var _this2 = this;
81323
81324 if (this.props.needHighlight) {
81325 this.addHighlightTimer = setTimeout(function () {
81326 _this2.setState({
81327 highlight: true
81328 });
81329 }, 1);
81330 this.removeHighlightTimer = setTimeout(function () {
81331 _this2.setState({
81332 highlight: false
81333 });
81334 }, 201);
81335 }
81336 };
81337
81338 TransferItem.prototype.componentWillUnmount = function componentWillUnmount() {
81339 clearTimeout(this.addHighlightTimer);
81340 clearTimeout(this.removeHighlightTimer);
81341 };
81342
81343 TransferItem.prototype.getItemDOM = function getItemDOM(ref) {
81344 this.item = ref;
81345 };
81346
81347 TransferItem.prototype.handleClick = function handleClick() {
81348 var _props = this.props,
81349 onClick = _props.onClick,
81350 panelPosition = _props.panelPosition,
81351 item = _props.item;
81352
81353 onClick(panelPosition === 'left' ? 'right' : 'left', item.value);
81354 };
81355
81356 TransferItem.prototype.handleDragStart = function handleDragStart(ev) {
81357 ev && ev.dataTransfer && typeof ev.dataTransfer.setData === 'function' && ev.dataTransfer.setData('text/plain', ev.target.id);
81358 var _props2 = this.props,
81359 onDragStart = _props2.onDragStart,
81360 panelPosition = _props2.panelPosition,
81361 item = _props2.item;
81362
81363 onDragStart(panelPosition, item.value);
81364 };
81365
81366 TransferItem.prototype.getDragGap = function getDragGap(e) {
81367 var referenceTop = getOffset(e.currentTarget).top;
81368 var referenceHeight = e.currentTarget.offsetHeight;
81369 return e.pageY <= referenceTop + referenceHeight / 2 ? 'before' : 'after';
81370 };
81371
81372 TransferItem.prototype.handleDragOver = function handleDragOver(e) {
81373 var _props3 = this.props,
81374 panelPosition = _props3.panelPosition,
81375 dragPosition = _props3.dragPosition,
81376 onDragOver = _props3.onDragOver,
81377 item = _props3.item;
81378
81379 if (panelPosition === dragPosition) {
81380 e.preventDefault();
81381
81382 var dragGap = this.getDragGap(e);
81383 if (this.dragGap !== dragGap) {
81384 this.dragGap = dragGap;
81385 onDragOver(item.value);
81386 }
81387 }
81388 };
81389
81390 TransferItem.prototype.handleDragEnd = function handleDragEnd() {
81391 var onDragEnd = this.props.onDragEnd;
81392
81393 onDragEnd();
81394 };
81395
81396 TransferItem.prototype.handleDrop = function handleDrop(e) {
81397 e.preventDefault();
81398
81399 var _props4 = this.props,
81400 onDrop = _props4.onDrop,
81401 item = _props4.item,
81402 panelPosition = _props4.panelPosition,
81403 dragValue = _props4.dragValue;
81404
81405 onDrop(panelPosition, dragValue, item.value, this.dragGap);
81406 };
81407
81408 TransferItem.prototype.render = function render() {
81409 var _cx;
81410
81411 var _props5 = this.props,
81412 prefix = _props5.prefix,
81413 mode = _props5.mode,
81414 checked = _props5.checked,
81415 disabled = _props5.disabled,
81416 item = _props5.item,
81417 onCheck = _props5.onCheck,
81418 itemRender = _props5.itemRender,
81419 draggable = _props5.draggable,
81420 dragOverValue = _props5.dragOverValue,
81421 panelPosition = _props5.panelPosition,
81422 dragPosition = _props5.dragPosition;
81423
81424 var others = pickOthers(Object.keys(TransferItem.propTypes), this.props);
81425 var highlight = this.state.highlight;
81426
81427 var isSimple = mode === 'simple';
81428
81429 var classNames = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'transfer-panel-item'] = true, _cx[prefix + 'insert-' + this.dragGap] = dragOverValue === item.value && panelPosition === dragPosition, _cx[prefix + 'focused'] = highlight, _cx[prefix + 'simple'] = isSimple, _cx));
81430
81431 var children = itemRender(item);
81432 var itemProps = (0, _extends3.default)({
81433 ref: this.getItemDOM,
81434 className: classNames,
81435 children: children,
81436 disabled: disabled,
81437 draggable: draggable && !disabled,
81438 onDragStart: this.handleDragStart,
81439 onDragOver: this.handleDragOver,
81440 onDragEnd: this.handleDragEnd,
81441 onDrop: this.handleDrop
81442 }, others);
81443 var title = void 0;
81444 if (typeof children === 'string') {
81445 title = children;
81446 }
81447 if (isSimple) {
81448 if (!itemProps.disabled) {
81449 itemProps.onClick = this.handleClick;
81450 }
81451
81452 return _react2.default.createElement(Item, (0, _extends3.default)({ title: title }, itemProps));
81453 }
81454
81455 return _react2.default.createElement(CheckboxItem, (0, _extends3.default)({
81456 checked: checked,
81457 onChange: onCheck.bind(this, item.value),
81458 title: title
81459 }, itemProps));
81460 };
81461
81462 return TransferItem;
81463}(_react.Component), _class.menuChildType = CheckboxItem.menuChildType, _class.propTypes = {
81464 prefix: _propTypes2.default.string,
81465 mode: _propTypes2.default.oneOf(['normal', 'simple']),
81466 value: _propTypes2.default.array,
81467 disabled: _propTypes2.default.bool,
81468 item: _propTypes2.default.object,
81469 onCheck: _propTypes2.default.func,
81470 onClick: _propTypes2.default.func,
81471 needHighlight: _propTypes2.default.bool,
81472 itemRender: _propTypes2.default.func,
81473 draggable: _propTypes2.default.bool,
81474 onDragStart: _propTypes2.default.func,
81475 onDragOver: _propTypes2.default.func,
81476 onDragEnd: _propTypes2.default.func,
81477 onDrop: _propTypes2.default.func,
81478 dragPosition: _propTypes2.default.oneOf(['left', 'right']),
81479 dragValue: _propTypes2.default.string,
81480 dragOverValue: _propTypes2.default.string,
81481 panelPosition: _propTypes2.default.oneOf(['left', 'right'])
81482}, _temp);
81483TransferItem.displayName = 'TransferItem';
81484exports.default = TransferItem;
81485module.exports = exports['default'];
81486
81487/***/ }),
81488/* 455 */
81489/***/ (function(module, exports, __webpack_require__) {
81490
81491"use strict";
81492
81493
81494exports.__esModule = true;
81495exports.treeNodeProps = undefined;
81496
81497var _objectWithoutProperties2 = __webpack_require__(8);
81498
81499var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
81500
81501var _classCallCheck2 = __webpack_require__(2);
81502
81503var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
81504
81505var _possibleConstructorReturn2 = __webpack_require__(3);
81506
81507var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
81508
81509var _inherits2 = __webpack_require__(4);
81510
81511var _inherits3 = _interopRequireDefault(_inherits2);
81512
81513var _extends2 = __webpack_require__(1);
81514
81515var _extends3 = _interopRequireDefault(_extends2);
81516
81517var _class, _temp; /* eslint-disable max-depth */
81518
81519var _react = __webpack_require__(0);
81520
81521var _react2 = _interopRequireDefault(_react);
81522
81523var _propTypes = __webpack_require__(5);
81524
81525var _propTypes2 = _interopRequireDefault(_propTypes);
81526
81527var _lodash = __webpack_require__(166);
81528
81529var _lodash2 = _interopRequireDefault(_lodash);
81530
81531var _reactLifecyclesCompat = __webpack_require__(10);
81532
81533var _classnames = __webpack_require__(7);
81534
81535var _classnames2 = _interopRequireDefault(_classnames);
81536
81537var _util = __webpack_require__(6);
81538
81539var _treeNode = __webpack_require__(105);
81540
81541var _treeNode2 = _interopRequireDefault(_treeNode);
81542
81543var _virtualList = __webpack_require__(51);
81544
81545var _virtualList2 = _interopRequireDefault(_virtualList);
81546
81547var _util2 = __webpack_require__(193);
81548
81549function _interopRequireDefault(obj) {
81550 return obj && obj.__esModule ? obj : { default: obj };
81551}
81552
81553var bindCtx = _util.func.bindCtx,
81554 noop = _util.func.noop;
81555var getOffset = _util.dom.getOffset;
81556var pickOthers = _util.obj.pickOthers,
81557 pickProps = _util.obj.pickProps,
81558 isPlainObject = _util.obj.isPlainObject;
81559var treeNodeProps = exports.treeNodeProps = ['key', 'label', 'selectable', 'checkable', 'editable', 'draggable', 'disabled', 'checkboxDisabled', 'isLeaf', 'icon'];
81560
81561var getExpandedKeys = function getExpandedKeys(props, willReceiveProps, _k2n, _p2n) {
81562 var expandedKeys = void 0;
81563
81564 if (!willReceiveProps && props.defaultExpandAll) {
81565 expandedKeys = Object.keys(_k2n).filter(function (key) {
81566 var children = _k2n[key].children;
81567 return children && children.length;
81568 });
81569 } else {
81570 expandedKeys = 'expandedKeys' in props ? props.expandedKeys : willReceiveProps ? [] : props.defaultExpandedKeys;
81571 expandedKeys = (0, _util2.normalizeToArray)(expandedKeys);
81572
81573 if (props.autoExpandParent) {
81574 var newExpandedKeys = [];
81575
81576 var expandedPoss = expandedKeys.reduce(function (ret, key) {
81577 var pos = _k2n[key] && _k2n[key].pos;
81578 if (pos) {
81579 ret.push(pos);
81580 newExpandedKeys.push(key);
81581 }
81582 return ret;
81583 }, []);
81584
81585 expandedPoss.forEach(function (pos) {
81586 var nums = pos.split('-');
81587 if (nums.length === 2) {
81588 return;
81589 }
81590 for (var i = 1; i <= nums.length - 2; i++) {
81591 var ancestorPos = nums.slice(0, i + 1).join('-');
81592 var ancestorKey = _p2n[ancestorPos].key;
81593 if (newExpandedKeys.indexOf(ancestorKey) === -1) {
81594 newExpandedKeys.push(ancestorKey);
81595 }
81596 }
81597 });
81598
81599 return newExpandedKeys;
81600 }
81601 }
81602
81603 return expandedKeys;
81604};
81605
81606var getSelectedKeys = function getSelectedKeys(props, willReceiveProps, _k2n) {
81607 var selectedKeys = 'selectedKeys' in props ? props.selectedKeys : willReceiveProps ? [] : props.defaultSelectedKeys;
81608 selectedKeys = (0, _util2.normalizeToArray)(selectedKeys);
81609
81610 return selectedKeys.filter(function (key) {
81611 return _k2n[key];
81612 });
81613};
81614
81615var getIndeterminateKeys = function getIndeterminateKeys(checkedKeys, checkStrictly, _k2n, _p2n) {
81616 if (checkStrictly) {
81617 return [];
81618 }
81619
81620 var indeterminateKeys = [];
81621
81622 var poss = (0, _util2.filterChildKey)(checkedKeys.filter(function (key) {
81623 return !!_k2n[key];
81624 }).filter(function (key) {
81625 return !_k2n[key].disabled && !_k2n[key].checkboxDisabled && _k2n[key].checkable !== false;
81626 }), _k2n, _p2n).map(function (key) {
81627 return _k2n[key].pos;
81628 });
81629
81630 poss.forEach(function (pos) {
81631 var nums = pos.split('-');
81632 for (var i = nums.length; i > 2; i--) {
81633 var parentPos = nums.slice(0, i - 1).join('-');
81634 var parent = _p2n[parentPos];
81635 if (parent.disabled || parent.checkboxDisabled) break;
81636 var parentKey = parent.key;
81637 if (indeterminateKeys.indexOf(parentKey) === -1) {
81638 indeterminateKeys.push(parentKey);
81639 }
81640 }
81641 });
81642
81643 return indeterminateKeys;
81644};
81645
81646var getCheckedKeys = function getCheckedKeys(props, willReceiveProps, _k2n, _p2n) {
81647 var checkedKeys = props.defaultCheckedKeys;
81648 var indeterminateKeys = void 0;
81649
81650 if ('checkedKeys' in props) {
81651 checkedKeys = props.checkedKeys;
81652 } else if (willReceiveProps) {
81653 checkedKeys = [];
81654 }
81655
81656 var checkStrictly = props.checkStrictly; // TODO TEST
81657
81658 if (checkStrictly) {
81659 if (isPlainObject(checkedKeys)) {
81660 var _checkedKeys = checkedKeys,
81661 checked = _checkedKeys.checked,
81662 indeterminate = _checkedKeys.indeterminate;
81663
81664 checkedKeys = (0, _util2.normalizeToArray)(checked);
81665 indeterminateKeys = (0, _util2.normalizeToArray)(indeterminate);
81666 } else {
81667 checkedKeys = (0, _util2.normalizeToArray)(checkedKeys);
81668 }
81669
81670 checkedKeys = checkedKeys.filter(function (key) {
81671 return !!_k2n[key];
81672 });
81673 } else {
81674 checkedKeys = (0, _util2.getAllCheckedKeys)(checkedKeys, _k2n, _p2n);
81675 checkedKeys = checkedKeys.filter(function (key) {
81676 return !!_k2n[key];
81677 });
81678
81679 indeterminateKeys = getIndeterminateKeys(checkedKeys, props.checkStrictly, _k2n, _p2n);
81680 }
81681
81682 return { checkedKeys: checkedKeys, indeterminateKeys: indeterminateKeys };
81683};
81684
81685var preHandleData = function preHandleData(dataSource, props) {
81686 var k2n = {};
81687 var p2n = {};
81688 var keyList = [];
81689
81690 var drill = function drill() {
81691 var data = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
81692 var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
81693 var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
81694 var parent = arguments[3];
81695 return data.map(function (item, index) {
81696 // 为了兼容之前的实现 保留非法节点
81697 if (item.illegalFlag) {
81698 return item;
81699 }
81700
81701 var children = item.children;
81702
81703 var pos = prefix + '-' + index;
81704 var key = item.key;
81705
81706 item.pos = pos;
81707 item.level = level;
81708
81709 // 判断为叶子节点
81710 // - 指定isLeaf属性
81711 // - loadData模式下 没有指定isLeaf为true
81712 // - 存在children元素
81713 if (!('isLeaf' in item)) {
81714 item.isLeaf = !(children && children.length || props.loadData);
81715 }
81716
81717 item.isLastChild = parent ? [].concat(parent.isLastChild || [], index === data.length - 1) : [];
81718
81719 if (key === undefined || key === null) {
81720 item.key = key = pos;
81721 }
81722 keyList.push(key);
81723 !item.isLeaf && drill(children, level + 1, pos, item);
81724
81725 k2n[key] = p2n[pos] = (0, _extends3.default)({}, item);
81726
81727 return item;
81728 });
81729 };
81730
81731 return { dataSource: drill(dataSource), k2n: k2n, p2n: p2n, keyList: keyList };
81732};
81733
81734var preHandleChildren = function preHandleChildren(props) {
81735 var k2n = {};
81736 var p2n = {};
81737 var keyList = [];
81738
81739 var loop = function loop(children) {
81740 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
81741 var level = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;
81742 return _react.Children.map(children, function (node, index) {
81743 if (!_react2.default.isValidElement(node)) {
81744 return;
81745 }
81746 var pos = prefix + '-' + index;
81747 var key = node.key;
81748
81749 key = key || pos;
81750
81751 var item = (0, _extends3.default)({}, node.props, { key: key, pos: pos, level: level });
81752 var children = node.props.children;
81753
81754 var hasChildren = children && _react.Children.count(children);
81755
81756 if (!('isLeaf' in item)) {
81757 item.isLeaf = !(hasChildren || props.loadData);
81758 }
81759 keyList.push(key);
81760 if (hasChildren) {
81761 item.children = loop(children, pos, level + 1);
81762 }
81763
81764 k2n[key] = p2n[pos] = item;
81765 return item;
81766 });
81767 };
81768 loop(props.children);
81769
81770 return { k2n: k2n, p2n: p2n, keyList: keyList };
81771};
81772
81773var getData = function getData(props) {
81774 var dataSource = props.dataSource,
81775 renderChildNodes = props.renderChildNodes,
81776 _props$children = props.children,
81777 children = _props$children === undefined ? [] : _props$children,
81778 useVirtual = props.useVirtual,
81779 immutable = props.immutable;
81780
81781 var data = immutable ? (0, _lodash2.default)(dataSource) : dataSource;
81782
81783 if ((renderChildNodes || useVirtual) && !('dataSource' in props)) {
81784 data = (0, _util2.convertChildren2Data)(children);
81785 }
81786
81787 if (data) {
81788 try {
81789 return preHandleData(data, props);
81790 } catch (err) {
81791 if ((err.message || '').match('object is not extensible')) {
81792 // eslint-disable-next-line no-console
81793 console.error(err.message, 'try to set immutable to true to allow immutable dataSource');
81794 } else {
81795 throw err;
81796 }
81797 }
81798 } else {
81799 return preHandleChildren(props);
81800 }
81801};
81802
81803/**
81804 * Tree
81805 */
81806var Tree = (_temp = _class = function (_Component) {
81807 (0, _inherits3.default)(Tree, _Component);
81808
81809 function Tree(props) {
81810 (0, _classCallCheck3.default)(this, Tree);
81811
81812 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
81813
81814 var _getData = getData(props),
81815 _getData$dataSource = _getData.dataSource,
81816 dataSource = _getData$dataSource === undefined ? [] : _getData$dataSource,
81817 k2n = _getData.k2n,
81818 p2n = _getData.p2n,
81819 keyList = _getData.keyList;
81820
81821 var _this$props = _this.props,
81822 focusable = _this$props.focusable,
81823 autoFocus = _this$props.autoFocus,
81824 focusedKey = _this$props.focusedKey;
81825
81826 var willReceiveProps = false;
81827
81828 var _getCheckedKeys = getCheckedKeys(props, willReceiveProps, k2n, p2n),
81829 checkedKeys = _getCheckedKeys.checkedKeys,
81830 _getCheckedKeys$indet = _getCheckedKeys.indeterminateKeys,
81831 indeterminateKeys = _getCheckedKeys$indet === undefined ? [] : _getCheckedKeys$indet;
81832
81833 _this.state = {
81834 _k2n: k2n,
81835 _p2n: p2n,
81836 _keyList: keyList,
81837 dataSource: dataSource,
81838 willReceiveProps: willReceiveProps,
81839 expandedKeys: getExpandedKeys(props, willReceiveProps, k2n, p2n),
81840 selectedKeys: getSelectedKeys(props, willReceiveProps, k2n, p2n),
81841 checkedKeys: checkedKeys,
81842 indeterminateKeys: indeterminateKeys
81843 };
81844
81845 if (focusable) {
81846 _this.tabbableKey = _this.getFirstAvaliablelChildKey('0');
81847 }
81848
81849 _this.state.focusedKey = 'focusedKey' in props ? focusedKey : focusable && autoFocus ? _this.tabbableKey : null;
81850
81851 if (focusable) {
81852 _this.tabbableKey = _this.getFirstAvaliablelChildKey('0');
81853 }
81854
81855 bindCtx(_this, ['handleExpand', 'handleSelect', 'handleCheck', 'handleBlur']);
81856 return _this;
81857 }
81858
81859 Tree.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
81860 var _getData2 = getData(props),
81861 _getData2$dataSource = _getData2.dataSource,
81862 dataSource = _getData2$dataSource === undefined ? [] : _getData2$dataSource,
81863 k2n = _getData2.k2n,
81864 p2n = _getData2.p2n,
81865 keyList = _getData2.keyList;
81866
81867 var st = {};
81868
81869 if (!state.willReceiveProps) {
81870 return {
81871 willReceiveProps: true,
81872 _k2n: k2n,
81873 _p2n: p2n,
81874 _keyList: keyList
81875 };
81876 }
81877
81878 if ('expandedKeys' in props) {
81879 st.expandedKeys = getExpandedKeys(props, state.willReceiveProps, k2n, p2n);
81880 }
81881
81882 if ('selectedKeys' in props) {
81883 st.selectedKeys = getSelectedKeys(props, state.willReceiveProps, k2n);
81884 }
81885
81886 if ('checkedKeys' in props) {
81887 var _getCheckedKeys2 = getCheckedKeys(props, state.willReceiveProps, k2n, p2n),
81888 checkedKeys = _getCheckedKeys2.checkedKeys;
81889
81890 st.checkedKeys = checkedKeys;
81891 }
81892
81893 st.indeterminateKeys = props.checkStrictly ? props.checkedKeys && props.checkedKeys.indeterminate || [] : getIndeterminateKeys(st.checkedKeys || state.checkedKeys || [], props.checkStrictly, k2n, p2n);
81894
81895 return (0, _extends3.default)({}, st, {
81896 dataSource: dataSource,
81897 _k2n: k2n,
81898 _p2n: p2n
81899 });
81900 };
81901
81902 Tree.prototype.setFocusKey = function setFocusKey() {
81903 var _state$selectedKeys = this.state.selectedKeys,
81904 selectedKeys = _state$selectedKeys === undefined ? [] : _state$selectedKeys;
81905
81906 this.setState({
81907 focusedKey: selectedKeys.length > 0 ? selectedKeys[0] : this.getFirstAvaliablelChildKey('0')
81908 });
81909 };
81910
81911 Tree.prototype.getAvailableKey = function getAvailableKey(pos, prev) {
81912 var _this2 = this;
81913
81914 var ps = Object.keys(this.state._p2n).filter(function (p) {
81915 return _this2.isAvailablePos(pos, p);
81916 });
81917 if (ps.length > 1) {
81918 var index = ps.indexOf(pos);
81919 var targetIndex = void 0;
81920 if (prev) {
81921 targetIndex = index === 0 ? ps.length - 1 : index - 1;
81922 } else {
81923 targetIndex = index === ps.length - 1 ? 0 : index + 1;
81924 }
81925
81926 return this.state._p2n[ps[targetIndex]].key;
81927 }
81928
81929 return null;
81930 };
81931
81932 Tree.prototype.getFirstAvaliablelChildKey = function getFirstAvaliablelChildKey(parentPos) {
81933 var _this3 = this;
81934
81935 var pos = Object.keys(this.state._p2n).find(function (p) {
81936 return _this3.isAvailablePos(parentPos + '-0', p);
81937 });
81938 return pos ? this.state._p2n[pos].key : null;
81939 };
81940
81941 Tree.prototype.isAvailablePos = function isAvailablePos(refPos, targetPos) {
81942 var disabled = this.state._p2n[targetPos].disabled;
81943
81944 return this.isSibling(refPos, targetPos) && !disabled;
81945 };
81946
81947 Tree.prototype.isSibling = function isSibling(currentPos, targetPos) {
81948 var currentNums = currentPos.split('-').slice(0, -1);
81949 var targetNums = targetPos.split('-').slice(0, -1);
81950
81951 return currentNums.length === targetNums.length && currentNums.every(function (num, index) {
81952 return num === targetNums[index];
81953 });
81954 };
81955
81956 Tree.prototype.getParentKey = function getParentKey(pos) {
81957 return this.state._p2n[pos.slice(0, pos.length - 2)].key;
81958 };
81959
81960 Tree.prototype.processKey = function processKey(keys, key, add) {
81961 var index = keys.indexOf(key);
81962 if (add && index === -1) {
81963 keys.push(key);
81964 } else if (!add && index > -1) {
81965 keys.splice(index, 1);
81966 }
81967 return keys;
81968 };
81969
81970 /*eslint-disable max-statements*/
81971
81972 Tree.prototype.handleItemKeyDown = function handleItemKeyDown(key, item, e) {
81973 if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.RIGHT, _util.KEYCODE.LEFT, _util.KEYCODE.ENTER, _util.KEYCODE.ESC, _util.KEYCODE.SPACE].indexOf(e.keyCode) > -1) {
81974 e.preventDefault();
81975 e.stopPropagation();
81976 }
81977
81978 var focusedKey = this.state.focusedKey;
81979
81980 var node = this.state._k2n[key];
81981 var pos = this.state._k2n[key].pos;
81982 var level = pos.split('-').length - 1;
81983 switch (e.keyCode) {
81984 case _util.KEYCODE.UP:
81985 {
81986 var avaliableKey = this.getAvailableKey(pos, true);
81987 if (avaliableKey) {
81988 focusedKey = avaliableKey;
81989 }
81990 break;
81991 }
81992 case _util.KEYCODE.DOWN:
81993 {
81994 var _avaliableKey = this.getAvailableKey(pos, false);
81995 if (_avaliableKey) {
81996 focusedKey = _avaliableKey;
81997 }
81998 break;
81999 }
82000 case _util.KEYCODE.RIGHT:
82001 {
82002 this.handleExpand(true, key, node);
82003 var _avaliableKey2 = this.getFirstAvaliablelChildKey(pos);
82004 if (_avaliableKey2) {
82005 focusedKey = _avaliableKey2;
82006 }
82007 break;
82008 }
82009 case _util.KEYCODE.LEFT:
82010 case _util.KEYCODE.ESC:
82011 {
82012 if (level === 1) {
82013 var _avaliableKey3 = this.getAvailableKey(pos, true);
82014 if (_avaliableKey3) {
82015 focusedKey = _avaliableKey3;
82016 }
82017 } else if (level > 1) {
82018 var parentKey = this.getParentKey(pos);
82019 this.handleExpand(false, parentKey, node);
82020 focusedKey = parentKey;
82021 }
82022 break;
82023 }
82024
82025 case _util.KEYCODE.ENTER:
82026 case _util.KEYCODE.SPACE:
82027 {
82028 var checkable = 'checkable' in item.props ? item.props.checkable : this.props.checkable;
82029 var selectable = 'selectable' in item.props ? item.props.selectable : this.props.selectable;
82030
82031 if (checkable) {
82032 this.handleCheck(!item.props.checked, key, node);
82033 } else if (selectable) {
82034 this.handleSelect(!item.props.selected, key, node, e);
82035 }
82036 break;
82037 }
82038 case _util.KEYCODE.TAB:
82039 focusedKey = null;
82040 break;
82041 default:
82042 break;
82043 }
82044
82045 if (focusedKey !== this.state.focusedKey) {
82046 if (!('focusedKey' in this.props)) {
82047 this.setState({
82048 focusedKey: focusedKey
82049 });
82050 }
82051 }
82052
82053 this.props.onItemKeyDown(focusedKey, item, e);
82054 this.props.onItemFocus(focusedKey, e);
82055 };
82056
82057 Tree.prototype.handleBlur = function handleBlur(e) {
82058 this.setState({
82059 focusedKey: null
82060 });
82061
82062 this.props.onBlur && this.props.onBlur(e);
82063 };
82064
82065 Tree.prototype.handleExpand = function handleExpand(expand, key, node) {
82066 var _this4 = this;
82067
82068 var _props = this.props,
82069 onExpand = _props.onExpand,
82070 loadData = _props.loadData;
82071
82072 var expandedKeys = this.state.expandedKeys; // 由于setState 是异步操作,所以去掉 [...this.state.expandedKeys]
82073 this.processKey(expandedKeys, key, expand);
82074 var setExpandedState = function setExpandedState() {
82075 if (!('expandedKeys' in _this4.props)) {
82076 _this4.setState({ expandedKeys: expandedKeys });
82077 }
82078 onExpand(expandedKeys, { expanded: expand, node: node });
82079 };
82080
82081 if (expand && loadData) {
82082 return loadData(node).then(setExpandedState);
82083 } else {
82084 setExpandedState();
82085 }
82086 };
82087
82088 Tree.prototype.handleSelect = function handleSelect(select, key, node, e) {
82089 var _props2 = this.props,
82090 multiple = _props2.multiple,
82091 onSelect = _props2.onSelect;
82092
82093 var selectedKeys = [].concat(this.state.selectedKeys);
82094 if (multiple) {
82095 this.processKey(selectedKeys, key, select);
82096 } else {
82097 selectedKeys = select ? [key] : [];
82098 }
82099
82100 if (!('selectedKeys' in this.props)) {
82101 this.setState({ selectedKeys: selectedKeys });
82102 }
82103 onSelect(selectedKeys, {
82104 selectedNodes: this.getNodes(selectedKeys),
82105 node: node,
82106 selected: select,
82107 event: e
82108 });
82109 };
82110
82111 // eslint-disable-next-line max-statements
82112
82113
82114 Tree.prototype.handleCheck = function handleCheck(check, key, node) {
82115 var _this5 = this;
82116
82117 var _props3 = this.props,
82118 checkStrictly = _props3.checkStrictly,
82119 checkedStrategy = _props3.checkedStrategy,
82120 onCheck = _props3.onCheck;
82121 var _state = this.state,
82122 _k2n = _state._k2n,
82123 _p2n = _state._p2n;
82124
82125 var checkedKeys = [].concat(this.state.checkedKeys);
82126
82127 if (checkStrictly) {
82128 this.processKey(checkedKeys, key, check);
82129 var _newCheckedKeys = isPlainObject(this.props.checkedKeys) ? {
82130 checked: checkedKeys,
82131 indeterminate: this.state.indeterminateKeys
82132 } : checkedKeys;
82133
82134 onCheck(_newCheckedKeys, {
82135 checkedNodes: this.getNodes(checkedKeys),
82136 checkedNodesPositions: checkedKeys.map(function (key) {
82137 if (!_k2n[key]) return null;
82138 var _k2n$key = _k2n[key],
82139 node = _k2n$key.node,
82140 pos = _k2n$key.pos;
82141
82142 return { node: node, pos: pos };
82143 }).filter(function (v) {
82144 return !!v;
82145 }),
82146 node: node,
82147 indeterminateKeys: this.state.indeterminateKeys,
82148 checked: check,
82149 key: key
82150 });
82151
82152 return;
82153 }
82154
82155 var pos = _k2n[key].pos;
82156
82157 (0, _util2.forEachEnableNode)(_k2n[key], function (node) {
82158 if (node.checkable === false) return;
82159 _this5.processKey(checkedKeys, node.key, check);
82160 });
82161
82162 var ps = Object.keys(_p2n);
82163
82164 var currentPos = pos;
82165 var nums = pos.split('-');
82166
82167 for (var i = nums.length; i > 2; i--) {
82168 var parentCheck = true;
82169
82170 var parentPos = nums.slice(0, i - 1).join('-');
82171 if (_p2n[parentPos].disabled || _p2n[parentPos].checkboxDisabled || _p2n[parentPos].checkable === false) {
82172 currentPos = parentPos;
82173 continue;
82174 }
82175 var parentKey = _p2n[parentPos].key;
82176 var parentChecked = checkedKeys.indexOf(parentKey) > -1;
82177 if (!check && !parentChecked) {
82178 break;
82179 }
82180
82181 for (var j = 0; j < ps.length; j++) {
82182 var p = ps[j];
82183 var pnode = _p2n[p];
82184 if ((0, _util2.isSiblingOrSelf)(currentPos, p) && !pnode.disabled && !pnode.checkboxDisabled) {
82185 var k = pnode.key;
82186 if (pnode.checkable === false) {
82187 // eslint-disable-next-line max-depth
82188 if (!pnode.children || pnode.children.length === 0) continue;
82189
82190 // eslint-disable-next-line max-depth
82191 for (var m = 0; m < pnode.children.length; m++) {
82192 if (!pnode.children.every(function (child) {
82193 return (0, _util2.isNodeChecked)(child, checkedKeys);
82194 })) {
82195 parentCheck = false;
82196 break;
82197 }
82198 }
82199 } else if (checkedKeys.indexOf(k) === -1) {
82200 parentCheck = false;
82201 }
82202
82203 if (!parentCheck) break;
82204 }
82205 }
82206
82207 this.processKey(checkedKeys, parentKey, parentCheck);
82208
82209 currentPos = parentPos;
82210 }
82211
82212 var indeterminateKeys = getIndeterminateKeys(checkedKeys, checkStrictly, _k2n, _p2n);
82213 if (!('checkedKeys' in this.props)) {
82214 this.setState({
82215 checkedKeys: checkedKeys,
82216 indeterminateKeys: indeterminateKeys
82217 });
82218 }
82219
82220 var newCheckedKeys = void 0;
82221 switch (checkedStrategy) {
82222 case 'parent':
82223 newCheckedKeys = (0, _util2.filterChildKey)(checkedKeys, _k2n, _p2n);
82224 break;
82225 case 'child':
82226 newCheckedKeys = (0, _util2.filterParentKey)(checkedKeys, _k2n, _p2n);
82227 break;
82228 default:
82229 newCheckedKeys = checkedKeys;
82230 break;
82231 }
82232
82233 onCheck(newCheckedKeys, {
82234 checkedNodes: this.getNodes(newCheckedKeys),
82235 checkedNodesPositions: newCheckedKeys.map(function (key) {
82236 if (!_k2n[key]) return null;
82237 var _k2n$key2 = _k2n[key],
82238 node = _k2n$key2.node,
82239 pos = _k2n$key2.pos;
82240
82241 return { node: node, pos: pos };
82242 }).filter(function (v) {
82243 return !!v;
82244 }),
82245 node: node,
82246 indeterminateKeys: indeterminateKeys,
82247 checked: check,
82248 key: key
82249 });
82250 };
82251
82252 Tree.prototype.getNodeProps = function getNodeProps(key) {
82253 var prefix = this.props.prefix;
82254 var _state2 = this.state,
82255 expandedKeys = _state2.expandedKeys,
82256 selectedKeys = _state2.selectedKeys,
82257 checkedKeys = _state2.checkedKeys,
82258 dragOverNodeKey = _state2.dragOverNodeKey,
82259 _k2n = _state2._k2n,
82260 indeterminateKeys = _state2.indeterminateKeys;
82261 var _k2n$key3 = _k2n[key],
82262 pos = _k2n$key3.pos,
82263 isLeaf = _k2n$key3.isLeaf,
82264 level = _k2n$key3.level;
82265
82266 return {
82267 prefix: prefix,
82268 root: this,
82269 eventKey: key,
82270 pos: pos,
82271 isLeaf: isLeaf,
82272 level: level,
82273 expanded: expandedKeys.indexOf(key) > -1,
82274 selected: selectedKeys.indexOf(key) > -1,
82275 checked: checkedKeys.indexOf(key) > -1,
82276 indeterminate: indeterminateKeys.indexOf(key) > -1,
82277 dragOver: dragOverNodeKey === key && this.dropPosition === 0,
82278 dragOverGapTop: dragOverNodeKey === key && this.dropPosition === -1,
82279 dragOverGapBottom: dragOverNodeKey === key && this.dropPosition === 1
82280 };
82281 };
82282
82283 Tree.prototype.getNodes = function getNodes(keys) {
82284 var _this6 = this;
82285
82286 return keys.map(function (key) {
82287 return _this6.state._k2n[key] && _this6.state._k2n[key].node;
82288 }).filter(function (v) {
82289 return !!v;
82290 });
82291 };
82292
82293 Tree.prototype.handleDragStart = function handleDragStart(e, node) {
82294 var _this7 = this;
82295
82296 var dragNodeKey = node.props.eventKey;
82297 this.dragNode = node;
82298 this.dragNodesKeys = Object.keys(this.state._k2n).filter(function (k) {
82299 return (0, _util2.isDescendantOrSelf)(_this7.state._k2n[dragNodeKey].pos, _this7.state._k2n[k].pos);
82300 });
82301
82302 var expandedKeys = this.processKey([].concat(this.state.expandedKeys), dragNodeKey, false);
82303 this.setState({ expandedKeys: expandedKeys });
82304
82305 this.props.onDragStart({
82306 event: e,
82307 node: node,
82308 expandedKeys: expandedKeys
82309 });
82310 };
82311
82312 Tree.prototype.handleDragEnter = function handleDragEnter(e, node) {
82313 var dragOverNodeKey = node.props.eventKey;
82314 this.dropPosition = this.getDropPosition(e, node);
82315 if (this.dragNode && this.dragNode.props.eventKey === dragOverNodeKey && this.dropPosition === 0) {
82316 this.setState({
82317 dragOverNodeKey: null
82318 });
82319 return;
82320 }
82321
82322 var expandedKeys = this.processKey([].concat(this.state.expandedKeys), dragOverNodeKey, true);
82323 this.setState({
82324 dragOverNodeKey: dragOverNodeKey,
82325 expandedKeys: expandedKeys
82326 });
82327
82328 this.props.onDragEnter({
82329 event: e,
82330 node: node,
82331 expandedKeys: expandedKeys
82332 });
82333 };
82334
82335 Tree.prototype.getDropPosition = function getDropPosition(e, node) {
82336 var labelWrapperNode = node.labelWrapperEl;
82337 var offsetTop = getOffset(labelWrapperNode).top;
82338 var offsetHeight = labelWrapperNode.offsetHeight;
82339 var pageY = e.pageY;
82340 var gapHeight = 2;
82341
82342 if (pageY > offsetTop + offsetHeight - gapHeight) {
82343 return 1;
82344 }
82345 if (pageY < offsetTop + gapHeight) {
82346 return -1;
82347 }
82348 return 0;
82349 };
82350
82351 Tree.prototype.handleDragOver = function handleDragOver(e, node) {
82352 var dragOverNodeKey = node.props.eventKey;
82353 if (this.state.dragOverNodeKey !== dragOverNodeKey) {
82354 this.setState({
82355 dragOverNodeKey: dragOverNodeKey
82356 });
82357 }
82358
82359 this.props.onDragOver({ event: e, node: node });
82360 };
82361
82362 Tree.prototype.handleDragLeave = function handleDragLeave(e, node) {
82363 var eventKey = node.props.eventKey;
82364 var _keyList = this.state._keyList;
82365
82366 var firstKey = _keyList[0];
82367 var lastKey = _keyList[_keyList.length - 1];
82368 // 只针对树的边界节点(第一个和最后一个)做处理
82369 if (eventKey === firstKey || eventKey === lastKey) {
82370 this.setState({
82371 dragOverNodeKey: null
82372 });
82373 }
82374 this.props.onDragLeave({ event: e, node: node });
82375 };
82376
82377 Tree.prototype.handleDragEnd = function handleDragEnd(e, node) {
82378 this.setState({
82379 dragOverNodeKey: null
82380 });
82381
82382 this.props.onDragEnd({ event: e, node: node });
82383 };
82384
82385 Tree.prototype.handleDrop = function handleDrop(e, node) {
82386 if (this.dragNode && (0, _util2.isDescendantOrSelf)(this.state._k2n[this.dragNode.props.eventKey].pos, this.state._k2n[node.props.eventKey].pos)) {
82387 return;
82388 }
82389
82390 this.setState({
82391 dragOverNodeKey: null
82392 });
82393
82394 var params = this.generateDropParams(node);
82395 this.props.onDrop((0, _extends3.default)({
82396 event: e
82397 }, params));
82398 };
82399
82400 Tree.prototype.canDrop = function canDrop(node) {
82401 var params = this.generateDropParams(node);
82402 return this.props.canDrop(params);
82403 };
82404
82405 Tree.prototype.generateDropParams = function generateDropParams(node) {
82406 return {
82407 dragNode: this.dragNode,
82408 dragNodesKeys: [].concat(this.dragNodesKeys),
82409 node: node,
82410 dropPosition: this.dropPosition
82411 };
82412 };
82413
82414 Tree.prototype.filterTreeNode = function filterTreeNode(node) {
82415 return this.props.filterTreeNode.call(this, node);
82416 };
82417
82418 Tree.prototype.shouldNodeShow = function shouldNodeShow(nodeData) {
82419 var _state3 = this.state,
82420 expandedKeys = _state3.expandedKeys,
82421 _p2n = _state3._p2n;
82422
82423 return !(nodeData.style && nodeData.style.display === 'none') && (0, _util2.getAllDescendantKeys)(nodeData, _p2n).every(function (k) {
82424 return expandedKeys.includes(k);
82425 });
82426 };
82427
82428 Tree.prototype.renderTreeNode = function renderTreeNode(props, childNodes) {
82429 var _props4 = this.props,
82430 rtl = _props4.rtl,
82431 labelRender = _props4.labelRender;
82432 var key = props.key;
82433
82434 var nodeProps = (0, _extends3.default)({
82435 _key: key
82436 }, props, this.getNodeProps(key));
82437
82438 if (labelRender) {
82439 nodeProps.label = labelRender(pickProps(treeNodeProps, props));
82440 }
82441
82442 return _react2.default.createElement(_treeNode2.default, (0, _extends3.default)({ rtl: rtl, key: key }, nodeProps), childNodes);
82443 };
82444
82445 Tree.prototype.renderNodeList = function renderNodeList(dataSource) {
82446 var _this8 = this;
82447
82448 var nodeList = [];
82449 var _k2n = this.state._k2n;
82450
82451 var drill = function drill(list) {
82452 list.forEach(function (item) {
82453 // 为了兼容之前的实现 保留非法节点
82454 if (item.illegalFlag) {
82455 nodeList.push(item);
82456 return;
82457 }
82458
82459 var children = item.children,
82460 nodeProps = (0, _objectWithoutProperties3.default)(item, ['children']);
82461
82462 if (!_this8.shouldNodeShow(item)) {
82463 return;
82464 }
82465
82466 nodeList.push(nodeProps);
82467 children && children.length && drill(children);
82468 });
82469 };
82470
82471 drill(dataSource);
82472
82473 return nodeList.map(function (nodeProps, index) {
82474 // 为了兼容之前的实现 保留非法节点
82475 if (nodeProps.illegalFlag) {
82476 return nodeProps.node;
82477 }
82478 // aria props
82479 nodeProps.size = nodeList.length;
82480 nodeProps.posinset = index + 1;
82481
82482 return _k2n[nodeProps.key].node = _this8.renderTreeNode(nodeProps);
82483 });
82484 };
82485
82486 Tree.prototype.renderWithCustomChildNodes = function renderWithCustomChildNodes(dataSource) {
82487 var _this9 = this;
82488
82489 var renderChildNodes = this.props.renderChildNodes;
82490 var _k2n = this.state._k2n;
82491
82492 var drill = function drill(list) {
82493 return list.map(function (_ref, index) {
82494 var children = _ref.children,
82495 nodeProps = (0, _objectWithoutProperties3.default)(_ref, ['children']);
82496
82497 var childNodes = void 0;
82498
82499 if (children && children.length) {
82500 childNodes = renderChildNodes(drill(children));
82501 }
82502
82503 // aria props
82504 nodeProps.size = list.length;
82505 nodeProps.posinset = index + 1;
82506
82507 return _k2n[nodeProps.key].node = _this9.renderTreeNode(nodeProps, childNodes);
82508 });
82509 };
82510 return drill(dataSource);
82511 };
82512
82513 Tree.prototype.renderByDataSource = function renderByDataSource(dataSource) {
82514 var _this10 = this;
82515
82516 var drill = function drill(data) {
82517 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
82518
82519 return data.map(function (item, index) {
82520 // 为了兼容之前的实现 保留非法节点
82521 if (item.illegalFlag) {
82522 return item.node;
82523 }
82524 var pos = prefix + '-' + index;
82525 var _item$key = item.key,
82526 key = _item$key === undefined ? pos : _item$key,
82527 children = item.children,
82528 others = (0, _objectWithoutProperties3.default)(item, ['key', 'children']);
82529
82530 var props = (0, _extends3.default)({
82531 size: data.length
82532 }, others, _this10.getNodeProps('' + key), {
82533 _key: key,
82534 key: key
82535 });
82536
82537 if (children && children.length) {
82538 props.children = drill(children, pos);
82539 }
82540
82541 var node = _this10.renderTreeNode(props, props.children);
82542
82543 // eslint-disable-next-line
82544 _this10.state._k2n[key].node = node;
82545 return node;
82546 });
82547 };
82548
82549 return drill(dataSource);
82550 };
82551
82552 Tree.prototype.renderByChildren = function renderByChildren() {
82553 var _this11 = this;
82554
82555 var rtl = this.props.rtl;
82556 var _k2n = this.state._k2n;
82557
82558 var loop = function loop(children) {
82559 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
82560
82561 return _react.Children.map(children, function (child, index) {
82562 if (!_react2.default.isValidElement(child)) {
82563 return;
82564 }
82565 var pos = prefix + '-' + index;
82566 var key = child.key || pos;
82567 var props = _this11.getNodeProps('' + key);
82568 if (child.props.children) {
82569 props.children = loop(child.props.children, pos);
82570 }
82571
82572 props._key = key;
82573 props.rtl = rtl;
82574 props.size = _react.Children.count(children);
82575
82576 var node = (0, _react.cloneElement)(child, props);
82577 _k2n[key].node = node;
82578 return node;
82579 });
82580 };
82581
82582 return loop(this.props.children);
82583 };
82584
82585 Tree.prototype.render = function render() {
82586 var _cx,
82587 _this12 = this;
82588
82589 var _props5 = this.props,
82590 prefix = _props5.prefix,
82591 rtl = _props5.rtl,
82592 className = _props5.className,
82593 showLine = _props5.showLine,
82594 isNodeBlock = _props5.isNodeBlock,
82595 isLabelBlock = _props5.isLabelBlock,
82596 multiple = _props5.multiple,
82597 useVirtual = _props5.useVirtual,
82598 renderChildNodes = _props5.renderChildNodes;
82599 var dataSource = this.state.dataSource;
82600
82601 var _pickOthers = pickOthers(Object.keys(Tree.propTypes), this.props),
82602 style = _pickOthers.style,
82603 others = (0, _objectWithoutProperties3.default)(_pickOthers, ['style']);
82604
82605 if (rtl) {
82606 others.dir = 'rtl';
82607 }
82608
82609 var newClassName = (0, _classnames2.default)((_cx = {}, _cx[prefix + 'tree'] = true, _cx[prefix + 'label-block'] = isLabelBlock, _cx[prefix + 'node-block'] = isNodeBlock, _cx[prefix + 'node-indent'] = !isNodeBlock, _cx[prefix + 'show-line'] = !isNodeBlock && showLine, _cx[className] = !!className, _cx));
82610
82611 var treeRender = function treeRender(items, ref) {
82612 return _react2.default.createElement('ul', (0, _extends3.default)({
82613 role: 'tree',
82614 ref: ref,
82615 'aria-multiselectable': multiple,
82616 onBlur: _this12.handleBlur,
82617 className: newClassName,
82618 style: useVirtual ? null : style
82619 }, others), items);
82620 };
82621
82622 var virtualTreeRender = function virtualTreeRender(dataSource) {
82623 return _react2.default.createElement('div', { className: prefix + 'virtual-tree-container', style: style }, _react2.default.createElement(_virtualList2.default, { itemsRenderer: function itemsRenderer(items, ref) {
82624 return treeRender(items, ref);
82625 } }, _this12.renderNodeList(dataSource)));
82626 };
82627
82628 return useVirtual ? virtualTreeRender(dataSource) : renderChildNodes ? treeRender(this.renderWithCustomChildNodes(dataSource)) : !this.props.dataSource ? treeRender(this.renderByChildren()) : treeRender(this.renderByDataSource(dataSource));
82629 };
82630
82631 return Tree;
82632}(_react.Component), _class.propTypes = {
82633 prefix: _propTypes2.default.string,
82634 rtl: _propTypes2.default.bool,
82635 pure: _propTypes2.default.bool,
82636 className: _propTypes2.default.string,
82637 /**
82638 * 树节点
82639 */
82640 children: _propTypes2.default.node,
82641 /**
82642 * 数据源,该属性优先级高于 children
82643 */
82644 dataSource: _propTypes2.default.array,
82645 /**
82646 * 是否显示树的线
82647 */
82648 showLine: _propTypes2.default.bool,
82649 /**
82650 * 是否支持选中节点
82651 */
82652 selectable: _propTypes2.default.bool,
82653 /**
82654 * (用于受控)当前选中节点 key 的数组
82655 */
82656 selectedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82657 /**
82658 * (用于非受控)默认选中节点 key 的数组
82659 */
82660 defaultSelectedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82661 /**
82662 * 选中或取消选中节点时触发的回调函数
82663 * @param {Array} selectedKeys 选中节点key的数组
82664 * @param {Object} extra 额外参数
82665 * @param {Array} extra.selectedNodes 选中节点的数组
82666 * @param {Object} extra.node 当前操作的节点
82667 * @param {Boolean} extra.selected 当前操作是否是选中
82668 */
82669 onSelect: _propTypes2.default.func,
82670 /**
82671 * 是否支持多选
82672 */
82673 multiple: _propTypes2.default.bool,
82674 /**
82675 * 是否支持勾选节点的复选框
82676 */
82677 checkable: _propTypes2.default.bool,
82678 /**
82679 * (用于受控)当前勾选复选框节点 key 的数组或 `{checked: Array, indeterminate: Array}` 的对象
82680 */
82681 checkedKeys: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.object]),
82682 /**
82683 * (用于非受控)默认勾选复选框节点 key 的数组
82684 */
82685 defaultCheckedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82686 /**
82687 * 勾选节点复选框是否完全受控(父子节点选中状态不再关联)
82688 */
82689 checkStrictly: _propTypes2.default.bool,
82690 /**
82691 * 定义选中时回填的方式
82692 * @enumdesc 返回所有选中的节点, 父子节点都选中时只返回父节点, 父子节点都选中时只返回子节点
82693 */
82694 checkedStrategy: _propTypes2.default.oneOf(['all', 'parent', 'child']),
82695 /**
82696 * 勾选或取消勾选复选框时触发的回调函数
82697 * @param {Array} checkedKeys 勾选复选框节点key的数组
82698 * @param {Object} extra 额外参数
82699 * @param {Array} extra.checkedNodes 勾选复选框节点的数组
82700 * @param {Array} extra.checkedNodesPositions 包含有勾选复选框节点和其位置的对象的数组
82701 * @param {Array} extra.indeterminateKeys 半选复选框节点 key 的数组
82702 * @param {Object} extra.node 当前操作的节点
82703 * @param {Boolean} extra.checked 当前操作是否是勾选
82704 */
82705 onCheck: _propTypes2.default.func,
82706 /**
82707 * (用于受控)当前展开的节点 key 的数组
82708 */
82709 expandedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82710 /**
82711 * (用于非受控)默认展开的节点 key 的数组
82712 */
82713 defaultExpandedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
82714 /**
82715 * 是否默认展开所有节点
82716 */
82717 defaultExpandAll: _propTypes2.default.bool,
82718 /**
82719 * 是否自动展开父节点,建议受控时设置为false
82720 */
82721 autoExpandParent: _propTypes2.default.bool,
82722 /**
82723 * 展开或收起节点时触发的回调函数
82724 * @param {Array} expandedKeys 展开的节点key的数组
82725 * @param {Object} extra 额外参数
82726 * @param {Object} extra.node 当前操作的节点
82727 * @param {Boolean} extra.expanded 当前操作是否是展开
82728 */
82729 onExpand: _propTypes2.default.func,
82730 /**
82731 * 是否支持编辑节点内容
82732 */
82733 editable: _propTypes2.default.bool,
82734 /**
82735 * 编辑节点内容完成时触发的回调函数
82736 * @param {String} key 编辑节点的 key
82737 * @param {String} label 编辑节点完成时节点的文本
82738 * @param {Object} node 当前编辑的节点
82739 */
82740 onEditFinish: _propTypes2.default.func,
82741 /**
82742 * 是否支持拖拽节点
82743 */
82744 draggable: _propTypes2.default.bool,
82745 /**
82746 * 开始拖拽节点时触发的回调函数
82747 * @param {Object} info 拖拽信息
82748 * @param {Object} info.event 事件对象
82749 * @param {Object} info.node 拖拽的节点
82750 */
82751 onDragStart: _propTypes2.default.func,
82752 /**
82753 * 拖拽节点进入目标节点时触发的回调函数
82754 * @param {Object} info 拖拽信息
82755 * @param {Object} info.event 事件对象
82756 * @param {Object} info.node 目标节点
82757 * @param {Array} info.expandedKeys 当前展开的节点key的数组
82758 */
82759 onDragEnter: _propTypes2.default.func,
82760 /**
82761 * 拖拽节点在目标节点上移动的时候触发的回调函数
82762 * @param {Object} info 拖拽信息
82763 * @param {Object} info.event 事件对象
82764 * @param {Object} info.node 目标节点
82765 */
82766 onDragOver: _propTypes2.default.func,
82767 /**
82768 * 拖拽节点离开目标节点时触发的回调函数
82769 * @param {Object} info 拖拽信息
82770 * @param {Object} info.event 事件对象
82771 * @param {Object} info.node 目标节点
82772 */
82773 onDragLeave: _propTypes2.default.func,
82774 /**
82775 * 拖拽节点拖拽结束时触发的回调函数
82776 * @param {Object} info 拖拽信息
82777 * @param {Object} info.event 事件对象
82778 * @param {Object} info.node 目标节点
82779 */
82780 onDragEnd: _propTypes2.default.func,
82781 /**
82782 * 拖拽节点放入目标节点内或前后触发的回调函数
82783 * @param {Object} info 拖拽信息
82784 * @param {Object} info.event 事件对象
82785 * @param {Object} info.node 目标节点
82786 * @param {Object} info.dragNode 拖拽的节点
82787 * @param {Array} info.dragNodesKeys 拖拽的节点和其子节点 key 的数组
82788 * @param {Number} info.dropPosition 放置位置,-1代表当前节点前,0代表当前节点里,1代表当前节点后
82789 */
82790 onDrop: _propTypes2.default.func,
82791 /**
82792 * 节点是否可被作为拖拽的目标节点
82793 * @param {Object} info 拖拽信息
82794 * @param {Object} info.node 目标节点
82795 * @param {Object} info.dragNode 拖拽的节点
82796 * @param {Array} info.dragNodesKeys 拖拽的节点和其子节点 key 的数组
82797 * @param {Number} info.dropPosition 放置位置,-1代表当前节点前,0代表当前节点里,1代表当前节点后
82798 * @return {Boolean} 是否可以被当作目标节点
82799 */
82800 canDrop: _propTypes2.default.func,
82801 /**
82802 * 异步加载数据的函数
82803 * @param {Object} node 被点击展开的节点
82804 */
82805 loadData: _propTypes2.default.func,
82806 /**
82807 * 按需筛选高亮节点
82808 * @param {Object} node 待筛选的节点
82809 * @return {Boolean} 是否被筛选中
82810 */
82811 filterTreeNode: _propTypes2.default.func,
82812 /**
82813 * 右键点击节点时触发的回调函数
82814 * @param {Object} info 信息对象
82815 * @param {Object} info.event 事件对象
82816 * @param {Object} info.node 点击的节点
82817 */
82818 onRightClick: _propTypes2.default.func,
82819 /**
82820 * 设置节点是否占满剩余空间,一般用于统一在各节点右侧添加元素(借助 flex 实现,暂时只支持 ie10+)
82821 */
82822 isLabelBlock: _propTypes2.default.bool,
82823 /**
82824 * 设置节点是否占满一行
82825 */
82826 isNodeBlock: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.object]),
82827 /**
82828 * 是否开启展开收起动画
82829 */
82830 animation: _propTypes2.default.bool,
82831 /**
82832 * 当前获得焦点的子菜单或菜单项 key 值
82833 */
82834 focusedKey: _propTypes2.default.string,
82835 /**
82836 * 渲染子节点
82837 * @param {Array<ReactNode>} nodes 所有的子节点
82838 * @return {ReactNode} 返回节点
82839 */
82840 renderChildNodes: _propTypes2.default.func,
82841 focusable: _propTypes2.default.bool,
82842 autoFocus: _propTypes2.default.bool,
82843 onItemFocus: _propTypes2.default.func,
82844 onBlur: _propTypes2.default.func,
82845 onItemKeyDown: _propTypes2.default.func,
82846 /**
82847 * 自定义渲染单个子节点
82848 * @param {Object} node 节点数据
82849 * @return {ReactNode} 返回节点
82850 * @version 1.25
82851 */
82852 labelRender: _propTypes2.default.func,
82853 /**
82854 * 是否开启虚拟滚动
82855 */
82856 useVirtual: _propTypes2.default.bool,
82857 /**
82858 * 是否是不可变数据
82859 * @version 1.23
82860 */
82861 immutable: _propTypes2.default.bool
82862}, _class.defaultProps = {
82863 prefix: 'next-',
82864 rtl: false,
82865 pure: false,
82866 showLine: false,
82867 selectable: true,
82868 editable: false,
82869 multiple: false,
82870 checkable: false,
82871 checkStrictly: false,
82872 checkedStrategy: 'all',
82873 draggable: false,
82874 autoExpandParent: true,
82875 defaultExpandAll: false,
82876 defaultExpandedKeys: [],
82877 defaultCheckedKeys: [],
82878 defaultSelectedKeys: [],
82879 onExpand: noop,
82880 onCheck: noop,
82881 onSelect: noop,
82882 onDragStart: noop,
82883 onDragEnter: noop,
82884 onDragOver: noop,
82885 onDragLeave: noop,
82886 onDragEnd: noop,
82887 onDrop: noop,
82888 canDrop: function canDrop() {
82889 return true;
82890 },
82891 onEditFinish: noop,
82892 onRightClick: noop,
82893 isLabelBlock: false,
82894 isNodeBlock: false,
82895 animation: true,
82896 focusable: true,
82897 autoFocus: false,
82898 onItemFocus: noop,
82899 onItemKeyDown: noop,
82900 useVirtual: false,
82901 immutable: false
82902}, _temp);
82903Tree.displayName = 'Tree';
82904exports.default = (0, _reactLifecyclesCompat.polyfill)(Tree);
82905
82906/***/ }),
82907/* 456 */
82908/***/ (function(module, exports, __webpack_require__) {
82909
82910"use strict";
82911
82912
82913exports.__esModule = true;
82914exports.default = undefined;
82915
82916var _extends2 = __webpack_require__(1);
82917
82918var _extends3 = _interopRequireDefault(_extends2);
82919
82920var _objectWithoutProperties2 = __webpack_require__(8);
82921
82922var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
82923
82924var _classCallCheck2 = __webpack_require__(2);
82925
82926var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
82927
82928var _possibleConstructorReturn2 = __webpack_require__(3);
82929
82930var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
82931
82932var _inherits2 = __webpack_require__(4);
82933
82934var _inherits3 = _interopRequireDefault(_inherits2);
82935
82936var _class, _temp;
82937
82938var _react = __webpack_require__(0);
82939
82940var _react2 = _interopRequireDefault(_react);
82941
82942var _reactDom = __webpack_require__(12);
82943
82944var _propTypes = __webpack_require__(5);
82945
82946var _propTypes2 = _interopRequireDefault(_propTypes);
82947
82948var _input = __webpack_require__(18);
82949
82950var _input2 = _interopRequireDefault(_input);
82951
82952function _interopRequireDefault(obj) {
82953 return obj && obj.__esModule ? obj : { default: obj };
82954}
82955
82956var TreeNodeInput = (_temp = _class = function (_Component) {
82957 (0, _inherits3.default)(TreeNodeInput, _Component);
82958
82959 function TreeNodeInput() {
82960 (0, _classCallCheck3.default)(this, TreeNodeInput);
82961 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
82962 }
82963
82964 TreeNodeInput.prototype.componentDidMount = function componentDidMount() {
82965 var inputWrapperNode = (0, _reactDom.findDOMNode)(this);
82966 inputWrapperNode.querySelector('input').focus();
82967 };
82968
82969 TreeNodeInput.prototype.render = function render() {
82970 var _props = this.props,
82971 prefix = _props.prefix,
82972 others = (0, _objectWithoutProperties3.default)(_props, ['prefix']);
82973
82974 return _react2.default.createElement(_input2.default, (0, _extends3.default)({
82975 size: 'small',
82976 className: prefix + 'tree-node-input'
82977 }, others));
82978 };
82979
82980 return TreeNodeInput;
82981}(_react.Component), _class.propTypes = {
82982 prefix: _propTypes2.default.string
82983}, _temp);
82984TreeNodeInput.displayName = 'TreeNodeInput';
82985exports.default = TreeNodeInput;
82986module.exports = exports['default'];
82987
82988/***/ }),
82989/* 457 */
82990/***/ (function(module, exports, __webpack_require__) {
82991
82992"use strict";
82993
82994
82995exports.__esModule = true;
82996exports.default = undefined;
82997
82998var _classCallCheck2 = __webpack_require__(2);
82999
83000var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
83001
83002var _possibleConstructorReturn2 = __webpack_require__(3);
83003
83004var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
83005
83006var _inherits2 = __webpack_require__(4);
83007
83008var _inherits3 = _interopRequireDefault(_inherits2);
83009
83010var _class, _temp;
83011
83012var _react = __webpack_require__(0);
83013
83014var _react2 = _interopRequireDefault(_react);
83015
83016var _propTypes = __webpack_require__(5);
83017
83018var _propTypes2 = _interopRequireDefault(_propTypes);
83019
83020var _classnames = __webpack_require__(7);
83021
83022var _classnames2 = _interopRequireDefault(_classnames);
83023
83024function _interopRequireDefault(obj) {
83025 return obj && obj.__esModule ? obj : { default: obj };
83026}
83027
83028var TreeNodeIndent = (_temp = _class = function (_Component) {
83029 (0, _inherits3.default)(TreeNodeIndent, _Component);
83030
83031 function TreeNodeIndent() {
83032 (0, _classCallCheck3.default)(this, TreeNodeIndent);
83033 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
83034 }
83035
83036 TreeNodeIndent.prototype.render = function render() {
83037 var _props = this.props,
83038 prefix = _props.prefix,
83039 level = _props.level,
83040 isLastChild = _props.isLastChild,
83041 showLine = _props.showLine;
83042
83043 var indents = [];
83044
83045 for (var i = 1; i < level; i++) {
83046 var _cx;
83047
83048 var classNames = (0, _classnames2.default)(prefix + 'tree-node-indent-unit', (_cx = {}, _cx[prefix + 'line'] = !isLastChild[i - 1] && showLine, _cx));
83049
83050 indents.push(_react2.default.createElement('span', { className: classNames, key: i - 1 }));
83051 }
83052
83053 return indents;
83054 };
83055
83056 return TreeNodeIndent;
83057}(_react.Component), _class.propTypes = {
83058 prefix: _propTypes2.default.string,
83059 level: _propTypes2.default.number,
83060 isLastChild: _propTypes2.default.arrayOf(_propTypes2.default.bool),
83061 showLine: _propTypes2.default.bool
83062}, _class.defaultProps = {
83063 isLastChild: []
83064}, _temp);
83065TreeNodeIndent.displayName = 'TreeNodeIndent';
83066exports.default = TreeNodeIndent;
83067module.exports = exports['default'];
83068
83069/***/ }),
83070/* 458 */
83071/***/ (function(module, exports, __webpack_require__) {
83072
83073"use strict";
83074
83075
83076exports.__esModule = true;
83077
83078var _extends2 = __webpack_require__(1);
83079
83080var _extends3 = _interopRequireDefault(_extends2);
83081
83082var _objectWithoutProperties2 = __webpack_require__(8);
83083
83084var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
83085
83086var _configProvider = __webpack_require__(9);
83087
83088var _configProvider2 = _interopRequireDefault(_configProvider);
83089
83090var _treeSelect = __webpack_require__(459);
83091
83092var _treeSelect2 = _interopRequireDefault(_treeSelect);
83093
83094function _interopRequireDefault(obj) {
83095 return obj && obj.__esModule ? obj : { default: obj };
83096}
83097
83098exports.default = _configProvider2.default.config(_treeSelect2.default, {
83099 transform: /* istanbul ignore next */function transform(props, deprecated) {
83100 if ('shape' in props) {
83101 deprecated('shape', 'hasBorder', 'TreeSelect');
83102 var _props = props,
83103 shape = _props.shape,
83104 others = (0, _objectWithoutProperties3.default)(_props, ['shape']);
83105
83106 props = (0, _extends3.default)({ hasBorder: shape !== 'arrow-only' }, others);
83107 }
83108
83109 if ('container' in props) {
83110 deprecated('container', 'popupContainer', 'TreeSelect');
83111
83112 var _props2 = props,
83113 container = _props2.container,
83114 _others = (0, _objectWithoutProperties3.default)(_props2, ['container']);
83115
83116 props = (0, _extends3.default)({ popupContainer: container }, _others);
83117 }
83118
83119 return props;
83120 }
83121});
83122module.exports = exports['default'];
83123
83124/***/ }),
83125/* 459 */
83126/***/ (function(module, exports, __webpack_require__) {
83127
83128"use strict";
83129
83130
83131exports.__esModule = true;
83132
83133var _objectWithoutProperties2 = __webpack_require__(8);
83134
83135var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
83136
83137var _typeof2 = __webpack_require__(14);
83138
83139var _typeof3 = _interopRequireDefault(_typeof2);
83140
83141var _classCallCheck2 = __webpack_require__(2);
83142
83143var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
83144
83145var _possibleConstructorReturn2 = __webpack_require__(3);
83146
83147var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
83148
83149var _inherits2 = __webpack_require__(4);
83150
83151var _inherits3 = _interopRequireDefault(_inherits2);
83152
83153var _extends2 = __webpack_require__(1);
83154
83155var _extends3 = _interopRequireDefault(_extends2);
83156
83157var _class, _temp;
83158
83159var _react = __webpack_require__(0);
83160
83161var _react2 = _interopRequireDefault(_react);
83162
83163var _reactLifecyclesCompat = __webpack_require__(10);
83164
83165var _propTypes = __webpack_require__(5);
83166
83167var _propTypes2 = _interopRequireDefault(_propTypes);
83168
83169var _classnames = __webpack_require__(7);
83170
83171var _classnames2 = _interopRequireDefault(_classnames);
83172
83173var _select = __webpack_require__(29);
83174
83175var _select2 = _interopRequireDefault(_select);
83176
83177var _tree = __webpack_require__(192);
83178
83179var _tree2 = _interopRequireDefault(_tree);
83180
83181var _util = __webpack_require__(193);
83182
83183var _util2 = __webpack_require__(6);
83184
83185var _zhCn = __webpack_require__(13);
83186
83187var _zhCn2 = _interopRequireDefault(_zhCn);
83188
83189var _util3 = __webpack_require__(62);
83190
83191function _interopRequireDefault(obj) {
83192 return obj && obj.__esModule ? obj : { default: obj };
83193}
83194
83195var noop = function noop() {};
83196var TreeNode = _tree2.default.Node;
83197var bindCtx = _util2.func.bindCtx;
83198
83199var flatDataSource = function flatDataSource(props) {
83200 var _k2n = {};
83201 var _p2n = {};
83202 var _v2n = {};
83203
83204 if ('dataSource' in props) {
83205 var loop = function loop(data) {
83206 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
83207 return data.map(function (item, index) {
83208 var value = item.value,
83209 children = item.children;
83210
83211 var pos = prefix + '-' + index;
83212 var key = item.key || pos;
83213
83214 var newItem = (0, _extends3.default)({}, item, { key: key, pos: pos });
83215 if (children && children.length) {
83216 newItem.children = loop(children, pos);
83217 }
83218
83219 _k2n[key] = _p2n[pos] = _v2n[value] = newItem;
83220 return newItem;
83221 });
83222 };
83223
83224 loop(props.dataSource);
83225 } else if ('children' in props) {
83226 var _loop = function _loop(children) {
83227 var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '0';
83228 return _react.Children.map(children, function (node, index) {
83229 if (!_react2.default.isValidElement(node)) {
83230 return;
83231 }
83232
83233 var _node$props = node.props,
83234 value = _node$props.value,
83235 children = _node$props.children;
83236
83237 var pos = prefix + '-' + index;
83238 var key = node.key || pos;
83239 var newItem = (0, _extends3.default)({}, node.props, { key: key, pos: pos });
83240 if (children && _react.Children.count(children)) {
83241 newItem.children = _loop(children, pos);
83242 }
83243
83244 _k2n[key] = _p2n[pos] = _v2n[value] = newItem;
83245 return newItem;
83246 });
83247 };
83248 _loop(props.children);
83249 }
83250
83251 return { _k2n: _k2n, _p2n: _p2n, _v2n: _v2n };
83252};
83253
83254var isSearched = function isSearched(label, searchedValue) {
83255 var labelString = '';
83256
83257 searchedValue = String(searchedValue);
83258
83259 var loop = function loop(arg) {
83260 if ((0, _react.isValidElement)(arg) && arg.props.children) {
83261 _react.Children.forEach(arg.props.children, loop);
83262 } else {
83263 labelString += arg;
83264 }
83265 };
83266 loop(label);
83267
83268 if (labelString.length >= searchedValue.length && labelString.toLowerCase().indexOf(searchedValue.toLowerCase()) > -1) {
83269 return true;
83270 }
83271
83272 return false;
83273};
83274
83275var getSearchKeys = function getSearchKeys(searchedValue, _k2n, _p2n) {
83276 var searchedKeys = [];
83277 var retainedKeys = [];
83278 Object.keys(_k2n).forEach(function (k) {
83279 var _k2n$k = _k2n[k],
83280 label = _k2n$k.label,
83281 pos = _k2n$k.pos;
83282
83283 if (isSearched(label, searchedValue)) {
83284 searchedKeys.push(k);
83285 var posArr = pos.split('-');
83286 posArr.forEach(function (n, i) {
83287 if (i > 0) {
83288 var p = posArr.slice(0, i + 1).join('-');
83289 var kk = _p2n[p].key;
83290 if (retainedKeys.indexOf(kk) === -1) {
83291 retainedKeys.push(kk);
83292 }
83293 }
83294 });
83295 }
83296 });
83297
83298 return { searchedKeys: searchedKeys, retainedKeys: retainedKeys };
83299};
83300
83301/**
83302 * TreeSelect
83303 */
83304var TreeSelect = (_temp = _class = function (_Component) {
83305 (0, _inherits3.default)(TreeSelect, _Component);
83306
83307 function TreeSelect(props, context) {
83308 (0, _classCallCheck3.default)(this, TreeSelect);
83309
83310 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
83311
83312 var defaultVisible = props.defaultVisible,
83313 visible = props.visible,
83314 defaultValue = props.defaultValue,
83315 value = props.value;
83316
83317 _this.state = (0, _extends3.default)({
83318 visible: typeof visible === 'undefined' ? defaultVisible : visible,
83319 value: (0, _util.normalizeToArray)(typeof value === 'undefined' ? defaultValue : value),
83320 searchedValue: '',
83321 expandedKeys: [],
83322 searchedKeys: [],
83323 retainedKeys: [],
83324 autoExpandParent: false,
83325 // map of value => item, includes value not exist in dataSource
83326 mapValueDS: {}
83327 }, flatDataSource(props));
83328
83329 // init value/mapValueDS when defaultValue is not undefined
83330 if (_this.state.value !== undefined) {
83331 _this.state.mapValueDS = (0, _util3.getValueDataSource)(_this.state.value, _this.state.mapValueDS).mapValueDS;
83332 _this.state.value = _this.state.value.map(function (v) {
83333 return (0, _util3.valueToSelectKey)(v);
83334 });
83335 }
83336
83337 bindCtx(_this, ['handleSelect', 'handleCheck', 'handleSearch', 'handleSearchClear', 'handleVisibleChange', 'handleChange', 'handleRemove', 'handleExpand', 'handleKeyDown', 'saveTreeRef', 'saveSelectRef', 'renderMaxTagPlaceholder']);
83338 return _this;
83339 }
83340
83341 TreeSelect.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
83342 var st = {};
83343
83344 if ('value' in props) {
83345 var valueArray = (0, _util.normalizeToArray)(props.value);
83346 // convert value to string[]
83347 st.value = valueArray.map(function (v) {
83348 return (0, _util3.valueToSelectKey)(v);
83349 });
83350 // re-calculate map
83351 st.mapValueDS = (0, _util3.getValueDataSource)(props.value, state.mapValueDS).mapValueDS;
83352 }
83353 if ('visible' in props) {
83354 st.visible = props.visible;
83355 }
83356
83357 var _flatDataSource = flatDataSource(props),
83358 _k2n = _flatDataSource._k2n,
83359 _p2n = _flatDataSource._p2n,
83360 _v2n = _flatDataSource._v2n;
83361
83362 if (props.showSearch && state.searchedValue) {
83363 var _getSearchKeys = getSearchKeys(state.searchedValue, _k2n, _p2n),
83364 searchedKeys = _getSearchKeys.searchedKeys,
83365 retainedKeys = _getSearchKeys.retainedKeys;
83366
83367 st.searchedKeys = searchedKeys;
83368 st.retainedKeys = retainedKeys;
83369 }
83370
83371 return (0, _extends3.default)({}, st, {
83372 _k2n: _k2n,
83373 _p2n: _p2n,
83374 _v2n: _v2n
83375 });
83376 };
83377
83378 TreeSelect.prototype.getKeysByValue = function getKeysByValue(value) {
83379 var _this2 = this;
83380
83381 return value.reduce(function (ret, v) {
83382 var k = _this2.state._v2n[v] && _this2.state._v2n[v].key;
83383 if (k) {
83384 ret.push(k);
83385 }
83386 return ret;
83387 }, []);
83388 };
83389
83390 TreeSelect.prototype.getValueByKeys = function getValueByKeys(keys) {
83391 var _this3 = this;
83392
83393 return keys.map(function (k) {
83394 return _this3.state._k2n[k].value;
83395 });
83396 };
83397
83398 TreeSelect.prototype.getValueForSelect = function getValueForSelect(value) {
83399 var treeCheckedStrategy = this.props.treeCheckedStrategy;
83400
83401 var nonExistentValueKeys = this.getNonExistentValueKeys();
83402
83403 var keys = this.getKeysByValue(value);
83404 keys = (0, _util.getAllCheckedKeys)(keys, this.state._k2n, this.state._p2n);
83405
83406 switch (treeCheckedStrategy) {
83407 case 'parent':
83408 keys = (0, _util.filterChildKey)(keys, this.state._k2n, this.state._p2n);
83409 break;
83410 case 'child':
83411 keys = (0, _util.filterParentKey)(keys, this.state._k2n, this.state._p2n);
83412 break;
83413 default:
83414 break;
83415 }
83416
83417 var values = this.getValueByKeys(keys);
83418
83419 return [].concat(values, nonExistentValueKeys);
83420 };
83421
83422 TreeSelect.prototype.getData = function getData(value, forSelect) {
83423 var _this4 = this;
83424
83425 var preserveNonExistentValue = this.props.preserveNonExistentValue;
83426 var mapValueDS = this.state.mapValueDS;
83427
83428 var ret = value.reduce(function (ret, v) {
83429 var k = _this4.state._v2n[v] && _this4.state._v2n[v].key;
83430 if (k) {
83431 var _state$_k2n$k = _this4.state._k2n[k],
83432 label = _state$_k2n$k.label,
83433 pos = _state$_k2n$k.pos,
83434 disabled = _state$_k2n$k.disabled,
83435 checkboxDisabled = _state$_k2n$k.checkboxDisabled;
83436
83437 var d = {
83438 value: v,
83439 label: label,
83440 pos: pos
83441 };
83442 if (forSelect) {
83443 d.disabled = disabled || checkboxDisabled;
83444 } else {
83445 d.key = k;
83446 }
83447 ret.push(d);
83448 } else if (preserveNonExistentValue) {
83449 // 需要保留 dataSource 中不存在的 value
83450 var item = mapValueDS[v];
83451 if (item) {
83452 ret.push(item);
83453 }
83454 }
83455 return ret;
83456 }, []);
83457
83458 return ret;
83459 };
83460
83461 TreeSelect.prototype.getNonExistentValues = function getNonExistentValues() {
83462 var _this5 = this;
83463
83464 var preserveNonExistentValue = this.props.preserveNonExistentValue;
83465 var value = this.state.value;
83466
83467 if (!preserveNonExistentValue) {
83468 return [];
83469 }
83470 var nonExistentValues = value.filter(function (v) {
83471 return !_this5.state._v2n[v];
83472 });
83473 return nonExistentValues;
83474 };
83475
83476 TreeSelect.prototype.getNonExistentValueKeys = function getNonExistentValueKeys() {
83477 var nonExistentValues = this.getNonExistentValues();
83478 return nonExistentValues.map(function (v) {
83479 if ((typeof v === 'undefined' ? 'undefined' : (0, _typeof3.default)(v)) === 'object' && v.hasOwnProperty('value')) {
83480 return v.value;
83481 }
83482 return v;
83483 });
83484 };
83485
83486 TreeSelect.prototype.saveTreeRef = function saveTreeRef(ref) {
83487 this.tree = ref;
83488 };
83489
83490 TreeSelect.prototype.saveSelectRef = function saveSelectRef(ref) {
83491 this.select = ref;
83492 };
83493
83494 TreeSelect.prototype.handleVisibleChange = function handleVisibleChange(visible, type) {
83495 if (!('visible' in this.props)) {
83496 this.setState({
83497 visible: visible
83498 });
83499 }
83500
83501 if (['fromTree', 'keyboard'].indexOf(type) !== -1 && !visible) {
83502 this.select.focusInput();
83503 }
83504
83505 this.props.onVisibleChange(visible, type);
83506 };
83507
83508 TreeSelect.prototype.handleSelect = function handleSelect(selectedKeys, extra) {
83509 var _props = this.props,
83510 multiple = _props.multiple,
83511 onChange = _props.onChange;
83512 var selected = extra.selected;
83513
83514 if (multiple || selected) {
83515 var value = this.getValueByKeys(selectedKeys);
83516 var nonExistentValues = this.getNonExistentValues();
83517 value = [].concat(nonExistentValues, value);
83518
83519 if (!('value' in this.props)) {
83520 this.setState({
83521 value: value
83522 });
83523 }
83524 if (!multiple) {
83525 this.handleVisibleChange(false, 'fromTree');
83526 }
83527
83528 var data = this.getData(value);
83529 multiple ? onChange(value, data) : onChange(value[0], data[0]);
83530
83531 // clear search value manually
83532 this.select.handleSearchClear('select');
83533 } else {
83534 this.handleVisibleChange(false, 'fromTree');
83535 }
83536 };
83537
83538 TreeSelect.prototype.handleCheck = function handleCheck(checkedKeys) {
83539 var onChange = this.props.onChange;
83540
83541 var value = this.getValueByKeys(checkedKeys);
83542 var nonExistentValues = this.getNonExistentValues();
83543 value = [].concat(nonExistentValues, value);
83544
83545 if (!('value' in this.props)) {
83546 this.setState({
83547 value: value
83548 });
83549 }
83550
83551 onChange(value, this.getData(value));
83552
83553 // clear search value manually
83554 this.select.handleSearchClear('select');
83555 };
83556
83557 TreeSelect.prototype.handleRemove = function handleRemove(removedItem) {
83558 var _this6 = this;
83559
83560 var removedValue = removedItem.value;
83561 var _props2 = this.props,
83562 treeCheckable = _props2.treeCheckable,
83563 treeCheckStrictly = _props2.treeCheckStrictly,
83564 treeCheckedStrategy = _props2.treeCheckedStrategy,
83565 onChange = _props2.onChange;
83566
83567 var value = void 0;
83568 if (
83569 // there's linkage relationship among nodes
83570 treeCheckable && !treeCheckStrictly && ['parent', 'all'].indexOf(treeCheckedStrategy) !== -1 &&
83571 // value exits in datasource
83572 this.state._v2n[removedValue]) {
83573 var removedPos = this.state._v2n[removedValue].pos;
83574 value = this.state.value.filter(function (v) {
83575 var p = _this6.state._v2n[v].pos;
83576 return !(0, _util.isDescendantOrSelf)(removedPos, p);
83577 });
83578
83579 var nums = removedPos.split('-');
83580 for (var i = nums.length; i > 2; i--) {
83581 var parentPos = nums.slice(0, i - 1).join('-');
83582 var parentValue = this.state._p2n[parentPos].value;
83583 var parentIndex = value.indexOf(parentValue);
83584 if (parentIndex > -1) {
83585 value.splice(parentIndex, 1);
83586 } else {
83587 break;
83588 }
83589 }
83590 } else {
83591 value = this.state.value.filter(function (v) {
83592 return v !== removedValue;
83593 });
83594 }
83595
83596 if (!('value' in this.props)) {
83597 this.setState({
83598 value: value
83599 });
83600 }
83601
83602 var data = this.getData(value);
83603 onChange(value, data);
83604 };
83605
83606 TreeSelect.prototype.handleSearch = function handleSearch(searchedValue) {
83607 var _state = this.state,
83608 _k2n = _state._k2n,
83609 _p2n = _state._p2n;
83610
83611 var _getSearchKeys2 = getSearchKeys(searchedValue, _k2n, _p2n),
83612 searchedKeys = _getSearchKeys2.searchedKeys,
83613 retainedKeys = _getSearchKeys2.retainedKeys;
83614
83615 this.setState({
83616 searchedValue: searchedValue,
83617 expandedKeys: searchedKeys,
83618 searchedKeys: searchedKeys,
83619 retainedKeys: retainedKeys,
83620 autoExpandParent: true
83621 });
83622
83623 this.props.onSearch(searchedValue);
83624 };
83625
83626 TreeSelect.prototype.handleSearchClear = function handleSearchClear(triggerType) {
83627 this.setState({
83628 searchedValue: '',
83629 expandedKeys: []
83630 });
83631 this.props.onSearchClear(triggerType);
83632 };
83633
83634 TreeSelect.prototype.handleExpand = function handleExpand(expandedKeys) {
83635 this.setState({
83636 expandedKeys: expandedKeys,
83637 autoExpandParent: false
83638 });
83639 };
83640
83641 TreeSelect.prototype.handleKeyDown = function handleKeyDown(e) {
83642 var onKeyDown = this.props.onKeyDown;
83643 var visible = this.state.visible;
83644
83645 if (onKeyDown) {
83646 onKeyDown(e);
83647 }
83648
83649 if (!visible) {
83650 return;
83651 }
83652
83653 switch (e.keyCode) {
83654 case _util2.KEYCODE.UP:
83655 case _util2.KEYCODE.DOWN:
83656 this.tree.setFocusKey();
83657 e.preventDefault();
83658 break;
83659 default:
83660 break;
83661 }
83662 };
83663
83664 TreeSelect.prototype.handleChange = function handleChange(value, triggerType) {
83665 if (this.props.hasClear && triggerType === 'clear') {
83666 if (!('value' in this.props)) {
83667 this.setState({
83668 value: []
83669 });
83670 }
83671
83672 this.props.onChange(null, null);
83673 }
83674 };
83675
83676 TreeSelect.prototype.searchNodes = function searchNodes(children) {
83677 var _state2 = this.state,
83678 searchedKeys = _state2.searchedKeys,
83679 retainedKeys = _state2.retainedKeys;
83680
83681 var loop = function loop(children) {
83682 var retainedNodes = [];
83683 _react.Children.forEach(children, function (child) {
83684 if (searchedKeys.indexOf(child.key) > -1) {
83685 retainedNodes.push(child);
83686 } else if (retainedKeys.indexOf(child.key) > -1) {
83687 var retainedNode = child.props.children ? (0, _react.cloneElement)(child, {}, loop(child.props.children)) : child;
83688 retainedNodes.push(retainedNode);
83689 } else {
83690 var hideNode = (0, _react.cloneElement)(child, {
83691 style: { display: 'none' }
83692 });
83693 retainedNodes.push(hideNode);
83694 }
83695 });
83696 return retainedNodes;
83697 };
83698
83699 return loop(children);
83700 };
83701
83702 TreeSelect.prototype.createNodesByData = function createNodesByData(data, searching) {
83703 var _this7 = this;
83704
83705 var _state3 = this.state,
83706 searchedKeys = _state3.searchedKeys,
83707 retainedKeys = _state3.retainedKeys;
83708
83709 var loop = function loop(data, isParentMatched) {
83710 var prefix = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '0';
83711
83712 var retainedNodes = [];
83713
83714 data.forEach(function (item, index) {
83715 var children = item.children,
83716 others = (0, _objectWithoutProperties3.default)(item, ['children']);
83717
83718 var pos = prefix + '-' + index;
83719 var key = _this7.state._p2n[pos].key;
83720 var addNode = function addNode(isParentMatched, hide) {
83721 if (hide) {
83722 others.style = { display: 'none' };
83723 }
83724
83725 retainedNodes.push(_react2.default.createElement(TreeNode, (0, _extends3.default)({}, others, { key: key }), children && children.length ? loop(children, isParentMatched, pos) : null));
83726 };
83727
83728 if (searching) {
83729 if (searchedKeys.indexOf(key) > -1 || isParentMatched) {
83730 addNode(true);
83731 } else if (retainedKeys.indexOf(key) > -1) {
83732 addNode(false);
83733 } else {
83734 addNode(false, true);
83735 }
83736 } else {
83737 addNode();
83738 }
83739 });
83740
83741 return retainedNodes;
83742 };
83743
83744 return loop(data, false);
83745 };
83746
83747 /*eslint-disable max-statements*/
83748
83749 TreeSelect.prototype.renderPopupContent = function renderPopupContent() {
83750 var prefix = this.props.prefix;
83751 var treeSelectPrefix = prefix + 'tree-select-';
83752
83753 if (!this.state.visible) {
83754 return _react2.default.createElement('div', { className: treeSelectPrefix + 'dropdown' });
83755 }
83756
83757 var _props3 = this.props,
83758 multiple = _props3.multiple,
83759 treeCheckable = _props3.treeCheckable,
83760 treeCheckStrictly = _props3.treeCheckStrictly,
83761 treeCheckedStrategy = _props3.treeCheckedStrategy,
83762 treeDefaultExpandAll = _props3.treeDefaultExpandAll,
83763 treeDefaultExpandedKeys = _props3.treeDefaultExpandedKeys,
83764 treeLoadData = _props3.treeLoadData,
83765 _props3$treeProps = _props3.treeProps,
83766 customTreeProps = _props3$treeProps === undefined ? {} : _props3$treeProps,
83767 showSearch = _props3.showSearch,
83768 dataSource = _props3.dataSource,
83769 children = _props3.children,
83770 readOnly = _props3.readOnly,
83771 notFoundContent = _props3.notFoundContent,
83772 useVirtual = _props3.useVirtual;
83773 var _state4 = this.state,
83774 value = _state4.value,
83775 searchedValue = _state4.searchedValue,
83776 expandedKeys = _state4.expandedKeys,
83777 autoExpandParent = _state4.autoExpandParent,
83778 searchedKeys = _state4.searchedKeys;
83779
83780 var treeProps = {
83781 multiple: multiple,
83782 ref: this.saveTreeRef,
83783 loadData: treeLoadData,
83784 defaultExpandAll: treeDefaultExpandAll,
83785 defaultExpandedKeys: treeDefaultExpandedKeys,
83786 useVirtual: useVirtual
83787 };
83788
83789 // 使用虚拟滚动 设置默认高度
83790 if (useVirtual) {
83791 customTreeProps.style = (0, _extends3.default)({
83792 maxHeight: '260px',
83793 overflow: 'auto',
83794 boxSizing: 'border-box'
83795 }, customTreeProps.style);
83796 }
83797
83798 var keys = this.getKeysByValue(value);
83799 if (treeCheckable) {
83800 treeProps.checkable = treeCheckable;
83801 treeProps.checkStrictly = treeCheckStrictly;
83802 treeProps.checkedStrategy = treeCheckStrictly ? 'all' : treeCheckedStrategy;
83803 treeProps.checkedKeys = keys;
83804 if (!readOnly) {
83805 treeProps.onCheck = this.handleCheck;
83806 }
83807 } else {
83808 treeProps.selectedKeys = keys;
83809 if (!readOnly) {
83810 treeProps.onSelect = this.handleSelect;
83811 }
83812 }
83813
83814 var notFound = false;
83815 var newChildren = void 0;
83816 if (showSearch && searchedValue) {
83817 treeProps.expandedKeys = expandedKeys;
83818 treeProps.autoExpandParent = autoExpandParent;
83819 treeProps.onExpand = this.handleExpand;
83820 treeProps.filterTreeNode = function (node) {
83821 return searchedKeys.indexOf(node.props.eventKey) > -1;
83822 };
83823
83824 if (searchedKeys.length) {
83825 newChildren = dataSource ? this.createNodesByData(dataSource, true) : this.searchNodes(children);
83826 } else {
83827 notFound = true;
83828 }
83829 } else {
83830 // eslint-disable-next-line
83831 if (dataSource) {
83832 if (dataSource.length) {
83833 newChildren = this.createNodesByData(dataSource);
83834 } else {
83835 notFound = true;
83836 }
83837 } else {
83838 // eslint-disable-next-line
83839 if (_react.Children.count(children)) {
83840 newChildren = children;
83841 } else {
83842 notFound = true;
83843 }
83844 }
83845 }
83846 var contentClass = treeSelectPrefix + 'dropdown-content';
83847
83848 return _react2.default.createElement('div', { className: treeSelectPrefix + 'dropdown' }, notFound ? _react2.default.createElement('div', { className: treeSelectPrefix + 'not-found contentClass' }, notFoundContent) : _react2.default.createElement(_tree2.default, (0, _extends3.default)({}, treeProps, customTreeProps, { className: contentClass }), newChildren));
83849 };
83850
83851 TreeSelect.prototype.renderPreview = function renderPreview(data, others) {
83852 var _props4 = this.props,
83853 prefix = _props4.prefix,
83854 className = _props4.className,
83855 renderPreview = _props4.renderPreview;
83856
83857 var previewCls = (0, _classnames2.default)(className, prefix + 'form-preview');
83858 var items = data && !Array.isArray(data) ? [data] : data;
83859
83860 if (typeof renderPreview === 'function') {
83861 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(items, this.props));
83862 }
83863
83864 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), items && items.map(function (_ref) {
83865 var label = _ref.label;
83866 return label;
83867 }).join(', '));
83868 };
83869
83870 /**
83871 * TreeSelect 无法直接使用 Select 的 maxTagPlaceholder 逻辑
83872 * Select 的 totalValue 是所有 leaf 节点,TreeSelect 的 totalValue 受 treeCheckedStrategy 和 treeCheckStrictly 影响
83873 *
83874 * treeCheckStrictly = true: totalValue 为所有节点
83875 *
83876 * treeCheckStrictly = false: 根据 treeCheckedStrategy 判断
83877 * treeCheckedStrategy = 'all': totalValue 为所有节点
83878 * treeCheckedStrategy = 'parent': totalValue 无意义,不返回
83879 * treeCheckedStrategy = 'child': totalValue 为所有 leaf 节点
83880 */
83881
83882 TreeSelect.prototype.renderMaxTagPlaceholder = function renderMaxTagPlaceholder(value, totalValue) {
83883 // 这里的 totalValue 为所有 leaf 节点
83884 var _props5 = this.props,
83885 treeCheckStrictly = _props5.treeCheckStrictly,
83886 maxTagPlaceholder = _props5.maxTagPlaceholder,
83887 treeCheckedStrategy = _props5.treeCheckedStrategy,
83888 locale = _props5.locale;
83889 var _v2n = this.state._v2n;
83890
83891 var treeSelectTotalValue = totalValue; // all the leaf nodes
83892
83893 // calculate total value
83894 if (treeCheckStrictly) {
83895 // all the nodes
83896 treeSelectTotalValue = _util2.obj.values(_v2n);
83897 } else if (treeCheckedStrategy === 'all') {
83898 // all
83899 treeSelectTotalValue = _util2.obj.values(_v2n);
83900 } else if (treeCheckedStrategy === 'parent') {
83901 // totalValue is pointless when treeCheckedStrategy = 'parent'
83902 treeSelectTotalValue = undefined;
83903 }
83904
83905 // custom render function
83906 if (maxTagPlaceholder) {
83907 return maxTagPlaceholder(value, treeSelectTotalValue);
83908 }
83909
83910 // default render function
83911 if (treeCheckedStrategy === 'parent') {
83912 // don't show totalValue when treeCheckedStrategy = 'parent'
83913 return '' + _util2.str.template(locale.shortMaxTagPlaceholder, {
83914 selected: value.length
83915 });
83916 }
83917 return '' + _util2.str.template(locale.maxTagPlaceholder, {
83918 selected: value.length,
83919 total: treeSelectTotalValue.length
83920 });
83921 };
83922
83923 /*eslint-enable*/
83924
83925 TreeSelect.prototype.render = function render() {
83926 var _props6 = this.props,
83927 prefix = _props6.prefix,
83928 size = _props6.size,
83929 placeholder = _props6.placeholder,
83930 disabled = _props6.disabled,
83931 hasArrow = _props6.hasArrow,
83932 hasBorder = _props6.hasBorder,
83933 hasClear = _props6.hasClear,
83934 label = _props6.label,
83935 readOnly = _props6.readOnly,
83936 autoWidth = _props6.autoWidth,
83937 popupStyle = _props6.popupStyle,
83938 popupClassName = _props6.popupClassName,
83939 showSearch = _props6.showSearch,
83940 multiple = _props6.multiple,
83941 treeCheckable = _props6.treeCheckable,
83942 treeCheckStrictly = _props6.treeCheckStrictly,
83943 className = _props6.className,
83944 popupContainer = _props6.popupContainer,
83945 popupProps = _props6.popupProps,
83946 followTrigger = _props6.followTrigger,
83947 isPreview = _props6.isPreview,
83948 dataSource = _props6.dataSource,
83949 tagInline = _props6.tagInline;
83950
83951 var others = _util2.obj.pickOthers(Object.keys(TreeSelect.propTypes), this.props);
83952 var _state5 = this.state,
83953 value = _state5.value,
83954 visible = _state5.visible;
83955
83956 // if (non-leaf 节点可选 & 父子节点选中状态需要联动),需要额外计算父子节点间的联动关系
83957
83958 var valueForSelect = treeCheckable && !treeCheckStrictly ? this.getValueForSelect(value) : value;
83959
83960 var data = this.getData(valueForSelect, true);
83961 if (!multiple && !treeCheckable) {
83962 data = data[0];
83963 }
83964
83965 if (isPreview) {
83966 return this.renderPreview(data, others);
83967 }
83968
83969 return _react2.default.createElement(_select2.default, (0, _extends3.default)({
83970 prefix: prefix,
83971 className: className,
83972 size: size,
83973 hasBorder: hasBorder,
83974 hasArrow: hasArrow,
83975 hasClear: hasClear,
83976 placeholder: placeholder,
83977 disabled: disabled,
83978 autoWidth: autoWidth,
83979 label: label,
83980 readOnly: readOnly,
83981 ref: this.saveSelectRef,
83982 dataSource: dataSource,
83983 value: data,
83984 onChange: this.handleChange,
83985 visible: visible,
83986 onVisibleChange: this.handleVisibleChange,
83987 showSearch: showSearch,
83988 onSearch: this.handleSearch,
83989 onSearchClear: this.handleSearchClear,
83990 popupContainer: popupContainer,
83991 popupStyle: popupStyle,
83992 popupClassName: popupClassName,
83993 popupProps: popupProps,
83994 followTrigger: followTrigger,
83995 tagInline: tagInline,
83996 maxTagPlaceholder: this.renderMaxTagPlaceholder
83997 }, others, {
83998 onRemove: this.handleRemove,
83999 onKeyDown: this.handleKeyDown,
84000 popupContent: this.renderPopupContent(),
84001 mode: treeCheckable || multiple ? 'multiple' : 'single'
84002 }));
84003 };
84004
84005 return TreeSelect;
84006}(_react.Component), _class.propTypes = {
84007 prefix: _propTypes2.default.string,
84008 pure: _propTypes2.default.bool,
84009 locale: _propTypes2.default.object,
84010 className: _propTypes2.default.string,
84011 /**
84012 * 树节点
84013 */
84014 children: _propTypes2.default.node,
84015 /**
84016 * 选择框大小
84017 */
84018 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
84019 /**
84020 * 选择框占位符
84021 */
84022 placeholder: _propTypes2.default.string,
84023 /**
84024 * 是否禁用
84025 */
84026 disabled: _propTypes2.default.bool,
84027 /**
84028 * 是否有下拉箭头
84029 */
84030 hasArrow: _propTypes2.default.bool,
84031 /**
84032 * 是否有边框
84033 */
84034 hasBorder: _propTypes2.default.bool,
84035 /**
84036 * 是否有清空按钮
84037 */
84038 hasClear: _propTypes2.default.bool,
84039 /**
84040 * 自定义内联 label
84041 */
84042 label: _propTypes2.default.node,
84043 /**
84044 * 是否只读,只读模式下可以展开弹层但不能选择
84045 */
84046 readOnly: _propTypes2.default.bool,
84047 /**
84048 * 下拉框是否与选择器对齐
84049 */
84050 autoWidth: _propTypes2.default.bool,
84051 /**
84052 * 数据源,该属性优先级高于 children
84053 */
84054 dataSource: _propTypes2.default.arrayOf(_propTypes2.default.object),
84055 /**
84056 * value/defaultValue 在 dataSource 中不存在时,是否展示
84057 * @version 1.25
84058 */
84059 preserveNonExistentValue: _propTypes2.default.bool,
84060 /**
84061 * (受控)当前值
84062 */
84063 value: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.any)]),
84064 /**
84065 * (非受控)默认值
84066 */
84067 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.object, _propTypes2.default.arrayOf(_propTypes2.default.any)]),
84068 /**
84069 * 选中值改变时触发的回调函数
84070 * @param {String|Array} value 选中的值,单选时返回单个值,多选时返回数组
84071 * @param {Object|Array} data 选中的数据,包括 value, label, pos, key属性,单选时返回单个值,多选时返回数组,父子节点选中关联时,同时选中,只返回父节点
84072 */
84073 onChange: _propTypes2.default.func,
84074 /**
84075 * 是否一行显示,仅在 multiple 和 treeCheckable 为 true 时生效
84076 * @version 1.25
84077 */
84078 tagInline: _propTypes2.default.bool,
84079 /**
84080 * 隐藏多余 tag 时显示的内容,在 tagInline 生效时起作用
84081 * @param {Object[]} selectedValues 当前已选中的元素
84082 * @param {Object[]} totalValues 总待选元素
84083 * @returns {reactNode}
84084 * @version 1.25
84085 */
84086 maxTagPlaceholder: _propTypes2.default.func,
84087 /**
84088 * 是否显示搜索框
84089 */
84090 showSearch: _propTypes2.default.bool,
84091 /**
84092 * 在搜索框中输入时触发的回调函数
84093 * @param {String} keyword 输入的关键字
84094 */
84095 onSearch: _propTypes2.default.func,
84096 onSearchClear: _propTypes2.default.func,
84097 /**
84098 * 无数据时显示内容
84099 */
84100 notFoundContent: _propTypes2.default.node,
84101 /**
84102 * 是否支持多选
84103 */
84104 multiple: _propTypes2.default.bool,
84105 /**
84106 * 下拉框中的树是否支持勾选节点的复选框
84107 */
84108 treeCheckable: _propTypes2.default.bool,
84109 /**
84110 * 下拉框中的树勾选节点复选框是否完全受控(父子节点选中状态不再关联)
84111 */
84112 treeCheckStrictly: _propTypes2.default.bool,
84113 /**
84114 * 定义选中时回填的方式
84115 * @enumdesc 返回所有选中的节点, 父子节点都选中时只返回父节点, 父子节点都选中时只返回子节点
84116 */
84117 treeCheckedStrategy: _propTypes2.default.oneOf(['all', 'parent', 'child']),
84118 /**
84119 * 下拉框中的树是否默认展开所有节点
84120 */
84121 treeDefaultExpandAll: _propTypes2.default.bool,
84122 /**
84123 * 下拉框中的树默认展开节点key的数组
84124 */
84125 treeDefaultExpandedKeys: _propTypes2.default.arrayOf(_propTypes2.default.string),
84126 /**
84127 * 下拉框中的树异步加载数据的函数,使用请参考[Tree的异步加载数据Demo](https://fusion.design/pc/component/basic/tree#%E5%BC%82%E6%AD%A5%E5%8A%A0%E8%BD%BD%E6%95%B0%E6%8D%AE)
84128 * @param {ReactElement} node 被点击展开的节点
84129 */
84130 treeLoadData: _propTypes2.default.func,
84131 /**
84132 * 透传到 Tree 的属性对象
84133 */
84134 treeProps: _propTypes2.default.object,
84135 /**
84136 * 初始下拉框是否显示
84137 */
84138 defaultVisible: _propTypes2.default.bool,
84139 /**
84140 * 当前下拉框是否显示
84141 */
84142 visible: _propTypes2.default.bool,
84143 /**
84144 * 下拉框显示或关闭时触发事件的回调函数
84145 * @param {Boolean} visible 是否显示
84146 * @param {String} type 触发显示关闭的操作类型
84147 */
84148 onVisibleChange: _propTypes2.default.func,
84149 /**
84150 * 下拉框自定义样式对象
84151 */
84152 popupStyle: _propTypes2.default.object,
84153 /**
84154 * 下拉框样式自定义类名
84155 */
84156 popupClassName: _propTypes2.default.string,
84157 /**
84158 * 下拉框挂载的容器节点
84159 */
84160 popupContainer: _propTypes2.default.any,
84161 /**
84162 * 透传到 Popup 的属性对象
84163 */
84164 popupProps: _propTypes2.default.object,
84165 /**
84166 * 是否跟随滚动
84167 */
84168 followTrigger: _propTypes2.default.bool,
84169 /**
84170 * 是否为预览态
84171 */
84172 isPreview: _propTypes2.default.bool,
84173 /**
84174 * 预览态模式下渲染的内容
84175 * @param {Array<data>} value 选择值 { label: , value:}
84176 */
84177 renderPreview: _propTypes2.default.func,
84178 /**
84179 * 是否开启虚拟滚动
84180 */
84181 useVirtual: _propTypes2.default.bool,
84182 /**
84183 * 是否是不可变数据
84184 * @version 1.23
84185 */
84186 immutable: _propTypes2.default.bool
84187}, _class.defaultProps = {
84188 prefix: 'next-',
84189 pure: false,
84190 locale: _zhCn2.default.TreeSelect,
84191 size: 'medium',
84192 disabled: false,
84193 hasArrow: true,
84194 hasBorder: true,
84195 hasClear: false,
84196 autoWidth: true,
84197 defaultValue: null,
84198 onChange: noop,
84199 tagInline: false,
84200 showSearch: false,
84201 onSearch: noop,
84202 onSearchClear: noop,
84203 notFoundContent: 'Not Found',
84204 multiple: false,
84205 treeCheckable: false,
84206 treeCheckStrictly: false,
84207 treeCheckedStrategy: 'parent',
84208 treeDefaultExpandAll: false,
84209 treeDefaultExpandedKeys: [],
84210 treeProps: {},
84211 defaultVisible: false,
84212 onVisibleChange: noop,
84213 useVirtual: false,
84214 /**
84215 * TODO
84216 * 目前 select/cascade select 是默认支持的,在 2.x 版本中 tree-select 也将默认支持
84217 */
84218 preserveNonExistentValue: false
84219}, _temp);
84220TreeSelect.displayName = 'TreeSelect';
84221
84222TreeSelect.Node = TreeNode;
84223
84224exports.default = (0, _reactLifecyclesCompat.polyfill)(TreeSelect);
84225module.exports = exports['default'];
84226
84227/***/ }),
84228/* 460 */
84229/***/ (function(module, exports, __webpack_require__) {
84230
84231"use strict";
84232
84233
84234exports.__esModule = true;
84235
84236var _typography = __webpack_require__(461);
84237
84238var _typography2 = _interopRequireDefault(_typography);
84239
84240var _paragraph = __webpack_require__(462);
84241
84242var _paragraph2 = _interopRequireDefault(_paragraph);
84243
84244var _title = __webpack_require__(463);
84245
84246var _title2 = _interopRequireDefault(_title);
84247
84248var _text = __webpack_require__(68);
84249
84250var _text2 = _interopRequireDefault(_text);
84251
84252function _interopRequireDefault(obj) {
84253 return obj && obj.__esModule ? obj : { default: obj };
84254}
84255
84256_typography2.default.Paragraph = _paragraph2.default;
84257_typography2.default.H1 = (0, _title2.default)('h1');
84258_typography2.default.H2 = (0, _title2.default)('h2');
84259_typography2.default.H3 = (0, _title2.default)('h3');
84260_typography2.default.H4 = (0, _title2.default)('h4');
84261_typography2.default.H5 = (0, _title2.default)('h5');
84262_typography2.default.H6 = (0, _title2.default)('h6');
84263_typography2.default.Text = _text2.default;
84264
84265exports.default = _typography2.default;
84266module.exports = exports['default'];
84267
84268/***/ }),
84269/* 461 */
84270/***/ (function(module, exports, __webpack_require__) {
84271
84272"use strict";
84273
84274
84275exports.__esModule = true;
84276
84277var _classCallCheck2 = __webpack_require__(2);
84278
84279var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84280
84281var _possibleConstructorReturn2 = __webpack_require__(3);
84282
84283var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84284
84285var _inherits2 = __webpack_require__(4);
84286
84287var _inherits3 = _interopRequireDefault(_inherits2);
84288
84289var _class, _temp;
84290
84291var _react = __webpack_require__(0);
84292
84293var _react2 = _interopRequireDefault(_react);
84294
84295var _propTypes = __webpack_require__(5);
84296
84297var _propTypes2 = _interopRequireDefault(_propTypes);
84298
84299var _text = __webpack_require__(68);
84300
84301var _text2 = _interopRequireDefault(_text);
84302
84303function _interopRequireDefault(obj) {
84304 return obj && obj.__esModule ? obj : { default: obj };
84305}
84306
84307/**
84308 * Typography
84309 * @description 继承 Typography.Text API
84310 * @order 0
84311 */
84312var Typography = (_temp = _class = function (_Component) {
84313 (0, _inherits3.default)(Typography, _Component);
84314
84315 function Typography() {
84316 (0, _classCallCheck3.default)(this, Typography);
84317 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
84318 }
84319
84320 Typography.prototype.render = function render() {
84321 return _react2.default.createElement(_text2.default, this.props);
84322 };
84323
84324 return Typography;
84325}(_react.Component), _class.propTypes = {
84326 /**
84327 * 设置标签类型
84328 */
84329 component: _propTypes2.default.elementType
84330}, _class.defaultProps = {
84331 component: 'article'
84332}, _temp);
84333Typography.displayName = 'Typography';
84334exports.default = Typography;
84335module.exports = exports['default'];
84336
84337/***/ }),
84338/* 462 */
84339/***/ (function(module, exports, __webpack_require__) {
84340
84341"use strict";
84342
84343
84344exports.__esModule = true;
84345
84346var _extends2 = __webpack_require__(1);
84347
84348var _extends3 = _interopRequireDefault(_extends2);
84349
84350var _objectWithoutProperties2 = __webpack_require__(8);
84351
84352var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
84353
84354var _classCallCheck2 = __webpack_require__(2);
84355
84356var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84357
84358var _possibleConstructorReturn2 = __webpack_require__(3);
84359
84360var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84361
84362var _inherits2 = __webpack_require__(4);
84363
84364var _inherits3 = _interopRequireDefault(_inherits2);
84365
84366var _class, _temp;
84367
84368var _react = __webpack_require__(0);
84369
84370var _react2 = _interopRequireDefault(_react);
84371
84372var _propTypes = __webpack_require__(5);
84373
84374var _propTypes2 = _interopRequireDefault(_propTypes);
84375
84376var _classnames = __webpack_require__(7);
84377
84378var _classnames2 = _interopRequireDefault(_classnames);
84379
84380var _configProvider = __webpack_require__(9);
84381
84382var _configProvider2 = _interopRequireDefault(_configProvider);
84383
84384var _text = __webpack_require__(68);
84385
84386var _text2 = _interopRequireDefault(_text);
84387
84388function _interopRequireDefault(obj) {
84389 return obj && obj.__esModule ? obj : { default: obj };
84390}
84391
84392/**
84393 * Typography.Paragraph
84394 * @description 继承 Typography.Text 的 API
84395 * @order 2
84396 */
84397var Paragraph = (_temp = _class = function (_React$Component) {
84398 (0, _inherits3.default)(Paragraph, _React$Component);
84399
84400 function Paragraph() {
84401 (0, _classCallCheck3.default)(this, Paragraph);
84402 return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
84403 }
84404
84405 Paragraph.prototype.render = function render() {
84406 var _props = this.props,
84407 prefix = _props.prefix,
84408 className = _props.className,
84409 component = _props.component,
84410 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className', 'component']);
84411
84412 var cls = (0, _classnames2.default)(prefix + 'typography-paragraph', className);
84413
84414 return _react2.default.createElement(_text2.default, (0, _extends3.default)({}, others, { className: cls, component: component }));
84415 };
84416
84417 return Paragraph;
84418}(_react2.default.Component), _class.propTypes = {
84419 prefix: _propTypes2.default.string,
84420 /**
84421 * 设置标签类型
84422 */
84423 component: _propTypes2.default.elementType
84424}, _class.defaultProps = {
84425 prefix: 'next-',
84426 type: 'long',
84427 size: 'medium',
84428 component: 'p'
84429}, _temp);
84430Paragraph.displayName = 'Paragraph';
84431exports.default = _configProvider2.default.config(Paragraph);
84432module.exports = exports['default'];
84433
84434/***/ }),
84435/* 463 */
84436/***/ (function(module, exports, __webpack_require__) {
84437
84438"use strict";
84439
84440
84441exports.__esModule = true;
84442
84443var _extends2 = __webpack_require__(1);
84444
84445var _extends3 = _interopRequireDefault(_extends2);
84446
84447var _objectWithoutProperties2 = __webpack_require__(8);
84448
84449var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
84450
84451var _classCallCheck2 = __webpack_require__(2);
84452
84453var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84454
84455var _possibleConstructorReturn2 = __webpack_require__(3);
84456
84457var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84458
84459var _inherits2 = __webpack_require__(4);
84460
84461var _inherits3 = _interopRequireDefault(_inherits2);
84462
84463var _react = __webpack_require__(0);
84464
84465var _react2 = _interopRequireDefault(_react);
84466
84467var _propTypes = __webpack_require__(5);
84468
84469var _propTypes2 = _interopRequireDefault(_propTypes);
84470
84471var _text = __webpack_require__(68);
84472
84473var _text2 = _interopRequireDefault(_text);
84474
84475var _configProvider = __webpack_require__(9);
84476
84477var _configProvider2 = _interopRequireDefault(_configProvider);
84478
84479function _interopRequireDefault(obj) {
84480 return obj && obj.__esModule ? obj : { default: obj };
84481}
84482
84483exports.default = function (Tag) {
84484 var _class, _temp;
84485
84486 /**
84487 * Typography.Title
84488 * @description 分为 H1, H2, H3, H4, H5, H6 不同的组件,表示不同层级,继承 Typography.Text API
84489 * @order 1
84490 */
84491 var Title = (_temp = _class = function (_Component) {
84492 (0, _inherits3.default)(Title, _Component);
84493
84494 function Title() {
84495 (0, _classCallCheck3.default)(this, Title);
84496 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
84497 }
84498
84499 Title.prototype.render = function render() {
84500 var _props = this.props,
84501 prefix = _props.prefix,
84502 className = _props.className,
84503 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'className']);
84504
84505 return _react2.default.createElement(_text2.default, (0, _extends3.default)({}, others, {
84506 component: Tag,
84507 className: (className || '') + ' ' + prefix + 'typography-title'
84508 }));
84509 };
84510
84511 return Title;
84512 }(_react.Component), _class.propTypes = {
84513 prefix: _propTypes2.default.string
84514 }, _class.defaultProps = {
84515 prefix: 'next-'
84516 }, _temp);
84517 Title.displayName = 'Title';
84518
84519 Title.displayName = Tag.toUpperCase();
84520 return _configProvider2.default.config(Title);
84521};
84522
84523module.exports = exports['default'];
84524
84525/***/ }),
84526/* 464 */
84527/***/ (function(module, exports, __webpack_require__) {
84528
84529"use strict";
84530
84531
84532exports.__esModule = true;
84533
84534var _extends2 = __webpack_require__(1);
84535
84536var _extends3 = _interopRequireDefault(_extends2);
84537
84538var _objectWithoutProperties2 = __webpack_require__(8);
84539
84540var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
84541
84542var _classCallCheck2 = __webpack_require__(2);
84543
84544var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84545
84546var _possibleConstructorReturn2 = __webpack_require__(3);
84547
84548var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84549
84550var _inherits2 = __webpack_require__(4);
84551
84552var _inherits3 = _interopRequireDefault(_inherits2);
84553
84554var _react = __webpack_require__(0);
84555
84556var _react2 = _interopRequireDefault(_react);
84557
84558var _configProvider = __webpack_require__(9);
84559
84560var _configProvider2 = _interopRequireDefault(_configProvider);
84561
84562var _util = __webpack_require__(6);
84563
84564var _util2 = __webpack_require__(42);
84565
84566var _transform2 = __webpack_require__(194);
84567
84568var _transform3 = _interopRequireDefault(_transform2);
84569
84570var _upload = __webpack_require__(106);
84571
84572var _upload2 = _interopRequireDefault(_upload);
84573
84574var _list = __webpack_require__(108);
84575
84576var _list2 = _interopRequireDefault(_list);
84577
84578var _card = __webpack_require__(468);
84579
84580var _card2 = _interopRequireDefault(_card);
84581
84582var _dragger = __webpack_require__(469);
84583
84584var _dragger2 = _interopRequireDefault(_dragger);
84585
84586var _selecter = __webpack_require__(107);
84587
84588var _selecter2 = _interopRequireDefault(_selecter);
84589
84590var _uploader = __webpack_require__(197);
84591
84592var _uploader2 = _interopRequireDefault(_uploader);
84593
84594function _interopRequireDefault(obj) {
84595 return obj && obj.__esModule ? obj : { default: obj };
84596}
84597
84598_upload2.default.Card = _configProvider2.default.config(_card2.default, { componentName: 'Upload' });
84599_upload2.default.Dragger = _configProvider2.default.config(_dragger2.default, { componentName: 'Upload' });
84600_upload2.default.Selecter = _selecter2.default;
84601_upload2.default.Uploader = _uploader2.default;
84602_upload2.default.ErrorCode = _util2.errorCode;
84603
84604// compatible with 0.x version
84605_upload2.default.ImageUpload = _configProvider2.default.config(_card2.default, {
84606 componentName: 'Upload',
84607 transform: /* istanbul ignore next */function transform(props, deprecated) {
84608 deprecated('Upload.ImageUpload', 'Upload.Card', 'Upload');
84609 var newprops = (0, _transform3.default)(props, function () {});
84610 if (newprops.locale && newprops.locale.image) {
84611 newprops.locale.card = newprops.locale.image;
84612 }
84613
84614 return newprops;
84615 }
84616});
84617
84618// compatible with 0.x version
84619_upload2.default.DragUpload = _configProvider2.default.config(_dragger2.default, {
84620 componentName: 'Upload',
84621 transform: /* istanbul ignore next */function transform(props, deprecated) {
84622 deprecated('Upload.DragUpload', 'Upload.Dragger', 'Upload');
84623 var newprops = (0, _transform3.default)(props, function () {});
84624 if (!newprops.listType) {
84625 newprops.listType = 'card';
84626 }
84627
84628 return newprops;
84629 }
84630});
84631
84632// compatible with 0.x version
84633/* istanbul ignore next */
84634_upload2.default.Core = function (_React$Component) {
84635 (0, _inherits3.default)(Core, _React$Component);
84636
84637 function Core(props) {
84638 (0, _classCallCheck3.default)(this, Core);
84639
84640 // eslint-disable-next-line
84641 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
84642
84643 _this.handleSelect = function (files) {
84644 _this.uploader.startUpload(files);
84645 };
84646
84647 var _this$props = _this.props,
84648 action = _this$props.action,
84649 name = _this$props.name,
84650 method = _this$props.method,
84651 beforeUpload = _this$props.beforeUpload,
84652 onProgress = _this$props.onProgress,
84653 onError = _this$props.onError,
84654 withCredentials = _this$props.withCredentials,
84655 headers = _this$props.headers,
84656 data = _this$props.data,
84657 onSuccess = _this$props.onSuccess;
84658
84659 _this.uploader = new _uploader2.default({
84660 action: action,
84661 name: name,
84662 method: method,
84663 beforeUpload: beforeUpload,
84664 onProgress: onProgress,
84665 onError: onError,
84666 withCredentials: withCredentials,
84667 headers: headers,
84668 data: data,
84669 onSuccess: onSuccess
84670 });
84671 return _this;
84672 }
84673
84674 Core.prototype.abort = function abort() {
84675 this.uploader.abort();
84676 };
84677
84678 Core.prototype.render = function render() {
84679 _util.log.deprecated('Upload.Core', 'Upload.Selecter and Upload.Uploader', 'Upload');
84680
84681 // eslint-disable-next-line
84682 var _props = this.props,
84683 action = _props.action,
84684 name = _props.name,
84685 method = _props.method,
84686 beforeUpload = _props.beforeUpload,
84687 onProgress = _props.onProgress,
84688 onError = _props.onError,
84689 withCredentials = _props.withCredentials,
84690 headers = _props.headers,
84691 data = _props.data,
84692 onSuccess = _props.onSuccess,
84693 others = (0, _objectWithoutProperties3.default)(_props, ['action', 'name', 'method', 'beforeUpload', 'onProgress', 'onError', 'withCredentials', 'headers', 'data', 'onSuccess']);
84694
84695 var props = others;
84696
84697 return _react2.default.createElement(_selecter2.default, (0, _extends3.default)({}, (0, _transform3.default)(props, function () {}), {
84698 onSelect: this.handleSelect
84699 }));
84700 };
84701
84702 return Core;
84703}(_react2.default.Component);
84704
84705_upload2.default.List = _list2.default;
84706
84707// compatible with 0.x version
84708/* istanbul ignore next */
84709_upload2.default.CropUpload = function () {
84710 _util.log.deprecated('Upload.CropUpload', '@alife/bc-next-crop-upload', 'Upload');
84711 return null;
84712};
84713
84714exports.default = _configProvider2.default.config(_upload2.default, {
84715 transform: _transform3.default
84716});
84717module.exports = exports['default'];
84718
84719/***/ }),
84720/* 465 */
84721/***/ (function(module, exports, __webpack_require__) {
84722
84723"use strict";
84724
84725
84726exports.__esModule = true;
84727exports.default = undefined;
84728
84729var _extends2 = __webpack_require__(1);
84730
84731var _extends3 = _interopRequireDefault(_extends2);
84732
84733var _classCallCheck2 = __webpack_require__(2);
84734
84735var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84736
84737var _possibleConstructorReturn2 = __webpack_require__(3);
84738
84739var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84740
84741var _inherits2 = __webpack_require__(4);
84742
84743var _inherits3 = _interopRequireDefault(_inherits2);
84744
84745var _react = __webpack_require__(0);
84746
84747var _react2 = _interopRequireDefault(_react);
84748
84749var _html5Uploader = __webpack_require__(196);
84750
84751var _html5Uploader2 = _interopRequireDefault(_html5Uploader);
84752
84753var _iframeUploader = __webpack_require__(467);
84754
84755var _iframeUploader2 = _interopRequireDefault(_iframeUploader);
84756
84757function _interopRequireDefault(obj) {
84758 return obj && obj.__esModule ? obj : { default: obj };
84759}
84760
84761var Uploader = function (_React$Component) {
84762 (0, _inherits3.default)(Uploader, _React$Component);
84763
84764 function Uploader() {
84765 var _temp, _this, _ret;
84766
84767 (0, _classCallCheck3.default)(this, Uploader);
84768
84769 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
84770 args[_key] = arguments[_key];
84771 }
84772
84773 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
84774 Component: _html5Uploader2.default
84775 }, _this.saveUploaderRef = function (ref) {
84776 _this.uploaderRef = ref;
84777 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
84778 }
84779
84780 Uploader.prototype.componentDidMount = function componentDidMount() {
84781 if (typeof File === 'undefined') {
84782 /* eslint react/no-did-mount-set-state:0 */
84783 this.setState({
84784 Component: _iframeUploader2.default
84785 });
84786 }
84787 };
84788
84789 Uploader.prototype.abort = function abort(file) {
84790 this.uploaderRef.abort(file);
84791 };
84792
84793 Uploader.prototype.startUpload = function startUpload(files) {
84794 this.uploaderRef.startUpload(files);
84795 };
84796
84797 Uploader.prototype.render = function render() {
84798 var Uploader = this.state.Component;
84799 return _react2.default.createElement(Uploader, (0, _extends3.default)({}, this.props, { ref: this.saveUploaderRef }));
84800 };
84801
84802 return Uploader;
84803}(_react2.default.Component);
84804
84805Uploader.displayName = 'Uploader';
84806exports.default = Uploader;
84807module.exports = exports['default'];
84808
84809/***/ }),
84810/* 466 */
84811/***/ (function(module, exports, __webpack_require__) {
84812
84813"use strict";
84814
84815
84816exports.__esModule = true;
84817exports.default = upload;
84818/**
84819 * clone from https://github.com/react-component/upload/blob/master/src/request.js
84820 */
84821
84822function getError(option, xhr, msg) {
84823 msg = msg || 'cannot post ' + option.action + ' ' + xhr.status + '\'';
84824 var err = new Error(msg);
84825 err.status = xhr.status;
84826 err.method = option.method;
84827 err.url = option.action;
84828 return err;
84829}
84830
84831function getBody(xhr) {
84832 var text = xhr.responseText || xhr.response;
84833 if (!text) {
84834 return text;
84835 }
84836
84837 try {
84838 return JSON.parse(text);
84839 } catch (e) {
84840 return text;
84841 }
84842}
84843
84844// option {
84845// onProgress: (event: { percent: number }): void,
84846// onError: (event: Error, body?: Object): void,
84847// onSuccess: (body: Object): void,
84848// data: Object,
84849// filename: String,
84850// file: File,
84851// withCredentials: Boolean,
84852// action: String,
84853// headers: Object,
84854// method: String
84855// timeout: Number
84856// }
84857function upload(option) {
84858 var xhr = new XMLHttpRequest();
84859
84860 if (option.onProgress && xhr.upload) {
84861 xhr.upload.onprogress = function progress(e) {
84862 if (e.total > 0) {
84863 e.percent = e.loaded / e.total * 100;
84864 }
84865 option.onProgress(e);
84866 };
84867 }
84868
84869 var formData = new FormData();
84870
84871 if (option.data) {
84872 Object.keys(option.data).forEach(function (key) {
84873 formData.append(key, option.data[key]);
84874 });
84875 }
84876 if (option.file instanceof Blob) {
84877 formData.append(option.filename, option.file, option.file.name);
84878 } else {
84879 formData.append(option.filename, option.file);
84880 }
84881
84882 xhr.onerror = function error(e) {
84883 option.onError(e);
84884 };
84885
84886 xhr.onload = function onload() {
84887 // allow success when 2xx status
84888 // see https://github.com/react-component/upload/issues/34
84889 if (xhr.status < 200 || xhr.status >= 300) {
84890 return option.onError(getError(option, xhr), getBody(xhr));
84891 }
84892
84893 option.onSuccess(getBody(xhr), xhr);
84894 };
84895
84896 option.method = option.method || 'POST';
84897 xhr.open(option.method, option.action, true);
84898
84899 // In Internet Explorer, the timeout property may be set only after calling the open() method and before calling the send() method.
84900 // see https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout
84901 var timeout = option.timeout;
84902
84903 if (typeof timeout === 'number' && timeout > 0) {
84904 xhr.timeout = timeout;
84905 xhr.ontimeout = function () {
84906 var msg = 'Upload abort for exceeding time (timeout: ' + timeout + 'ms)';
84907 option.onError(getError(option, xhr, msg), getBody(xhr));
84908 };
84909 }
84910
84911 // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179
84912 if (option.withCredentials && 'withCredentials' in xhr) {
84913 xhr.withCredentials = true;
84914 }
84915
84916 var headers = option.headers || {};
84917
84918 // when set headers['X-Requested-With'] = null , can close default XHR header
84919 // see https://github.com/react-component/upload/issues/33
84920 if (headers['X-Requested-With'] !== null) {
84921 xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
84922 }
84923
84924 for (var h in headers) {
84925 if (headers.hasOwnProperty(h) && headers[h] !== null) {
84926 xhr.setRequestHeader(h, headers[h]);
84927 }
84928 }
84929 xhr.send(formData);
84930
84931 return {
84932 abort: function abort() {
84933 xhr.abort();
84934 }
84935 };
84936}
84937module.exports = exports['default'];
84938
84939/***/ }),
84940/* 467 */
84941/***/ (function(module, exports, __webpack_require__) {
84942
84943"use strict";
84944
84945
84946exports.__esModule = true;
84947
84948var _extends2 = __webpack_require__(1);
84949
84950var _extends3 = _interopRequireDefault(_extends2);
84951
84952var _classCallCheck2 = __webpack_require__(2);
84953
84954var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
84955
84956var _possibleConstructorReturn2 = __webpack_require__(3);
84957
84958var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
84959
84960var _inherits2 = __webpack_require__(4);
84961
84962var _inherits3 = _interopRequireDefault(_inherits2);
84963
84964var _class, _temp, _initialiseProps; /* istanbul ignore file */
84965
84966var _react = __webpack_require__(0);
84967
84968var _react2 = _interopRequireDefault(_react);
84969
84970var _propTypes = __webpack_require__(5);
84971
84972var _propTypes2 = _interopRequireDefault(_propTypes);
84973
84974var _reactDom = __webpack_require__(12);
84975
84976var _reactDom2 = _interopRequireDefault(_reactDom);
84977
84978var _util = __webpack_require__(6);
84979
84980var _util2 = __webpack_require__(42);
84981
84982function _interopRequireDefault(obj) {
84983 return obj && obj.__esModule ? obj : { default: obj };
84984}
84985
84986var INPUT_STYLE = {
84987 position: 'absolute',
84988 top: 0,
84989 right: 0,
84990 fontSize: 9999,
84991 zIndex: 9999,
84992 opacity: 0,
84993 outline: 'none',
84994 cursor: 'pointer'
84995};
84996
84997var IframeUploader = (_temp = _class = function (_React$Component) {
84998 (0, _inherits3.default)(IframeUploader, _React$Component);
84999
85000 function IframeUploader(props) {
85001 (0, _classCallCheck3.default)(this, IframeUploader);
85002
85003 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
85004
85005 _initialiseProps.call(_this);
85006
85007 _this.domain = typeof document !== 'undefined' && document.domain ? document.domain : '';
85008 _this.uid = (0, _util2.uid)();
85009 return _this;
85010 }
85011
85012 IframeUploader.prototype.componentDidMount = function componentDidMount() {
85013 this.updateInputWH();
85014 };
85015
85016 IframeUploader.prototype.componentDidUpdate = function componentDidUpdate() {
85017 this.updateInputWH();
85018 };
85019
85020 IframeUploader.prototype.startUpload = function startUpload() {
85021 this.upload(this.file);
85022 };
85023
85024 IframeUploader.prototype.upload = function upload(file) {
85025 var _this2 = this;
85026
85027 if (!this.state.uploading) {
85028 // eslint-disable-next-line
85029 this.state.uploading = true;
85030 this.setState({ uploading: true });
85031 }
85032
85033 var _props = this.props,
85034 beforeUpload = _props.beforeUpload,
85035 action = _props.action,
85036 name = _props.name,
85037 data = _props.data;
85038
85039 if (!beforeUpload) {
85040 return this.post(file);
85041 }
85042 var requestData = {
85043 action: action,
85044 name: name,
85045 data: data
85046 };
85047 var before = beforeUpload(file, requestData);
85048 if (before && before.then) {
85049 before.then(function (data) {
85050 _this2.post(file, data);
85051 }, function () {
85052 _this2.endUpload();
85053 });
85054 } else if (before !== false) {
85055 this.post(file, _util.obj.isPlainObject(before) ? before : undefined);
85056 } else {
85057 this.endUpload();
85058 }
85059 };
85060
85061 IframeUploader.prototype.endUpload = function endUpload() {
85062 this.file = {};
85063 if (this.state.uploading) {
85064 // eslint-disable-next-line
85065 this.state.uploading = false;
85066 this.setState({ uploading: false });
85067 }
85068 };
85069
85070 IframeUploader.prototype.updateInputWH = function updateInputWH() {
85071 var rootNode = _reactDom2.default.findDOMNode(this);
85072 var inputNode = this.inputEl;
85073 inputNode.style.height = rootNode.offsetHeight + 'px';
85074 inputNode.style.width = rootNode.offsetWidth + 'px';
85075 };
85076
85077 IframeUploader.prototype.abort = function abort(file) {
85078 if (file) {
85079 var _uid = file;
85080 if (file && file.uid) {
85081 _uid = file.uid;
85082 }
85083 if (_uid === this.file.uid) {
85084 this.endUpload();
85085 }
85086 } else {
85087 this.endUpload();
85088 }
85089 };
85090
85091 IframeUploader.prototype.post = function post(file) {
85092 var requestOption = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
85093
85094 var formNode = this.formEl;
85095 var dataSpan = this.dataEl;
85096 var fileInput = this.inputEl;
85097
85098 var propsData = this.props.data;
85099 if (typeof propsData === 'function') {
85100 propsData = propsData(file);
85101 }
85102
85103 var action = requestOption.action,
85104 name = requestOption.name,
85105 data = requestOption.data;
85106
85107 if (name) {
85108 fileInput.setAttribute('name', name);
85109 }
85110
85111 if (action) {
85112 formNode.setAttribute('action', action);
85113 }
85114
85115 if (data) {
85116 propsData = data;
85117 }
85118
85119 var inputs = document.createDocumentFragment();
85120 for (var key in propsData) {
85121 if (data.hasOwnProperty(key)) {
85122 var input = document.createElement('input');
85123 input.setAttribute('name', key);
85124 input.value = propsData[key];
85125 inputs.appendChild(input);
85126 }
85127 }
85128 dataSpan.appendChild(inputs);
85129 formNode.submit();
85130 dataSpan.innerHTML = '';
85131 this.props.onStart(file);
85132 };
85133
85134 IframeUploader.prototype.render = function render() {
85135 var _props2 = this.props,
85136 disabled = _props2.disabled,
85137 className = _props2.className,
85138 children = _props2.children,
85139 accept = _props2.accept,
85140 name = _props2.name,
85141 style = _props2.style;
85142 var uid = this.uid;
85143
85144 var iframeName = name + '-' + uid + '-iframe';
85145
85146 return _react2.default.createElement('span', {
85147 className: className,
85148 style: (0, _extends3.default)({
85149 position: 'relative',
85150 zIndex: 0,
85151 display: 'inline-block'
85152 }, style)
85153 }, !disabled ? _react2.default.createElement('iframe', {
85154 ref: this.saveIFrameRef,
85155 name: iframeName,
85156 onLoad: this.onLoad,
85157 style: { display: 'none' }
85158 }) : null, _react2.default.createElement('form', {
85159 ref: this.saveFormRef,
85160 method: 'post',
85161 action: this.props.action,
85162 encType: 'multipart/form-data',
85163 target: iframeName
85164 }, _react2.default.createElement('input', { name: '_documentDomain', value: this.domain, type: 'hidden' }), _react2.default.createElement('span', { ref: this.saveDataRef }), _react2.default.createElement('input', {
85165 ref: this.saveInputRef,
85166 type: 'file',
85167 accept: accept,
85168 name: name,
85169 onChange: this.onSelect,
85170 style: INPUT_STYLE
85171 })), children);
85172 };
85173
85174 return IframeUploader;
85175}(_react2.default.Component), _class.propTypes = {
85176 style: _propTypes2.default.object,
85177 action: _propTypes2.default.string.isRequired,
85178 name: _propTypes2.default.string.isRequired,
85179 data: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.func]),
85180 disabled: _propTypes2.default.bool,
85181 className: _propTypes2.default.string,
85182 children: _propTypes2.default.node,
85183 headers: _propTypes2.default.object,
85184 autoUpload: _propTypes2.default.bool,
85185 onSelect: _propTypes2.default.func,
85186 beforeUpload: _propTypes2.default.func,
85187 onStart: _propTypes2.default.func,
85188 onSuccess: _propTypes2.default.func,
85189 onError: _propTypes2.default.func,
85190 accept: _propTypes2.default.string
85191}, _class.defaultProps = {
85192 name: 'file',
85193 onSelect: _util.func.noop,
85194 beforeUpload: _util.func.noop,
85195 onStart: _util.func.noop,
85196 onSuccess: _util.func.noop,
85197 onError: _util.func.noop,
85198 onAbort: _util.func.noop
85199}, _initialiseProps = function _initialiseProps() {
85200 var _this3 = this;
85201
85202 this.state = {
85203 uploading: false
85204 };
85205 this.file = {};
85206 this.uid = '';
85207
85208 this.onLoad = function () {
85209 if (!_this3.state.uploading) {
85210 return;
85211 }
85212 var props = _this3.props,
85213 file = _this3.file;
85214
85215 var response = void 0;
85216 try {
85217 var doc = _this3.iFrameEl.contentDocument;
85218 var script = doc.getElementsByTagName('script')[0];
85219 if (script && script.parentNode === doc.body) {
85220 doc.body.removeChild(script);
85221 }
85222 response = doc.body.innerHTML;
85223 props.onSuccess(response, file);
85224 } catch (err) {
85225 _util.log.warning('cross domain error for Upload. Maybe server should return document.domain script.');
85226 response = 'cross-domain';
85227 props.onError(err, null, file);
85228 }
85229 _this3.endUpload();
85230 };
85231
85232 this.onSelect = function (e) {
85233 _this3.file = {
85234 uid: (0, _util2.uid)(),
85235 name: e.target.value
85236 };
85237 _this3.props.onSelect([_this3.file]);
85238 };
85239
85240 this.saveIFrameRef = function (ref) {
85241 _this3.iFrameEl = ref;
85242 };
85243
85244 this.saveFormRef = function (ref) {
85245 _this3.formEl = ref;
85246 };
85247
85248 this.saveDataRef = function (ref) {
85249 _this3.dataEl = ref;
85250 };
85251
85252 this.saveInputRef = function (ref) {
85253 _this3.inputEl = ref;
85254 };
85255}, _temp);
85256IframeUploader.displayName = 'IframeUploader';
85257exports.default = IframeUploader;
85258module.exports = exports['default'];
85259
85260/***/ }),
85261/* 468 */
85262/***/ (function(module, exports, __webpack_require__) {
85263
85264"use strict";
85265
85266
85267exports.__esModule = true;
85268
85269var _extends2 = __webpack_require__(1);
85270
85271var _extends3 = _interopRequireDefault(_extends2);
85272
85273var _classCallCheck2 = __webpack_require__(2);
85274
85275var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
85276
85277var _possibleConstructorReturn2 = __webpack_require__(3);
85278
85279var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85280
85281var _inherits2 = __webpack_require__(4);
85282
85283var _inherits3 = _interopRequireDefault(_inherits2);
85284
85285var _class, _temp, _initialiseProps;
85286
85287var _react = __webpack_require__(0);
85288
85289var _react2 = _interopRequireDefault(_react);
85290
85291var _propTypes = __webpack_require__(5);
85292
85293var _propTypes2 = _interopRequireDefault(_propTypes);
85294
85295var _classnames = __webpack_require__(7);
85296
85297var _classnames2 = _interopRequireDefault(_classnames);
85298
85299var _reactLifecyclesCompat = __webpack_require__(10);
85300
85301var _zhCn = __webpack_require__(13);
85302
85303var _zhCn2 = _interopRequireDefault(_zhCn);
85304
85305var _util = __webpack_require__(6);
85306
85307var _base = __webpack_require__(195);
85308
85309var _base2 = _interopRequireDefault(_base);
85310
85311var _list = __webpack_require__(108);
85312
85313var _list2 = _interopRequireDefault(_list);
85314
85315var _upload = __webpack_require__(106);
85316
85317var _upload2 = _interopRequireDefault(_upload);
85318
85319function _interopRequireDefault(obj) {
85320 return obj && obj.__esModule ? obj : { default: obj };
85321}
85322
85323/**
85324 * Upload.Card
85325 * @description 继承 Upload 的 API,除非特别说明
85326 */
85327var Card = (_temp = _class = function (_Base) {
85328 (0, _inherits3.default)(Card, _Base);
85329
85330 function Card(props) {
85331 (0, _classCallCheck3.default)(this, Card);
85332
85333 var _this = (0, _possibleConstructorReturn3.default)(this, _Base.call(this, props));
85334
85335 _initialiseProps.call(_this);
85336
85337 var value = void 0;
85338 /* istanbul ignore else */
85339 if ('value' in props) {
85340 value = props.value;
85341 } else {
85342 value = props.defaultValue;
85343 }
85344
85345 _this.state = {
85346 value: !Array.isArray(value) ? [] : value,
85347 uploaderRef: _this.uploaderRef
85348 };
85349 return _this;
85350 }
85351
85352 Card.prototype.componentDidMount = function componentDidMount() {
85353 this.updateUploaderRef(this.uploaderRef);
85354 };
85355
85356 Card.prototype.componentDidUpdate = function componentDidUpdate() {
85357 var uploaderRef = this.state.uploaderRef;
85358
85359 if (!uploaderRef && this.uploaderRef) {
85360 this.updateUploaderRef(this.uploaderRef);
85361 }
85362 };
85363
85364 Card.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {
85365 var isUploading = prevState.uploaderRef && prevState.uploaderRef.isUploading();
85366 if ('value' in nextProps && nextProps.value !== prevState.value && !isUploading) {
85367 return {
85368 value: !Array.isArray(nextProps.value) ? [] : [].concat(nextProps.value)
85369 };
85370 }
85371
85372 return null;
85373 };
85374
85375 Card.prototype.isUploading = function isUploading() {
85376 return this.uploaderRef.isUploading();
85377 };
85378
85379 Card.prototype.saveRef = function saveRef(ref) {
85380 this.saveUploaderRef(ref);
85381 };
85382
85383 Card.prototype.updateUploaderRef = function updateUploaderRef(uploaderRef) {
85384 this.setState({ uploaderRef: uploaderRef });
85385 };
85386
85387 Card.prototype.render = function render() {
85388 var _classNames,
85389 _this2 = this;
85390
85391 var _props = this.props,
85392 action = _props.action,
85393 disabled = _props.disabled,
85394 prefix = _props.prefix,
85395 locale = _props.locale,
85396 className = _props.className,
85397 style = _props.style,
85398 limit = _props.limit,
85399 onPreview = _props.onPreview,
85400 onRemove = _props.onRemove,
85401 onCancel = _props.onCancel,
85402 timeout = _props.timeout,
85403 isPreview = _props.isPreview,
85404 renderPreview = _props.renderPreview,
85405 itemRender = _props.itemRender,
85406 reUpload = _props.reUpload,
85407 showDownload = _props.showDownload;
85408
85409 var isExceedLimit = this.state.value.length >= limit;
85410 var uploadButtonCls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'upload-list-item'] = true, _classNames[prefix + 'hidden'] = isExceedLimit, _classNames));
85411
85412 var children = this.props.children || locale.card.addPhoto;
85413
85414 var onRemoveFunc = disabled ? _util.func.prevent : onRemove;
85415 var othersForList = _util.obj.pickOthers(Card.propTypes, this.props);
85416 var othersForUpload = _util.obj.pickOthers(_list2.default.propTypes, othersForList);
85417
85418 if (isPreview) {
85419 if (typeof renderPreview === 'function') {
85420 var _classNames2;
85421
85422 var previewCls = (0, _classnames2.default)((_classNames2 = {}, _classNames2[prefix + 'form-preview'] = true, _classNames2[className] = !!className, _classNames2));
85423 return _react2.default.createElement('div', { style: style, className: previewCls }, renderPreview(this.state.value, this.props));
85424 }
85425 }
85426
85427 return _react2.default.createElement(_list2.default, (0, _extends3.default)({
85428 className: className,
85429 style: style,
85430 listType: 'card',
85431 closable: true,
85432 locale: locale,
85433 value: this.state.value,
85434 onRemove: onRemoveFunc,
85435 onCancel: onCancel,
85436 onPreview: onPreview,
85437 itemRender: itemRender,
85438 isPreview: isPreview,
85439 uploader: this.uploaderRef,
85440 reUpload: reUpload,
85441 showDownload: showDownload
85442 }, othersForList), _react2.default.createElement(_upload2.default, (0, _extends3.default)({}, othersForUpload, {
85443 shape: 'card',
85444 prefix: prefix,
85445 disabled: disabled,
85446 action: action,
85447 timeout: timeout,
85448 isPreview: isPreview,
85449 value: this.state.value,
85450 onProgress: this.onProgress,
85451 onChange: this.onChange,
85452 ref: function ref(_ref) {
85453 return _this2.saveRef(_ref);
85454 },
85455 className: uploadButtonCls
85456 }), children));
85457 };
85458
85459 return Card;
85460}(_base2.default), _class.displayName = 'Card', _class.propTypes = {
85461 prefix: _propTypes2.default.string,
85462 locale: _propTypes2.default.object,
85463 children: _propTypes2.default.object,
85464 value: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),
85465 defaultValue: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object]),
85466 /**
85467 * 点击图片回调
85468 */
85469 onPreview: _propTypes2.default.func,
85470 /**
85471 * 改变时候的回调
85472 */
85473 onChange: _propTypes2.default.func,
85474 /**
85475 * 点击移除的回调
85476 */
85477 onRemove: _propTypes2.default.func,
85478 /**
85479 * 取消上传的回调
85480 */
85481 onCancel: _propTypes2.default.func,
85482 /**
85483 * 自定义成功和失败的列表渲染方式
85484 * @param {File} file 文件对象
85485 * @param {Object} obj {remove: 删除回调}
85486 * @retuns {ReactNode} React元素
85487 * @version 1.21
85488 */
85489 itemRender: _propTypes2.default.func,
85490 /**
85491 * 选择新文件上传并替换
85492 * @version 1.24
85493 */
85494 reUpload: _propTypes2.default.bool,
85495 /**
85496 * 展示下载按钮
85497 * @version 1.24
85498 */
85499 showDownload: _propTypes2.default.bool,
85500 /**
85501 * 上传中
85502 */
85503 onProgress: _propTypes2.default.func,
85504 isPreview: _propTypes2.default.bool,
85505 renderPreview: _propTypes2.default.func
85506}, _class.defaultProps = {
85507 prefix: 'next-',
85508 locale: _zhCn2.default.Upload,
85509 showDownload: true,
85510 onChange: _util.func.noop,
85511 onPreview: _util.func.noop,
85512 onProgress: _util.func.noop
85513}, _initialiseProps = function _initialiseProps() {
85514 var _this3 = this;
85515
85516 this.onProgress = function (value, targetItem) {
85517 _this3.setState({
85518 value: value
85519 });
85520
85521 _this3.props.onProgress(value, targetItem);
85522 };
85523
85524 this.onChange = function (value, file) {
85525 if (!('value' in _this3.props)) {
85526 _this3.setState({
85527 value: value
85528 });
85529 }
85530 _this3.props.onChange(value, file);
85531 };
85532}, _temp);
85533exports.default = (0, _reactLifecyclesCompat.polyfill)(Card);
85534module.exports = exports['default'];
85535
85536/***/ }),
85537/* 469 */
85538/***/ (function(module, exports, __webpack_require__) {
85539
85540"use strict";
85541
85542
85543exports.__esModule = true;
85544
85545var _extends2 = __webpack_require__(1);
85546
85547var _extends3 = _interopRequireDefault(_extends2);
85548
85549var _objectWithoutProperties2 = __webpack_require__(8);
85550
85551var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
85552
85553var _classCallCheck2 = __webpack_require__(2);
85554
85555var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
85556
85557var _possibleConstructorReturn2 = __webpack_require__(3);
85558
85559var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85560
85561var _inherits2 = __webpack_require__(4);
85562
85563var _inherits3 = _interopRequireDefault(_inherits2);
85564
85565var _class, _temp2;
85566
85567var _react = __webpack_require__(0);
85568
85569var _react2 = _interopRequireDefault(_react);
85570
85571var _propTypes = __webpack_require__(5);
85572
85573var _propTypes2 = _interopRequireDefault(_propTypes);
85574
85575var _classnames = __webpack_require__(7);
85576
85577var _classnames2 = _interopRequireDefault(_classnames);
85578
85579var _icon = __webpack_require__(11);
85580
85581var _icon2 = _interopRequireDefault(_icon);
85582
85583var _util = __webpack_require__(6);
85584
85585var _zhCn = __webpack_require__(13);
85586
85587var _zhCn2 = _interopRequireDefault(_zhCn);
85588
85589var _upload = __webpack_require__(106);
85590
85591var _upload2 = _interopRequireDefault(_upload);
85592
85593function _interopRequireDefault(obj) {
85594 return obj && obj.__esModule ? obj : { default: obj };
85595}
85596
85597/**
85598 * Upload.Dragger
85599 * @description IE10+ 支持。继承 Upload 的 API,除非特别说明
85600 */
85601var Dragger = (_temp2 = _class = function (_React$Component) {
85602 (0, _inherits3.default)(Dragger, _React$Component);
85603
85604 function Dragger() {
85605 var _temp, _this, _ret;
85606
85607 (0, _classCallCheck3.default)(this, Dragger);
85608
85609 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
85610 args[_key] = arguments[_key];
85611 }
85612
85613 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {
85614 dragOver: false
85615 }, _this.onDragOver = function (e) {
85616 if (!_this.state.dragOver) {
85617 _this.setState({
85618 dragOver: true
85619 });
85620 }
85621
85622 _this.props.onDragOver(e);
85623 }, _this.onDragLeave = function (e) {
85624 _this.setState({
85625 dragOver: false
85626 });
85627 _this.props.onDragLeave(e);
85628 }, _this.onDrop = function (e) {
85629 _this.setState({
85630 dragOver: false
85631 });
85632 _this.props.onDrop(e);
85633 }, _this.saveUploaderRef = function (ref) {
85634 /* istanbul ignore if */
85635 if (ref && typeof ref.getInstance === 'function') {
85636 _this.uploaderRef = ref.getInstance();
85637 } else {
85638 _this.uploaderRef = ref;
85639 }
85640 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
85641 }
85642
85643 /* istanbul ignore next */
85644 Dragger.prototype.abort = function abort(file) {
85645 /* istanbul ignore next */
85646 this.uploaderRef.abort(file);
85647 };
85648 /* istanbul ignore next */
85649
85650 Dragger.prototype.startUpload = function startUpload() {
85651 /* istanbul ignore next */
85652 this.uploaderRef.startUpload();
85653 };
85654
85655 Dragger.prototype.render = function render() {
85656 var _classNames;
85657
85658 var _props = this.props,
85659 className = _props.className,
85660 style = _props.style,
85661 shape = _props.shape,
85662 locale = _props.locale,
85663 prefix = _props.prefix,
85664 listType = _props.listType,
85665 others = (0, _objectWithoutProperties3.default)(_props, ['className', 'style', 'shape', 'locale', 'prefix', 'listType']);
85666
85667 var prefixCls = prefix + 'upload-drag';
85668 var cls = (0, _classnames2.default)((_classNames = {}, _classNames['' + prefixCls] = true, _classNames[prefixCls + '-over'] = this.state.dragOver, _classNames[className] = !!className, _classNames));
85669
85670 var children = this.props.children || _react2.default.createElement('div', { className: cls }, _react2.default.createElement('p', { className: prefixCls + '-icon' }, _react2.default.createElement(_icon2.default, { size: 'large', className: prefixCls + '-upload-icon' })), _react2.default.createElement('p', { className: prefixCls + '-text' }, locale.drag.text), _react2.default.createElement('p', { className: prefixCls + '-hint' }, locale.drag.hint));
85671
85672 return _react2.default.createElement(_upload2.default, (0, _extends3.default)({}, others, {
85673 prefix: prefix,
85674 shape: shape,
85675 listType: listType,
85676 dragable: true,
85677 style: style,
85678 onDragOver: this.onDragOver,
85679 onDragLeave: this.onDragLeave,
85680 onDrop: this.onDrop,
85681 ref: this.saveUploaderRef
85682 }), children);
85683 };
85684
85685 return Dragger;
85686}(_react2.default.Component), _class.propTypes = {
85687 /**
85688 * 样式前缀
85689 */
85690 prefix: _propTypes2.default.string,
85691 locale: _propTypes2.default.object,
85692 shape: _propTypes2.default.string,
85693 onDragOver: _propTypes2.default.func,
85694 onDragLeave: _propTypes2.default.func,
85695 onDrop: _propTypes2.default.func,
85696 limit: _propTypes2.default.number,
85697 className: _propTypes2.default.string,
85698 style: _propTypes2.default.object,
85699 defaultValue: _propTypes2.default.array,
85700 children: _propTypes2.default.node,
85701 listType: _propTypes2.default.string,
85702 timeout: _propTypes2.default.number
85703}, _class.defaultProps = {
85704 prefix: 'next-',
85705 onDragOver: _util.func.noop,
85706 onDragLeave: _util.func.noop,
85707 onDrop: _util.func.noop,
85708 locale: _zhCn2.default.Upload
85709}, _temp2);
85710Dragger.displayName = 'Dragger';
85711exports.default = Dragger;
85712module.exports = exports['default'];
85713
85714/***/ }),
85715/* 470 */
85716/***/ (function(module, exports, __webpack_require__) {
85717
85718"use strict";
85719
85720
85721exports.__esModule = true;
85722
85723var _extends2 = __webpack_require__(1);
85724
85725var _extends3 = _interopRequireDefault(_extends2);
85726
85727var _objectWithoutProperties2 = __webpack_require__(8);
85728
85729var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
85730
85731var _classCallCheck2 = __webpack_require__(2);
85732
85733var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
85734
85735var _possibleConstructorReturn2 = __webpack_require__(3);
85736
85737var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
85738
85739var _inherits2 = __webpack_require__(4);
85740
85741var _inherits3 = _interopRequireDefault(_inherits2);
85742
85743var _class, _temp;
85744
85745var _react = __webpack_require__(0);
85746
85747var _react2 = _interopRequireDefault(_react);
85748
85749var _reactDom = __webpack_require__(12);
85750
85751var _reactDom2 = _interopRequireDefault(_reactDom);
85752
85753var _propTypes = __webpack_require__(5);
85754
85755var _propTypes2 = _interopRequireDefault(_propTypes);
85756
85757var _configProvider = __webpack_require__(9);
85758
85759var _configProvider2 = _interopRequireDefault(_configProvider);
85760
85761var _animate = __webpack_require__(20);
85762
85763var _animate2 = _interopRequireDefault(_animate);
85764
85765var _message = __webpack_require__(94);
85766
85767var _message2 = _interopRequireDefault(_message);
85768
85769var _guid = __webpack_require__(129);
85770
85771var _guid2 = _interopRequireDefault(_guid);
85772
85773var _config2 = __webpack_require__(471);
85774
85775var _config3 = _interopRequireDefault(_config2);
85776
85777function _interopRequireDefault(obj) {
85778 return obj && obj.__esModule ? obj : { default: obj };
85779}
85780
85781var getAnimation = function getAnimation(placement) {
85782 switch (placement) {
85783 case 'tl':
85784 case 'bl':
85785 return 'slideInLeft';
85786 case 'tr':
85787 case 'br':
85788 return 'slideInRight';
85789 default:
85790 return null;
85791 }
85792};
85793
85794var Notification = (_temp = _class = function (_Component) {
85795 (0, _inherits3.default)(Notification, _Component);
85796
85797 function Notification(props) {
85798 (0, _classCallCheck3.default)(this, Notification);
85799
85800 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props));
85801
85802 _this.close = function (key) {
85803 var notifications = _this.state.notifications;
85804
85805 var index = notifications.findIndex(function (notification) {
85806 return notification.key === key;
85807 });
85808
85809 if (index === -1) return;
85810 var _notifications$index = notifications[index],
85811 onClose = _notifications$index.onClose,
85812 timer = _notifications$index.timer;
85813
85814 notifications.splice(index, 1);
85815
85816 var timerIndex = _this.timers.findIndex(function (v) {
85817 return v === timer;
85818 });
85819
85820 if (timerIndex !== -1) {
85821 _this.timers.splice(timerIndex, 1);
85822 }
85823
85824 if (timer) {
85825 clearTimeout(timer);
85826 }
85827
85828 _this.setState({
85829 notifications: notifications
85830 });
85831
85832 if (onClose) {
85833 onClose();
85834 }
85835 };
85836
85837 _this.open = function (_ref) {
85838 var key = _ref.key,
85839 duration = _ref.duration,
85840 others = (0, _objectWithoutProperties3.default)(_ref, ['key', 'duration']);
85841
85842 var notifications = [].concat(_this.state.notifications);
85843 if (!key) {
85844 key = (0, _guid2.default)('notification-');
85845 }
85846
85847 var index = notifications.findIndex(function (notification) {
85848 return notification.key === key;
85849 });
85850
85851 if (index !== -1) {
85852 notifications[index] = (0, _extends3.default)({}, notifications[index], others);
85853 } else {
85854 var timer = void 0;
85855
85856 if (duration > 0) {
85857 timer = setTimeout(function () {
85858 _this.close(key);
85859 }, duration);
85860 _this.timers.push(timer);
85861 }
85862 notifications.push((0, _extends3.default)({}, others, {
85863 key: key,
85864 timer: timer
85865 }));
85866 }
85867
85868 if (_config3.default.maxCount > 0 && _config3.default.maxCount < notifications.length) {
85869 while (notifications.length > _config3.default.maxCount) {
85870 var _key = notifications[0].key;
85871
85872 _this.close(_key);
85873 notifications.splice(0, 1);
85874 }
85875 }
85876
85877 _this.setState({
85878 notifications: notifications
85879 });
85880
85881 return key;
85882 };
85883
85884 _this.state = {
85885 notifications: []
85886 };
85887 _this.timers = [];
85888 return _this;
85889 }
85890
85891 Notification.prototype.componentWillUnmount = function componentWillUnmount() {
85892 this.timers.forEach(function (timer) {
85893 if (!timer) return;
85894 clearTimeout(timer);
85895 });
85896 };
85897
85898 Notification.prototype.render = function render() {
85899 var _ref2;
85900
85901 var prefix = this.props.prefix;
85902 var notifications = this.state.notifications;
85903
85904 return _react2.default.createElement('div', {
85905 className: prefix + 'notification',
85906 style: (_ref2 = {}, _ref2[_config3.default.placement.indexOf('b') === 0 ? 'bottom' : 'top'] = _config3.default.offset[1], _ref2[_config3.default.placement.indexOf('l') !== -1 ? 'left' : 'right'] = _config3.default.offset[0], _ref2)
85907 }, _react2.default.createElement(_animate2.default, {
85908 animationAppear: true,
85909 animation: {
85910 enter: getAnimation(_config3.default.placement),
85911 leave: prefix + 'notification-fade-leave'
85912 },
85913 singleMode: false
85914 }, notifications.map(function (_ref3) {
85915 var key = _ref3.key,
85916 type = _ref3.type,
85917 title = _ref3.title,
85918 content = _ref3.content,
85919 icon = _ref3.icon,
85920 onClick = _ref3.onClick,
85921 style = _ref3.style,
85922 className = _ref3.className;
85923 return _react2.default.createElement(_message2.default, {
85924 key: key,
85925 shape: 'toast',
85926 type: type,
85927 title: title,
85928 iconType: icon,
85929 closeable: true,
85930 animation: false,
85931 size: _config3.default.size,
85932 visible: true,
85933 style: style,
85934 className: className,
85935 onClick: onClick,
85936 onClose: function onClose() {
85937 return close(key);
85938 }
85939 }, content);
85940 })));
85941 };
85942
85943 return Notification;
85944}(_react.Component), _class.propTypes = {
85945 prefix: _propTypes2.default.string
85946}, _class.defaultProps = {
85947 prefix: 'next-'
85948}, _temp);
85949Notification.displayName = 'Notification';
85950
85951var ConfigedNotification = _configProvider2.default.config(Notification, {
85952 exportNames: ['open', 'close']
85953});
85954var instance = void 0;
85955var mounting = false;
85956var waitOpens = [];
85957
85958function open() {
85959 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
85960
85961 if (!options.title && !options.content) return;
85962
85963 var duration = !options.duration && options.duration !== 0 ? _config3.default.duration : options.duration;
85964
85965 if (!instance) {
85966 if (!options.key) {
85967 options.key = (0, _guid2.default)('notification-');
85968 }
85969
85970 waitOpens.push((0, _extends3.default)({}, options, {
85971 duration: duration
85972 }));
85973
85974 if (!mounting) {
85975 mounting = true;
85976 var div = document.createElement('div');
85977 if (_config3.default.getContainer) {
85978 var root = _config3.default.getContainer();
85979 root.appendChild(div);
85980 } else {
85981 document.body.appendChild(div);
85982 }
85983
85984 _reactDom2.default.render(_react2.default.createElement(_configProvider2.default, _configProvider2.default.getContext(), _react2.default.createElement(ConfigedNotification, {
85985 ref: function ref(_ref4) {
85986 instance = _ref4;
85987 }
85988 })), div, function () {
85989 waitOpens.forEach(function (item) {
85990 return instance.open(item);
85991 });
85992 waitOpens = [];
85993 mounting = false;
85994 });
85995 }
85996
85997 return options.key;
85998 }
85999
86000 var key = instance.open((0, _extends3.default)({}, options, {
86001 duration: duration
86002 }));
86003
86004 return key;
86005}
86006
86007function close(key) {
86008 if (!instance) {
86009 var index = waitOpens.findIndex(function (item) {
86010 return item.key === key;
86011 });
86012 waitOpens.splice(index, 1);
86013 return;
86014 }
86015
86016 instance.close(key);
86017}
86018
86019function destroy() {
86020 if (!instance) return;
86021 var mountNode = _reactDom2.default.findDOMNode(instance).parentNode;
86022 if (mountNode) {
86023 _reactDom2.default.unmountComponentAtNode(mountNode);
86024 mountNode.parentNode.removeChild(mountNode);
86025 }
86026}
86027
86028var levels = {};
86029
86030['success', 'error', 'warning', 'notice', 'help'].forEach(function (type) {
86031 levels[type] = function () {
86032 var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
86033
86034 return open((0, _extends3.default)({}, options, {
86035 type: type
86036 }));
86037 };
86038});
86039exports.default = (0, _extends3.default)({
86040 config: function config() {
86041 for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) {
86042 args[_key2] = arguments[_key2];
86043 }
86044
86045 return _extends3.default.apply(undefined, [_config3.default].concat(args));
86046 },
86047
86048 open: open,
86049 close: close,
86050 destroy: destroy
86051}, levels);
86052module.exports = exports['default'];
86053
86054/***/ }),
86055/* 471 */
86056/***/ (function(module, exports, __webpack_require__) {
86057
86058"use strict";
86059
86060
86061exports.__esModule = true;
86062exports.default = {
86063 offset: [30, 30],
86064 maxCount: 0,
86065 size: 'large',
86066 placement: 'tr',
86067 duration: 4500,
86068 getContainer: function getContainer() {
86069 return document.body;
86070 }
86071};
86072module.exports = exports['default'];
86073
86074/***/ }),
86075/* 472 */
86076/***/ (function(module, exports, __webpack_require__) {
86077
86078"use strict";
86079
86080
86081exports.__esModule = true;
86082
86083var _extends2 = __webpack_require__(1);
86084
86085var _extends3 = _interopRequireDefault(_extends2);
86086
86087var _classCallCheck2 = __webpack_require__(2);
86088
86089var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86090
86091var _possibleConstructorReturn2 = __webpack_require__(3);
86092
86093var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86094
86095var _inherits2 = __webpack_require__(4);
86096
86097var _inherits3 = _interopRequireDefault(_inherits2);
86098
86099var _class, _temp;
86100
86101var _react = __webpack_require__(0);
86102
86103var _react2 = _interopRequireDefault(_react);
86104
86105var _propTypes = __webpack_require__(5);
86106
86107var _propTypes2 = _interopRequireDefault(_propTypes);
86108
86109var _classnames = __webpack_require__(7);
86110
86111var _classnames2 = _interopRequireDefault(_classnames);
86112
86113var _reactLifecyclesCompat = __webpack_require__(10);
86114
86115var _configProvider = __webpack_require__(9);
86116
86117var _configProvider2 = _interopRequireDefault(_configProvider);
86118
86119var _util = __webpack_require__(6);
86120
86121function _interopRequireDefault(obj) {
86122 return obj && obj.__esModule ? obj : { default: obj };
86123}
86124
86125/**
86126 * Divider
86127 */
86128var Divider = (_temp = _class = function (_Component) {
86129 (0, _inherits3.default)(Divider, _Component);
86130
86131 function Divider() {
86132 (0, _classCallCheck3.default)(this, Divider);
86133 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
86134 }
86135
86136 Divider.prototype.render = function render() {
86137 var _classNames;
86138
86139 var _props = this.props,
86140 prefix = _props.prefix,
86141 className = _props.className,
86142 dashed = _props.dashed,
86143 direction = _props.direction,
86144 orientation = _props.orientation,
86145 children = _props.children;
86146
86147 var others = _util.obj.pickOthers(Divider.propTypes, this.props);
86148
86149 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'divider'] = true, _classNames[prefix + 'divider-dashed'] = !!dashed, _classNames[prefix + 'divider-' + direction] = !!direction, _classNames[prefix + 'divider-with-text-' + orientation] = !!orientation && children, _classNames), className);
86150
86151 return _react2.default.createElement('div', (0, _extends3.default)({ role: 'separator', className: cls }, others), children && _react2.default.createElement('span', { className: prefix + 'divider-inner-text' }, children));
86152 };
86153
86154 return Divider;
86155}(_react.Component), _class.propTypes = {
86156 prefix: _propTypes2.default.string,
86157 children: _propTypes2.default.any,
86158 className: _propTypes2.default.string,
86159 /**
86160 * 是否为虚线
86161 */
86162 dashed: _propTypes2.default.bool,
86163 /**
86164 * 线是水平还是垂直类型
86165 */
86166 direction: _propTypes2.default.oneOf(['hoz', 'ver']),
86167 /**
86168 * 分割线标题的位置
86169 */
86170 orientation: _propTypes2.default.oneOf(['left', 'right', 'center'])
86171}, _class.defaultProps = {
86172 prefix: 'next-',
86173 direction: 'hoz',
86174 orientation: 'center',
86175 dashed: false
86176}, _temp);
86177Divider.displayName = 'Divider';
86178exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(Divider));
86179module.exports = exports['default'];
86180
86181/***/ }),
86182/* 473 */
86183/***/ (function(module, exports, __webpack_require__) {
86184
86185"use strict";
86186
86187
86188exports.__esModule = true;
86189
86190var _extends2 = __webpack_require__(1);
86191
86192var _extends3 = _interopRequireDefault(_extends2);
86193
86194var _classCallCheck2 = __webpack_require__(2);
86195
86196var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86197
86198var _possibleConstructorReturn2 = __webpack_require__(3);
86199
86200var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86201
86202var _inherits2 = __webpack_require__(4);
86203
86204var _inherits3 = _interopRequireDefault(_inherits2);
86205
86206var _class, _temp2;
86207
86208var _react = __webpack_require__(0);
86209
86210var _react2 = _interopRequireDefault(_react);
86211
86212var _propTypes = __webpack_require__(5);
86213
86214var _propTypes2 = _interopRequireDefault(_propTypes);
86215
86216var _classnames = __webpack_require__(7);
86217
86218var _classnames2 = _interopRequireDefault(_classnames);
86219
86220var _configProvider = __webpack_require__(9);
86221
86222var _configProvider2 = _interopRequireDefault(_configProvider);
86223
86224var _icon = __webpack_require__(11);
86225
86226var _icon2 = _interopRequireDefault(_icon);
86227
86228var _util = __webpack_require__(6);
86229
86230function _interopRequireDefault(obj) {
86231 return obj && obj.__esModule ? obj : { default: obj };
86232}
86233
86234/**
86235 * Avatar
86236 */
86237var Avatar = (_temp2 = _class = function (_Component) {
86238 (0, _inherits3.default)(Avatar, _Component);
86239
86240 function Avatar() {
86241 var _temp, _this, _ret;
86242
86243 (0, _classCallCheck3.default)(this, Avatar);
86244
86245 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
86246 args[_key] = arguments[_key];
86247 }
86248
86249 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.state = {
86250 isImgExist: true
86251 }, _this.handleImgLoadError = function () {
86252 var onError = _this.props.onError;
86253
86254 var errorFlag = onError ? onError() : undefined;
86255 if (errorFlag !== false) {
86256 _this.setState({ isImgExist: false });
86257 }
86258 }, _this.getIconSize = function (avatarSize) {
86259 return typeof avatarSize === 'number' ? avatarSize / 2 : avatarSize;
86260 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
86261 }
86262
86263 Avatar.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
86264 if (prevProps.src !== this.props.src) {
86265 // eslint-disable-next-line react/no-did-update-set-state
86266 this.setState({ isImgExist: true });
86267 }
86268 };
86269
86270 Avatar.prototype.render = function render() {
86271 var _classNames;
86272
86273 var _props = this.props,
86274 prefix = _props.prefix,
86275 className = _props.className,
86276 style = _props.style,
86277 size = _props.size,
86278 icon = _props.icon,
86279 alt = _props.alt,
86280 srcSet = _props.srcSet,
86281 shape = _props.shape,
86282 src = _props.src;
86283 var isImgExist = this.state.isImgExist;
86284 var children = this.props.children;
86285
86286 var others = _util.obj.pickOthers(Avatar.propTypes, this.props);
86287
86288 var cls = (0, _classnames2.default)((_classNames = {}, _classNames[prefix + 'avatar'] = true, _classNames[prefix + 'avatar-' + shape] = !!shape, _classNames[prefix + 'avatar-image'] = src && isImgExist, _classNames[prefix + 'avatar-' + size] = typeof size === 'string', _classNames), className);
86289
86290 var sizeStyle = typeof size === 'number' ? {
86291 width: size,
86292 height: size,
86293 lineHeight: size + 'px',
86294 fontSize: icon ? size / 2 : 18
86295 } : {};
86296
86297 var iconSize = this.getIconSize(size);
86298 if (src) {
86299 if (isImgExist) {
86300 children = _react2.default.createElement('img', { src: src, srcSet: srcSet, onError: this.handleImgLoadError, alt: alt });
86301 } else {
86302 children = _react2.default.createElement(_icon2.default, { type: 'picture', size: iconSize });
86303 }
86304 } else if (typeof icon === 'string') {
86305 children = _react2.default.createElement(_icon2.default, { type: icon, size: iconSize });
86306 } else if (icon) {
86307 var newIconSize = 'size' in icon.props ? icon.props.size : iconSize;
86308 children = _react2.default.cloneElement(icon, { size: newIconSize });
86309 }
86310
86311 return _react2.default.createElement('span', (0, _extends3.default)({ className: cls, style: (0, _extends3.default)({}, sizeStyle, style) }, others), children);
86312 };
86313
86314 return Avatar;
86315}(_react.Component), _class.propTypes = {
86316 prefix: _propTypes2.default.string,
86317 children: _propTypes2.default.any,
86318 className: _propTypes2.default.string,
86319 /**
86320 * 头像的大小
86321 * @enumdesc 小,中,大
86322 */
86323 size: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['small', 'medium', 'large']), _propTypes2.default.number]),
86324 /**
86325 * 头像的形状
86326 * @enumdesc 圆形,方形
86327 */
86328 shape: _propTypes2.default.oneOf(['circle', 'square']),
86329 /**
86330 * icon 类头像的图标类型,可设为 Icon 的 `type` 或 `ReactNode`
86331 */
86332 icon: _propTypes2.default.oneOfType([_propTypes2.default.node, _propTypes2.default.string]),
86333 /**
86334 * 图片类头像的资源地址
86335 */
86336 src: _propTypes2.default.string,
86337 /**
86338 * 图片加载失败的事件,返回 false 会关闭组件默认的 fallback 行为
86339 */
86340 onError: _propTypes2.default.func,
86341 /**
86342 * 图像无法显示时的 alt 替代文本
86343 */
86344 alt: _propTypes2.default.string,
86345 /**
86346 * 图片类头像响应式资源地址
86347 */
86348 srcSet: _propTypes2.default.string
86349}, _class.defaultProps = {
86350 prefix: 'next-',
86351 size: 'medium',
86352 shape: 'circle'
86353}, _temp2);
86354Avatar.displayName = 'Avatar';
86355exports.default = _configProvider2.default.config(Avatar);
86356module.exports = exports['default'];
86357
86358/***/ }),
86359/* 474 */
86360/***/ (function(module, exports, __webpack_require__) {
86361
86362"use strict";
86363
86364
86365exports.__esModule = true;
86366
86367var _list = __webpack_require__(475);
86368
86369var _list2 = _interopRequireDefault(_list);
86370
86371var _item = __webpack_require__(476);
86372
86373var _item2 = _interopRequireDefault(_item);
86374
86375function _interopRequireDefault(obj) {
86376 return obj && obj.__esModule ? obj : { default: obj };
86377}
86378
86379_list2.default.Item = _item2.default;
86380
86381exports.default = _list2.default;
86382module.exports = exports['default'];
86383
86384/***/ }),
86385/* 475 */
86386/***/ (function(module, exports, __webpack_require__) {
86387
86388"use strict";
86389
86390
86391exports.__esModule = true;
86392
86393var _extends2 = __webpack_require__(1);
86394
86395var _extends3 = _interopRequireDefault(_extends2);
86396
86397var _objectWithoutProperties2 = __webpack_require__(8);
86398
86399var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
86400
86401var _classCallCheck2 = __webpack_require__(2);
86402
86403var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86404
86405var _possibleConstructorReturn2 = __webpack_require__(3);
86406
86407var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86408
86409var _inherits2 = __webpack_require__(4);
86410
86411var _inherits3 = _interopRequireDefault(_inherits2);
86412
86413var _class, _temp;
86414
86415var _react = __webpack_require__(0);
86416
86417var _react2 = _interopRequireDefault(_react);
86418
86419var _propTypes = __webpack_require__(5);
86420
86421var _propTypes2 = _interopRequireDefault(_propTypes);
86422
86423var _classnames = __webpack_require__(7);
86424
86425var _classnames2 = _interopRequireDefault(_classnames);
86426
86427var _reactLifecyclesCompat = __webpack_require__(10);
86428
86429var _loading = __webpack_require__(100);
86430
86431var _loading2 = _interopRequireDefault(_loading);
86432
86433var _zhCn = __webpack_require__(13);
86434
86435var _zhCn2 = _interopRequireDefault(_zhCn);
86436
86437var _configProvider = __webpack_require__(9);
86438
86439var _configProvider2 = _interopRequireDefault(_configProvider);
86440
86441function _interopRequireDefault(obj) {
86442 return obj && obj.__esModule ? obj : { default: obj };
86443}
86444
86445/**
86446 * List
86447 */
86448var List = (_temp = _class = function (_Component) {
86449 (0, _inherits3.default)(List, _Component);
86450
86451 function List() {
86452 (0, _classCallCheck3.default)(this, List);
86453 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
86454 }
86455
86456 List.prototype.render = function render() {
86457 var _classNames;
86458
86459 var _props = this.props,
86460 prefix = _props.prefix,
86461 header = _props.header,
86462 footer = _props.footer,
86463 size = _props.size,
86464 divider = _props.divider,
86465 className = _props.className,
86466 children = _props.children,
86467 rtl = _props.rtl,
86468 dataSource = _props.dataSource,
86469 renderItem = _props.renderItem,
86470 locale = _props.locale,
86471 loading = _props.loading,
86472 _props$loadingCompone = _props.loadingComponent,
86473 LoadingComponent = _props$loadingCompone === undefined ? _loading2.default : _props$loadingCompone,
86474 emptyContent = _props.emptyContent,
86475 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'header', 'footer', 'size', 'divider', 'className', 'children', 'rtl', 'dataSource', 'renderItem', 'locale', 'loading', 'loadingComponent', 'emptyContent']);
86476
86477 if (rtl) {
86478 others.dir = 'rtl';
86479 }
86480
86481 var dSValid = Array.isArray(dataSource);
86482
86483 var classes = (0, _classnames2.default)(prefix + 'list', (_classNames = {}, _classNames[prefix + 'list-' + size] = size, _classNames[prefix + 'list-divider'] = divider, _classNames), className);
86484
86485 var customContent = dSValid && dataSource.map(function (one, index) {
86486 return renderItem(one, index);
86487 });
86488
86489 var content = _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: classes }), header ? _react2.default.createElement('div', { className: prefix + 'list-header' }, header) : null, !(dSValid && dataSource.length > 0) && !children ? _react2.default.createElement('div', { className: prefix + 'list-empty' }, emptyContent || locale.empty) : _react2.default.createElement('ul', { key: 'list-body', className: prefix + 'list-items' }, customContent, children), footer ? _react2.default.createElement('div', { className: prefix + 'list-footer' }, footer) : null);
86490
86491 if (loading) {
86492 var loadingClassName = prefix + 'list-loading';
86493 return _react2.default.createElement(LoadingComponent, { className: loadingClassName }, content);
86494 }
86495
86496 return content;
86497 };
86498
86499 return List;
86500}(_react.Component), _class.propTypes = {
86501 prefix: _propTypes2.default.string,
86502 rtl: _propTypes2.default.bool,
86503 /**
86504 * 列表头部
86505 */
86506 header: _propTypes2.default.node,
86507 /**
86508 * 列表尾部
86509 */
86510 footer: _propTypes2.default.node,
86511 /**
86512 * 列表尺寸
86513 */
86514 size: _propTypes2.default.oneOf(['medium', 'small']),
86515 /**
86516 * 是否显示分割线
86517 */
86518 divider: _propTypes2.default.bool,
86519 /**
86520 * 列表数据源
86521 */
86522 dataSource: _propTypes2.default.array,
86523 /**
86524 * 当使用 dataSource 时,可以用 renderItem 自定义渲染列表项
86525 * @param {Any} current 当前遍历的项
86526 * @param {Number} index 当前遍历的项的索引
86527 */
86528 renderItem: _propTypes2.default.func,
86529 /**
86530 * 是否在加载中
86531 */
86532 loading: _propTypes2.default.bool,
86533 /**
86534 * 自定义 Loading 组件
86535 * 请务必传递 props, 使用方式: loadingComponent={props => <Loading {...props}/>}
86536 * @param {LoadingProps} props 需要透传给组件的参数
86537 * @return {React.ReactNode} 展示的组件
86538 */
86539 loadingComponent: _propTypes2.default.func,
86540 /**
86541 * 设置数据为空的时候的表格内容展现
86542 */
86543 emptyContent: _propTypes2.default.node,
86544 className: _propTypes2.default.string,
86545 children: _propTypes2.default.any,
86546 locale: _propTypes2.default.object
86547}, _class.defaultProps = {
86548 rtl: false,
86549 size: 'medium',
86550 divider: true,
86551 prefix: 'next-',
86552 locale: _zhCn2.default.List,
86553 renderItem: function renderItem(item) {
86554 return item;
86555 },
86556 loading: false
86557}, _temp);
86558List.displayName = 'List';
86559exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(List));
86560module.exports = exports['default'];
86561
86562/***/ }),
86563/* 476 */
86564/***/ (function(module, exports, __webpack_require__) {
86565
86566"use strict";
86567
86568
86569exports.__esModule = true;
86570
86571var _extends2 = __webpack_require__(1);
86572
86573var _extends3 = _interopRequireDefault(_extends2);
86574
86575var _objectWithoutProperties2 = __webpack_require__(8);
86576
86577var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
86578
86579var _classCallCheck2 = __webpack_require__(2);
86580
86581var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86582
86583var _possibleConstructorReturn2 = __webpack_require__(3);
86584
86585var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86586
86587var _inherits2 = __webpack_require__(4);
86588
86589var _inherits3 = _interopRequireDefault(_inherits2);
86590
86591var _class, _temp;
86592
86593var _react = __webpack_require__(0);
86594
86595var _react2 = _interopRequireDefault(_react);
86596
86597var _propTypes = __webpack_require__(5);
86598
86599var _propTypes2 = _interopRequireDefault(_propTypes);
86600
86601var _classnames = __webpack_require__(7);
86602
86603var _classnames2 = _interopRequireDefault(_classnames);
86604
86605var _reactLifecyclesCompat = __webpack_require__(10);
86606
86607var _configProvider = __webpack_require__(9);
86608
86609var _configProvider2 = _interopRequireDefault(_configProvider);
86610
86611function _interopRequireDefault(obj) {
86612 return obj && obj.__esModule ? obj : { default: obj };
86613}
86614
86615/**
86616 * List.Item
86617 */
86618var ListItem = (_temp = _class = function (_Component) {
86619 (0, _inherits3.default)(ListItem, _Component);
86620
86621 function ListItem() {
86622 (0, _classCallCheck3.default)(this, ListItem);
86623 return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
86624 }
86625
86626 ListItem.prototype.render = function render() {
86627 var _props = this.props,
86628 prefix = _props.prefix,
86629 title = _props.title,
86630 description = _props.description,
86631 media = _props.media,
86632 extra = _props.extra,
86633 className = _props.className,
86634 children = _props.children,
86635 others = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'title', 'description', 'media', 'extra', 'className', 'children']);
86636
86637 var classes = (0, _classnames2.default)(prefix + 'list-item', className);
86638
86639 return _react2.default.createElement('li', (0, _extends3.default)({}, others, { className: classes }), media ? _react2.default.createElement('div', { className: prefix + 'list-item-media' }, media) : null, _react2.default.createElement('div', { className: prefix + 'list-item-content' }, title ? _react2.default.createElement('div', { className: prefix + 'list-item-title' }, title) : null, description ? _react2.default.createElement('div', { className: prefix + 'list-item-description' }, description) : null, children), extra ? _react2.default.createElement('div', { className: prefix + 'list-item-extra' }, extra) : null);
86640 };
86641
86642 return ListItem;
86643}(_react.Component), _class.propTypes = {
86644 prefix: _propTypes2.default.string,
86645 /**
86646 * 列表元素的标题
86647 */
86648 title: _propTypes2.default.node,
86649 /**
86650 * 列表元素的描述内容
86651 */
86652 description: _propTypes2.default.node,
86653 /**
86654 * 列表元素的头像 / 图标 / 图片内容
86655 */
86656 media: _propTypes2.default.node,
86657 /**
86658 * 额外内容
86659 */
86660 extra: _propTypes2.default.node,
86661 className: _propTypes2.default.any
86662}, _class.defaultProps = {
86663 prefix: 'next-'
86664}, _temp);
86665ListItem.displayName = 'ListItem';
86666exports.default = _configProvider2.default.config((0, _reactLifecyclesCompat.polyfill)(ListItem));
86667module.exports = exports['default'];
86668
86669/***/ }),
86670/* 477 */
86671/***/ (function(module, exports, __webpack_require__) {
86672
86673"use strict";
86674
86675
86676exports.__esModule = true;
86677
86678var _extends2 = __webpack_require__(1);
86679
86680var _extends3 = _interopRequireDefault(_extends2);
86681
86682var _react = __webpack_require__(0);
86683
86684var _react2 = _interopRequireDefault(_react);
86685
86686var _configProvider = __webpack_require__(9);
86687
86688var _configProvider2 = _interopRequireDefault(_configProvider);
86689
86690var _timePicker = __webpack_require__(478);
86691
86692var _timePicker2 = _interopRequireDefault(_timePicker);
86693
86694function _interopRequireDefault(obj) {
86695 return obj && obj.__esModule ? obj : { default: obj };
86696}
86697
86698var ConfigTimePicker = _configProvider2.default.config(_timePicker2.default);
86699
86700ConfigTimePicker.RangePicker = _react2.default.forwardRef(function (props, ref) {
86701 return _react2.default.createElement(ConfigTimePicker, (0, _extends3.default)({ ref: ref }, props, { type: 'range' }));
86702});
86703ConfigTimePicker.RangePicker.displayName = 'RangePicker';
86704
86705exports.default = ConfigTimePicker;
86706module.exports = exports['default'];
86707
86708/***/ }),
86709/* 478 */
86710/***/ (function(module, exports, __webpack_require__) {
86711
86712"use strict";
86713
86714
86715exports.__esModule = true;
86716
86717var _objectWithoutProperties2 = __webpack_require__(8);
86718
86719var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
86720
86721var _classCallCheck2 = __webpack_require__(2);
86722
86723var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
86724
86725var _possibleConstructorReturn2 = __webpack_require__(3);
86726
86727var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
86728
86729var _inherits2 = __webpack_require__(4);
86730
86731var _inherits3 = _interopRequireDefault(_inherits2);
86732
86733var _extends2 = __webpack_require__(1);
86734
86735var _extends3 = _interopRequireDefault(_extends2);
86736
86737var _class, _temp, _initialiseProps;
86738
86739var _react = __webpack_require__(0);
86740
86741var _react2 = _interopRequireDefault(_react);
86742
86743var _propTypes = __webpack_require__(5);
86744
86745var _propTypes2 = _interopRequireDefault(_propTypes);
86746
86747var _reactLifecyclesCompat = __webpack_require__(10);
86748
86749var _classnames3 = __webpack_require__(7);
86750
86751var _classnames4 = _interopRequireDefault(_classnames3);
86752
86753var _configProvider = __webpack_require__(9);
86754
86755var _configProvider2 = _interopRequireDefault(_configProvider);
86756
86757var _input = __webpack_require__(18);
86758
86759var _input2 = _interopRequireDefault(_input);
86760
86761var _button = __webpack_require__(17);
86762
86763var _button2 = _interopRequireDefault(_button);
86764
86765var _overlay = __webpack_require__(15);
86766
86767var _overlay2 = _interopRequireDefault(_overlay);
86768
86769var _zhCn = __webpack_require__(13);
86770
86771var _zhCn2 = _interopRequireDefault(_zhCn);
86772
86773var _util = __webpack_require__(6);
86774
86775var _panel = __webpack_require__(198);
86776
86777var _panel2 = _interopRequireDefault(_panel);
86778
86779var _utils = __webpack_require__(199);
86780
86781var _propTypes3 = __webpack_require__(109);
86782
86783var _propTypes4 = _interopRequireDefault(_propTypes3);
86784
86785var _util2 = __webpack_require__(43);
86786
86787var _footerPanel = __webpack_require__(200);
86788
86789var _footerPanel2 = _interopRequireDefault(_footerPanel);
86790
86791var _dateInput = __webpack_require__(480);
86792
86793var _dateInput2 = _interopRequireDefault(_dateInput);
86794
86795var _constant = __webpack_require__(110);
86796
86797function _interopRequireDefault(obj) {
86798 return obj && obj.__esModule ? obj : { default: obj };
86799}
86800
86801var Popup = _overlay2.default.Popup;
86802var noop = _util.func.noop,
86803 checkDate = _util.func.checkDate,
86804 checkRangeDate = _util.func.checkRangeDate;
86805
86806var timePickerLocale = _zhCn2.default.TimePicker;
86807
86808var presetPropType = _propTypes2.default.shape((0, _extends3.default)({
86809 label: _propTypes2.default.string,
86810 value: _propTypes2.default.oneOfType([_propTypes2.default.func, _utils.checkDateValue])
86811}, _button2.default.propTypes));
86812
86813var TimePicker2 = (_temp = _class = function (_Component) {
86814 (0, _inherits3.default)(TimePicker2, _Component);
86815
86816 function TimePicker2(props, context) {
86817 (0, _classCallCheck3.default)(this, TimePicker2);
86818
86819 var _this = (0, _possibleConstructorReturn3.default)(this, _Component.call(this, props, context));
86820
86821 _initialiseProps.call(_this);
86822
86823 var isRange = props.type === _constant.TIME_PICKER_TYPE.RANGE;
86824
86825 _this.state = {};
86826 if (isRange) {
86827 var _this$getInitRangeInp = _this.getInitRangeInputState(),
86828 inputType = _this$getInitRangeInp.inputType,
86829 justBeginInput = _this$getInitRangeInp.justBeginInput;
86830
86831 _this.state = {
86832 inputType: inputType,
86833 justBeginInput: justBeginInput
86834 };
86835 }
86836
86837 var _this$props = _this.props,
86838 format = _this$props.format,
86839 visible = _this$props.visible,
86840 defaultVisible = _this$props.defaultVisible,
86841 prefix = _this$props.prefix;
86842
86843 var value = _this.getInitValue();
86844
86845 // const value = formatInputTimeValue(props.value || props.defaultValue, props.format, isRange);
86846 _this.state = (0, _extends3.default)({}, _this.state, {
86847 isRange: isRange,
86848 inputStr: '', // 输入框的输入值, string类型
86849 value: value, // 确定值 dayjs类型
86850 curValue: value, // 临时值 dayjs类型
86851 preValue: value, // 上个值 dayjs类型
86852 inputValue: (0, _util2.fmtValue)(value, format),
86853 inputing: false,
86854 visible: 'visible' in _this.props ? visible : defaultVisible
86855 });
86856 _this.prefixCls = prefix + 'time-picker2';
86857 return _this;
86858 }
86859
86860 TimePicker2.getDerivedStateFromProps = function getDerivedStateFromProps(props, prevState) {
86861 var disabled = props.disabled,
86862 type = props.type,
86863 format = props.format,
86864 propsValue = props.value;
86865
86866 var isRange = type === _constant.TIME_PICKER_TYPE.RANGE;
86867 var state = {
86868 isRange: isRange
86869 };
86870
86871 if ('value' in props) {
86872 // checkDate function doesn't support hh:mm:ss format, convert to valid dayjs value in advance
86873 var formatter = function formatter(v) {
86874 return typeof v === 'string' ? (0, _util.datejs)(v, format) : v;
86875 };
86876 var formattedValue = Array.isArray(propsValue) ? propsValue.map(function (v) {
86877 return formatter(v);
86878 }) : formatter(propsValue);
86879 var value = isRange ? checkRangeDate(formattedValue, state.inputType, disabled) : checkDate(formattedValue);
86880 if ((0, _util2.isValueChanged)(value, state.preValue)) {
86881 state = (0, _extends3.default)({}, state, {
86882 value: value,
86883 preValue: value
86884 });
86885 if (isRange && !prevState.selecting) {
86886 state.inputValue = (0, _util2.fmtValue)(value, format);
86887 state.curValue = formattedValue;
86888 }
86889 }
86890 }
86891
86892 if ('visible' in props) {
86893 state.visible = props.visible;
86894 }
86895
86896 return state;
86897 };
86898
86899 /**
86900 * 获取初始值
86901 */
86902
86903 /**
86904 * 获取 RangePicker 输入框初始输入状态
86905 * @returns {Object} inputState
86906 * @returns {boolean} inputState.justBeginInput 是否初始输入
86907 * @returns {number} inputState.inputType 当前输入框
86908 */
86909
86910 /**
86911 * 处理点击文档区域导致的弹层收起逻辑
86912 * @param {boolean} visible 是否可见
86913 * @param {string} type 事件类型
86914 */
86915
86916 /**
86917 * 获取 `onChange` 和 `onOk` 方法的输出参数
86918 * @param {Dayjs} value
86919 * @returns 默认返回 `Dayjs` 实例和 `format` 格式化的值
86920 * 如果传了了 `outputFormat` 属性则返回 `outputFormat` 格式化的值
86921 */
86922
86923 /**
86924 * 获取输入框的禁用状态
86925 * @param {Number} idx
86926 * @returns {Boolean}
86927 */
86928
86929 TimePicker2.prototype.renderPreview = function renderPreview(others) {
86930 var _props = this.props,
86931 prefix = _props.prefix,
86932 format = _props.format,
86933 className = _props.className,
86934 renderPreview = _props.renderPreview;
86935 var value = this.state.value;
86936
86937 var previewCls = (0, _classnames4.default)(className, prefix + 'form-preview');
86938
86939 var label = value ? value.format(format) : '';
86940
86941 if (typeof renderPreview === 'function') {
86942 return _react2.default.createElement('div', (0, _extends3.default)({}, others, { className: previewCls }), renderPreview(value, this.props));
86943 }
86944
86945 return _react2.default.createElement('p', (0, _extends3.default)({}, others, { className: previewCls }), label);
86946 };
86947
86948 TimePicker2.prototype.render = function render() {
86949 var _classnames,
86950 _this2 = this,
86951 _classnames2;
86952
86953 var _props2 = this.props,
86954 prefix = _props2.prefix,
86955 label = _props2.label,
86956 state = _props2.state,
86957 placeholder = _props2.placeholder,
86958 size = _props2.size,
86959 format = _props2.format,
86960 hasClear = _props2.hasClear,
86961 hourStep = _props2.hourStep,
86962 minuteStep = _props2.minuteStep,
86963 secondStep = _props2.secondStep,
86964 disabledHours = _props2.disabledHours,
86965 disabledMinutes = _props2.disabledMinutes,
86966 disabledSeconds = _props2.disabledSeconds,
86967 renderTimeMenuItems = _props2.renderTimeMenuItems,
86968 inputProps = _props2.inputProps,
86969 popupAlign = _props2.popupAlign,
86970 popupTriggerType = _props2.popupTriggerType,
86971 popupContainer = _props2.popupContainer,
86972 popupStyle = _props2.popupStyle,
86973 popupClassName = _props2.popupClassName,
86974 popupProps = _props2.popupProps,
86975 popupComponent = _props2.popupComponent,
86976 followTrigger = _props2.followTrigger,
86977 disabled = _props2.disabled,
86978 hasBorder = _props2.hasBorder,
86979 className = _props2.className,
86980 locale = _props2.locale,
86981 rtl = _props2.rtl,
86982 isPreview = _props2.isPreview,
86983 preset = _props2.preset,
86984 others = (0, _objectWithoutProperties3.default)(_props2, ['prefix', 'label', 'state', 'placeholder', 'size', 'format', 'hasClear', 'hourStep', 'minuteStep', 'secondStep', 'disabledHours', 'disabledMinutes', 'disabledSeconds', 'renderTimeMenuItems', 'inputProps', 'popupAlign', 'popupTriggerType', 'popupContainer', 'popupStyle', 'popupClassName', 'popupProps', 'popupComponent', 'followTrigger', 'disabled', 'hasBorder', 'className', 'locale', 'rtl', 'isPreview', 'preset']);
86985 var _state = this.state,
86986 value = _state.value,
86987 inputStr = _state.inputStr,
86988 inputValue = _state.inputValue,
86989 curValue = _state.curValue,
86990 inputing = _state.inputing,
86991 visible = _state.visible,
86992 isRange = _state.isRange,
86993 inputType = _state.inputType;
86994
86995 var triggerCls = (0, _classnames4.default)((_classnames = {}, _classnames[this.prefixCls + '-trigger'] = true, _classnames));
86996
86997 if (rtl) {
86998 others.dir = 'rtl';
86999 }
87000
87001 if (isPreview) {
87002 return this.renderPreview(_util.obj.pickOthers(others, TimePicker2.PropTypes));
87003 }
87004
87005 var sharedInputProps = (0, _extends3.default)({
87006 prefix: prefix,
87007 locale: locale,
87008 label: label,
87009 state: state,
87010 placeholder: placeholder
87011 }, inputProps, {
87012 size: size,
87013 disabled: disabled,
87014 // RangePicker 有临时输入态在 inputValue 里面
87015 value: inputing ? inputStr : isRange ? inputValue : (0, _util2.fmtValue)(value, format) || '',
87016 hasClear: value && hasClear,
87017 inputType: inputType,
87018 isRange: isRange,
87019 onInputTypeChange: this.onInputTypeChange,
87020 onInput: this.handleInput,
87021 onKeyDown: this.onKeyDown,
87022 ref: function ref(el) {
87023 return _this2.dateInput = el;
87024 }
87025 });
87026
87027 var triggerInput = _react2.default.createElement('div', { className: triggerCls }, _react2.default.createElement(_dateInput2.default, (0, _extends3.default)({}, sharedInputProps, {
87028 label: label,
87029 state: state,
87030 onClick: this.onClick,
87031 hasBorder: hasBorder,
87032 placeholder: placeholder || locale.placeholder,
87033 className: (0, _classnames4.default)(this.prefixCls + '-input')
87034 })));
87035
87036 var panelProps = {
87037 prefix: prefix,
87038 locale: locale,
87039 value: inputing ? this.checkValue(inputStr) : curValue,
87040 // value: curValue,
87041 isRange: isRange,
87042 disabled: disabled,
87043 showHour: format.indexOf('H') > -1,
87044 showSecond: format.indexOf('s') > -1,
87045 showMinute: format.indexOf('m') > -1,
87046 hourStep: hourStep,
87047 minuteStep: minuteStep,
87048 secondStep: secondStep,
87049 disabledHours: disabledHours,
87050 disabledMinutes: disabledMinutes,
87051 disabledSeconds: disabledSeconds,
87052 renderTimeMenuItems: renderTimeMenuItems,
87053 onSelect: this.handleChange
87054 };
87055
87056 var classNames = (0, _classnames4.default)((_classnames2 = {}, _classnames2['' + this.prefixCls] = true, _classnames2[this.prefixCls + '-' + size] = size, _classnames2[prefix + 'disabled'] = disabled, _classnames2), className);
87057
87058 var PopupComponent = popupComponent ? popupComponent : Popup;
87059 var oKable = !!(isRange ? inputValue && inputValue[inputType] : inputValue);
87060
87061 return _react2.default.createElement('div', (0, _extends3.default)({}, _util.obj.pickOthers(TimePicker2.propTypes, others), { className: classNames }), _react2.default.createElement(PopupComponent, (0, _extends3.default)({
87062 align: popupAlign
87063 }, popupProps, {
87064 followTrigger: followTrigger,
87065 visible: visible,
87066 onVisibleChange: this.handleVisibleChange,
87067 trigger: triggerInput,
87068 container: popupContainer,
87069 disabled: disabled,
87070 triggerType: popupTriggerType,
87071 style: popupStyle,
87072 className: popupClassName
87073 }), _react2.default.createElement('div', { dir: others.dir, className: this.prefixCls + '-wrapper' }, _react2.default.createElement('div', { className: this.prefixCls + '-body' }, _react2.default.createElement(_panel2.default, panelProps), preset || isRange ? _react2.default.createElement(_footerPanel2.default, {
87074 prefix: prefix,
87075 className: this.prefixCls + '-footer',
87076 showTime: true,
87077 oKable: oKable,
87078 showOk: isRange,
87079 onOk: this.onOk,
87080 onChange: this.handleChange,
87081 preset: preset
87082 }) : null))));
87083 };
87084
87085 return TimePicker2;
87086}(_react.Component), _class.propTypes = (0, _extends3.default)({}, _configProvider2.default.propTypes, {
87087 prefix: _propTypes2.default.string,
87088 rtl: _propTypes2.default.bool,
87089 /**
87090 * 按钮的文案
87091 */
87092 label: _propTypes2.default.node,
87093 /**
87094 * 输入框状态
87095 */
87096 state: _propTypes2.default.oneOf(['error', 'success']),
87097 /**
87098 * 输入框提示
87099 */
87100 placeholder: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.string), _propTypes2.default.string]),
87101 /**
87102 * 时间值,dayjs格式或者2020-01-01字符串格式,受控状态使用
87103 */
87104 value: _propTypes4.default.value,
87105 /**
87106 * 时间初值,dayjs格式或者2020-01-01字符串格式,非受控状态使用
87107 */
87108 defaultValue: _propTypes4.default.value,
87109 /**
87110 * 时间选择框的尺寸
87111 */
87112 size: _propTypes2.default.oneOf(['small', 'medium', 'large']),
87113 /**
87114 * 是否允许清空时间
87115 */
87116 hasClear: _propTypes2.default.bool,
87117 /**
87118 * 时间的格式
87119 * https://dayjs.gitee.io/docs/zh-CN/display/format
87120 */
87121 format: _propTypes2.default.string,
87122 /**
87123 * 小时选项步长
87124 */
87125 hourStep: _propTypes2.default.number,
87126 /**
87127 * 分钟选项步长
87128 */
87129 minuteStep: _propTypes2.default.number,
87130 /**
87131 * 秒钟选项步长
87132 */
87133 secondStep: _propTypes2.default.number,
87134 /**
87135 * 禁用小时函数
87136 * @param {Number} index 时 0 - 23
87137 * @return {Boolean} 是否禁用
87138 */
87139 disabledHours: _propTypes2.default.func,
87140 /**
87141 * 禁用分钟函数
87142 * @param {Number} index 分 0 - 59
87143 * @return {Boolean} 是否禁用
87144 */
87145 disabledMinutes: _propTypes2.default.func,
87146 /**
87147 * 禁用秒钟函数
87148 * @param {Number} index 秒 0 - 59
87149 * @return {Boolean} 是否禁用
87150 */
87151 disabledSeconds: _propTypes2.default.func,
87152 /**
87153 * 渲染的可选择时间列表
87154 * [{
87155 * label: '01',
87156 * value: 1
87157 * }]
87158 * @param {Array} list 默认渲染的列表
87159 * @param {String} mode 渲染的菜单 hour, minute, second
87160 * @param {dayjs} value 当前时间,可能为 null
87161 * @return {Array} 返回需要渲染的数据
87162 */
87163 renderTimeMenuItems: _propTypes2.default.func,
87164 /**
87165 * 弹层是否显示(受控)
87166 */
87167 visible: _propTypes2.default.bool,
87168 /**
87169 * 弹层默认是否显示(非受控)
87170 */
87171 defaultVisible: _propTypes2.default.bool,
87172 /**
87173 * 弹层容器
87174 * @param {Object} target 目标节点
87175 * @return {ReactNode} 容器节点
87176 */
87177 popupContainer: _propTypes2.default.any,
87178 /**
87179 * 弹层对齐方式, 详情见Overlay 文档
87180 */
87181 popupAlign: _propTypes2.default.string,
87182 /**
87183 * 弹层触发方式
87184 */
87185 popupTriggerType: _propTypes2.default.oneOf(['click', 'hover']),
87186 /**
87187 * 弹层展示状态变化时的回调
87188 * @param {Boolean} visible 弹层是否隐藏和显示
87189 * @param {String} type 触发弹层显示和隐藏的来源 fromTrigger 表示由trigger的点击触发; docClick 表示由document的点击触发
87190 */
87191 onVisibleChange: _propTypes2.default.func,
87192 /**
87193 * 弹层自定义样式
87194 */
87195 popupStyle: _propTypes2.default.object,
87196 /**
87197 * 弹层自定义样式类
87198 */
87199 popupClassName: _propTypes2.default.string,
87200 /**
87201 * 弹层属性
87202 */
87203 popupProps: _propTypes2.default.object,
87204 /**
87205 * 是否跟随滚动
87206 */
87207 followTrigger: _propTypes2.default.bool,
87208 /**
87209 * 是否禁用
87210 */
87211 disabled: _propTypes2.default.bool,
87212 /**
87213 * 输入框是否有边框
87214 */
87215 hasBorder: _propTypes2.default.bool,
87216 /**
87217 * 是否为预览态
87218 */
87219 isPreview: _propTypes2.default.bool,
87220 /**
87221 * 预览态模式下渲染的内容
87222 * @param {DayjsObject} value 时间
87223 */
87224 renderPreview: _propTypes2.default.func,
87225 /**
87226 * 时间值改变时的回调
87227 * @param {DayjsObject} date dayjs时间对象
87228 * @param {Object|String} dateString 时间对象或时间字符串
87229 */
87230 onChange: _propTypes2.default.func,
87231 className: _propTypes2.default.string,
87232 name: _propTypes2.default.string,
87233 /**
87234 * 预设值,会显示在时间面板下面
87235 */
87236 preset: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(presetPropType), presetPropType]),
87237 inputProps: _propTypes2.default.shape(_input2.default.propTypes),
87238 popupComponent: _propTypes2.default.elementType,
87239 type: _propTypes2.default.oneOf(['time', 'range'])
87240}), _class.defaultProps = {
87241 prefix: 'next-',
87242 rtl: false,
87243 locale: timePickerLocale,
87244 size: 'medium',
87245 format: 'HH:mm:ss',
87246 hasClear: true,
87247 disabled: false,
87248 hasBorder: true,
87249 type: 'time',
87250 popupAlign: 'tl bl',
87251 popupTriggerType: 'click',
87252 onChange: noop,
87253 onVisibleChange: noop
87254}, _initialiseProps = function _initialiseProps() {
87255 var _this3 = this;
87256
87257 this.getInitValue = function () {
87258 var props = _this3.props;
87259 var type = props.type,
87260 value = props.value,
87261 defaultValue = props.defaultValue;
87262
87263 var val = type === _constant.TIME_PICKER_TYPE.RANGE ? [null, null] : null;
87264
87265 val = 'value' in props ? value : 'defaultValue' in props ? defaultValue : val;
87266
87267 return _this3.checkValue(val);
87268 };
87269
87270 this.getInitRangeInputState = function () {
87271 return {
87272 justBeginInput: _this3.isEnabled(),
87273 inputType: _this3.isEnabled(0) ? _constant.TIME_INPUT_TYPE.BEGIN : _constant.TIME_INPUT_TYPE.END
87274 };
87275 };
87276
87277 this.onKeyDown = function (e) {
87278 if (e.keyCode === _util.KEYCODE.ENTER) {
87279 var inputValue = _this3.state.inputValue;
87280
87281 _this3.handleChange(inputValue, 'KEYDOWN_ENTER');
87282 _this3.onClick();
87283 return;
87284 }
87285
87286 var _state2 = _this3.state,
87287 value = _state2.value,
87288 inputStr = _state2.inputStr,
87289 inputType = _state2.inputType,
87290 isRange = _state2.isRange;
87291 var _props3 = _this3.props,
87292 format = _props3.format,
87293 _props3$hourStep = _props3.hourStep,
87294 hourStep = _props3$hourStep === undefined ? 1 : _props3$hourStep,
87295 _props3$minuteStep = _props3.minuteStep,
87296 minuteStep = _props3$minuteStep === undefined ? 1 : _props3$minuteStep,
87297 _props3$secondStep = _props3.secondStep,
87298 secondStep = _props3$secondStep === undefined ? 1 : _props3$secondStep,
87299 disabledMinutes = _props3.disabledMinutes,
87300 disabledSeconds = _props3.disabledSeconds;
87301
87302 var unit = 'second';
87303
87304 if (disabledSeconds) {
87305 unit = disabledMinutes ? 'hour' : 'minute';
87306 }
87307
87308 var timeStr = (0, _utils.onTimeKeydown)(e, {
87309 format: format,
87310 timeInputStr: isRange ? inputStr[inputType] : inputStr,
87311 steps: {
87312 hour: hourStep,
87313 minute: minuteStep,
87314 second: secondStep
87315 },
87316 value: value
87317 }, unit);
87318
87319 if (!timeStr) return;
87320 var newInputStr = timeStr;
87321 if (isRange) {
87322 newInputStr = inputStr;
87323 newInputStr[inputType] = timeStr;
87324 }
87325
87326 _this3.handleChange(newInputStr, 'KEYDOWN_CODE');
87327 };
87328
87329 this.onVisibleChange = function (visible, type) {
87330 if (!('visible' in _this3.props)) {
87331 _this3.setState({
87332 visible: visible
87333 });
87334 }
87335 _this3.props.onVisibleChange(visible, type);
87336 };
87337
87338 this.onClick = function () {
87339 var _state3 = _this3.state,
87340 visible = _state3.visible,
87341 inputType = _state3.inputType;
87342
87343 if (!visible) {
87344 _this3.onVisibleChange(true);
87345 _this3.handleInputFocus(inputType);
87346 }
87347 };
87348
87349 this.handleVisibleChange = function (visible, targetType) {
87350 if (targetType === 'docClick') {
87351 // 弹层收起 触发 Change 逻辑
87352 if (!visible) {
87353 _this3.handleChange(_this3.state.curValue, 'VISIBLE_CHANGE');
87354 }
87355 _this3.onVisibleChange(visible);
87356 }
87357 };
87358
87359 this.handleInputFocus = function (inputType) {
87360 var inputEl = _this3.dateInput && _this3.dateInput.input;
87361
87362 if (_this3.state.isRange) {
87363 inputEl = inputEl && inputEl[inputType];
87364 }
87365
87366 inputEl && inputEl.focus();
87367 };
87368
87369 this.onOk = function () {
87370 var curValue = _this3.state.curValue;
87371
87372 var checkedValue = _this3.checkValue(curValue);
87373
87374 _util.func.invoke(_this3.props, 'onOk', _this3.getOutputArgs(checkedValue));
87375
87376 _this3.setState({ value: checkedValue });
87377 _this3.handleChange(checkedValue, 'CLICK_OK');
87378 };
87379
87380 this.onInputTypeChange = function (idx) {
87381 var _state4 = _this3.state,
87382 inputType = _state4.inputType,
87383 visible = _state4.visible;
87384
87385 if (idx !== inputType) {
87386 _this3.setState({
87387 inputType: idx,
87388 justBeginInput: !(idx !== null && visible)
87389 });
87390 }
87391 };
87392
87393 this.checkValue = function (value, strictly) {
87394 var inputType = _this3.state.inputType;
87395
87396 var formatter = function formatter(v) {
87397 return typeof v === 'string' ? (0, _util.datejs)(v, 'HH:mm:ss') : v;
87398 };
87399 var formattedValue = Array.isArray(value) ? value.map(function (v) {
87400 return formatter(v);
87401 }) : formatter(value);
87402
87403 return _this3.props.type === _constant.TIME_PICKER_TYPE.RANGE ? checkRangeDate(formattedValue, inputType, _this3.props.disabled, strictly) : checkDate(formattedValue);
87404 };
87405
87406 this.getOutputArgs = function (value) {
87407 var format = _this3.props.format;
87408
87409 return [value, (0, _util2.fmtValue)(value, format)];
87410 };
87411
87412 this.onChange = function (v) {
87413 var state = _this3.state,
87414 props = _this3.props;
87415 var format = props.format;
87416
87417 var nextValue = v === undefined ? state.value : v;
87418 var value = _this3.checkValue(nextValue);
87419
87420 _this3.setState({
87421 curValue: value,
87422 preValue: value,
87423 inputStr: (0, _util2.fmtValue)(value, format),
87424 inputValue: (0, _util2.fmtValue)(value, format)
87425 });
87426
87427 _util.func.invoke(_this3.props, 'onChange', _this3.getOutputArgs(nextValue));
87428 };
87429
87430 this.shouldSwitchInput = function (value) {
87431 var _state5 = _this3.state,
87432 inputType = _state5.inputType,
87433 justBeginInput = _state5.justBeginInput;
87434
87435 var idx = justBeginInput ? (0, _util2.switchInputType)(inputType) : value.indexOf(null);
87436
87437 if (idx !== -1 && _this3.isEnabled(idx)) {
87438 _this3.onInputTypeChange(idx);
87439 _this3.handleInputFocus(idx);
87440 return true;
87441 }
87442
87443 return false;
87444 };
87445
87446 this.handleChange = function (v, eventType) {
87447 var format = _this3.props.format;
87448 var _state6 = _this3.state,
87449 isRange = _state6.isRange,
87450 value = _state6.value,
87451 preValue = _state6.preValue;
87452
87453 var forceEvents = ['KEYDOWN_ENTER', 'CLICK_PRESET', 'CLICK_OK', 'INPUT_CLEAR', 'VISIBLE_CHANGE'];
87454 var isTemporary = isRange && !forceEvents.includes(eventType);
87455
87456 // 面板收起时候,将值设置为确认值
87457 v = eventType === 'VISIBLE_CHANGE' ? value : _this3.checkValue(v, !isTemporary);
87458
87459 var stringV = (0, _util2.fmtValue)(v, format);
87460
87461 _this3.setState({
87462 curValue: v,
87463 inputStr: stringV,
87464 inputValue: stringV,
87465 inputing: false,
87466 selecting: eventType === 'start' || eventType === 'end'
87467 });
87468
87469 if (!isTemporary) {
87470 _this3.setState({
87471 value: v
87472 }, function () {
87473 // 判断当前选择结束,收起面板:
87474 // 1. 非 Range 选择
87475 // 2. 非 选择预设时间、面板收起、清空输入 操作
87476 // 3. 不需要切换输入框
87477 var shouldHidePanel = ['CLICK_PRESET', 'VISIBLE_CHANGE', 'KEYDOWN_ENTER', 'INPUT_CLEAR', 'CLICK_OK'].includes(eventType) || isRange && !_this3.shouldSwitchInput(v);
87478 if (shouldHidePanel) {
87479 _this3.onVisibleChange(false);
87480 }
87481
87482 if ((0, _util2.isValueChanged)(v, preValue)) {
87483 _this3.onChange(v);
87484 }
87485 });
87486 }
87487 };
87488
87489 this.isEnabled = function (idx) {
87490 var disabled = _this3.props.disabled;
87491
87492 return Array.isArray(disabled) ? idx === undefined ? !disabled[0] && !disabled[1] : !disabled[idx] : !disabled;
87493 };
87494
87495 this.handleClear = function () {
87496 /**
87497 * 清空输入之后 input 组件内部会让第二个输入框获得焦点
87498 * 所以这里需要设置 setTimeout 才能让第一个 input 获得焦点
87499 */
87500 _this3.clearTimeoutId = setTimeout(function () {
87501 _this3.handleInputFocus(0);
87502 });
87503
87504 _this3.setState({
87505 inputType: _constant.TIME_INPUT_TYPE.BEGIN,
87506 justBeginInput: _this3.isEnabled()
87507 });
87508 };
87509
87510 this.handleInput = function (v, eventType) {
87511 var isRange = _this3.state.isRange;
87512
87513 if (eventType === 'clear') {
87514 _this3.handleChange(v, 'INPUT_CLEAR');
87515
87516 if (isRange) {
87517 _this3.handleClear();
87518 }
87519 } else {
87520 _this3.setState({
87521 inputStr: v,
87522 inputValue: v,
87523 curValue: _this3.checkValue(v),
87524 inputing: true,
87525 visible: true
87526 });
87527 }
87528 };
87529}, _temp);
87530TimePicker2.displayName = 'TimePicker2';
87531exports.default = (0, _reactLifecyclesCompat.polyfill)(TimePicker2);
87532module.exports = exports['default'];
87533
87534/***/ }),
87535/* 479 */
87536/***/ (function(module, exports, __webpack_require__) {
87537
87538"use strict";
87539
87540
87541exports.__esModule = true;
87542
87543var _classCallCheck2 = __webpack_require__(2);
87544
87545var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
87546
87547var _possibleConstructorReturn2 = __webpack_require__(3);
87548
87549var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
87550
87551var _inherits2 = __webpack_require__(4);
87552
87553var _inherits3 = _interopRequireDefault(_inherits2);
87554
87555var _class, _temp2;
87556
87557var _react = __webpack_require__(0);
87558
87559var _react2 = _interopRequireDefault(_react);
87560
87561var _propTypes = __webpack_require__(5);
87562
87563var _propTypes2 = _interopRequireDefault(_propTypes);
87564
87565var _classnames2 = __webpack_require__(7);
87566
87567var _classnames3 = _interopRequireDefault(_classnames2);
87568
87569var _utils = __webpack_require__(199);
87570
87571function _interopRequireDefault(obj) {
87572 return obj && obj.__esModule ? obj : { default: obj };
87573}
87574
87575function scrollTo(element, to, duration) {
87576 var requestAnimationFrame = window.requestAnimationFrame || function requestAnimationFrameTimeout() {
87577 return setTimeout(arguments.length <= 0 ? undefined : arguments[0], 10);
87578 };
87579
87580 if (duration <= 0) {
87581 element.scrollTop = to;
87582 return;
87583 }
87584
87585 var difference = to - element.scrollTop;
87586 var perTick = difference / duration * 10;
87587
87588 requestAnimationFrame(function () {
87589 element.scrollTop = element.scrollTop + perTick;
87590
87591 if (element.scrollTop === to) {
87592 return;
87593 }
87594
87595 scrollTo(element, to, duration - 10);
87596 });
87597}
87598
87599var noop = function noop() {};
87600
87601var TimeMenu = (_temp2 = _class = function (_React$Component) {
87602 (0, _inherits3.default)(TimeMenu, _React$Component);
87603
87604 function TimeMenu() {
87605 var _temp, _this, _ret;
87606
87607 (0, _classCallCheck3.default)(this, TimeMenu);
87608
87609 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
87610 args[_key] = arguments[_key];
87611 }
87612
87613 return _ret = (_temp = (_this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.prefixCls = _this.props.prefix + 'time-picker2', _this._menuRefHandler = function (ref) {
87614 _this.menu = ref;
87615 }, _this._menuWrapperRefHandler = function (ref) {
87616 _this.menuWrapper = ref;
87617 }, _this.createMenuItems = function (list) {
87618 var _this$props = _this.props,
87619 prefix = _this$props.prefix,
87620 mode = _this$props.mode,
87621 disabled = _this$props.disabled,
87622 disabledItems = _this$props.disabledItems,
87623 activeIndex = _this$props.activeIndex,
87624 onSelect = _this$props.onSelect,
87625 renderTimeMenuItems = _this$props.renderTimeMenuItems,
87626 timeValue = _this$props.value;
87627
87628 list = renderTimeMenuItems(list, mode, timeValue) || list;
87629
87630 return list.map(function (_ref) {
87631 var _classnames;
87632
87633 var label = _ref.label,
87634 value = _ref.value;
87635
87636 var isDisabled = disabled || disabledItems(value);
87637 var itemCls = (0, _classnames3.default)((_classnames = {}, _classnames[_this.prefixCls + '-menu-item'] = true, _classnames[prefix + 'disabled'] = isDisabled, _classnames[prefix + 'selected'] = value === activeIndex, _classnames));
87638 var onClick = isDisabled ? noop : function () {
87639 return onSelect(value, mode);
87640 };
87641 return _react2.default.createElement('li', {
87642 role: 'option',
87643 'aria-selected': String(value === activeIndex),
87644 key: value,
87645 title: value,
87646 className: itemCls,
87647 onClick: onClick
87648 }, label);
87649 });
87650 }, _temp), (0, _possibleConstructorReturn3.default)(_this, _ret);
87651 }
87652
87653 TimeMenu.prototype.componentDidMount = function componentDidMount() {
87654 this.scrollToSelected(0);
87655 };
87656
87657 TimeMenu.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
87658 if (prevProps.activeIndex !== this.props.activeIndex) {
87659 this.scrollToSelected(120);
87660 }
87661 };
87662
87663 TimeMenu.prototype.scrollToSelected = function scrollToSelected() {
87664 var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
87665 var _props = this.props,
87666 activeIndex = _props.activeIndex,
87667 step = _props.step;
87668
87669 var targetIndex = Math.floor((activeIndex || 0) / step);
87670 var firstItem = this.menu.children[targetIndex];
87671 var offsetTo = firstItem.offsetTop;
87672 scrollTo(this.menu, offsetTo, duration);
87673 };
87674
87675 TimeMenu.prototype.render = function render() {
87676 var _props2 = this.props,
87677 mode = _props2.mode,
87678 step = _props2.step;
87679
87680 var total = mode === 'hour' ? 24 : 60;
87681 var list = [];
87682 for (var i = 0; i < total; i++) {
87683 if (i % step === 0) {
87684 list.push({
87685 label: i,
87686 value: i
87687 });
87688 }
87689 }
87690
87691 return _react2.default.createElement('div', { className: this.prefixCls + '-menu', ref: this._menuWrapperRefHandler }, _react2.default.createElement('ul', { role: 'listbox', className: this.prefixCls + '-menu-' + mode, ref: this._menuRefHandler }, this.createMenuItems(list)));
87692 };
87693
87694 return TimeMenu;
87695}(_react2.default.Component), _class.propTypes = {
87696 prefix: _propTypes2.default.string,
87697 title: _propTypes2.default.node,
87698 mode: _propTypes2.default.oneOf(['hour', 'minute', 'second']),
87699 step: _propTypes2.default.number,
87700 activeIndex: _propTypes2.default.number,
87701 value: _utils.checkDayjsObj,
87702 disabledItems: _propTypes2.default.func,
87703 renderTimeMenuItems: _propTypes2.default.func,
87704 onSelect: _propTypes2.default.func,
87705 disabled: _propTypes2.default.bool
87706}, _class.defaultProps = {
87707 step: 1,
87708 disabledItems: function disabledItems() {
87709 return false;
87710 },
87711 renderTimeMenuItems: function renderTimeMenuItems(list) {
87712 return list;
87713 },
87714 onSelect: function onSelect() {},
87715 disabled: false
87716}, _temp2);
87717TimeMenu.displayName = 'TimeMenu';
87718exports.default = TimeMenu;
87719module.exports = exports['default'];
87720
87721/***/ }),
87722/* 480 */
87723/***/ (function(module, exports, __webpack_require__) {
87724
87725"use strict";
87726
87727
87728exports.__esModule = true;
87729
87730var _extends2 = __webpack_require__(1);
87731
87732var _extends3 = _interopRequireDefault(_extends2);
87733
87734var _objectWithoutProperties2 = __webpack_require__(8);
87735
87736var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
87737
87738var _classCallCheck2 = __webpack_require__(2);
87739
87740var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
87741
87742var _possibleConstructorReturn2 = __webpack_require__(3);
87743
87744var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
87745
87746var _inherits2 = __webpack_require__(4);
87747
87748var _inherits3 = _interopRequireDefault(_inherits2);
87749
87750var _class, _temp;
87751
87752var _react = __webpack_require__(0);
87753
87754var _react2 = _interopRequireDefault(_react);
87755
87756var _reactLifecyclesCompat = __webpack_require__(10);
87757
87758var _propTypes = __webpack_require__(5);
87759
87760var PT = _interopRequireWildcard(_propTypes);
87761
87762var _classnames3 = __webpack_require__(7);
87763
87764var _classnames4 = _interopRequireDefault(_classnames3);
87765
87766var _propTypes2 = __webpack_require__(109);
87767
87768var _propTypes3 = _interopRequireDefault(_propTypes2);
87769
87770var _constant = __webpack_require__(110);
87771
87772var _util = __webpack_require__(6);
87773
87774var _util2 = __webpack_require__(43);
87775
87776var _input = __webpack_require__(18);
87777
87778var _input2 = _interopRequireDefault(_input);
87779
87780var _icon = __webpack_require__(11);
87781
87782var _icon2 = _interopRequireDefault(_icon);
87783
87784function _interopRequireWildcard(obj) {
87785 if (obj && obj.__esModule) {
87786 return obj;
87787 } else {
87788 var newObj = {};if (obj != null) {
87789 for (var key in obj) {
87790 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
87791 }
87792 }newObj.default = obj;return newObj;
87793 }
87794}
87795
87796function _interopRequireDefault(obj) {
87797 return obj && obj.__esModule ? obj : { default: obj };
87798}
87799
87800var DateInput = (_temp = _class = function (_React$Component) {
87801 (0, _inherits3.default)(DateInput, _React$Component);
87802
87803 function DateInput(props) {
87804 (0, _classCallCheck3.default)(this, DateInput);
87805
87806 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
87807
87808 _this.setInputRef = function (el, index) {
87809 if (_this.props.isRange) {
87810 if (!_this.input) {
87811 _this.input = [];
87812 }
87813 _this.input[index] = el;
87814 } else {
87815 _this.input = el;
87816 }
87817 };
87818
87819 _this.setValue = function (v) {
87820 var _this$props = _this.props,
87821 isRange = _this$props.isRange,
87822 inputType = _this$props.inputType,
87823 value = _this$props.value;
87824
87825 var newVal = v;
87826
87827 if (isRange) {
87828 newVal = [].concat(value);
87829 newVal[inputType] = v;
87830 }
87831
87832 return newVal;
87833 };
87834
87835 _this.formatter = function (v) {
87836 var format = _this.props.format;
87837
87838 return typeof format === 'function' ? format(v) : v.format(format);
87839 };
87840
87841 _this.onInput = function (v, e, eventType) {
87842 v = _this.setValue(v);
87843
87844 if (eventType === 'clear') {
87845 v = null;
87846 e.stopPropagation();
87847 }
87848
87849 _util.func.invoke(_this.props, 'onInput', [v, eventType]);
87850 };
87851
87852 _this.handleTypeChange = function (inputType) {
87853 if (inputType !== _this.props.inputType) {
87854 _util.func.invoke(_this.props, 'onInputTypeChange', [inputType]);
87855 }
87856 };
87857
87858 _this.getPlaceholder = function () {
87859 var isRange = _this.props.isRange;
87860
87861 var holder = _this.props.placeholder;
87862
87863 if (isRange && !Array.isArray(holder)) {
87864 holder = Array(2).fill(holder);
87865 }
87866
87867 return holder;
87868 };
87869
87870 _this.getHtmlSize = function () {
87871 var _this$props2 = _this.props,
87872 isRange = _this$props2.isRange,
87873 format = _this$props2.format,
87874 hasBorder = _this$props2.hasBorder;
87875
87876 var value = '12:12:12';
87877 var size = 0;
87878
87879 if (isRange) {
87880 var fmtStr = (0, _util2.fmtValue)([value, value].map(_util.datejs), format);
87881 size = Math.max.apply(Math, fmtStr.map(function (s) {
87882 return s && s.length || 0;
87883 }));
87884 } else {
87885 var _fmtStr = (0, _util2.fmtValue)((0, _util.datejs)(value), format);
87886 size = _fmtStr && _fmtStr.length || 0;
87887 }
87888
87889 return String(Math.max(size, hasBorder ? 12 : 8));
87890 };
87891
87892 _this.prefixCls = props.prefix + 'time-picker2-input';
87893 return _this;
87894 }
87895
87896 /**
87897 * 根据 format 计算输入框 htmlSize
87898 */
87899
87900 DateInput.prototype.render = function render() {
87901 var _classnames2;
87902
87903 var onInput = this.onInput,
87904 setInputRef = this.setInputRef,
87905 handleTypeChange = this.handleTypeChange,
87906 prefixCls = this.prefixCls;
87907 var _props = this.props,
87908 autoFocus = _props.autoFocus,
87909 readOnly = _props.readOnly,
87910 isRange = _props.isRange,
87911 value = _props.value,
87912 onBlur = _props.onBlur,
87913 hasClear = _props.hasClear,
87914 inputType = _props.inputType,
87915 size = _props.size,
87916 focus = _props.focus,
87917 prefix = _props.prefix,
87918 hasBorder = _props.hasBorder,
87919 separator = _props.separator,
87920 disabled = _props.disabled,
87921 inputProps = _props.inputProps,
87922 state = _props.state,
87923 label = _props.label,
87924 onClick = _props.onClick,
87925 onKeyDown = _props.onKeyDown,
87926 restProps = (0, _objectWithoutProperties3.default)(_props, ['autoFocus', 'readOnly', 'isRange', 'value', 'onBlur', 'hasClear', 'inputType', 'size', 'focus', 'prefix', 'hasBorder', 'separator', 'disabled', 'inputProps', 'state', 'label', 'onClick', 'onKeyDown']);
87927
87928 var placeholder = this.getPlaceholder();
87929 var htmlSize = this.getHtmlSize();
87930
87931 var sharedProps = (0, _extends3.default)({}, _util.obj.pickProps(restProps, _input2.default), inputProps, {
87932 size: size,
87933 prefix: prefix,
87934 htmlSize: htmlSize,
87935 readOnly: readOnly,
87936 hasBorder: hasBorder,
87937 onBlur: onBlur,
87938 onChange: onInput,
87939 onClick: onClick,
87940 onKeyDown: onKeyDown
87941 });
87942
87943 var rangeProps = void 0;
87944 if (isRange) {
87945 rangeProps = [_constant.TIME_INPUT_TYPE.BEGIN, _constant.TIME_INPUT_TYPE.END].map(function (idx) {
87946 var _classnames;
87947
87948 var _disabled = Array.isArray(disabled) ? disabled[idx] : disabled;
87949
87950 return (0, _extends3.default)({}, sharedProps, {
87951 autoFocus: autoFocus,
87952 placeholder: placeholder[idx],
87953 value: value[idx] || '',
87954 disabled: _disabled,
87955 ref: function ref(_ref) {
87956 return setInputRef(_ref, idx);
87957 },
87958 onFocus: _disabled ? undefined : function () {
87959 return handleTypeChange(idx);
87960 },
87961 className: (0, _classnames4.default)((_classnames = {}, _classnames[prefixCls + '-active'] = inputType === idx, _classnames))
87962 });
87963 });
87964 }
87965
87966 var className = (0, _classnames4.default)([prefixCls, prefixCls + '-' + size, prefixCls + '-' + (isRange ? 'range' : 'time')], (_classnames2 = {}, _classnames2[prefixCls + '-focus'] = focus, _classnames2[prefixCls + '-noborder'] = !hasBorder, _classnames2[prefixCls + '-disabled'] = isRange && Array.isArray(disabled) ? disabled.every(function (v) {
87967 return v;
87968 }) : disabled, _classnames2));
87969
87970 var calendarIcon = _react2.default.createElement(_icon2.default, { type: 'clock', className: this.prefixCls + '-symbol-clock-icon' });
87971
87972 return _react2.default.createElement('div', { className: className }, isRange ? _react2.default.createElement(_react2.default.Fragment, null, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, rangeProps[0], {
87973 label: label,
87974 hasBorder: false,
87975 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
87976 })), _react2.default.createElement('div', { className: prefixCls + '-separator' }, separator), _react2.default.createElement(_input2.default, (0, _extends3.default)({}, rangeProps[1], {
87977 state: state,
87978 hasBorder: false,
87979 hasClear: !state && hasClear,
87980 hint: state ? null : calendarIcon
87981 }))) : _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedProps, {
87982 label: label,
87983 state: state,
87984 disabled: disabled,
87985 hasClear: !state && hasClear,
87986 placeholder: placeholder,
87987 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
87988 , ref: setInputRef,
87989 value: value || '',
87990 hint: state ? null : calendarIcon
87991 })));
87992 };
87993
87994 return DateInput;
87995}(_react2.default.Component), _class.propTypes = {
87996 prefix: PT.string,
87997 rtl: PT.bool,
87998 locale: PT.object,
87999 value: PT.oneOfType([PT.arrayOf(PT.string), PT.string]),
88000 inputType: _propTypes3.default.inputType,
88001 format: _propTypes3.default.format,
88002 isRange: PT.bool,
88003 hasClear: PT.bool,
88004 onInputTypeChange: PT.func,
88005 autoFocus: PT.bool,
88006 readOnly: _propTypes3.default.readOnly,
88007 placeholder: _propTypes3.default.placeholder,
88008 size: _propTypes3.default.size,
88009 focus: PT.bool,
88010 hasBorder: PT.bool,
88011 onKeyDown: PT.func,
88012 onClick: PT.func,
88013 separator: PT.node,
88014 disabled: _propTypes3.default.disabled,
88015 inputProps: PT.object,
88016 label: PT.node
88017}, _class.defaultProps = {
88018 autoFocus: false,
88019 readOnly: false,
88020 hasClear: true,
88021 separator: '-',
88022 hasBorder: true,
88023 size: 'medium'
88024}, _temp);
88025DateInput.displayName = 'DateInput';
88026exports.default = (0, _reactLifecyclesCompat.polyfill)(DateInput);
88027module.exports = exports['default'];
88028
88029/***/ }),
88030/* 481 */
88031/***/ (function(module, exports, __webpack_require__) {
88032
88033"use strict";
88034
88035
88036exports.__esModule = true;
88037
88038var _extends2 = __webpack_require__(1);
88039
88040var _extends3 = _interopRequireDefault(_extends2);
88041
88042var _typeof2 = __webpack_require__(14);
88043
88044var _typeof3 = _interopRequireDefault(_typeof2);
88045
88046var _objectWithoutProperties2 = __webpack_require__(8);
88047
88048var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
88049
88050var _MODE2FORMAT;
88051
88052var _react = __webpack_require__(0);
88053
88054var _react2 = _interopRequireDefault(_react);
88055
88056var _configProvider = __webpack_require__(9);
88057
88058var _configProvider2 = _interopRequireDefault(_configProvider);
88059
88060var _picker = __webpack_require__(482);
88061
88062var _picker2 = _interopRequireDefault(_picker);
88063
88064var _constant = __webpack_require__(44);
88065
88066function _interopRequireDefault(obj) {
88067 return obj && obj.__esModule ? obj : { default: obj };
88068}
88069
88070var DATE = _constant.DATE_PICKER_MODE.DATE,
88071 WEEK = _constant.DATE_PICKER_MODE.WEEK,
88072 MONTH = _constant.DATE_PICKER_MODE.MONTH,
88073 QUARTER = _constant.DATE_PICKER_MODE.QUARTER,
88074 YEAR = _constant.DATE_PICKER_MODE.YEAR;
88075
88076var MODE2FORMAT = (_MODE2FORMAT = {}, _MODE2FORMAT[DATE] = 'YYYY-MM-DD', _MODE2FORMAT[WEEK] = 'YYYY-wo', _MODE2FORMAT[MONTH] = 'YYYY-MM', _MODE2FORMAT[QUARTER] = 'YYYY-[Q]Q', _MODE2FORMAT[YEAR] = 'YYYY', _MODE2FORMAT);
88077
88078/* istanbul ignore next */
88079var transform = function transform(props, deprecated) {
88080 var footerRender = props.footerRender,
88081 onVisibleMonthChange = props.onVisibleMonthChange,
88082 defaultVisibleMonth = props.defaultVisibleMonth,
88083 ranges = props.ranges,
88084 newProps = (0, _objectWithoutProperties3.default)(props, ['footerRender', 'onVisibleMonthChange', 'defaultVisibleMonth', 'ranges']);
88085
88086 var mode = props.mode || DATE;
88087
88088 if ('footerRender' in props) {
88089 deprecated('footerRender', 'extraFooterRender', 'DatePicker');
88090 newProps.extraFooterRender = footerRender;
88091 }
88092
88093 if (onVisibleMonthChange) {
88094 deprecated('onVisibleMonthChange', 'onPanelChange', 'DatePicker');
88095 newProps.onPanelChange = onVisibleMonthChange;
88096 }
88097
88098 if (defaultVisibleMonth) {
88099 deprecated('defaultVisibleMonth', 'defaultPanelValue', 'DatePicker');
88100 newProps.defaultPanelValue = onVisibleMonthChange;
88101 }
88102
88103 if ('ranges' in props) {
88104 deprecated('ranges', 'preset: PT.oneOfType([PT.array, PT.object])', 'DatePicker');
88105 newProps.preset = ranges;
88106 }
88107
88108 if ([WEEK, MONTH, QUARTER, YEAR].includes(mode)) {
88109 delete newProps.showTime;
88110 } else if ((0, _typeof3.default)(props.showTime) === 'object') {
88111 deprecated('showTime: object', 'showTime && timePanelProps', 'DatePicker');
88112 newProps.timePanelProps = props.showTime;
88113 newProps.showTime = true;
88114 }
88115
88116 if (!newProps.format) {
88117 newProps.format = MODE2FORMAT[mode] + (newProps.showTime ? ' HH:mm:ss' : '');
88118 }
88119
88120 return newProps;
88121};
88122
88123var ConfigPicker = _configProvider2.default.config(_picker2.default, {
88124 componentName: 'DatePicker2',
88125 transform: transform
88126});
88127var generatePicker = function generatePicker(mode) {
88128 return _react2.default.forwardRef(function (props, ref) {
88129 return _react2.default.createElement(ConfigPicker, (0, _extends3.default)({ ref: ref }, props, { mode: mode }));
88130 });
88131};
88132
88133var DatePicker2 = generatePicker();
88134DatePicker2.displayName = 'DatePicker2';
88135
88136DatePicker2.MonthPicker = generatePicker(MONTH);
88137DatePicker2.MonthPicker.displayName = 'MonthPicker2';
88138
88139DatePicker2.YearPicker = generatePicker(YEAR);
88140DatePicker2.YearPicker.displayName = 'YearPicker2';
88141
88142DatePicker2.WeekPicker = generatePicker(WEEK);
88143DatePicker2.WeekPicker.displayName = 'WeekPicker2';
88144
88145DatePicker2.QuarterPicker = generatePicker(QUARTER);
88146DatePicker2.QuarterPicker.displayName = 'QuarterPicker2';
88147
88148DatePicker2.RangePicker = _react2.default.forwardRef(function (props, ref) {
88149 return _react2.default.createElement(ConfigPicker, (0, _extends3.default)({ ref: ref }, props, { type: 'range' }));
88150});
88151DatePicker2.RangePicker.displayName = 'RangePicker2';
88152
88153exports.default = DatePicker2;
88154module.exports = exports['default'];
88155
88156/***/ }),
88157/* 482 */
88158/***/ (function(module, exports, __webpack_require__) {
88159
88160"use strict";
88161
88162
88163exports.__esModule = true;
88164
88165var _objectWithoutProperties2 = __webpack_require__(8);
88166
88167var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
88168
88169var _extends2 = __webpack_require__(1);
88170
88171var _extends3 = _interopRequireDefault(_extends2);
88172
88173var _classCallCheck2 = __webpack_require__(2);
88174
88175var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
88176
88177var _possibleConstructorReturn2 = __webpack_require__(3);
88178
88179var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
88180
88181var _inherits2 = __webpack_require__(4);
88182
88183var _inherits3 = _interopRequireDefault(_inherits2);
88184
88185var _class, _temp, _initialiseProps;
88186
88187var _react = __webpack_require__(0);
88188
88189var _react2 = _interopRequireDefault(_react);
88190
88191var _reactLifecyclesCompat = __webpack_require__(10);
88192
88193var _classnames2 = __webpack_require__(7);
88194
88195var _classnames3 = _interopRequireDefault(_classnames2);
88196
88197var _propTypes = __webpack_require__(5);
88198
88199var PT = _interopRequireWildcard(_propTypes);
88200
88201var _propTypes2 = __webpack_require__(45);
88202
88203var _propTypes3 = _interopRequireDefault(_propTypes2);
88204
88205var _zhCn = __webpack_require__(13);
88206
88207var _zhCn2 = _interopRequireDefault(_zhCn);
88208
88209var _util = __webpack_require__(6);
88210
88211var _util2 = __webpack_require__(43);
88212
88213var _constant = __webpack_require__(44);
88214
88215var _overlay = __webpack_require__(15);
88216
88217var _overlay2 = _interopRequireDefault(_overlay);
88218
88219var _dateInput = __webpack_require__(483);
88220
88221var _dateInput2 = _interopRequireDefault(_dateInput);
88222
88223var _datePanel = __webpack_require__(484);
88224
88225var _datePanel2 = _interopRequireDefault(_datePanel);
88226
88227var _rangePanel = __webpack_require__(488);
88228
88229var _rangePanel2 = _interopRequireDefault(_rangePanel);
88230
88231var _footerPanel = __webpack_require__(200);
88232
88233var _footerPanel2 = _interopRequireDefault(_footerPanel);
88234
88235function _interopRequireWildcard(obj) {
88236 if (obj && obj.__esModule) {
88237 return obj;
88238 } else {
88239 var newObj = {};if (obj != null) {
88240 for (var key in obj) {
88241 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
88242 }
88243 }newObj.default = obj;return newObj;
88244 }
88245}
88246
88247function _interopRequireDefault(obj) {
88248 return obj && obj.__esModule ? obj : { default: obj };
88249}
88250
88251var Popup = _overlay2.default.Popup;
88252var pickProps = _util.obj.pickProps,
88253 pickOthers = _util.obj.pickOthers;
88254var renderNode = _util.func.renderNode,
88255 checkDate = _util.func.checkDate,
88256 checkRangeDate = _util.func.checkRangeDate;
88257var Picker = (_temp = _class = function (_React$Component) {
88258 (0, _inherits3.default)(Picker, _React$Component);
88259
88260 function Picker(props) {
88261 (0, _classCallCheck3.default)(this, Picker);
88262
88263 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
88264
88265 _initialiseProps.call(_this);
88266
88267 var prefix = props.prefix,
88268 type = props.type,
88269 format = props.format,
88270 mode = props.mode,
88271 defaultVisible = props.defaultVisible;
88272
88273 _this.state = {
88274 panelMode: mode,
88275 visible: defaultVisible
88276 };
88277
88278 if (type === _constant.DATE_PICKER_TYPE.RANGE) {
88279 var _this$getInitRangeInp = _this.getInitRangeInputState(),
88280 inputType = _this$getInitRangeInp.inputType,
88281 justBeginInput = _this$getInitRangeInp.justBeginInput;
88282
88283 _this.state = (0, _extends3.default)({
88284 inputType: inputType,
88285 justBeginInput: justBeginInput
88286 }, _this.state);
88287 }
88288
88289 var value = _this.getInitValue();
88290
88291 _this.state = (0, _extends3.default)({
88292 value: value, // 确定值
88293 curValue: value, // 临时值
88294 preValue: value, // 上个值
88295 inputValue: (0, _util2.fmtValue)(value, format)
88296 }, _this.state);
88297
88298 _this.prefixCls = prefix + 'date-picker2';
88299
88300 _this.popupRef = _react2.default.createRef();
88301 return _this;
88302 }
88303
88304 Picker.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
88305 var type = props.type,
88306 showTime = props.showTime,
88307 showOk = props.showOk,
88308 disabled = props.disabled,
88309 format = props.format;
88310
88311 var isRange = type === _constant.DATE_PICKER_TYPE.RANGE;
88312
88313 var newState = {
88314 isRange: isRange,
88315 showOk: !!(showOk || showTime)
88316 };
88317
88318 /**
88319 * 如果当前输入框可能被 disabled
88320 * 且另一个输入框非 disabled 则切换到另一个输入框
88321 */
88322 if (isRange) {
88323 var inputType = state.inputType;
88324
88325 var _disabled = Array.isArray(disabled) ? disabled : [disabled, disabled];
88326
88327 if (_disabled[inputType]) {
88328 var otherType = (0, _util2.switchInputType)(state.inputType);
88329
88330 if (!_disabled[otherType]) {
88331 inputType = otherType;
88332 }
88333 }
88334
88335 newState.inputType = inputType;
88336 }
88337
88338 if ('value' in props) {
88339 var value = isRange ? checkRangeDate(props.value, state.inputType, disabled) : checkDate(props.value);
88340
88341 if ((0, _util2.isValueChanged)(value, state.preValue)) {
88342 newState = (0, _extends3.default)({}, newState, {
88343 value: value,
88344 curValue: value,
88345 preValue: value,
88346 inputValue: (0, _util2.fmtValue)(value, format)
88347 });
88348 }
88349 }
88350
88351 return newState;
88352 };
88353
88354 Picker.prototype.componentWillUnmount = function componentWillUnmount() {
88355 [this.clearTimeoutId, this.timeoutId].forEach(function (id) {
88356 return id && clearTimeout(id);
88357 });
88358 };
88359
88360 /**
88361 * 获取初始值
88362 */
88363
88364 /**
88365 * 获取 RangePicker 输入框初始输入状态
88366 * @returns {Object} inputState
88367 * @returns {boolean} inputState.justBeginInput 是否初始输入
88368 * @returns {number} inputState.inputType 当前输入框
88369 */
88370
88371 /**
88372 * 处理点击文档区域导致的弹层收起逻辑
88373 * @param {boolean} visible 是否可见
88374 * @param {string} type 事件类型
88375 */
88376
88377 Picker.prototype.onVisibleChange = function onVisibleChange(visible) {
88378 var _this2 = this;
88379
88380 if (visible !== this.state.visible) {
88381 var callback = function callback() {
88382 _this2.setState({
88383 visible: visible,
88384 justBeginInput: _this2.isEnabled()
88385 });
88386 };
88387
88388 if (this.timeoutId) {
88389 clearTimeout(this.timeoutId);
88390 this.timeoutId = null;
88391 }
88392
88393 if (visible) {
88394 callback();
88395 } else {
88396 this.timeoutId = setTimeout(callback, 0);
88397 }
88398
88399 _util.func.invoke(this.props, 'onVisibleChange', [visible]);
88400 }
88401 };
88402
88403 /**
88404 * 获取输入框的禁用状态
88405 * @param {Number} idx
88406 * @returns {Boolean}
88407 */
88408
88409 /**
88410 * check if value has disabled value
88411 *
88412 * @param {string|string[]|Dayjs|Dayjs[]} val
88413 * @returns {Boolean}
88414 */
88415
88416 /**
88417 * 获取 `onChange` 和 `onOk` 方法的输出参数
88418 * @param {Dayjs} value
88419 * @returns 默认返回 `Dayjs` 实例和 `format` 格式化的值
88420 * 如果传了了 `outputFormat` 属性则返回 `outputFormat` 格式化的值
88421 */
88422
88423 Picker.prototype.render = function render() {
88424 var _this3 = this,
88425 _classnames;
88426
88427 var prefixCls = this.prefixCls,
88428 handleChange = this.handleChange,
88429 handleMouseDown = this.handleMouseDown,
88430 handleVisibleChange = this.handleVisibleChange,
88431 onOk = this.onOk,
88432 onClick = this.onClick,
88433 handleInput = this.handleInput,
88434 onInputTypeChange = this.onInputTypeChange,
88435 onPanelChange = this.onPanelChange,
88436 onKeyDown = this.onKeyDown;
88437 var _props = this.props,
88438 rtl = _props.rtl,
88439 locale = _props.locale,
88440 prefix = _props.prefix,
88441 inputReadOnly = _props.inputReadOnly,
88442 showTime = _props.showTime,
88443 preset = _props.preset,
88444 mode = _props.mode,
88445 format = _props.format,
88446 trigger = _props.trigger,
88447 disabledDate = _props.disabledDate,
88448 extraFooterRender = _props.extraFooterRender,
88449 timePanelProps = _props.timePanelProps,
88450 resetTime = _props.resetTime,
88451 placeholder = _props.placeholder,
88452 disabledTime = _props.disabledTime,
88453 dateCellRender = _props.dateCellRender,
88454 disabled = _props.disabled,
88455 isPreview = _props.isPreview,
88456 className = _props.className,
88457 defaultPanelValue = _props.defaultPanelValue,
88458 renderPreview = _props.renderPreview,
88459 label = _props.label,
88460 restProps = (0, _objectWithoutProperties3.default)(_props, ['rtl', 'locale', 'prefix', 'inputReadOnly', 'showTime', 'preset', 'mode', 'format', 'trigger', 'disabledDate', 'extraFooterRender', 'timePanelProps', 'resetTime', 'placeholder', 'disabledTime', 'dateCellRender', 'disabled', 'isPreview', 'className', 'defaultPanelValue', 'renderPreview', 'label']);
88461 var _state = this.state,
88462 isRange = _state.isRange,
88463 inputType = _state.inputType,
88464 justBeginInput = _state.justBeginInput,
88465 panelMode = _state.panelMode,
88466 showOk = _state.showOk,
88467 align = _state.align;
88468 var _state2 = this.state,
88469 inputValue = _state2.inputValue,
88470 curValue = _state2.curValue;
88471
88472 var _getPopupOffsetLeft = this.getPopupOffsetLeft(),
88473 arrowLeft = _getPopupOffsetLeft.arrowLeft,
88474 panelLeft = _getPopupOffsetLeft.panelLeft;
88475
88476 // 预览态
88477
88478
88479 if (isPreview) {
88480 var previewCls = (0, _classnames3.default)(className, prefix + 'form-preview');
88481
88482 return _react2.default.createElement('div', { className: previewCls }, renderNode(renderPreview, isRange ? inputValue.join('-') : inputValue, [curValue, this.props]));
88483 }
88484
88485 var visible = 'visible' in this.props ? this.props.visible : this.state.visible;
88486 var allDisabled = isRange && Array.isArray(disabled) ? disabled.every(function (v) {
88487 return v;
88488 }) : disabled;
88489 var sharedProps = {
88490 rtl: rtl,
88491 prefix: prefix,
88492 locale: locale,
88493 mode: mode,
88494 format: format,
88495 showTime: showTime,
88496 inputType: inputType
88497 };
88498
88499 // 输入框
88500 var inputProps = (0, _extends3.default)({}, pickProps(_dateInput2.default.propTypes, restProps), sharedProps, {
88501 value: inputValue,
88502 label: label,
88503 isRange: isRange,
88504 disabled: disabled,
88505 placeholder: placeholder,
88506 onInputTypeChange: onInputTypeChange,
88507 focus: visible,
88508 onInput: handleInput,
88509 readOnly: inputReadOnly,
88510 inputProps: this.props.inputProps,
88511 ref: function ref(el) {
88512 return _this3.dateInput = el;
88513 }
88514 });
88515
88516 // 禁用状态下 不允许清空
88517 if (!this.isEnabled()) {
88518 inputProps.hasClear = false;
88519 }
88520
88521 var triggerNode = renderNode(trigger, _react2.default.createElement(_dateInput2.default, inputProps));
88522
88523 // 日期
88524 var panelProps = (0, _extends3.default)({}, sharedProps, {
88525 panelMode: panelMode,
88526 value: curValue,
88527 disabledDate: disabledDate,
88528 onPanelChange: onPanelChange,
88529 timePanelProps: timePanelProps,
88530 disabledTime: disabledTime,
88531 resetTime: resetTime,
88532 dateCellRender: dateCellRender,
88533 defaultPanelValue: defaultPanelValue,
88534 onSelect: handleChange
88535 });
88536
88537 var DateNode = isRange ? _react2.default.createElement(_rangePanel2.default, (0, _extends3.default)({ justBeginInput: justBeginInput }, panelProps)) : _react2.default.createElement(_datePanel2.default, panelProps);
88538
88539 // 底部节点
88540 var oKable = !!(isRange ? inputValue && inputValue[inputType] : inputValue);
88541 var shouldShowFooter = showOk || preset || extraFooterRender;
88542
88543 var footerNode = shouldShowFooter ? _react2.default.createElement(_footerPanel2.default, {
88544 oKable: oKable,
88545 onOk: onOk,
88546 showOk: showOk,
88547 onChange: handleChange,
88548 preset: preset,
88549 locale: locale,
88550 prefix: prefix,
88551 extraRender: extraFooterRender
88552 }) : null;
88553
88554 var triggerProps = void 0;
88555 if (!allDisabled) {
88556 triggerProps = { onKeyDown: onKeyDown, onClick: onClick };
88557 }
88558
88559 // popup
88560 var _props2 = this.props,
88561 followTrigger = _props2.followTrigger,
88562 popupTriggerType = _props2.popupTriggerType,
88563 popupAlign = _props2.popupAlign,
88564 popupContainer = _props2.popupContainer,
88565 popupStyle = _props2.popupStyle,
88566 popupClassName = _props2.popupClassName,
88567 popupComponent = _props2.popupComponent,
88568 popupProps = _props2.popupProps;
88569
88570 var popupCls = (0, _classnames3.default)(popupClassName || popupProps && popupProps.className, (_classnames = {}, _classnames[prefixCls + '-overlay'] = true, _classnames[prefixCls + '-' + (align || []).join('-')] = align, _classnames[prefixCls + '-overlay-range'] = isRange, _classnames));
88571 var PopupComp = popupComponent || Popup;
88572
88573 return _react2.default.createElement('div', (0, _extends3.default)({}, pickOthers(Picker.propTypes, restProps), {
88574 dir: rtl ? 'rtl' : undefined,
88575 className: (0, _classnames3.default)(className, prefixCls),
88576 style: this.props.style
88577 }), _react2.default.createElement(PopupComp, (0, _extends3.default)({
88578 rtl: rtl,
88579 key: 'date-picker-popup',
88580 visible: visible,
88581 align: popupAlign,
88582 container: popupContainer,
88583 followTrigger: followTrigger,
88584 triggerType: popupTriggerType,
88585 style: popupStyle,
88586 onVisibleChange: handleVisibleChange,
88587 disabled: allDisabled,
88588 trigger: _react2.default.createElement('div', (0, _extends3.default)({}, triggerProps, { role: 'button', tabIndex: '0', style: { width: '100%' } }), triggerNode),
88589 onPosition: this.getCurrentAlign,
88590 canCloseByTrigger: false
88591 }, popupProps, {
88592 className: popupCls
88593 }), _react2.default.createElement('div', { onMouseDown: handleMouseDown, style: { marginLeft: panelLeft } }, _react2.default.createElement('div', { dir: rtl ? 'rtl' : undefined, className: prefixCls + '-wrapper', ref: this.popupRef }, isRange ? this.renderArrow(arrowLeft) : null, DateNode, this.state.panelMode !== this.props.mode ? null : footerNode))));
88594 };
88595
88596 return Picker;
88597}(_react2.default.Component), _class.propTypes = {
88598 rtl: PT.bool,
88599 prefix: PT.string,
88600 locale: PT.object,
88601 name: PT.string,
88602
88603 // calendar
88604 mode: _propTypes3.default.mode,
88605 type: _propTypes3.default.type,
88606 value: _propTypes3.default.value,
88607 defaultValue: _propTypes3.default.value,
88608 defaultPanelValue: _propTypes3.default.date,
88609 disabledDate: PT.func,
88610 visible: PT.bool,
88611 defaultVisible: PT.bool,
88612 dateCellRender: PT.func,
88613
88614 // event
88615 onOk: PT.func,
88616 onChange: PT.func,
88617 onVisibleChange: PT.func,
88618 onPanelChange: PT.func,
88619
88620 // time
88621 showTime: PT.bool,
88622 resetTime: PT.bool,
88623 timePanelProps: PT.object,
88624 disabledTime: PT.object,
88625
88626 // header
88627 titleRender: PT.func,
88628
88629 // footer
88630 preset: PT.oneOfType([PT.array, PT.object]),
88631 extraFooterRender: _propTypes3.default.render,
88632 showOk: PT.bool,
88633
88634 // input
88635 trigger: _propTypes3.default.render,
88636 hasBorder: PT.bool,
88637 inputProps: PT.object,
88638 hasClear: PT.bool,
88639 placeholder: _propTypes3.default.placeholder,
88640 disabled: _propTypes3.default.disabled,
88641 inputReadOnly: _propTypes3.default.readOnly,
88642 /**
88643 * 日期显示格式
88644 */
88645 format: _propTypes3.default.format,
88646 label: PT.node,
88647 separator: PT.node,
88648 /**
88649 * 输出格式:控制 onChange、onOk 事件的输出值格式
88650 * - string 类型:根据时间格式进行转换
88651 * - function 类型:((date: Dayjs, dateStr: string) => any)
88652 *
88653 * @version 1.23
88654 */
88655 outputFormat: _propTypes3.default.format,
88656
88657 // popup
88658 followTrigger: PT.bool,
88659 popupTriggerType: PT.oneOf(['click', 'hover']),
88660 popupAlign: PT.string,
88661 popupContainer: PT.any,
88662 popupStyle: PT.object,
88663 popupClassName: PT.string,
88664 popupComponent: PT.elementType,
88665 popupProps: PT.object,
88666
88667 // preview
88668 isPreview: PT.bool,
88669 renderPreview: PT.func,
88670
88671 // ariaLabel
88672 dateInputAriaLabel: _propTypes3.default.ariaLabel
88673}, _class.defaultProps = {
88674 rtl: false,
88675 prefix: 'next-',
88676 popupTriggerType: 'click',
88677 locale: _zhCn2.default.DatePicker,
88678 defaultVisible: false,
88679 type: _constant.DATE_PICKER_TYPE.DATE,
88680 mode: _constant.DATE_PICKER_MODE.DATE,
88681 format: 'YYYY-MM-DD'
88682}, _initialiseProps = function _initialiseProps() {
88683 var _this4 = this;
88684
88685 this.getInitValue = function () {
88686 var props = _this4.props;
88687 var type = props.type,
88688 value = props.value,
88689 defaultValue = props.defaultValue;
88690
88691 var val = type === _constant.DATE_PICKER_TYPE.RANGE ? [null, null] : null;
88692
88693 val = 'value' in props ? value : 'defaultValue' in props ? defaultValue : val;
88694
88695 return _this4.checkValue(val);
88696 };
88697
88698 this.getInitRangeInputState = function () {
88699 return {
88700 justBeginInput: _this4.isEnabled(),
88701 inputType: _this4.isEnabled(0) ? _constant.DATE_INPUT_TYPE.BEGIN : _constant.DATE_INPUT_TYPE.END
88702 };
88703 };
88704
88705 this.handleVisibleChange = function (visible, targetType) {
88706 if (['docClick', 'fromTrigger'].indexOf(targetType) > -1) {
88707 // 弹层收起 触发 Change 逻辑
88708 if (!visible) {
88709 _this4.handleChange(_this4.state.curValue, 'VISIBLE_CHANGE');
88710 }
88711 _this4.onVisibleChange(visible);
88712 }
88713 };
88714
88715 this.checkValue = function (value, strictly) {
88716 return _this4.props.type === _constant.DATE_PICKER_TYPE.RANGE ? checkRangeDate(value, _this4.state.inputType, _this4.props.disabled, strictly) : checkDate(value);
88717 };
88718
88719 this.handleInputFocus = function (inputType) {
88720 var inputEl = _this4.dateInput && _this4.dateInput.input;
88721
88722 if (_this4.state.isRange) {
88723 inputEl = inputEl && inputEl[inputType];
88724 }
88725
88726 inputEl && inputEl.focus();
88727 };
88728
88729 this.handleMouseDown = function (e) {
88730 e.preventDefault();
88731 };
88732
88733 this.handleInput = function (v, eventType) {
88734 if (eventType === 'clear') {
88735 _this4.handleChange(v, 'INPUT_CLEAR');
88736
88737 if (_this4.state.isRange) {
88738 _this4.handleClear();
88739 }
88740 } else {
88741 _this4.setState({
88742 inputValue: v,
88743 visible: true
88744 });
88745 }
88746 };
88747
88748 this.onPanelChange = function (value, mode) {
88749 _this4.setState({
88750 panelMode: mode
88751 });
88752 _util.func.invoke(_this4.props, 'onPanelChange', [value, mode]);
88753 };
88754
88755 this.handleClear = function () {
88756 /**
88757 * 清空输入之后 input 组件内部会让第二个输入框获得焦点
88758 * 所以这里需要设置 setTimeout 才能让第一个 input 获得焦点
88759 */
88760 _this4.clearTimeoutId = setTimeout(function () {
88761 _this4.handleInputFocus(0);
88762 });
88763
88764 _this4.setState({
88765 inputType: _constant.DATE_INPUT_TYPE.BEGIN,
88766 justBeginInput: _this4.isEnabled()
88767 });
88768 };
88769
88770 this.shouldSwitchInput = function (value) {
88771 var _state3 = _this4.state,
88772 inputType = _state3.inputType,
88773 justBeginInput = _state3.justBeginInput;
88774
88775 var idx = justBeginInput ? (0, _util2.switchInputType)(inputType) : value.indexOf(null);
88776
88777 if (idx !== -1 && _this4.isEnabled(idx)) {
88778 _this4.onInputTypeChange(idx);
88779 _this4.handleInputFocus(idx);
88780 return true;
88781 }
88782
88783 return false;
88784 };
88785
88786 this.isEnabled = function (idx) {
88787 var disabled = _this4.props.disabled;
88788
88789 return Array.isArray(disabled) ? idx === undefined ? !disabled[0] && !disabled[1] : !disabled[idx] : !disabled;
88790 };
88791
88792 this.checkValueDisabled = function (val) {
88793 var disabledDate = _this4.props.disabledDate;
88794 var panelMode = _this4.state.panelMode;
88795
88796 var values = (Array.isArray(val) ? val : [val]).map(function (value) {
88797 return checkDate(value);
88798 });
88799
88800 if (!disabledDate) {
88801 return false;
88802 }
88803
88804 return values.some(function (value) {
88805 return disabledDate(value, panelMode);
88806 });
88807 };
88808
88809 this.onKeyDown = function (e) {
88810 switch (e.keyCode) {
88811 case _util.KEYCODE.ENTER:
88812 {
88813 var inputValue = _this4.state.inputValue;
88814
88815 _this4.onClick();
88816 if (_this4.checkValueDisabled(inputValue)) {
88817 // reset inputValue when current inputValue is disabled
88818 _this4.handleChange(inputValue, 'VISIBLE_CHANGE');
88819 return;
88820 }
88821 _this4.handleChange(inputValue, 'KEYDOWN_ENTER');
88822 break;
88823 }
88824 default:
88825 return;
88826 }
88827 };
88828
88829 this.handleChange = function (v, eventType) {
88830 var format = _this4.props.format;
88831 var _state4 = _this4.state,
88832 isRange = _state4.isRange,
88833 showOk = _state4.showOk,
88834 value = _state4.value,
88835 preValue = _state4.preValue;
88836
88837 var forceEvents = ['KEYDOWN_ENTER', 'CLICK_PRESET', 'CLICK_OK', 'INPUT_CLEAR', 'VISIBLE_CHANGE'];
88838 var isTemporary = showOk && !forceEvents.includes(eventType);
88839
88840 // 面板收起时候,将值设置为确认值
88841 v = eventType === 'VISIBLE_CHANGE' ? value : _this4.checkValue(v, !isTemporary);
88842
88843 _this4.setState({
88844 curValue: v,
88845 inputValue: (0, _util2.fmtValue)(v, format)
88846 });
88847
88848 if (!isTemporary) {
88849 _this4.setState({
88850 value: v
88851 }, function () {
88852 // 判断当前选择结束,收起面板:
88853 // 1. 非 Range 选择
88854 // 2. 非 选择预设时间、面板收起、清空输入 操作
88855 // 3. 不需要切换输入框
88856 var shouldHidePanel = !isRange || ['CLICK_PRESET', 'VISIBLE_CHANGE', 'INPUT_CLEAR'].includes(eventType) || !_this4.shouldSwitchInput(v);
88857
88858 if (shouldHidePanel) {
88859 _this4.onVisibleChange(false);
88860
88861 if ((0, _util2.isValueChanged)(v, preValue)) {
88862 _this4.onChange();
88863 }
88864 }
88865 });
88866 }
88867 };
88868
88869 this.onChange = function () {
88870 var state = _this4.state,
88871 props = _this4.props;
88872 var format = props.format;
88873
88874 var value = _this4.checkValue('value' in props ? props.value : state.value);
88875
88876 _this4.setState({
88877 curValue: value,
88878 preValue: value,
88879 inputValue: (0, _util2.fmtValue)(value, format)
88880 });
88881
88882 _util.func.invoke(_this4.props, 'onChange', _this4.getOutputArgs(state.value));
88883 };
88884
88885 this.onOk = function () {
88886 var inputValue = _this4.state.inputValue;
88887
88888 var checkedValue = _this4.checkValue(inputValue);
88889
88890 _util.func.invoke(_this4.props, 'onOk', _this4.getOutputArgs(checkedValue));
88891
88892 _this4.setState({ value: checkedValue });
88893 _this4.handleChange(checkedValue, 'CLICK_OK');
88894 };
88895
88896 this.onInputTypeChange = function (idx) {
88897 var _state5 = _this4.state,
88898 inputType = _state5.inputType,
88899 visible = _state5.visible;
88900
88901 if (idx !== inputType) {
88902 _this4.setState({
88903 inputType: idx,
88904 justBeginInput: !(idx !== null && visible)
88905 });
88906 }
88907 };
88908
88909 this.onClick = function () {
88910 var _state6 = _this4.state,
88911 visible = _state6.visible,
88912 inputType = _state6.inputType;
88913
88914 if (!visible) {
88915 _this4.handleInputFocus(inputType);
88916 }
88917 };
88918
88919 this.getOutputArgs = function (value) {
88920 var _props3 = _this4.props,
88921 outputFormat = _props3.outputFormat,
88922 format = _props3.format;
88923
88924 if (outputFormat) {
88925 return [(0, _util2.fmtValue)(value, outputFormat)];
88926 }
88927 return [value, (0, _util2.fmtValue)(value, format)];
88928 };
88929
88930 this.getCurrentAlign = function (_ref) {
88931 var align = _ref.align;
88932
88933 _this4.setState({
88934 align: align
88935 });
88936 };
88937
88938 this.getRangeInputOffsetLeft = function () {
88939 var left = _this4.dateInput && _this4.dateInput.input && _this4.dateInput.input[_this4.state.inputType] && _this4.dateInput.input[_this4.state.inputType].getInputNode().offsetLeft;
88940
88941 return left;
88942 };
88943
88944 this.getPopupOffsetLeft = function () {
88945 var inputOffsetLeft = _this4.getRangeInputOffsetLeft();
88946 var popupElement = _this4.popupRef.current;
88947 var popupElementWidth = popupElement ? popupElement.offsetWidth : 0;
88948
88949 // 弹层宽度大于输入元素长度,只偏移 arrow
88950 if (popupElementWidth > 1.2 * inputOffsetLeft) {
88951 return {
88952 arrowLeft: inputOffsetLeft,
88953 panelLeft: 0
88954 };
88955 } else {
88956 // 否则 panel 整体偏移,arrow 随 panel 整体偏移
88957 return {
88958 arrowLeft: 0,
88959 panelLeft: inputOffsetLeft
88960 };
88961 }
88962 };
88963
88964 this.renderArrow = function (left) {
88965 return _react2.default.createElement('div', { key: 'arrow', className: _this4.props.prefix + 'range-picker2-arrow', style: { left: left } });
88966 };
88967}, _temp);
88968Picker.displayName = 'Picker';
88969exports.default = (0, _reactLifecyclesCompat.polyfill)(Picker);
88970module.exports = exports['default'];
88971
88972/***/ }),
88973/* 483 */
88974/***/ (function(module, exports, __webpack_require__) {
88975
88976"use strict";
88977
88978
88979exports.__esModule = true;
88980
88981var _extends2 = __webpack_require__(1);
88982
88983var _extends3 = _interopRequireDefault(_extends2);
88984
88985var _objectWithoutProperties2 = __webpack_require__(8);
88986
88987var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
88988
88989var _classCallCheck2 = __webpack_require__(2);
88990
88991var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
88992
88993var _possibleConstructorReturn2 = __webpack_require__(3);
88994
88995var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
88996
88997var _inherits2 = __webpack_require__(4);
88998
88999var _inherits3 = _interopRequireDefault(_inherits2);
89000
89001var _class, _temp;
89002
89003var _react = __webpack_require__(0);
89004
89005var _react2 = _interopRequireDefault(_react);
89006
89007var _reactLifecyclesCompat = __webpack_require__(10);
89008
89009var _propTypes = __webpack_require__(5);
89010
89011var PT = _interopRequireWildcard(_propTypes);
89012
89013var _classnames3 = __webpack_require__(7);
89014
89015var _classnames4 = _interopRequireDefault(_classnames3);
89016
89017var _propTypes2 = __webpack_require__(45);
89018
89019var _propTypes3 = _interopRequireDefault(_propTypes2);
89020
89021var _constant = __webpack_require__(44);
89022
89023var _util = __webpack_require__(6);
89024
89025var _util2 = __webpack_require__(43);
89026
89027var _input = __webpack_require__(18);
89028
89029var _input2 = _interopRequireDefault(_input);
89030
89031var _icon = __webpack_require__(11);
89032
89033var _icon2 = _interopRequireDefault(_icon);
89034
89035function _interopRequireWildcard(obj) {
89036 if (obj && obj.__esModule) {
89037 return obj;
89038 } else {
89039 var newObj = {};if (obj != null) {
89040 for (var key in obj) {
89041 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
89042 }
89043 }newObj.default = obj;return newObj;
89044 }
89045}
89046
89047function _interopRequireDefault(obj) {
89048 return obj && obj.__esModule ? obj : { default: obj };
89049}
89050
89051var DATE = _constant.DATE_PICKER_MODE.DATE,
89052 WEEK = _constant.DATE_PICKER_MODE.WEEK,
89053 MONTH = _constant.DATE_PICKER_MODE.MONTH,
89054 QUARTER = _constant.DATE_PICKER_MODE.QUARTER,
89055 YEAR = _constant.DATE_PICKER_MODE.YEAR;
89056var DateInput = (_temp = _class = function (_React$Component) {
89057 (0, _inherits3.default)(DateInput, _React$Component);
89058
89059 function DateInput(props) {
89060 (0, _classCallCheck3.default)(this, DateInput);
89061
89062 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
89063
89064 _this.setInputRef = function (el, index) {
89065 if (_this.props.isRange) {
89066 if (!_this.input) {
89067 _this.input = [];
89068 }
89069 _this.input[index] = el;
89070 } else {
89071 _this.input = el;
89072 }
89073 };
89074
89075 _this.setValue = function (v) {
89076 var _this$props = _this.props,
89077 isRange = _this$props.isRange,
89078 inputType = _this$props.inputType,
89079 value = _this$props.value;
89080
89081 var newVal = v;
89082
89083 if (isRange) {
89084 newVal = [].concat(value);
89085 newVal[inputType] = v;
89086 }
89087
89088 return newVal;
89089 };
89090
89091 _this.formatter = function (v) {
89092 var format = _this.props.format;
89093
89094 return typeof format === 'function' ? format(v) : v.format(format);
89095 };
89096
89097 _this.onInput = function (v, e, eventType) {
89098 v = _this.setValue(v);
89099
89100 if (eventType === 'clear') {
89101 v = null;
89102 e.stopPropagation();
89103 }
89104
89105 _util.func.invoke(_this.props, 'onInput', [v, eventType]);
89106 };
89107
89108 _this.handleTypeChange = function (inputType) {
89109 if (inputType !== _this.props.inputType) {
89110 _util.func.invoke(_this.props, 'onInputTypeChange', [inputType]);
89111 }
89112 };
89113
89114 _this.getPlaceholder = function () {
89115 var _mode2placeholder;
89116
89117 var _this$props2 = _this.props,
89118 locale = _this$props2.locale,
89119 isRange = _this$props2.isRange,
89120 mode = _this$props2.mode;
89121 var placeholder = locale.placeholder,
89122 selectDate = locale.selectDate,
89123 monthPlaceholder = locale.monthPlaceholder,
89124 weekPlaceholder = locale.weekPlaceholder,
89125 yearPlaceholder = locale.yearPlaceholder,
89126 startPlaceholder = locale.startPlaceholder,
89127 quarterPlaceholder = locale.quarterPlaceholder,
89128 endPlaceholder = locale.endPlaceholder;
89129
89130 var mode2placeholder = (_mode2placeholder = {}, _mode2placeholder[DATE] = selectDate, _mode2placeholder[WEEK] = weekPlaceholder, _mode2placeholder[MONTH] = monthPlaceholder, _mode2placeholder[QUARTER] = quarterPlaceholder, _mode2placeholder[YEAR] = yearPlaceholder, _mode2placeholder);
89131
89132 var holder = _this.props.placeholder;
89133
89134 holder = holder || (isRange ? [startPlaceholder, endPlaceholder] : mode2placeholder[mode] || placeholder);
89135
89136 if (isRange && !Array.isArray(holder)) {
89137 holder = Array(2).fill(holder);
89138 }
89139
89140 return holder;
89141 };
89142
89143 _this.getHtmlSize = function () {
89144 var _this$props3 = _this.props,
89145 isRange = _this$props3.isRange,
89146 format = _this$props3.format,
89147 hasBorder = _this$props3.hasBorder;
89148
89149 var value = '2020-12-12 12:12:12';
89150 var size = 0;
89151
89152 if (isRange) {
89153 var fmtStr = (0, _util2.fmtValue)([value, value].map(_util.datejs), format);
89154 size = Math.max.apply(Math, fmtStr.map(function (s) {
89155 return s && s.length || 0;
89156 }));
89157 } else {
89158 var _fmtStr = (0, _util2.fmtValue)((0, _util.datejs)(value), format);
89159 (0, _util2.fmtValue)((0, _util.datejs)(value), format);
89160 size = _fmtStr && _fmtStr.length || 0;
89161 }
89162
89163 return String(Math.max(size, hasBorder ? 12 : 8));
89164 };
89165
89166 _this.prefixCls = props.prefix + 'date-picker2-input';
89167 return _this;
89168 }
89169
89170 /**
89171 * 根据 format 计算输入框 htmlSize
89172 */
89173
89174 DateInput.prototype.render = function render() {
89175 var _classnames2;
89176
89177 var onInput = this.onInput,
89178 setInputRef = this.setInputRef,
89179 handleTypeChange = this.handleTypeChange,
89180 prefixCls = this.prefixCls;
89181 var _props = this.props,
89182 autoFocus = _props.autoFocus,
89183 readOnly = _props.readOnly,
89184 isRange = _props.isRange,
89185 value = _props.value,
89186 prefix = _props.prefix,
89187 hasClear = _props.hasClear,
89188 inputType = _props.inputType,
89189 size = _props.size,
89190 focus = _props.focus,
89191 hasBorder = _props.hasBorder,
89192 separator = _props.separator,
89193 disabled = _props.disabled,
89194 inputProps = _props.inputProps,
89195 dateInputAriaLabel = _props.dateInputAriaLabel,
89196 state = _props.state,
89197 label = _props.label,
89198 restProps = (0, _objectWithoutProperties3.default)(_props, ['autoFocus', 'readOnly', 'isRange', 'value', 'prefix', 'hasClear', 'inputType', 'size', 'focus', 'hasBorder', 'separator', 'disabled', 'inputProps', 'dateInputAriaLabel', 'state', 'label']);
89199
89200 var placeholder = this.getPlaceholder();
89201 var htmlSize = this.getHtmlSize();
89202
89203 var sharedProps = (0, _extends3.default)({}, _util.obj.pickProps(restProps, _input2.default), inputProps, {
89204 size: size,
89205 htmlSize: htmlSize,
89206 readOnly: readOnly,
89207 hasBorder: false,
89208 onChange: onInput
89209 });
89210
89211 var rangeProps = void 0;
89212 if (isRange) {
89213 rangeProps = [_constant.DATE_INPUT_TYPE.BEGIN, _constant.DATE_INPUT_TYPE.END].map(function (idx) {
89214 var _classnames;
89215
89216 var _disabled = Array.isArray(disabled) ? disabled[idx] : disabled;
89217
89218 return (0, _extends3.default)({}, sharedProps, {
89219 autoFocus: autoFocus,
89220 placeholder: placeholder[idx],
89221 value: value[idx] || '',
89222 'aria-label': Array.isArray(dateInputAriaLabel) ? dateInputAriaLabel[idx] : dateInputAriaLabel,
89223 disabled: _disabled,
89224 ref: function ref(_ref) {
89225 return setInputRef(_ref, idx);
89226 },
89227 onFocus: _disabled ? undefined : function () {
89228 return handleTypeChange(idx);
89229 },
89230 className: (0, _classnames4.default)((_classnames = {}, _classnames[prefixCls + '-active'] = inputType === idx, _classnames))
89231 });
89232 });
89233 }
89234
89235 var className = (0, _classnames4.default)([prefixCls, prefixCls + '-' + size, prefixCls + '-' + (isRange ? 'range' : 'date')], (_classnames2 = {}, _classnames2[prefixCls + '-focus'] = focus, _classnames2[prefixCls + '-noborder'] = !hasBorder, _classnames2[prefixCls + '-disabled'] = isRange && Array.isArray(disabled) ? disabled.every(function (v) {
89236 return v;
89237 }) : disabled, _classnames2));
89238
89239 var calendarIcon = _react2.default.createElement(_icon2.default, { type: 'calendar', className: prefix + 'date-picker2-symbol-calendar-icon' });
89240
89241 return _react2.default.createElement('div', { className: className }, isRange ? _react2.default.createElement(_react2.default.Fragment, null, _react2.default.createElement(_input2.default, (0, _extends3.default)({}, rangeProps[0], {
89242 label: label,
89243 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
89244 })), _react2.default.createElement('div', { className: prefixCls + '-separator' }, separator), _react2.default.createElement(_input2.default, (0, _extends3.default)({}, rangeProps[1], {
89245 state: state,
89246 hasClear: !state && hasClear,
89247 hint: state ? null : calendarIcon
89248 }))) : _react2.default.createElement(_input2.default, (0, _extends3.default)({}, sharedProps, {
89249 label: label,
89250 state: state,
89251 disabled: disabled,
89252 hasClear: !state && hasClear,
89253 placeholder: placeholder,
89254 autoFocus: autoFocus // eslint-disable-line jsx-a11y/no-autofocus
89255 , ref: setInputRef,
89256 'aria-label': dateInputAriaLabel,
89257 value: value || '',
89258 hint: state ? null : calendarIcon
89259 })));
89260 };
89261
89262 return DateInput;
89263}(_react2.default.Component), _class.propTypes = {
89264 prefix: PT.string,
89265 rtl: PT.bool,
89266 locale: PT.object,
89267 value: _propTypes3.default.inputValue,
89268 inputType: _propTypes3.default.inputType,
89269 format: _propTypes3.default.format,
89270 isRange: PT.bool,
89271 hasClear: PT.bool,
89272 onInputTypeChange: PT.func,
89273 autoFocus: PT.bool,
89274 readOnly: _propTypes3.default.readOnly,
89275 placeholder: _propTypes3.default.placeholder,
89276 size: _propTypes3.default.size,
89277 focus: PT.bool,
89278 hasBorder: PT.bool,
89279 separator: PT.node,
89280 disabled: _propTypes3.default.disabled,
89281 inputProps: PT.object,
89282 dateInputAriaLabel: _propTypes3.default.ariaLabel,
89283 label: PT.node
89284}, _class.defaultProps = {
89285 autoFocus: false,
89286 readOnly: false,
89287 hasClear: true,
89288 separator: '-',
89289 hasBorder: true,
89290 size: 'medium'
89291}, _temp);
89292DateInput.displayName = 'DateInput';
89293exports.default = (0, _reactLifecyclesCompat.polyfill)(DateInput);
89294module.exports = exports['default'];
89295
89296/***/ }),
89297/* 484 */
89298/***/ (function(module, exports, __webpack_require__) {
89299
89300"use strict";
89301
89302
89303exports.__esModule = true;
89304
89305var _extends2 = __webpack_require__(1);
89306
89307var _extends3 = _interopRequireDefault(_extends2);
89308
89309var _typeof2 = __webpack_require__(14);
89310
89311var _typeof3 = _interopRequireDefault(_typeof2);
89312
89313var _objectWithoutProperties2 = __webpack_require__(8);
89314
89315var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
89316
89317var _classCallCheck2 = __webpack_require__(2);
89318
89319var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
89320
89321var _possibleConstructorReturn2 = __webpack_require__(3);
89322
89323var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
89324
89325var _inherits2 = __webpack_require__(4);
89326
89327var _inherits3 = _interopRequireDefault(_inherits2);
89328
89329var _class, _temp, _initialiseProps;
89330
89331var _react = __webpack_require__(0);
89332
89333var _react2 = _interopRequireDefault(_react);
89334
89335var _reactLifecyclesCompat = __webpack_require__(10);
89336
89337var _classnames2 = __webpack_require__(7);
89338
89339var _classnames3 = _interopRequireDefault(_classnames2);
89340
89341var _propTypes = __webpack_require__(5);
89342
89343var PT = _interopRequireWildcard(_propTypes);
89344
89345var _propTypes2 = __webpack_require__(45);
89346
89347var _propTypes3 = _interopRequireDefault(_propTypes2);
89348
89349var _util = __webpack_require__(6);
89350
89351var _util2 = __webpack_require__(43);
89352
89353var _calendar = __webpack_require__(111);
89354
89355var _calendar2 = _interopRequireDefault(_calendar);
89356
89357var _timePanel = __webpack_require__(202);
89358
89359var _timePanel2 = _interopRequireDefault(_timePanel);
89360
89361function _interopRequireWildcard(obj) {
89362 if (obj && obj.__esModule) {
89363 return obj;
89364 } else {
89365 var newObj = {};if (obj != null) {
89366 for (var key in obj) {
89367 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
89368 }
89369 }newObj.default = obj;return newObj;
89370 }
89371}
89372
89373function _interopRequireDefault(obj) {
89374 return obj && obj.__esModule ? obj : { default: obj };
89375}
89376
89377var DatePanel = (_temp = _class = function (_React$Component) {
89378 (0, _inherits3.default)(DatePanel, _React$Component);
89379
89380 function DatePanel(props) {
89381 (0, _classCallCheck3.default)(this, DatePanel);
89382
89383 // 默认时间
89384 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
89385
89386 _initialiseProps.call(_this);
89387
89388 var _props$timePanelProps = props.timePanelProps,
89389 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps;
89390
89391 var defaultTime = timePanelProps.defaultValue;
89392
89393 if (defaultTime) {
89394 // fix: https://github.com/alibaba-fusion/next/issues/3203
89395 defaultTime = (0, _util.datejs)(defaultTime, typeof defaultTime === 'string' ? timePanelProps.format || 'HH:mm:ss' : undefined);
89396 }
89397
89398 _this.state = {
89399 defaultTime: defaultTime
89400 };
89401 return _this;
89402 }
89403
89404 DatePanel.prototype.render = function render() {
89405 var _classnames;
89406
89407 var _props = this.props,
89408 mode = _props.mode,
89409 panelMode = _props.panelMode,
89410 prefix = _props.prefix,
89411 showTime = _props.showTime,
89412 value = _props.value,
89413 disabledDate = _props.disabledDate,
89414 disabledTime = _props.disabledTime,
89415 timePanelProps = _props.timePanelProps,
89416 dateCellRender = _props.dateCellRender,
89417 restProps = (0, _objectWithoutProperties3.default)(_props, ['mode', 'panelMode', 'prefix', 'showTime', 'value', 'disabledDate', 'disabledTime', 'timePanelProps', 'dateCellRender']);
89418
89419 var className = (0, _classnames3.default)(prefix + 'date-picker2-panel', (_classnames = {}, _classnames[prefix + 'date-time-picker2-panel'] = showTime, _classnames));
89420
89421 // 禁用时间
89422 var _disabledTime = void 0;
89423 if (showTime && mode === panelMode && disabledTime) {
89424 _disabledTime = typeof disabledTime === 'function' ? disabledTime(value) : disabledTime;
89425 if ((typeof _disabledTime === 'undefined' ? 'undefined' : (0, _typeof3.default)(_disabledTime)) !== 'object') {
89426 _disabledTime = null;
89427 }
89428 }
89429
89430 return _react2.default.createElement('div', { className: className }, _react2.default.createElement(_calendar2.default, (0, _extends3.default)({}, _util.obj.pickProps(_calendar2.default.propTypes, restProps), {
89431 shape: 'panel',
89432 value: value,
89433 panelMode: mode,
89434 colNum: showTime ? 6 : undefined,
89435 onSelect: this.handleSelect,
89436 onPanelChange: this.handlePanelChange,
89437 disabledDate: disabledDate,
89438 dateCellRender: dateCellRender
89439 })), showTime && mode === panelMode ? _react2.default.createElement(_timePanel2.default, (0, _extends3.default)({}, _util.obj.pickProps(_timePanel2.default.propTypes, restProps), {
89440 prefix: prefix,
89441 value: value || this.state.defaultTime,
89442 onSelect: this.onTimeSelect,
89443 disabledTime: disabledTime,
89444 timePanelProps: (0, _extends3.default)({}, _disabledTime, timePanelProps)
89445 })) : null);
89446 };
89447
89448 return DatePanel;
89449}(_react2.default.Component), _class.propTypes = {
89450 rtl: PT.bool,
89451 prefix: PT.string,
89452 locale: PT.object,
89453 mode: _propTypes3.default.mode,
89454 panelMode: PT.any,
89455 value: _propTypes3.default.date,
89456 disabledDate: PT.func,
89457 showTime: PT.bool,
89458 resetTime: PT.bool,
89459 timePanelProps: PT.object,
89460 disabledTime: _propTypes3.default.disabledTime,
89461 dateCellRender: PT.func
89462}, _class.defaultProps = {
89463 showTime: false,
89464 resetTime: false
89465}, _initialiseProps = function _initialiseProps() {
89466 var _this2 = this;
89467
89468 this.onTimeSelect = function (v) {
89469 _this2.handleSelect(v, true);
89470 };
89471
89472 this.handleSelect = function (v, fromTimeChange) {
89473 var defaultTime = _this2.state.defaultTime;
89474
89475 var timeVal = null;
89476
89477 if (!_this2.props.resetTime && !fromTimeChange) {
89478 timeVal = _this2.props.value || defaultTime || (0, _util.datejs)();
89479 }
89480
89481 v = (0, _util2.setTime)(v, timeVal);
89482
89483 _util.func.invoke(_this2.props, 'onSelect', [v]);
89484 };
89485
89486 this.handlePanelChange = function (v, mode) {
89487 _util.func.invoke(_this2.props, 'onPanelChange', [v, mode]);
89488 };
89489}, _temp);
89490DatePanel.displayName = 'DatePanel';
89491exports.default = (0, _reactLifecyclesCompat.polyfill)(DatePanel);
89492module.exports = exports['default'];
89493
89494/***/ }),
89495/* 485 */
89496/***/ (function(module, exports, __webpack_require__) {
89497
89498"use strict";
89499
89500
89501exports.__esModule = true;
89502
89503var _extends2 = __webpack_require__(1);
89504
89505var _extends3 = _interopRequireDefault(_extends2);
89506
89507var _objectWithoutProperties2 = __webpack_require__(8);
89508
89509var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
89510
89511var _classCallCheck2 = __webpack_require__(2);
89512
89513var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
89514
89515var _possibleConstructorReturn2 = __webpack_require__(3);
89516
89517var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
89518
89519var _inherits2 = __webpack_require__(4);
89520
89521var _inherits3 = _interopRequireDefault(_inherits2);
89522
89523var _class, _temp, _initialiseProps;
89524
89525var _react = __webpack_require__(0);
89526
89527var _react2 = _interopRequireDefault(_react);
89528
89529var _reactLifecyclesCompat = __webpack_require__(10);
89530
89531var _propTypes = __webpack_require__(5);
89532
89533var PT = _interopRequireWildcard(_propTypes);
89534
89535var _classnames = __webpack_require__(7);
89536
89537var _classnames2 = _interopRequireDefault(_classnames);
89538
89539var _zhCn = __webpack_require__(13);
89540
89541var _zhCn2 = _interopRequireDefault(_zhCn);
89542
89543var _util = __webpack_require__(6);
89544
89545var _propTypes2 = __webpack_require__(201);
89546
89547var _propTypes3 = _interopRequireDefault(_propTypes2);
89548
89549var _constant = __webpack_require__(52);
89550
89551var _headerPanel = __webpack_require__(486);
89552
89553var _headerPanel2 = _interopRequireDefault(_headerPanel);
89554
89555var _dateTable = __webpack_require__(487);
89556
89557var _dateTable2 = _interopRequireDefault(_dateTable);
89558
89559function _interopRequireWildcard(obj) {
89560 if (obj && obj.__esModule) {
89561 return obj;
89562 } else {
89563 var newObj = {};if (obj != null) {
89564 for (var key in obj) {
89565 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
89566 }
89567 }newObj.default = obj;return newObj;
89568 }
89569}
89570
89571function _interopRequireDefault(obj) {
89572 return obj && obj.__esModule ? obj : { default: obj };
89573}
89574
89575var pickProps = _util.obj.pickProps,
89576 pickOthers = _util.obj.pickOthers;
89577
89578// CALENDAR_MODE => DATE_PANEL_MODE
89579
89580function getPanelMode(mode) {
89581 return mode && (mode === _constant.CALENDAR_MODE.YEAR ? _constant.DATE_PANEL_MODE.MONTH : _constant.DATE_PANEL_MODE.DATE);
89582}
89583
89584function isValueChanged(newVal, oldVal) {
89585 return newVal !== oldVal && !(0, _util.datejs)(newVal).isSame((0, _util.datejs)(oldVal));
89586}
89587
89588var Calendar = (_temp = _class = function (_React$Component) {
89589 (0, _inherits3.default)(Calendar, _React$Component);
89590
89591 function Calendar(props) {
89592 (0, _classCallCheck3.default)(this, Calendar);
89593
89594 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
89595
89596 _initialiseProps.call(_this);
89597
89598 var defaultValue = props.defaultValue,
89599 mode = props.mode;
89600
89601 var value = 'value' in props ? props.value : defaultValue;
89602 var panelValue = (0, _util.datejs)('panelValue' in props ? props.panelValue : value || props.defaultPanelValue);
89603 var panelMode = props.panelMode || getPanelMode(mode) || _constant.DATE_PANEL_MODE.DATE;
89604
89605 _this.state = {
89606 mode: mode,
89607 value: value,
89608 panelMode: panelMode,
89609 panelValue: panelValue.isValid() ? panelValue : (0, _util.datejs)()
89610 };
89611 return _this;
89612 }
89613
89614 Calendar.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
89615 var newState = null;
89616 var value = void 0;
89617 var panelValue = void 0;
89618
89619 if ('value' in props && isValueChanged(props.value, state.value)) {
89620 value = props.value;
89621 panelValue = (0, _util.datejs)(value);
89622 }
89623
89624 if ('panelValue' in props) {
89625 panelValue = (0, _util.datejs)(props.panelValue);
89626 }
89627
89628 // panelValue不能是无效值
89629 if (panelValue) {
89630 panelValue = panelValue.isValid() ? panelValue : (0, _util.datejs)();
89631 newState = {
89632 panelValue: panelValue
89633 };
89634 }
89635 if (value) {
89636 newState.value = value;
89637 }
89638
89639 return newState;
89640 };
89641
89642 Calendar.prototype.render = function render() {
89643 var value = 'value' in this.props ? (0, _util.datejs)(this.props.value) : this.state.value;
89644 var _state = this.state,
89645 panelMode = _state.panelMode,
89646 mode = _state.mode,
89647 panelValue = _state.panelValue;
89648 var _props = this.props,
89649 prefix = _props.prefix,
89650 shape = _props.shape,
89651 rtl = _props.rtl,
89652 className = _props.className,
89653 restProps = (0, _objectWithoutProperties3.default)(_props, ['prefix', 'shape', 'rtl', 'className']);
89654
89655 var sharedProps = {
89656 rtl: rtl,
89657 prefix: prefix,
89658 shape: shape,
89659 value: value,
89660 panelValue: panelValue
89661 };
89662
89663 var headerPanelProps = (0, _extends3.default)({}, pickProps(_headerPanel2.default.propTypes, restProps), sharedProps, {
89664 mode: mode,
89665 panelMode: panelMode,
89666 onPanelValueChange: this.onPanelValueChange,
89667 onModeChange: this.onModeChange,
89668 onPanelModeChange: this.onPanelModeChange,
89669 showModeSwitch: this.props.mode !== _constant.CALENDAR_MODE.YEAR
89670 });
89671
89672 var dateTableProps = (0, _extends3.default)({}, pickProps(_dateTable2.default.propTypes, restProps), sharedProps, {
89673 mode: panelMode,
89674 onSelect: this.onDateSelect
89675 });
89676
89677 var classNames = (0, _classnames2.default)([prefix + 'calendar2', prefix + 'calendar2-' + shape, className]);
89678
89679 return _react2.default.createElement('div', (0, _extends3.default)({}, pickOthers(Calendar.propTypes, restProps), { dir: rtl ? 'rtl' : undefined, className: classNames }), _react2.default.createElement(_headerPanel2.default, headerPanelProps), _react2.default.createElement('div', { className: prefix + 'calendar2-body' }, _react2.default.createElement(_dateTable2.default, dateTableProps)));
89680 };
89681
89682 return Calendar;
89683}(_react2.default.Component), _class.propTypes = {
89684 rtl: PT.bool,
89685 name: PT.string,
89686 prefix: PT.string,
89687 locale: PT.object,
89688 /**
89689 * 展现形态
89690 */
89691 shape: _propTypes3.default.shape,
89692 /*
89693 * 日期模式: month | year
89694 */
89695 mode: _propTypes3.default.mode,
89696 /**
89697 * 默认选中的日期(受控)
89698 */
89699 value: _propTypes3.default.date,
89700 /**
89701 * 默认选中的日期
89702 */
89703 defaultValue: _propTypes3.default.date,
89704 /**
89705 * 面板显示的日期(受控)
89706 */
89707 panelValue: _propTypes3.default.date,
89708 /**
89709 * 面板默认显示的日期
89710 */
89711 defaultPanelValue: _propTypes3.default.date,
89712 /**
89713 * 不可选择的日期
89714 */
89715 disabledDate: PT.func,
89716 /**
89717 * 可显示的日期范围
89718 */
89719 validRange: PT.arrayOf(_propTypes3.default.date),
89720 /**
89721 * 自定义日期渲染
89722 */
89723 dateCellRender: PT.func,
89724 quarterCellRender: PT.func,
89725 monthCellRender: PT.func,
89726 yearCellRender: PT.func,
89727 /**
89728 * 自定义头部渲染
89729 */
89730 headerRender: PT.func,
89731 /**
89732 * 日期变化回调
89733 */
89734 onChange: PT.func,
89735 /**
89736 * 点击选择日期回调
89737 */
89738 onSelect: PT.func,
89739 /**
89740 * 日期面板变化回调
89741 */
89742 onPanelChange: PT.func,
89743 cellProps: PT.object,
89744 cellClassName: PT.oneOfType([PT.func, PT.string]),
89745 panelMode: PT.any,
89746 onPrev: PT.func,
89747 onNext: PT.func,
89748 onSuperPrev: PT.func,
89749 onSuperNext: PT.func,
89750 colNum: PT.number
89751}, _class.defaultProps = {
89752 rtl: false,
89753 prefix: 'next-',
89754 locale: _zhCn2.default.Calendar,
89755 shape: _constant.CALENDAR_SHAPE.FULLSCREEN,
89756 mode: _constant.CALENDAR_MODE.MONTH,
89757 defaultPanelValue: (0, _util.datejs)()
89758}, _initialiseProps = function _initialiseProps() {
89759 var _this2 = this;
89760
89761 this.switchPanelMode = function (mode) {
89762 var MONTH = _constant.DATE_PANEL_MODE.MONTH,
89763 YEAR = _constant.DATE_PANEL_MODE.YEAR,
89764 DECADE = _constant.DATE_PANEL_MODE.DECADE;
89765
89766 var originalPanelMode = _this2.props.panelMode || getPanelMode(mode);
89767
89768 switch (mode) {
89769 case YEAR:
89770 return MONTH;
89771 case DECADE:
89772 return YEAR;
89773 default:
89774 return originalPanelMode;
89775 }
89776 };
89777
89778 this.shouldSwitchPanelMode = function () {
89779 var _props2 = _this2.props,
89780 mode = _props2.mode,
89781 shape = _props2.shape;
89782 var panelMode = _this2.state.panelMode;
89783
89784 var originalPanelMode = _this2.props.panelMode || getPanelMode(mode);
89785 return shape === _constant.CALENDAR_SHAPE.PANEL && panelMode !== originalPanelMode;
89786 };
89787
89788 this.onDateSelect = function (value, _, _ref) {
89789 var isCurrent = _ref.isCurrent;
89790 var panelMode = _this2.state.panelMode;
89791
89792 var unit = panelMode === 'date' ? 'day' : panelMode;
89793
89794 if (_this2.shouldSwitchPanelMode()) {
89795 _this2.onPanelChange(value, _this2.switchPanelMode(panelMode), 'DATESELECT_VALUE_SWITCH_MODE');
89796 } else {
89797 isCurrent || _this2.onPanelValueChange(value, 'DATESELECT');
89798 value.isSame(_this2.state.value, unit) || _this2.onChange(value);
89799
89800 _util.func.invoke(_this2.props, 'onSelect', [value]);
89801 }
89802 };
89803
89804 this.onModeChange = function (mode, reason) {
89805 _this2.setState({
89806 mode: mode
89807 });
89808 var panelMode = getPanelMode(mode);
89809
89810 if (_this2.state.panelMode !== panelMode) {
89811 _this2.onPanelModeChange(panelMode, reason);
89812 }
89813 };
89814
89815 this.onPanelValueChange = function (panelValue, reason) {
89816 _this2.onPanelChange(panelValue, _this2.state.panelMode, reason);
89817 };
89818
89819 this.onPanelModeChange = function (panelMode, reason) {
89820 _this2.onPanelChange(_this2.state.panelValue, panelMode, reason);
89821 };
89822
89823 this.onPanelChange = function (value, mode, reason) {
89824 _this2.setState({
89825 panelMode: mode,
89826 panelValue: value
89827 });
89828
89829 _util.func.invoke(_this2.props, 'onPanelChange', [value, mode, reason]);
89830 };
89831
89832 this.onChange = function (value) {
89833 _this2.setState({
89834 value: value,
89835 panelValue: value
89836 });
89837 _util.func.invoke(_this2.props, 'onChange', [value]);
89838 };
89839}, _temp);
89840Calendar.displayName = 'Calendar';
89841exports.default = (0, _reactLifecyclesCompat.polyfill)(Calendar);
89842module.exports = exports['default'];
89843
89844/***/ }),
89845/* 486 */
89846/***/ (function(module, exports, __webpack_require__) {
89847
89848"use strict";
89849
89850
89851exports.__esModule = true;
89852
89853var _extends2 = __webpack_require__(1);
89854
89855var _extends3 = _interopRequireDefault(_extends2);
89856
89857var _classCallCheck2 = __webpack_require__(2);
89858
89859var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
89860
89861var _possibleConstructorReturn2 = __webpack_require__(3);
89862
89863var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
89864
89865var _inherits2 = __webpack_require__(4);
89866
89867var _inherits3 = _interopRequireDefault(_inherits2);
89868
89869var _class, _temp;
89870
89871var _react = __webpack_require__(0);
89872
89873var _react2 = _interopRequireDefault(_react);
89874
89875var _reactLifecyclesCompat = __webpack_require__(10);
89876
89877var _propTypes = __webpack_require__(5);
89878
89879var PT = _interopRequireWildcard(_propTypes);
89880
89881var _util = __webpack_require__(6);
89882
89883var _constant = __webpack_require__(52);
89884
89885var _radio = __webpack_require__(50);
89886
89887var _radio2 = _interopRequireDefault(_radio);
89888
89889var _select = __webpack_require__(29);
89890
89891var _select2 = _interopRequireDefault(_select);
89892
89893var _button = __webpack_require__(17);
89894
89895var _button2 = _interopRequireDefault(_button);
89896
89897var _icon = __webpack_require__(11);
89898
89899var _icon2 = _interopRequireDefault(_icon);
89900
89901function _interopRequireWildcard(obj) {
89902 if (obj && obj.__esModule) {
89903 return obj;
89904 } else {
89905 var newObj = {};if (obj != null) {
89906 for (var key in obj) {
89907 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
89908 }
89909 }newObj.default = obj;return newObj;
89910 }
89911}
89912
89913function _interopRequireDefault(obj) {
89914 return obj && obj.__esModule ? obj : { default: obj };
89915}
89916
89917var renderNode = _util.func.renderNode;
89918var DATE = _constant.DATE_PANEL_MODE.DATE,
89919 WEEK = _constant.DATE_PANEL_MODE.WEEK,
89920 QUARTER = _constant.DATE_PANEL_MODE.QUARTER,
89921 MONTH = _constant.DATE_PANEL_MODE.MONTH,
89922 YEAR = _constant.DATE_PANEL_MODE.YEAR,
89923 DECADE = _constant.DATE_PANEL_MODE.DECADE;
89924var HeaderPanel = (_temp = _class = function (_React$PureComponent) {
89925 (0, _inherits3.default)(HeaderPanel, _React$PureComponent);
89926
89927 function HeaderPanel(props) {
89928 (0, _classCallCheck3.default)(this, HeaderPanel);
89929
89930 var _this = (0, _possibleConstructorReturn3.default)(this, _React$PureComponent.call(this, props));
89931
89932 _this.createPanelBtns = function (_ref) {
89933 var unit = _ref.unit,
89934 _ref$num = _ref.num,
89935 num = _ref$num === undefined ? 1 : _ref$num,
89936 _ref$isSuper = _ref.isSuper,
89937 isSuper = _ref$isSuper === undefined ? true : _ref$isSuper;
89938
89939 var value = _this.props.panelValue.clone();
89940 var prefixCls = _this.prefixCls;
89941
89942 var iconTypes = isSuper ? ['arrow-double-left', 'arrow-double-right'] : ['arrow-left', 'arrow-right'];
89943
89944 return [_react2.default.createElement(_button2.default, {
89945 text: true,
89946 className: prefixCls + '-btn ' + prefixCls + '-left-btn',
89947 onClick: function onClick() {
89948 return _this.handleClick(value, { num: num, unit: unit, isSuper: isSuper, isNext: false });
89949 },
89950 key: 'prev-btn-' + unit
89951 }, _react2.default.createElement(_icon2.default, { type: iconTypes[0] })), _react2.default.createElement(_button2.default, {
89952 text: true,
89953 className: prefixCls + '-btn ' + prefixCls + '-right-btn',
89954 onClick: function onClick() {
89955 return _this.handleClick(value, { num: num, unit: unit, isSuper: isSuper, isNext: true });
89956 },
89957 key: 'next-btn-' + unit
89958 }, _react2.default.createElement(_icon2.default, { type: iconTypes[1] }))];
89959 };
89960
89961 _this.renderModeSwitch = function () {
89962 var _this$props = _this.props,
89963 mode = _this$props.mode,
89964 locale = _this$props.locale,
89965 onModeChange = _this$props.onModeChange;
89966
89967 return _react2.default.createElement(_radio2.default.Group, { key: 'mode-switch', shape: 'button', value: mode, onChange: onModeChange }, _react2.default.createElement(_radio2.default, { value: _constant.CALENDAR_MODE.MONTH }, locale.month), _react2.default.createElement(_radio2.default, { value: _constant.CALENDAR_MODE.YEAR }, locale.year));
89968 };
89969
89970 _this.renderMonthSelect = function () {
89971 var prefixCls = _this.prefixCls;
89972 var _this$props2 = _this.props,
89973 panelValue = _this$props2.panelValue,
89974 onPanelValueChange = _this$props2.onPanelValueChange;
89975
89976 var curMonth = panelValue.month();
89977 var dataSource = _util.datejs.monthsShort().map(function (label, value) {
89978 return {
89979 label: label,
89980 value: value
89981 };
89982 });
89983
89984 return _react2.default.createElement(_select2.default, {
89985 className: prefixCls + '-select-month',
89986 popupClassName: prefixCls + '-select-month-popup',
89987 value: curMonth,
89988 dataSource: dataSource,
89989 onChange: function onChange(v) {
89990 return onPanelValueChange(panelValue.month(v));
89991 }
89992 });
89993 };
89994
89995 _this.prefixCls = props.prefix + 'calendar2-header';
89996 return _this;
89997 }
89998
89999 HeaderPanel.prototype.handleClick = function handleClick(value, _ref2) {
90000 var unit = _ref2.unit,
90001 num = _ref2.num,
90002 isSuper = _ref2.isSuper,
90003 isNext = _ref2.isNext;
90004 var _props = this.props,
90005 onPanelValueChange = _props.onPanelValueChange,
90006 onPrev = _props.onPrev,
90007 onSuperPrev = _props.onSuperPrev,
90008 onNext = _props.onNext,
90009 onSuperNext = _props.onSuperNext;
90010
90011 var handler = void 0;
90012
90013 if (isSuper) {
90014 handler = isNext ? onSuperNext : onSuperPrev;
90015 } else {
90016 handler = isNext ? onNext : onPrev;
90017 }
90018
90019 if (handler) {
90020 handler(value, { unit: unit, num: num });
90021 } else {
90022 var m = isNext ? 'add' : 'subtract';
90023 onPanelValueChange(value[m](num, unit), 'PANEL');
90024 }
90025 };
90026
90027 HeaderPanel.prototype.renderYearSelect = function renderYearSelect() {
90028 var prefixCls = this.prefixCls;
90029 var _props2 = this.props,
90030 validValue = _props2.validValue,
90031 panelValue = _props2.panelValue,
90032 onPanelValueChange = _props2.onPanelValueChange;
90033
90034 var curYear = panelValue.year();
90035
90036 var beginYear = void 0;
90037 var endYear = void 0;
90038
90039 // TODO 有效区间
90040 if (validValue) {
90041 var begin = validValue[0],
90042 end = validValue[1];
90043
90044 beginYear = begin.year();
90045 endYear = end.year();
90046 } else {
90047 for (var i = 0; i < 20; i++) {
90048 beginYear = curYear - 10;
90049 endYear = curYear + 10;
90050 }
90051 }
90052 var dataSource = [];
90053 for (var _i = beginYear; _i < endYear; _i++) {
90054 dataSource.push({ label: _i, value: _i });
90055 }
90056
90057 return _react2.default.createElement(_select2.default, {
90058 key: 'year-select',
90059 className: prefixCls + '-select-year',
90060 popupClassName: prefixCls + '-select-year-popup',
90061 value: curYear,
90062 dataSource: dataSource,
90063 onChange: function onChange(v) {
90064 return onPanelValueChange(panelValue.year(v));
90065 }
90066 });
90067 };
90068
90069 HeaderPanel.prototype.renderTextField = function renderTextField() {
90070 var prefixCls = this.prefixCls;
90071 var _props3 = this.props,
90072 panelValue = _props3.panelValue,
90073 locale = _props3.locale,
90074 panelMode = _props3.panelMode,
90075 onPanelModeChange = _props3.onPanelModeChange;
90076
90077 var monthBeforeYear = locale.monthBeforeYear || false;
90078 var localeData = _util.datejs.localeData();
90079
90080 var year = panelValue.year() + (locale && locale.year === '年' ? '年' : '');
90081 var month = localeData.monthsShort()[panelValue.month()];
90082 var DATE = _constant.DATE_PANEL_MODE.DATE,
90083 WEEK = _constant.DATE_PANEL_MODE.WEEK,
90084 QUARTER = _constant.DATE_PANEL_MODE.QUARTER,
90085 MONTH = _constant.DATE_PANEL_MODE.MONTH,
90086 YEAR = _constant.DATE_PANEL_MODE.YEAR,
90087 DECADE = _constant.DATE_PANEL_MODE.DECADE;
90088
90089 var nodes = void 0;
90090 var yearNode = _react2.default.createElement(_button2.default, {
90091 text: true,
90092 key: 'year-btn',
90093 tabIndex: -1,
90094 className: prefixCls + '-btn',
90095 onClick: function onClick() {
90096 return onPanelModeChange(YEAR);
90097 }
90098 }, year);
90099
90100 switch (panelMode) {
90101 case DATE:
90102 case WEEK:
90103 {
90104 var monthNode = _react2.default.createElement(_button2.default, {
90105 text: true,
90106 key: 'month-btn',
90107 tabIndex: -1,
90108 className: prefixCls + '-btn',
90109 onClick: function onClick() {
90110 return onPanelModeChange(MONTH);
90111 }
90112 }, month);
90113 nodes = monthBeforeYear ? [monthNode, yearNode] : [yearNode, monthNode];
90114 break;
90115 }
90116
90117 case MONTH:
90118 case QUARTER:
90119 {
90120 nodes = yearNode;
90121 break;
90122 }
90123
90124 case YEAR:
90125 {
90126 var curYear = panelValue.year();
90127 var start = curYear - curYear % 10;
90128 var end = start + 9;
90129 nodes = _react2.default.createElement(_button2.default, {
90130 text: true,
90131 key: 'decade-btn',
90132 tabIndex: -1,
90133 className: prefixCls + '-btn',
90134 onClick: function onClick() {
90135 return onPanelModeChange(DECADE);
90136 }
90137 }, this.props.rtl ? end + '-' + start : start + '-' + end);
90138 break;
90139 }
90140 case DECADE:
90141 {
90142 var _curYear = panelValue.year();
90143 var _start = _curYear - _curYear % 100;
90144 var _end = _start + 99;
90145
90146 nodes = this.props.rtl ? _end + '-' + _start : _start + '-' + _end;
90147 break;
90148 }
90149 }
90150
90151 return _react2.default.createElement('div', { key: 'header-text-field', className: prefixCls + '-text-field' }, nodes);
90152 };
90153
90154 HeaderPanel.prototype.renderPanelHeader = function renderPanelHeader() {
90155 var createPanelBtns = this.createPanelBtns;
90156 var panelMode = this.props.panelMode;
90157
90158 var nodes = [];
90159
90160 var textFieldNode = this.renderTextField();
90161
90162 switch (panelMode) {
90163 case DATE:
90164 case WEEK:
90165 {
90166 var _createPanelBtns = createPanelBtns({
90167 unit: 'month',
90168 isSuper: false
90169 }),
90170 preMonthBtn = _createPanelBtns[0],
90171 nextMonthBtn = _createPanelBtns[1];
90172
90173 var _createPanelBtns2 = createPanelBtns({
90174 unit: 'year'
90175 }),
90176 preYearBtn = _createPanelBtns2[0],
90177 nextYearBtn = _createPanelBtns2[1];
90178
90179 nodes = [preYearBtn, preMonthBtn, textFieldNode, nextMonthBtn, nextYearBtn];
90180 break;
90181 }
90182 case QUARTER:
90183 case MONTH:
90184 {
90185 var _createPanelBtns3 = createPanelBtns({
90186 unit: 'year'
90187 }),
90188 _preYearBtn = _createPanelBtns3[0],
90189 _nextYearBtn = _createPanelBtns3[1];
90190
90191 nodes = [_preYearBtn, textFieldNode, _nextYearBtn];
90192 break;
90193 }
90194 case YEAR:
90195 {
90196 var _createPanelBtns4 = createPanelBtns({
90197 unit: 'year',
90198 num: 10
90199 }),
90200 preDecadeBtn = _createPanelBtns4[0],
90201 nextDecadeBtn = _createPanelBtns4[1];
90202
90203 nodes = [preDecadeBtn, textFieldNode, nextDecadeBtn];
90204 break;
90205 }
90206 case DECADE:
90207 {
90208 var _createPanelBtns5 = createPanelBtns({
90209 unit: 'year',
90210 num: 100
90211 }),
90212 preCenturyBtn = _createPanelBtns5[0],
90213 nextCenturyBtn = _createPanelBtns5[1];
90214
90215 nodes = [preCenturyBtn, textFieldNode, nextCenturyBtn];
90216 break;
90217 }
90218 }
90219
90220 return nodes;
90221 };
90222
90223 HeaderPanel.prototype.renderInner = function renderInner() {
90224 var prefixCls = this.prefixCls;
90225 var _props4 = this.props,
90226 shape = _props4.shape,
90227 showTitle = _props4.showTitle,
90228 value = _props4.value,
90229 mode = _props4.mode,
90230 showModeSwitch = _props4.showModeSwitch;
90231
90232 var nodes = [];
90233
90234 if (shape === _constant.CALENDAR_SHAPE.PANEL) {
90235 return this.renderPanelHeader();
90236 } else {
90237 if (showTitle) {
90238 nodes.push(_react2.default.createElement('div', { key: 'title', className: prefixCls + '-title' }, renderNode(this.props.titleRender, value.format(), [value])));
90239 }
90240 nodes.push(_react2.default.createElement('div', { key: 'actions', className: prefixCls + '-actions' }, this.renderYearSelect(), mode !== _constant.CALENDAR_MODE.YEAR ? this.renderMonthSelect() : null, showModeSwitch ? this.renderModeSwitch() : null, this.props.renderHeaderExtra && this.props.renderHeaderExtra((0, _extends3.default)({}, this.props))));
90241 }
90242
90243 return nodes;
90244 };
90245
90246 HeaderPanel.prototype.render = function render() {
90247 return _react2.default.createElement('div', { className: '' + this.prefixCls }, renderNode(this.props.headerRender, this.renderInner(), [].concat(this.props)));
90248 };
90249
90250 return HeaderPanel;
90251}(_react2.default.PureComponent), _class.propTypes = {
90252 rtl: PT.bool,
90253 prefix: PT.string,
90254 locale: PT.object,
90255 mode: PT.any,
90256 shape: PT.string,
90257 value: PT.any,
90258 panelMode: PT.any,
90259 panelValue: PT.any,
90260 validValue: PT.any,
90261 showTitle: PT.bool,
90262 showModeSwitch: PT.bool,
90263 onModeChange: PT.func,
90264 onPanelValueChange: PT.func,
90265 onPanelModeChange: PT.func,
90266 onPrev: PT.func,
90267 onNext: PT.func,
90268 onSuperPrev: PT.func,
90269 onSuperNext: PT.func,
90270 titleRender: PT.func,
90271 /**
90272 * 扩展操作区域渲染
90273 */
90274 renderHeaderExtra: PT.func,
90275 /**
90276 * 自定义头部渲染
90277 */
90278 headerRender: PT.func
90279}, _class.defaultProps = {
90280 showTitle: false
90281}, _temp);
90282exports.default = (0, _reactLifecyclesCompat.polyfill)(HeaderPanel);
90283module.exports = exports['default'];
90284
90285/***/ }),
90286/* 487 */
90287/***/ (function(module, exports, __webpack_require__) {
90288
90289"use strict";
90290
90291
90292exports.__esModule = true;
90293
90294var _extends3 = __webpack_require__(1);
90295
90296var _extends4 = _interopRequireDefault(_extends3);
90297
90298var _classCallCheck2 = __webpack_require__(2);
90299
90300var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
90301
90302var _possibleConstructorReturn2 = __webpack_require__(3);
90303
90304var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
90305
90306var _inherits2 = __webpack_require__(4);
90307
90308var _inherits3 = _interopRequireDefault(_inherits2);
90309
90310var _mode2Rows, _class, _temp;
90311
90312var _react = __webpack_require__(0);
90313
90314var _react2 = _interopRequireDefault(_react);
90315
90316var _reactLifecyclesCompat = __webpack_require__(10);
90317
90318var _classnames2 = __webpack_require__(7);
90319
90320var _classnames3 = _interopRequireDefault(_classnames2);
90321
90322var _propTypes = __webpack_require__(5);
90323
90324var PT = _interopRequireWildcard(_propTypes);
90325
90326var _propTypes2 = __webpack_require__(201);
90327
90328var _propTypes3 = _interopRequireDefault(_propTypes2);
90329
90330var _constant = __webpack_require__(52);
90331
90332var _util = __webpack_require__(6);
90333
90334function _interopRequireWildcard(obj) {
90335 if (obj && obj.__esModule) {
90336 return obj;
90337 } else {
90338 var newObj = {};if (obj != null) {
90339 for (var key in obj) {
90340 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
90341 }
90342 }newObj.default = obj;return newObj;
90343 }
90344}
90345
90346function _interopRequireDefault(obj) {
90347 return obj && obj.__esModule ? obj : { default: obj };
90348}
90349
90350var bindCtx = _util.func.bindCtx,
90351 renderNode = _util.func.renderNode;
90352var DATE = _constant.DATE_PANEL_MODE.DATE,
90353 WEEK = _constant.DATE_PANEL_MODE.WEEK,
90354 MONTH = _constant.DATE_PANEL_MODE.MONTH,
90355 QUARTER = _constant.DATE_PANEL_MODE.QUARTER,
90356 YEAR = _constant.DATE_PANEL_MODE.YEAR,
90357 DECADE = _constant.DATE_PANEL_MODE.DECADE;
90358
90359// 面板行数
90360
90361var mode2Rows = (_mode2Rows = {}, _mode2Rows[DATE] = 7, _mode2Rows[WEEK] = 7, _mode2Rows[MONTH] = 4, _mode2Rows[QUARTER] = 4, _mode2Rows[YEAR] = 4, _mode2Rows[DECADE] = 3, _mode2Rows);
90362
90363var DateTable = (_temp = _class = function (_React$Component) {
90364 (0, _inherits3.default)(DateTable, _React$Component);
90365
90366 function DateTable(props) {
90367 (0, _classCallCheck3.default)(this, DateTable);
90368
90369 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
90370
90371 _this.getCustomRender = function (mode) {
90372 var _mode2RenderName;
90373
90374 var mode2RenderName = (_mode2RenderName = {}, _mode2RenderName[DATE] = 'dateCellRender', _mode2RenderName[QUARTER] = 'quarterCellRender', _mode2RenderName[MONTH] = 'monthCellRender', _mode2RenderName[YEAR] = 'yearCellRender', _mode2RenderName);
90375
90376 return _this.props[mode2RenderName[mode]];
90377 };
90378
90379 _this.prefixCls = props.prefix + 'calendar2';
90380
90381 bindCtx(_this, ['getDateCellData', 'getMonthCellData', 'getQuarterCellData', 'getYearCellData', 'getDecadeData', 'handleKeyDown', 'handleSelect', 'handleMouseEnter', 'handleMouseLeave']);
90382
90383 _this.state = {
90384 hoverValue: null
90385 };
90386 return _this;
90387 }
90388
90389 DateTable.prototype.handleSelect = function handleSelect(v, e, args) {
90390 _util.func.invoke(this.props, 'onSelect', [v, e, args]);
90391 };
90392
90393 DateTable.prototype.handleKeyDown = function handleKeyDown(v, e, args) {
90394 switch (e.keyCode) {
90395 case _util.KEYCODE.ENTER:
90396 this.handleSelect(v, e, args);
90397 break;
90398 case _util.KEYCODE.RIGHT:
90399 break;
90400 }
90401 // e.preventDefault();
90402 };
90403
90404 DateTable.prototype.handleMouseEnter = function handleMouseEnter(v, e, args) {
90405 _util.func.invoke(this.props.cellProps, 'onMouseEnter', [v, e, args]);
90406 };
90407
90408 DateTable.prototype.handleMouseLeave = function handleMouseLeave(v, e, args) {
90409 _util.func.invoke(this.props.cellProps, 'onMouseLeave', [v, e, args]);
90410 };
90411
90412 DateTable.prototype.isSame = function isSame(curDate, date, mode) {
90413 switch (mode) {
90414 case DATE:
90415 return curDate.isSame(date, 'day');
90416 case WEEK:
90417 return curDate.isSame(date, 'week');
90418 case QUARTER:
90419 return curDate.isSame(date, 'quarter');
90420 case MONTH:
90421 return curDate.isSame(date, 'month');
90422 case YEAR:
90423 return curDate.isSame(date, 'year');
90424 case DECADE:
90425 {
90426 var curYear = curDate.year();
90427 var targetYear = date.year();
90428 return curYear <= targetYear && targetYear < curYear + 10;
90429 }
90430 }
90431 };
90432
90433 /**
90434 * 渲染日期面板
90435 * @param {Object[]} cellData - 单元格数据
90436 * @param {String} cellData[].label - 单元格显示文本
90437 * @param {Object} cellData[].value - 日期对象
90438 * @param {Boolean} cellData[].isCurrent - 是否是当前面板时间范围内的值
90439 */
90440 DateTable.prototype.renderCellContent = function renderCellContent(cellData) {
90441 var _this2 = this;
90442
90443 var props = this.props;
90444 var mode = props.mode,
90445 hoveredState = props.hoveredState,
90446 cellClassName = props.cellClassName;
90447 var hoverValue = this.state.hoverValue;
90448
90449 var cellContent = [];
90450 var cellCls = this.prefixCls + '-cell';
90451
90452 var now = (0, _util.datejs)();
90453 var rowLen = mode2Rows[mode];
90454
90455 for (var i = 0; i < cellData.length;) {
90456 var children = [];
90457
90458 var isCurrentWeek = void 0;
90459
90460 var _loop = function _loop(j) {
90461 var _extends2;
90462
90463 var _cellData = cellData[i++],
90464 label = _cellData.label,
90465 value = _cellData.value,
90466 key = _cellData.key,
90467 isCurrent = _cellData.isCurrent;
90468
90469 var v = value.startOf(mode);
90470
90471 var isDisabled = props.disabledDate && props.disabledDate(v, mode);
90472 var hoverState = hoverValue && hoveredState && hoveredState(hoverValue);
90473 var className = (0, _classnames3.default)(cellCls, (0, _extends4.default)((_extends2 = {}, _extends2[cellCls + '-current'] = isCurrent, _extends2[cellCls + '-today'] = mode === WEEK ? _this2.isSame(value, now, DATE) : _this2.isSame(v, now, mode), _extends2[cellCls + '-selected'] = _this2.isSame(v, props.value, mode), _extends2[cellCls + '-disabled'] = isDisabled, _extends2[cellCls + '-range-hover'] = hoverState, _extends2), cellClassName && cellClassName(v)));
90474
90475 var onEvents = null;
90476
90477 if (!isDisabled) {
90478 onEvents = {
90479 onClick: function onClick(e) {
90480 return _this2.handleSelect(v, e, { isCurrent: isCurrent, label: label });
90481 },
90482 onKeyDown: function onKeyDown(e) {
90483 return _this2.handleKeyDown(v, e, { isCurrent: isCurrent, label: label });
90484 },
90485 onMouseEnter: function onMouseEnter(e) {
90486 return _this2.handleMouseEnter(v, e, { isCurrent: isCurrent, label: label });
90487 },
90488 onMouseLeave: function onMouseLeave(e) {
90489 return _this2.handleMouseLeave(v, e, { isCurrent: isCurrent, label: label });
90490 }
90491 };
90492 }
90493
90494 if (mode === WEEK && j === 0) {
90495 var week = v.week();
90496
90497 children.push(_react2.default.createElement('td', { key: 'w-' + week, className: '' + cellCls }, _react2.default.createElement('div', { className: cellCls + '-inner' }, week)));
90498 isCurrentWeek = isCurrent;
90499 }
90500
90501 var customRender = _this2.getCustomRender(mode);
90502
90503 children.push(_react2.default.createElement('td', (0, _extends4.default)({ key: key, title: key }, onEvents, { className: className }), _react2.default.createElement('div', { className: cellCls + '-inner' }, renderNode(customRender, _react2.default.createElement('div', { className: cellCls + '-value' }, label), [v]))));
90504 };
90505
90506 for (var j = 0; j < rowLen; j++) {
90507 _loop(j);
90508 }
90509
90510 var className = void 0;
90511 if (mode === WEEK) {
90512 var _classnames;
90513
90514 className = (0, _classnames3.default)(this.prefixCls + '-week', (_classnames = {}, _classnames[this.prefixCls + '-week-current'] = isCurrentWeek, _classnames));
90515 }
90516
90517 cellContent.push(_react2.default.createElement('tr', { key: i, className: className }, children));
90518 }
90519
90520 return cellContent;
90521 };
90522
90523 // 星期几
90524
90525
90526 DateTable.prototype.renderWeekdaysHead = function renderWeekdaysHead() {
90527 var weekdaysMin = _util.datejs.weekdaysMin();
90528 var firstDayOfWeek = _util.datejs.localeData().firstDayOfWeek();
90529
90530 // 默认一周的第一天是周日,否则需要调整
90531 if (firstDayOfWeek !== 0) {
90532 weekdaysMin = weekdaysMin.slice(firstDayOfWeek).concat(weekdaysMin.slice(0, firstDayOfWeek));
90533 }
90534
90535 return _react2.default.createElement('thead', null, _react2.default.createElement('tr', null, this.props.mode === WEEK ? _react2.default.createElement('th', { className: this.prefixCls + '-cell-week' }) : null, weekdaysMin.map(function (d) {
90536 return _react2.default.createElement('th', { key: d }, d);
90537 })));
90538 };
90539
90540 DateTable.prototype.getDateCellData = function getDateCellData() {
90541 var _props = this.props,
90542 panelValue = _props.panelValue,
90543 colNum = _props.colNum;
90544
90545 var firstDayOfMonth = panelValue.clone().startOf('month');
90546 var weekOfFirstDay = firstDayOfMonth.day(); // 当月第一天星期几
90547 var daysOfCurMonth = panelValue.endOf('month').date(); // 当月天数
90548 var firstDayOfWeek = _util.datejs.localeData().firstDayOfWeek(); // 一周的第一天是星期几
90549
90550 var cellData = [];
90551 var preDays = (weekOfFirstDay - firstDayOfWeek + 7) % 7;
90552 var nextDays = colNum ? colNum * mode2Rows[DATE] - preDays - daysOfCurMonth : (7 - (preDays + daysOfCurMonth) % 7) % 7;
90553
90554 // 上个月日期
90555 for (var i = preDays; i > 0; i--) {
90556 cellData.push(firstDayOfMonth.clone().subtract(i, 'day'));
90557 }
90558
90559 // 本月日期
90560 for (var _i = 0; _i < daysOfCurMonth; _i++) {
90561 cellData.push(firstDayOfMonth.clone().add(_i, 'day'));
90562 }
90563
90564 // 下个月日期
90565 for (var _i2 = 0; _i2 < nextDays; _i2++) {
90566 cellData.push(firstDayOfMonth.clone().add(daysOfCurMonth + _i2, 'day'));
90567 }
90568
90569 return cellData.map(function (value) {
90570 return {
90571 value: value,
90572 label: value.date(),
90573 isCurrent: value.isSame(firstDayOfMonth, 'month'),
90574 key: value.format('YYYY-MM-DD')
90575 };
90576 });
90577 };
90578
90579 DateTable.prototype.getMonthCellData = function getMonthCellData() {
90580 var panelValue = this.props.panelValue;
90581
90582 return _util.datejs.monthsShort().map(function (label, index) {
90583 var value = panelValue.clone().month(index);
90584
90585 return {
90586 label: label,
90587 value: value,
90588 isCurrent: true,
90589 key: value.format('YYYY-MM')
90590 };
90591 });
90592 };
90593
90594 DateTable.prototype.getQuarterCellData = function getQuarterCellData() {
90595 var panelValue = this.props.panelValue;
90596
90597 return [1, 2, 3, 4].map(function (i) {
90598 return {
90599 label: 'Q' + i,
90600 value: panelValue.clone().quarter(i),
90601 isCurrent: true,
90602 key: 'Q' + i
90603 };
90604 });
90605 };
90606
90607 DateTable.prototype.getYearCellData = function getYearCellData() {
90608 var panelValue = this.props.panelValue;
90609
90610 var curYear = panelValue.year();
90611 var startYear = curYear - curYear % 10 - 1;
90612 var cellData = [];
90613
90614 for (var i = 0; i < 12; i++) {
90615 var y = startYear + i;
90616
90617 cellData.push({
90618 value: panelValue.clone().year(y),
90619 label: y,
90620 isCurrent: i > 0 && i < 11,
90621 key: y
90622 });
90623 }
90624
90625 return cellData;
90626 };
90627
90628 DateTable.prototype.getDecadeData = function getDecadeData() {
90629 var panelValue = this.props.panelValue;
90630
90631 var curYear = panelValue.year();
90632 var startYear = curYear - curYear % 100 - 10;
90633 var cellData = [];
90634
90635 for (var i = 0; i < 12; i++) {
90636 var y = startYear + i * 10;
90637
90638 cellData.push({
90639 value: panelValue.clone().year(y),
90640 label: y + '-' + (y + 9),
90641 isCurrent: i > 0 && i < 11,
90642 key: y + '-' + (y + 9)
90643 });
90644 }
90645
90646 return cellData;
90647 };
90648
90649 DateTable.prototype.render = function render() {
90650 var _mode2Data;
90651
90652 var mode = this.props.mode;
90653
90654 var mode2Data = (_mode2Data = {}, _mode2Data[DATE] = this.getDateCellData, _mode2Data[WEEK] = this.getDateCellData, _mode2Data[MONTH] = this.getMonthCellData, _mode2Data[QUARTER] = this.getQuarterCellData, _mode2Data[YEAR] = this.getYearCellData, _mode2Data[DECADE] = this.getDecadeData, _mode2Data);
90655
90656 return _react2.default.createElement('table', { className: this.prefixCls + '-table ' + this.prefixCls + '-table-' + mode }, [DATE, WEEK].includes(mode) ? this.renderWeekdaysHead() : null, _react2.default.createElement('tbody', null, this.renderCellContent(mode2Data[mode]())));
90657 };
90658
90659 return DateTable;
90660}(_react2.default.Component), _class.propTypes = {
90661 mode: _propTypes3.default.panelMode,
90662 value: _propTypes3.default.date,
90663 panelValue: _propTypes3.default.date,
90664 dateCellRender: PT.func,
90665 quarterCellRender: PT.func,
90666 monthCellRender: PT.func,
90667 yearCellRender: PT.func,
90668 disabledDate: PT.func,
90669 selectedState: PT.func,
90670 hoveredState: PT.func,
90671 onSelect: PT.func,
90672 onDateSelect: PT.func,
90673 startOnSunday: PT.bool,
90674 cellClassName: PT.oneOfType([PT.func, PT.string]),
90675 colNum: PT.number,
90676 cellProps: PT.object
90677}, _temp);
90678DateTable.displayName = 'DateTable';
90679exports.default = (0, _reactLifecyclesCompat.polyfill)(DateTable);
90680module.exports = exports['default'];
90681
90682/***/ }),
90683/* 488 */
90684/***/ (function(module, exports, __webpack_require__) {
90685
90686"use strict";
90687
90688
90689exports.__esModule = true;
90690
90691var _objectWithoutProperties2 = __webpack_require__(8);
90692
90693var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
90694
90695var _extends3 = __webpack_require__(1);
90696
90697var _extends4 = _interopRequireDefault(_extends3);
90698
90699var _classCallCheck2 = __webpack_require__(2);
90700
90701var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
90702
90703var _possibleConstructorReturn2 = __webpack_require__(3);
90704
90705var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
90706
90707var _inherits2 = __webpack_require__(4);
90708
90709var _inherits3 = _interopRequireDefault(_inherits2);
90710
90711var _class, _temp, _initialiseProps;
90712
90713var _react = __webpack_require__(0);
90714
90715var _react2 = _interopRequireDefault(_react);
90716
90717var _reactLifecyclesCompat = __webpack_require__(10);
90718
90719var _classnames3 = __webpack_require__(7);
90720
90721var _classnames4 = _interopRequireDefault(_classnames3);
90722
90723var _propTypes = __webpack_require__(5);
90724
90725var PT = _interopRequireWildcard(_propTypes);
90726
90727var _propTypes2 = __webpack_require__(45);
90728
90729var _propTypes3 = _interopRequireDefault(_propTypes2);
90730
90731var _util = __webpack_require__(6);
90732
90733var _util2 = __webpack_require__(43);
90734
90735var _constant = __webpack_require__(44);
90736
90737var _constant2 = __webpack_require__(52);
90738
90739var _calendar = __webpack_require__(111);
90740
90741var _calendar2 = _interopRequireDefault(_calendar);
90742
90743var _timePanel = __webpack_require__(202);
90744
90745var _timePanel2 = _interopRequireDefault(_timePanel);
90746
90747function _interopRequireWildcard(obj) {
90748 if (obj && obj.__esModule) {
90749 return obj;
90750 } else {
90751 var newObj = {};if (obj != null) {
90752 for (var key in obj) {
90753 if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];
90754 }
90755 }newObj.default = obj;return newObj;
90756 }
90757}
90758
90759function _interopRequireDefault(obj) {
90760 return obj && obj.__esModule ? obj : { default: obj };
90761}
90762
90763var DATE = _constant2.DATE_PANEL_MODE.DATE,
90764 WEEK = _constant2.DATE_PANEL_MODE.WEEK,
90765 MONTH = _constant2.DATE_PANEL_MODE.MONTH,
90766 QUARTER = _constant2.DATE_PANEL_MODE.QUARTER,
90767 YEAR = _constant2.DATE_PANEL_MODE.YEAR;
90768var UN_SELECTED = _constant2.CALENDAR_CELL_STATE.UN_SELECTED,
90769 SELECTED = _constant2.CALENDAR_CELL_STATE.SELECTED,
90770 SELECTED_BEGIN = _constant2.CALENDAR_CELL_STATE.SELECTED_BEGIN,
90771 SELECTED_END = _constant2.CALENDAR_CELL_STATE.SELECTED_END;
90772var BEGIN = _constant.DATE_INPUT_TYPE.BEGIN,
90773 END = _constant.DATE_INPUT_TYPE.END;
90774
90775var operate = function operate(mode, value, operator) {
90776 var newVal = value.clone();
90777
90778 switch (mode) {
90779 case DATE:
90780 case WEEK:
90781 return newVal[operator](1, 'month');
90782 case QUARTER:
90783 case MONTH:
90784 return newVal[operator](1, 'year');
90785 case YEAR:
90786 return newVal[operator](10, 'year');
90787 }
90788};
90789
90790var isSamePanel = function isSamePanel(a, b, mode) {
90791 switch (mode) {
90792 case DATE:
90793 case WEEK:
90794 return a.isSame(b, 'month');
90795 case QUARTER:
90796 case MONTH:
90797 return a.isSame(b, 'year');
90798 case YEAR:
90799 {
90800 var begin = a.year() - a.year() % 20;
90801 var byear = b.year();
90802
90803 return byear >= begin && byear < begin + 20;
90804 }
90805 }
90806};
90807
90808// 计算 面板日期
90809var getPanelValue = function getPanelValue(_ref, defaultValue) {
90810 var mode = _ref.mode,
90811 value = _ref.value,
90812 inputType = _ref.inputType,
90813 showTime = _ref.showTime;
90814 var begin = value[0],
90815 end = value[1];
90816
90817 var otherType = inputType === BEGIN ? END : BEGIN;
90818 var _inputType = inputType;
90819
90820 if (!value[inputType] && value[otherType]) {
90821 _inputType = otherType;
90822 }
90823
90824 var panelValue = value[_inputType] || (0, _util.datejs)(defaultValue);
90825
90826 // https://github.com/alibaba-fusion/next/issues/3186
90827 if (!showTime && _inputType === END && end && (begin && !isSamePanel(begin, end, mode) || !begin)) {
90828 panelValue = operate(mode, panelValue, 'subtract');
90829 }
90830
90831 return panelValue && panelValue.isValid() ? panelValue : (0, _util.datejs)();
90832};
90833
90834var RangePanel = (_temp = _class = function (_React$Component) {
90835 (0, _inherits3.default)(RangePanel, _React$Component);
90836
90837 function RangePanel(props) {
90838 (0, _classCallCheck3.default)(this, RangePanel);
90839
90840 var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
90841
90842 _initialiseProps.call(_this);
90843
90844 var mode = props.mode,
90845 defaultPanelValue = props.defaultPanelValue,
90846 _props$timePanelProps = props.timePanelProps,
90847 timePanelProps = _props$timePanelProps === undefined ? {} : _props$timePanelProps;
90848
90849 // 默认时间
90850
90851 var defaultTime = timePanelProps.defaultValue || [];
90852 if (!Array.isArray(defaultTime)) {
90853 defaultTime = [defaultTime, defaultTime];
90854 }
90855 defaultTime = defaultTime.map(function (t) {
90856 return (0, _util.datejs)(t, timePanelProps.format || 'HH:mm:ss');
90857 });
90858
90859 _this.state = {
90860 mode: mode,
90861 panelValue: getPanelValue(props, defaultPanelValue),
90862 inputType: props.inputType,
90863 curHoverValue: null,
90864 defaultTime: defaultTime
90865 };
90866 return _this;
90867 }
90868
90869 RangePanel.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {
90870 if (props.inputType !== state.inputType) {
90871 return {
90872 inputType: props.inputType,
90873 panelValue: getPanelValue(props, state.panelValue)
90874 };
90875 }
90876 return null;
90877 };
90878
90879 RangePanel.prototype.componentWillUnmount = function componentWillUnmount() {
90880 this.currentRaf && window.cancelAnimationFrame(this.currentRaf);
90881 };
90882
90883 // 日期面板显示的日期区间
90884
90885
90886 RangePanel.prototype.getRanges = function getRanges() {
90887 var mode = this.props.mode;
90888 var v = this.state.panelValue;
90889
90890 var begin = v.clone();
90891 var end = operate(mode, v, 'add');
90892
90893 return [begin, end];
90894 };
90895
90896 // 日期cell状态
90897 RangePanel.prototype.handleCellState = function handleCellState(v, value) {
90898 var mode = this.props.mode;
90899 var begin = value[0],
90900 end = value[1];
90901
90902 var unit = this.getUnitByMode(mode);
90903
90904 return begin && begin.isSame(v, unit) ? SELECTED_BEGIN : end && end.isSame(v, unit) ? SELECTED_END : begin && end && v.isAfter(begin, unit) && v.isBefore(end, unit) ? SELECTED : UN_SELECTED;
90905 };
90906
90907 RangePanel.prototype.getUnitByMode = function getUnitByMode(mode) {
90908 return mode === DATE ? 'day' : mode;
90909 };
90910
90911 // 头部面板日期切换点击事件
90912
90913
90914 RangePanel.prototype.renderRange = function renderRange(sharedProps) {
90915 var _classnames;
90916
90917 var handlePanelChange = this.handlePanelChange,
90918 handleCanlendarClick = this.handleCanlendarClick,
90919 hasModeChanged = this.hasModeChanged;
90920 var _props = this.props,
90921 value = _props.value,
90922 prefix = _props.prefix;
90923
90924 var ranges = this.getRanges();
90925
90926 var calendarProps = function calendarProps(idx) {
90927 return (0, _extends4.default)({}, sharedProps, {
90928 value: value[idx],
90929 panelValue: ranges[idx],
90930 onPanelChange: function onPanelChange(v, m) {
90931 return handlePanelChange(v, m, idx);
90932 }
90933 });
90934 };
90935
90936 var calendarNodes = [_react2.default.createElement(_calendar2.default, (0, _extends4.default)({}, calendarProps(0), { className: prefix + 'range-picker-left', key: 'range-panel-calendar-left' })), _react2.default.createElement(_calendar2.default, (0, _extends4.default)({}, calendarProps(1), {
90937 className: prefix + 'range-picker-right',
90938 key: 'range-panel-calendar-right',
90939 onNext: handleCanlendarClick,
90940 onSuperNext: handleCanlendarClick
90941 }))];
90942
90943 var className = (0, _classnames4.default)(prefix + 'range-picker2-panel', (_classnames = {}, _classnames[prefix + 'range-picker2-panel-single'] = hasModeChanged, _classnames));
90944
90945 return _react2.default.createElement('div', { key: 'range-panel', className: className }, !this.hasModeChanged ? calendarNodes : calendarNodes[this.state.calendarIdx]);
90946 };
90947
90948 RangePanel.prototype.render = function render() {
90949 var handleSelect = this.handleSelect,
90950 getCellClassName = this.getCellClassName,
90951 handleMouseEnter = this.handleMouseEnter,
90952 handleMouseLeave = this.handleMouseLeave;
90953 var _props2 = this.props,
90954 mode = _props2.mode,
90955 justBeginInput = _props2.justBeginInput,
90956 dateCellRender = _props2.dateCellRender,
90957 restProps = (0, _objectWithoutProperties3.default)(_props2, ['mode', 'justBeginInput', 'dateCellRender']);
90958
90959 // 切换面板mode
90960
90961 this.hasModeChanged = this.state.mode !== this.props.mode;
90962
90963 var sharedProps = (0, _extends4.default)({}, _util.obj.pickProps(_calendar2.default.propTypes, restProps), {
90964 shape: 'panel',
90965 panelMode: mode,
90966 dateCellRender: dateCellRender
90967 });
90968
90969 sharedProps.disabledDate = justBeginInput ? this.props.disabledDate : this.disabledDate;
90970
90971 // 日期面板固定列数 保证对齐
90972 if ([DATE, WEEK].includes(mode)) {
90973 sharedProps.colNum = 6;
90974 }
90975
90976 if (!this.hasModeChanged) {
90977 sharedProps = (0, _extends4.default)({}, sharedProps, {
90978 onSelect: handleSelect,
90979 cellClassName: getCellClassName,
90980 cellProps: {
90981 onMouseEnter: handleMouseEnter,
90982 onMouseLeave: handleMouseLeave
90983 }
90984 });
90985 }
90986
90987 return this.props.showTime ? this.renderRangeTime(sharedProps) : this.renderRange(sharedProps);
90988 };
90989
90990 return RangePanel;
90991}(_react2.default.Component), _class.propTypes = {
90992 rtl: PT.bool,
90993 prefix: PT.string,
90994 locale: PT.object,
90995 mode: _propTypes3.default.mode,
90996 value: PT.arrayOf(_propTypes3.default.date),
90997 inputType: _propTypes3.default.inputType,
90998 handleCellState: PT.func,
90999 disabledDate: PT.func,
91000 justBeginInput: PT.bool,
91001 resetTime: PT.bool,
91002 showTime: PT.bool,
91003 timePanelProps: PT.object,
91004 disabledTime: PT.object,
91005 dateCellRender: PT.func
91006}, _class.defaultProps = {
91007 disabledDate: function disabledDate() {
91008 return false;
91009 },
91010 justBeginInput: true
91011}, _initialiseProps = function _initialiseProps() {
91012 var _this2 = this;
91013
91014 this.disabledDate = function (v) {
91015 var _props3 = _this2.props,
91016 mode = _props3.mode,
91017 inputType = _props3.inputType,
91018 disabledDate = _props3.disabledDate,
91019 _props3$value = _props3.value,
91020 begin = _props3$value[0],
91021 end = _props3$value[1];
91022
91023 var unit = (0, _util2.mode2unit)(mode);
91024
91025 return disabledDate(v, mode) || inputType === END && begin && begin.isAfter(v, unit) || inputType === BEGIN && end && end.isBefore(v, unit);
91026 };
91027
91028 this.onTimeSelect = function (v) {
91029 var _props4 = _this2.props,
91030 value = _props4.value,
91031 inputType = _props4.inputType;
91032 var begin = value[0],
91033 end = value[1];
91034
91035 var curDateVal = value[inputType];
91036 if (!curDateVal) {
91037 curDateVal = inputType === BEGIN && end ? end.subtract(1, 'day') : inputType === END && begin ? begin.add(1, 'day') : (0, _util.datejs)();
91038 }
91039 curDateVal = (0, _util2.setTime)(curDateVal, v);
91040
91041 _this2.handleSelect(curDateVal, true);
91042 };
91043
91044 this.handleSelect = function (v, fromTimeChange) {
91045 var _props5 = _this2.props,
91046 value = _props5.value,
91047 inputType = _props5.inputType,
91048 resetTime = _props5.resetTime;
91049
91050 var otherType = (0, _util2.switchInputType)(inputType);
91051 var newValue = [].concat(value);
91052
91053 var defaultTime = _this2.state.defaultTime[inputType];
91054 var timeVal = null;
91055
91056 // 如果不是选择时间面板触发的时间改变或不需要重置时间
91057 // 则需要设置时间值,优先级如下:
91058 // - 目前这个日期时间
91059 // - 默认时间
91060 // - 另一日期时间
91061 // - 当前时间
91062 if (!fromTimeChange && !resetTime) {
91063 timeVal = value[inputType] || defaultTime || value[otherType] || (0, _util.datejs)();
91064 }
91065
91066 newValue[inputType === BEGIN ? 0 : 1] = (0, _util2.setTime)(v, timeVal);
91067
91068 _util.func.invoke(_this2.props, 'onSelect', [newValue]);
91069 };
91070
91071 this.handlePanelChange = function (v, mode, idx) {
91072 _this2.setState({
91073 mode: mode,
91074 panelValue: v,
91075 calendarIdx: idx
91076 });
91077
91078 _util.func.invoke(_this2.props, 'onPanelChange', [v, mode]);
91079 };
91080
91081 this.handleMouseEnter = function (value) {
91082 _this2.currentRaf && window.cancelAnimationFrame(_this2.currentRaf);
91083 _this2.currentRaf = window.requestAnimationFrame(function () {
91084 _this2.setState({
91085 curHoverValue: value
91086 });
91087 });
91088 };
91089
91090 this.handleMouseLeave = function () {
91091 _this2.currentRaf && window.cancelAnimationFrame(_this2.currentRaf);
91092 _this2.setState({
91093 curHoverValue: null
91094 });
91095 };
91096
91097 this.handleEdgeState = function (value, mode) {
91098 var unit = _this2.getUnitByMode(mode);
91099
91100 switch (mode) {
91101 case DATE:
91102 {
91103 var endDate = value.endOf('month');
91104 var beginDate = value.startOf('month');
91105 return beginDate.isSame(value, unit) ? 1 : endDate.isSame(value, unit) ? 2 : 0;
91106 }
91107 case YEAR:
91108 {
91109 var year = value.year();
91110
91111 var beginYear = value.year() - value.year() % 10;
91112 var endYear = beginYear + 9;
91113 return year === beginYear ? 1 : year === endYear ? 2 : 0;
91114 }
91115 default:
91116 return 0;
91117 }
91118 };
91119
91120 this.getCellClassName = function (value) {
91121 var _extends2;
91122
91123 var _props6 = _this2.props,
91124 prefix = _props6.prefix,
91125 inputType = _props6.inputType,
91126 mode = _props6.mode;
91127 var curHoverValue = _this2.state.curHoverValue;
91128 var _props$value = _this2.props.value,
91129 begin = _props$value[0],
91130 end = _props$value[1];
91131
91132 var unit = _this2.getUnitByMode(mode);
91133
91134 var state = _this2.handleCellState(value, _this2.props.value);
91135 var prefixCls = prefix + 'calendar2-cell';
91136
91137 var hoverClassName = void 0;
91138 if (curHoverValue) {
91139 var hoverValue = [].concat(_this2.props.value);
91140 hoverValue[inputType] = curHoverValue;
91141 var hoverBegin = hoverValue[0],
91142 hoverEnd = hoverValue[1];
91143
91144 if (hoverBegin && hoverEnd && hoverBegin.isBefore(hoverEnd, unit)) {
91145 var _hoverClassName;
91146
91147 var hoverState = _this2.handleCellState(value, hoverValue);
91148
91149 hoverClassName = (_hoverClassName = {}, _hoverClassName[prefixCls + '-hover'] = hoverState >= SELECTED, _hoverClassName[prefixCls + '-hover-begin'] = hoverState === SELECTED_BEGIN, _hoverClassName[prefixCls + '-hover-end'] = hoverState === SELECTED_END, _hoverClassName[prefixCls + '-hover-end'] = hoverState === SELECTED_END, _hoverClassName);
91150 }
91151 }
91152
91153 var rangeClassName = void 0;
91154 if (!_this2.hasModeChanged) {
91155 var _ref2, _ref3;
91156
91157 var edgeState = _this2.handleEdgeState(value, mode);
91158 var isIllegal = end && begin && begin.isAfter(end);
91159
91160 rangeClassName = mode === WEEK ? (_ref2 = {}, _ref2[prefixCls + '-week-range-begin'] = state === SELECTED_BEGIN, _ref2[prefixCls + '-week-range-end'] = state === SELECTED_END, _ref2) : (_ref3 = {}, _ref3[prefixCls + '-range-begin'] = state === SELECTED_BEGIN, _ref3[prefixCls + '-range-end'] = state === SELECTED_END, _ref3[prefixCls + '-range-begin-single'] = state >= SELECTED && (!end || end.isSame(begin, unit) || isIllegal), _ref3[prefixCls + '-range-end-single'] = state >= SELECTED && (!begin || begin.isSame(end, unit) || isIllegal), _ref3[prefixCls + '-edge-begin'] = edgeState === 1, _ref3[prefixCls + '-edge-end'] = edgeState === 2, _ref3);
91161 }
91162
91163 return (0, _extends4.default)((_extends2 = {}, _extends2[prefixCls + '-selected'] = state >= SELECTED, _extends2), rangeClassName, hoverClassName);
91164 };
91165
91166 this.handleCanlendarClick = function (_, _ref4) {
91167 var unit = _ref4.unit,
91168 num = _ref4.num;
91169
91170 _this2.setState({
91171 panelValue: _this2.state.panelValue.clone().add(num, unit)
91172 });
91173 };
91174
91175 this.renderRangeTime = function (sharedProps) {
91176 var _classnames2;
91177
91178 var _props7 = _this2.props,
91179 value = _props7.value,
91180 prefix = _props7.prefix,
91181 showTime = _props7.showTime,
91182 inputType = _props7.inputType,
91183 _props7$timePanelProp = _props7.timePanelProps,
91184 timePanelProps = _props7$timePanelProp === undefined ? {} : _props7$timePanelProp,
91185 disabledTime = _props7.disabledTime;
91186
91187 var className = (0, _classnames4.default)(prefix + 'range-picker2-panel', (_classnames2 = {}, _classnames2[prefix + 'range-picker2-panel-single'] = _this2.hasModeChanged, _classnames2));
91188
91189 // 禁用时间
91190 var _disabledTime = void 0;
91191 if (showTime && !_this2.hasModeChanged && disabledTime) {
91192 _disabledTime = typeof disabledTime === 'function' ? disabledTime(value, inputType) : disabledTime;
91193 }
91194
91195 return _react2.default.createElement('div', { key: 'range-time-panel', className: className }, _react2.default.createElement(_calendar2.default, (0, _extends4.default)({
91196 panelValue: _this2.state.panelValue
91197 }, sharedProps, {
91198 value: value[inputType],
91199 onPanelChange: _this2.handlePanelChange
91200 })), showTime && !_this2.hasModeChanged ? _react2.default.createElement(_timePanel2.default, {
91201 prefix: prefix,
91202 inputType: inputType,
91203 value: value[inputType] || _this2.state.defaultTime[inputType],
91204 onSelect: _this2.onTimeSelect,
91205 disabledTime: disabledTime,
91206 timePanelProps: (0, _extends4.default)({}, _disabledTime, timePanelProps)
91207 }) : null);
91208 };
91209}, _temp);
91210RangePanel.displayName = 'RangePanel';
91211exports.default = (0, _reactLifecyclesCompat.polyfill)(RangePanel);
91212module.exports = exports['default'];
91213
91214/***/ }),
91215/* 489 */
91216/***/ (function(module, exports, __webpack_require__) {
91217
91218"use strict";
91219
91220
91221exports.__esModule = true;
91222exports.default = {
91223 momentLocale: 'ja',
91224 Timeline: {
91225 expand: '開く',
91226 fold: '閉じる'
91227 },
91228 Balloon: {
91229 close: '閉鎖する'
91230 },
91231 Card: {
91232 expand: '開く',
91233 fold: '閉じる'
91234 },
91235 Calendar: {
91236 today: '本日',
91237 now: '現在',
91238 ok: '確認',
91239 clear: 'クリア',
91240 month: '月',
91241 year: '年',
91242 prevYear: '前の年',
91243 nextYear: '次の年',
91244 prevMonth: '前の月',
91245 nextMonth: '来月',
91246 prevDecade: '前の十年',
91247 nextDecade: '次の十年',
91248 yearSelectAriaLabel: '年を選んで',
91249 monthSelectAriaLabel: '月を選択し'
91250 },
91251 DatePicker: {
91252 placeholder: '日付けの選択',
91253 datetimePlaceholder: '日時を選択してください',
91254 monthPlaceholder: '月を選択してください',
91255 yearPlaceholder: '年を選択してください',
91256 weekPlaceholder: '周を選んでください',
91257 now: '現在',
91258 selectTime: '時間の選択',
91259 selectDate: '日付けの選択',
91260 ok: '確認',
91261 clear: 'クリア',
91262 startPlaceholder: '開始日',
91263 endPlaceholder: '最終日',
91264 hour: '時',
91265 minute: '分',
91266 second: '秒'
91267 },
91268 Dialog: {
91269 close: '閉鎖する',
91270 ok: '確認',
91271 cancel: 'キャンセル'
91272 },
91273 Drawer: {
91274 close: '閉鎖する'
91275 },
91276 Message: {
91277 closeAriaLabel: '閉鎖する'
91278 },
91279 Pagination: {
91280 prev: '前のページ',
91281 next: '次のページ',
91282 goTo: '第',
91283 page: 'ページへ',
91284 go: '確認',
91285 total: '第{current}ページ、{total}ページ',
91286 labelPrev: '前のページ、当面の第{current}ページ',
91287 labelNext: '次のページ、当面の第{current}ページ',
91288 inputAriaLabel: '数ページまでジャンプしてください',
91289 selectAriaLabel: 'ページごとに数本表示してください',
91290 pageSize: 'ページサイズ:'
91291 },
91292 Input: {
91293 clear: 'クリア'
91294 },
91295 List: {
91296 empty: 'データなし'
91297 },
91298 Select: {
91299 selectPlaceholder: '選択',
91300 autoCompletePlaceholder: '入力',
91301 notFoundContent: '選択肢なし',
91302 maxTagPlaceholder: '選択済み {selected}/{total}',
91303 selectAll: '全選'
91304 },
91305 TreeSelect: {
91306 maxTagPlaceholder: '選択済み {selected}/{total}',
91307 shortMaxTagPlaceholder: '選択済み {selected}'
91308 },
91309 Table: {
91310 empty: 'データなし',
91311 ok: '確認',
91312 reset: 'リセット',
91313 asc: '昇順',
91314 desc: '降順',
91315 expanded: '展開している',
91316 folded: '収まった',
91317 filter: 'フィルタ',
91318 selectAll: '全選'
91319 },
91320 TimePicker: {
91321 placeholder: '時間の選択',
91322 clear: 'クリア',
91323 hour: '時',
91324 minute: '分',
91325 second: '秒'
91326 },
91327 Transfer: {
91328 items: '項目',
91329 item: '項目',
91330 moveAll: '全ての移動',
91331 searchPlaceholder: '入力',
91332 moveToLeft: '選択した要素のチェックを外します',
91333 moveToRight: '選択した要素を送信'
91334 },
91335 Upload: {
91336 card: {
91337 cancel: 'キャンセル',
91338 addPhoto: '画像アップロード',
91339 download: 'ダウンロード',
91340 delete: '削除'
91341 },
91342 drag: {
91343 text: '枠にドラッグしてアップロード',
91344 hint: 'docx, xls, PDF, rar, zip, PNG, JPG 等がサポートしています'
91345 },
91346 upload: {
91347 delete: '削除'
91348 }
91349 },
91350 Search: {
91351 buttonText: 'サーチ'
91352 },
91353 Tag: {
91354 delete: 'デリート'
91355 },
91356 Rating: {
91357 description: '評価オプション'
91358 },
91359 Switch: {
91360 on: '開いています',
91361 off: '閉じられました'
91362 },
91363 Tab: {
91364 closeAriaLabel: '閉じられました'
91365 },
91366 Form: {
91367 Validate: {
91368 default: '%sのコンテントは間違いです',
91369 required: '%sが必要です',
91370 format: {
91371 number: '%sは番号ではありません',
91372 email: '%sは有効なEメールではありません',
91373 url: '%sは有効なURLではありません',
91374 tel: '%sは有効な電話番号ではありません'
91375 },
91376 number: {
91377 length: '%sは正確に%sキャラクターでなければなりません',
91378 min: '%sはmin%sが必要です',
91379 max: '%sはmax%sが必要です',
91380 minLength: '%sはmin%sキャラクターが必要です',
91381 maxLength: '%sはmax%sキャラクターが必要です'
91382 },
91383 string: {
91384 length: '%sは正確に%sキャラクターでなければなりません',
91385 min: '%sはmin%sが必要です',
91386 max: '%sはmax%sが必要です',
91387 minLength: '%sはmin%sキャラクターが必要です',
91388 maxLength: '%sはmax%sキャラクターが必要です'
91389 },
91390 array: {
91391 length: '%sの長さは%sでなければなりません',
91392 minLength: '%sの長さはmin%sが必要です',
91393 maxLength: '%sの長さはmax%sが必要です'
91394 },
91395 pattern: '%sの値%sはパターン%sと一致しません'
91396 }
91397 }
91398};
91399module.exports = exports['default'];
91400
91401/***/ }),
91402/* 490 */,
91403/* 491 */,
91404/* 492 */
91405/***/ (function(module, exports, __webpack_require__) {
91406
91407"use strict";
91408
91409
91410var next = __webpack_require__(203);
91411
91412next.locales = {};
91413next.locales['en-us'] = __webpack_require__(493);
91414next.locales['ja-ja'] = __webpack_require__(489);
91415next.locales['ja-jp'] = __webpack_require__(489);
91416next.locales['zh-cn'] = __webpack_require__(13);
91417next.locales['zh-hk'] = __webpack_require__(494);
91418next.locales['zh-tw'] = __webpack_require__(495);
91419next.locales['vi-vn'] = __webpack_require__(496);
91420next.locales['it-it'] = __webpack_require__(497);
91421next.locales['pt-pt'] = __webpack_require__(498);
91422next.locales['ko-kr'] = __webpack_require__(499);
91423next.locales['ms-my'] = __webpack_require__(500);
91424next.locales['th-th'] = __webpack_require__(501);
91425next.locales['id-id'] = __webpack_require__(502);
91426
91427module.exports = next;
91428
91429/***/ }),
91430/* 493 */
91431/***/ (function(module, exports, __webpack_require__) {
91432
91433"use strict";
91434
91435
91436exports.__esModule = true;
91437exports.default = {
91438 momentLocale: 'en',
91439 Timeline: {
91440 expand: 'Expand',
91441 fold: 'Fold'
91442 },
91443 Balloon: {
91444 close: 'Close'
91445 },
91446 Card: {
91447 expand: 'Expand',
91448 fold: 'Fold'
91449 },
91450 Calendar: {
91451 today: 'Today',
91452 now: 'Now',
91453 ok: 'OK',
91454 clear: 'Clear',
91455 month: 'Month',
91456 year: 'Year',
91457 prevYear: 'Previous Year',
91458 nextYear: 'Next Year',
91459 prevMonth: 'Previous Month',
91460 nextMonth: 'Next Month',
91461 prevDecade: 'Previous Decade',
91462 nextDecade: 'Next Decade',
91463 yearSelectAriaLabel: 'Select Year',
91464 monthSelectAriaLabel: 'Select Month'
91465 },
91466 DatePicker: {
91467 placeholder: 'Select Date',
91468 datetimePlaceholder: 'Select Date And Time',
91469 monthPlaceholder: 'Select Month',
91470 yearPlaceholder: 'Select Year',
91471 weekPlaceholder: 'Select Week',
91472 now: 'Now',
91473 selectTime: 'Select Time',
91474 selectDate: 'Select Date',
91475 ok: 'OK',
91476 clear: 'Clear',
91477 startPlaceholder: 'Start Date',
91478 endPlaceholder: 'End Date',
91479 hour: 'H',
91480 minute: 'M',
91481 second: 'S'
91482 },
91483 Dialog: {
91484 close: 'Close',
91485 ok: 'OK',
91486 cancel: 'Cancel'
91487 },
91488 Drawer: {
91489 close: 'Close'
91490 },
91491 Message: {
91492 closeAriaLabel: 'Close'
91493 },
91494 Pagination: {
91495 prev: 'Previous',
91496 next: 'Next',
91497 goTo: 'Go to',
91498 page: 'Page',
91499 go: 'View',
91500 total: 'Page {current}, {total} pages',
91501 labelPrev: 'Previous page, current page {current}',
91502 labelNext: 'Next page, current page {current}',
91503 inputAriaLabel: 'Please enter what page to skip to',
91504 selectAriaLabel: 'Please select how many items are displayed on each page',
91505 pageSize: 'Items per page:'
91506 },
91507 Input: {
91508 clear: 'Clear'
91509 },
91510 List: {
91511 empty: 'No Data'
91512 },
91513 Select: {
91514 selectPlaceholder: 'Please Select',
91515 autoCompletePlaceholder: 'Please Input',
91516 notFoundContent: 'No Options',
91517 maxTagPlaceholder: 'Selected {selected}/{total} Total',
91518 selectAll: 'Select All'
91519 },
91520 TreeSelect: {
91521 maxTagPlaceholder: 'Selected {selected}/{total} Total',
91522 shortMaxTagPlaceholder: 'Selected {selected}'
91523 },
91524 Table: {
91525 empty: 'No Data',
91526 ok: 'OK',
91527 reset: 'Reset',
91528 asc: 'Ascending Order',
91529 desc: 'Descending Order',
91530 expanded: 'Expanded',
91531 folded: 'Folded',
91532 filter: 'Filter',
91533 selectAll: 'Select All'
91534 },
91535 TimePicker: {
91536 placeholder: 'Select Time',
91537 clear: 'Clear',
91538 hour: 'H',
91539 minute: 'M',
91540 second: 'S'
91541 },
91542 Transfer: {
91543 items: 'items',
91544 item: 'item',
91545 moveAll: 'Move All',
91546 searchPlaceholder: 'Please Input',
91547 moveToLeft: 'Uncheck Selected Elements',
91548 moveToRight: 'Submit Selected Elements'
91549 },
91550 Upload: {
91551 card: {
91552 cancel: 'Cancel',
91553 addPhoto: 'Add Picture',
91554 download: 'Download',
91555 delete: 'Delete'
91556 },
91557 drag: {
91558 text: 'Click or Drag the file to this area to upload',
91559 hint: 'Support docx, xls, PDF, rar, zip, PNG, JPG and other files upload'
91560 },
91561 upload: {
91562 delete: 'Delete'
91563 }
91564 },
91565 Search: {
91566 buttonText: 'Search'
91567 },
91568 Tag: {
91569 delete: 'Delete'
91570 },
91571 Rating: {
91572 description: 'Rating Options'
91573 },
91574 Switch: {
91575 on: 'on',
91576 off: 'off'
91577 },
91578 Tab: {
91579 closeAriaLabel: 'close'
91580 },
91581 Form: {
91582 Validate: {
91583 default: 'Validation error on field %s',
91584 required: '%s is required',
91585 format: {
91586 number: '%s is not a number',
91587 email: '%s is not a valid email',
91588 url: '%s is not a valid url',
91589 tel: '%s is not a valid phone number'
91590 },
91591 number: {
91592 length: '%s must be exactly %s characters',
91593 min: '%s cannot be less than %s',
91594 max: '%s cannot be greater than %s',
91595 minLength: '%s must be at least %s characters',
91596 maxLength: '%s cannot be longer than %s characters'
91597 },
91598 string: {
91599 length: '%s must be exactly %s characters',
91600 min: '%s cannot be less than %s',
91601 max: '%s cannot be greater than %s',
91602 minLength: '%s must be at least %s characters',
91603 maxLength: '%s cannot be longer than %s characters'
91604 },
91605 array: {
91606 length: '%s must be exactly %s in length',
91607 minLength: '%s cannot be less than %s in length',
91608 maxLength: '%s cannot be greater than %s in length'
91609 },
91610 pattern: '%s value %s does not match pattern %s'
91611 }
91612 }
91613};
91614module.exports = exports['default'];
91615
91616/***/ }),
91617/* 494 */
91618/***/ (function(module, exports, __webpack_require__) {
91619
91620"use strict";
91621
91622
91623exports.__esModule = true;
91624exports.default = {
91625 momentLocale: 'zh-hk',
91626 Timeline: {
91627 expand: '展開',
91628 fold: '收起'
91629 },
91630 Balloon: {
91631 close: '關閉'
91632 },
91633 Card: {
91634 expand: '展開',
91635 fold: '收起'
91636 },
91637 Calendar: {
91638 today: '今天',
91639 now: '此刻',
91640 ok: '確定',
91641 clear: '清除',
91642 month: '月',
91643 year: '年',
91644 prevYear: '上一年',
91645 nextYear: '下一年',
91646 prevMonth: '上個月',
91647 nextMonth: '下個月',
91648 prevDecade: '上十年',
91649 nextDecade: '後十年',
91650 yearSelectAriaLabel: '選擇年份',
91651 monthSelectAriaLabel: '選擇月份'
91652 },
91653 DatePicker: {
91654 placeholder: '請選擇日期',
91655 datetimePlaceholder: '請選擇日期和時間',
91656 monthPlaceholder: '請選擇月',
91657 yearPlaceholder: '請選擇年',
91658 weekPlaceholder: '請選擇周',
91659 now: '此刻',
91660 selectTime: '選擇時間',
91661 selectDate: '選擇日期',
91662 ok: '確定',
91663 clear: '清除',
91664 startPlaceholder: '起始日期',
91665 endPlaceholder: '結束日期',
91666 hour: '時',
91667 minute: '分',
91668 second: '秒'
91669 },
91670 Dialog: {
91671 close: '關閉',
91672 ok: '確認',
91673 cancel: '取消'
91674 },
91675 Drawer: {
91676 close: '關閉'
91677 },
91678 Message: {
91679 closeAriaLabel: '關閉'
91680 },
91681 Pagination: {
91682 prev: '上一頁',
91683 next: '下一頁',
91684 goTo: '到第',
91685 page: '頁',
91686 go: '確定',
91687 total: '第{current}頁,共{total}頁',
91688 labelPrev: '上一頁,當前第{current}頁',
91689 labelNext: '下一頁,當前第{current}頁',
91690 inputAriaLabel: '請輸入跳轉到第幾頁',
91691 selectAriaLabel: '請選擇每頁顯示幾條',
91692 pageSize: '每頁顯示:'
91693 },
91694 Input: {
91695 clear: '清除'
91696 },
91697 List: {
91698 empty: '沒有數據'
91699 },
91700 Select: {
91701 selectPlaceholder: '請選擇',
91702 autoCompletePlaceholder: '請輸入',
91703 notFoundContent: '無選項',
91704 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91705 selectAll: '全選'
91706 },
91707 TreeSelect: {
91708 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91709 shortMaxTagPlaceholder: '已選擇 {selected} 項'
91710 },
91711 Table: {
91712 empty: '沒有數據',
91713 ok: '確認',
91714 reset: '重置',
91715 asc: '升序',
91716 desc: '降序',
91717 expanded: '已展開',
91718 folded: '已摺疊',
91719 filter: '篩選',
91720 selectAll: '全選'
91721 },
91722 TimePicker: {
91723 placeholder: '請選擇時間',
91724 clear: '清除',
91725 hour: '時',
91726 minute: '分',
91727 second: '秒'
91728 },
91729 Transfer: {
91730 items: '項',
91731 item: '項',
91732 moveAll: '移動全部',
91733 searchPlaceholder: '請輸入',
91734 moveToLeft: '撤銷選中元素',
91735 moveToRight: '提交選中元素'
91736 },
91737 Upload: {
91738 card: {
91739 cancel: '取消',
91740 addPhoto: '上傳圖片',
91741 download: '下載',
91742 delete: '刪除'
91743 },
91744 drag: {
91745 text: '點擊或者拖動文件到虛線框內上傳',
91746 hint: '支持 docx, xls, PDF, rar, zip, PNG, JPG 等類型的文件'
91747 },
91748 upload: {
91749 delete: '刪除'
91750 }
91751 },
91752 Search: {
91753 buttonText: '檢索'
91754 },
91755 Tag: {
91756 delete: '删除'
91757 },
91758 Rating: {
91759 description: '評分選項'
91760 },
91761 Switch: {
91762 on: '已打開',
91763 off: '已關閉'
91764 },
91765 Tab: {
91766 closeAriaLabel: '關閉'
91767 },
91768 Form: {
91769 Validate: {
91770 default: '%s 校驗失敗',
91771 required: '%s 是必填字段',
91772 format: {
91773 number: '%s 不是合法的數位',
91774 email: '%s 不是合法的email地址',
91775 url: '%s 不是合法的URL地址',
91776 tel: '%s 不是合法的電話號碼'
91777 },
91778 number: {
91779 length: '%s 長度必須是 %s',
91780 min: '%s 不得小於 %s',
91781 max: '%s 不得大於 %s',
91782 minLength: '%s 長度不得少於 %s',
91783 maxLength: '%s 長度不得超過 %s'
91784 },
91785 string: {
91786 length: '%s 長度必須是 %s',
91787 min: '%s 不得小於 %s',
91788 max: '%s 不得大於 %s',
91789 minLength: '%s 長度不得少於 %s',
91790 maxLength: '%s 長度不得超過 %s'
91791 },
91792 array: {
91793 length: '%s 個數必須是 %s',
91794 minLength: '%s 個數不得少於 %s',
91795 maxLength: '%s 個數不得超過 %s'
91796 },
91797 pattern: '%s 數值 %s 不匹配正則 %s'
91798 }
91799 }
91800};
91801module.exports = exports['default'];
91802
91803/***/ }),
91804/* 495 */
91805/***/ (function(module, exports, __webpack_require__) {
91806
91807"use strict";
91808
91809
91810exports.__esModule = true;
91811exports.default = {
91812 momentLocale: 'zh-tw',
91813 Timeline: {
91814 expand: '展開',
91815 fold: '收起'
91816 },
91817 Balloon: {
91818 close: '關閉'
91819 },
91820 Card: {
91821 expand: '展開',
91822 fold: '收起'
91823 },
91824 Calendar: {
91825 today: '今天',
91826 now: '此刻',
91827 ok: '確定',
91828 clear: '清除',
91829 month: '月',
91830 year: '年',
91831 prevYear: '上一年',
91832 nextYear: '下一年',
91833 prevMonth: '上个月',
91834 nextMonth: '下个月',
91835 prevDecade: '上十年',
91836 nextDecade: '后十年',
91837 yearSelectAriaLabel: '選擇年份',
91838 monthSelectAriaLabel: '選擇月份'
91839 },
91840 DatePicker: {
91841 placeholder: '請選擇日期',
91842 datetimePlaceholder: '請選擇日期和時間',
91843 monthPlaceholder: '請選擇月',
91844 yearPlaceholder: '請選擇年',
91845 weekPlaceholder: '請選擇周',
91846 now: '此刻',
91847 selectTime: '選擇時間',
91848 selectDate: '選擇日期',
91849 ok: '確定',
91850 clear: '清除',
91851 startPlaceholder: '起始日期',
91852 endPlaceholder: '結束日期',
91853 hour: '時',
91854 minute: '分',
91855 second: '秒'
91856 },
91857 Dialog: {
91858 close: '關閉',
91859 ok: '確認',
91860 cancel: '取消'
91861 },
91862 Drawer: {
91863 close: '關閉'
91864 },
91865 Message: {
91866 closeAriaLabel: '關閉'
91867 },
91868 Pagination: {
91869 prev: '上一頁',
91870 next: '下一頁',
91871 goTo: '到第',
91872 page: '頁',
91873 go: '確定',
91874 total: '第{current}頁,共{total}頁',
91875 labelPrev: '上一頁,當前第{current}頁',
91876 labelNext: '下一頁,當前第{current}頁',
91877 inputAriaLabel: '請輸入跳轉到第幾頁',
91878 selectAriaLabel: '請選擇每頁顯示幾條',
91879 pageSize: '每頁顯示:'
91880 },
91881 Input: {
91882 clear: '清除'
91883 },
91884 List: {
91885 empty: '沒有數據'
91886 },
91887 Select: {
91888 selectPlaceholder: '請選擇',
91889 autoCompletePlaceholder: '請輸入',
91890 notFoundContent: '無選項',
91891 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91892 selectAll: '全選'
91893 },
91894 TreeSelect: {
91895 maxTagPlaceholder: '已選擇 {selected}/{total} 項',
91896 shortMaxTagPlaceholder: '已選擇 {selected} 項'
91897 },
91898 Table: {
91899 empty: '沒有數據',
91900 ok: '確認',
91901 reset: '重置',
91902 asc: '昇冪',
91903 desc: '降序',
91904 expanded: '已展開',
91905 folded: '已折疊',
91906 filter: '篩選',
91907 selectAll: '全選'
91908 },
91909 TimePicker: {
91910 placeholder: '請選擇時間',
91911 clear: '清除',
91912 hour: '時',
91913 minute: '分',
91914 second: '秒'
91915 },
91916 Transfer: {
91917 items: '項',
91918 item: '項',
91919 moveAll: '移動全部',
91920 searchPlaceholder: '請輸入',
91921 moveToLeft: '撤銷選中元素',
91922 moveToRight: '提交選中元素'
91923 },
91924 Upload: {
91925 card: {
91926 cancel: '取消',
91927 addPhoto: '上傳圖片',
91928 download: '下載',
91929 delete: '刪除'
91930 },
91931 drag: {
91932 text: '點擊或者拖動文件到虛線框內上傳',
91933 hint: '支持 docx, xls, PDF, rar, zip, PNG, JPG 等類型的文件'
91934 },
91935 upload: {
91936 delete: '刪除'
91937 }
91938 },
91939 Search: {
91940 buttonText: '檢索'
91941 },
91942 Tag: {
91943 delete: '删除'
91944 },
91945 Rating: {
91946 description: '評分選項'
91947 },
91948 Switch: {
91949 on: '已打開',
91950 off: '已關閉'
91951 },
91952 Tab: {
91953 closeAriaLabel: '關閉'
91954 },
91955 Form: {
91956 Validate: {
91957 default: '%s 校驗失敗',
91958 required: '%s 是必填字段',
91959 format: {
91960 number: '%s 不是合法的數位',
91961 email: '%s 不是合法的email地址',
91962 url: '%s 不是合法的URL地址',
91963 tel: '%s 不是合法的電話號碼'
91964 },
91965 number: {
91966 length: '%s 長度必須是 %s',
91967 min: '%s 不得小於 %s',
91968 max: '%s 不得大於 %s',
91969 minLength: '%s 長度不得少於 %s',
91970 maxLength: '%s 長度不得超過 %s'
91971 },
91972 string: {
91973 length: '%s 長度必須是 %s',
91974 min: '%s 不得小於 %s',
91975 max: '%s 不得大於 %s',
91976 minLength: '%s 長度不得少於 %s',
91977 maxLength: '%s 長度不得超過 %s'
91978 },
91979 array: {
91980 length: '%s 個數必須是 %s',
91981 minLength: '%s 個數不得少於 %s',
91982 maxLength: '%s 個數不得超過 %s'
91983 },
91984 pattern: '%s 數值 %s 不匹配正則 %s'
91985 }
91986 }
91987};
91988module.exports = exports['default'];
91989
91990/***/ }),
91991/* 496 */
91992/***/ (function(module, exports, __webpack_require__) {
91993
91994"use strict";
91995
91996
91997exports.__esModule = true;
91998/* vietnamese */
91999exports.default = {
92000 momentLocale: 'vi',
92001 Timeline: {
92002 expand: 'Mở rộng',
92003 fold: 'Thu gọn'
92004 },
92005 Balloon: {
92006 close: 'Đóng'
92007 },
92008 Card: {
92009 expand: 'Mở rộng',
92010 fold: 'Thu gọn'
92011 },
92012 Calendar: {
92013 today: 'Hôm nay',
92014 now: 'Bây giờ',
92015 ok: 'OK',
92016 clear: 'Xóa',
92017 month: 'Tháng',
92018 year: 'Năm',
92019 prevYear: 'Năm trước',
92020 nextYear: 'Năm tiếp theo',
92021 prevMonth: 'Tháng trước',
92022 nextMonth: 'Tháng tiếp theo',
92023 prevDecade: 'Thập kỷ trước',
92024 nextDecade: 'Thập kỷ tiếp theo',
92025 yearSelectAriaLabel: 'Chọn năm',
92026 monthSelectAriaLabel: 'Chọn tháng'
92027 },
92028 DatePicker: {
92029 placeholder: 'Chọn ngày',
92030 datetimePlaceholder: 'Chọn ngày và thời gian',
92031 monthPlaceholder: 'Chọn tháng',
92032 yearPlaceholder: 'Chọn năm',
92033 weekPlaceholder: 'Chọn tuần',
92034 now: 'Bây giờ',
92035 selectTime: 'Chọn thời gian',
92036 selectDate: 'Chọn ngày',
92037 ok: 'OK',
92038 clear: 'Xóa',
92039 startPlaceholder: 'Ngày bắt đầu',
92040 endPlaceholder: 'Ngày kết thúc',
92041 hour: 'Giờ',
92042 minute: 'Phút',
92043 second: 'Giây'
92044 },
92045 Dialog: {
92046 close: 'Đóng',
92047 ok: 'OK',
92048 cancel: 'Hủy'
92049 },
92050 Drawer: {
92051 close: 'Đóng'
92052 },
92053 Message: {
92054 closeAriaLabel: 'Đóng'
92055 },
92056 Pagination: {
92057 prev: 'Trước đó',
92058 next: 'Tiếp theo',
92059 goTo: 'Truy cập',
92060 page: 'Trang',
92061 go: 'Xem',
92062 total: 'Trang {current}, {total} trang',
92063 labelPrev: 'Trước đó trang, trang hiện tại {current}',
92064 labelNext: 'Trang tiếp theo, trang hiện tại {current}',
92065 inputAriaLabel: 'Vui lòng nhập trang cần bỏ qua',
92066 selectAriaLabel: 'Vui lòng chọn số mục hiển thị trên mỗi trang',
92067 pageSize: 'Số mục trên mỗi trang:'
92068 },
92069 Input: {
92070 clear: 'Xóa'
92071 },
92072 List: {
92073 empty: 'Không có dữ liệu'
92074 },
92075 Select: {
92076 selectPlaceholder: 'Vui lòng chọn',
92077 autoCompletePlaceholder: 'Vui lòng nhập',
92078 notFoundContent: 'Không có tùy chọn',
92079 maxTagPlaceholder: 'Đã chọn {selected}/{total}',
92080 selectAll: 'Chọn tất cả'
92081 },
92082 TreeSelect: {
92083 maxTagPlaceholder: 'Đã chọn {selected}/{total}',
92084 shortMaxTagPlaceholder: 'Đã chọn {selected}'
92085 },
92086 Table: {
92087 empty: 'Không có dữ liệu',
92088 ok: 'OK',
92089 reset: 'Đặt lại',
92090 asc: 'Thứ tự tăng dần',
92091 desc: 'Thứ tự giảm dần',
92092 expanded: 'Đã mở rộng',
92093 folded: 'Đã thu gọn',
92094 filter: 'Bộ lọc',
92095 selectAll: 'Chọn tất cả'
92096 },
92097 TimePicker: {
92098 placeholder: 'Chọn thời gian',
92099 clear: 'Xóa',
92100 hour: 'Giờ',
92101 minute: 'Phút',
92102 second: 'Giây'
92103 },
92104 Transfer: {
92105 items: 'mục',
92106 item: 'mục',
92107 moveAll: 'Di chuyển tất cả',
92108 searchPlaceholder: 'Vui lòng nhập',
92109 moveToLeft: 'Bỏ chọn các thành phần đã chọn',
92110 moveToRight: 'Gửi các thành phần đã chọn'
92111 },
92112 Upload: {
92113 card: {
92114 cancel: 'Hủy',
92115 addPhoto: 'Thêm ảnh',
92116 download: 'Tải xuống',
92117 delete: 'Xóa'
92118 },
92119 drag: {
92120 text: 'Nhấp chuột hoặc kéo tệp vào khu vực này để tải lên',
92121 hint: 'Hỗ trợ docx, xls, PDF, rar, zip, PNG, JPG và tải lên các tệp khác'
92122 },
92123 upload: {
92124 delete: 'Xóa'
92125 }
92126 },
92127 Search: {
92128 buttonText: 'Tìm kiếm'
92129 },
92130 Tag: {
92131 delete: 'Xóa'
92132 },
92133 Rating: {
92134 description: 'Tùy chọn xếp hạng'
92135 },
92136 Switch: {
92137 on: 'bật',
92138 off: 'tắt'
92139 },
92140 Tab: {
92141 closeAriaLabel: 'Đóng'
92142 },
92143 Form: {
92144 Validate: {
92145 default: 'Lỗi xác thực trên trường %s',
92146 required: '%s là bắt buộc',
92147 format: {
92148 number: '%s không phải là một số',
92149 email: '%s không phải là một email hợp lệ',
92150 url: '%s không phải là một URL hợp lệ',
92151 tel: '%s không phải là số điện thoại hợp lệ'
92152 },
92153 number: {
92154 length: '%s phải chính xác là các ký tự %s',
92155 min: '%s không thể nhỏ hơn %s',
92156 max: '%s không thể lớn hơn %s',
92157 minLength: '%s phải có ít nhất các ký tự %s',
92158 maxLength: '%s không thể dài hơn ký tự %s'
92159 },
92160 string: {
92161 length: '%s phải chính xác là các ký tự %s',
92162 min: '%s không thể nhỏ hơn %s',
92163 max: '%s không thể lớn hơn %s',
92164 minLength: '%s phải có ít nhất các ký tự %s',
92165 maxLength: '%s không thể dài hơn ký tự %s'
92166 },
92167 array: {
92168 length: '%s phải chính xác %s về chiều dài',
92169 minLength: '%s không thể nhỏ hơn %s dài',
92170 maxLength: '%s không thể lớn hơn %s có độ dài'
92171 },
92172 pattern: '%s GIÁ TRỊ %s không khớp với mẫu %s'
92173 }
92174 }
92175};
92176module.exports = exports['default'];
92177
92178/***/ }),
92179/* 497 */
92180/***/ (function(module, exports, __webpack_require__) {
92181
92182"use strict";
92183
92184
92185exports.__esModule = true;
92186/* italian */
92187exports.default = {
92188 momentLocale: 'it',
92189 Timeline: {
92190 expand: 'Espandi',
92191 fold: 'Riduci'
92192 },
92193 Balloon: {
92194 close: 'Chiudi'
92195 },
92196 Card: {
92197 expand: 'Espandi',
92198 fold: 'Riduci'
92199 },
92200 Calendar: {
92201 today: 'Oggi',
92202 now: 'Ora',
92203 ok: 'OK',
92204 clear: 'Cancella',
92205 month: 'Mese',
92206 year: 'Anno',
92207 prevYear: 'Anno precedente',
92208 nextYear: 'Prossimo anno',
92209 prevMonth: 'Mese precedente',
92210 nextMonth: 'Prossimo mese',
92211 prevDecade: 'Decennio precedente',
92212 nextDecade: 'Prossimo decennio',
92213 yearSelectAriaLabel: 'Seleziona anno',
92214 monthSelectAriaLabel: 'Seleziona mese'
92215 },
92216 DatePicker: {
92217 placeholder: 'Seleziona data',
92218 datetimePlaceholder: 'Seleziona data e orario',
92219 monthPlaceholder: 'Seleziona mese',
92220 yearPlaceholder: 'Seleziona anno',
92221 weekPlaceholder: 'Selezionare settimana',
92222 now: 'Ora',
92223 selectTime: 'Seleziona orario',
92224 selectDate: 'Seleziona data',
92225 ok: 'OK',
92226 clear: 'Cancella',
92227 startPlaceholder: 'Data di inizio',
92228 endPlaceholder: 'Data di fine',
92229 hour: 'H',
92230 minute: 'M',
92231 second: 'S'
92232 },
92233 Dialog: {
92234 close: 'Chiudi',
92235 ok: 'OK',
92236 cancel: 'Annulla'
92237 },
92238 Drawer: {
92239 close: 'Chiudi'
92240 },
92241 Message: {
92242 closeAriaLabel: 'Chiudi'
92243 },
92244 Pagination: {
92245 prev: 'Precedente',
92246 next: 'Successivo',
92247 goTo: 'Vai a',
92248 page: 'Pagina',
92249 go: 'Visualizza',
92250 total: 'Pagina {current}, {total} pagine',
92251 labelPrev: 'Pagina precedente, pagina corrente {current}',
92252 labelNext: 'Pagina successiva, pagina corrente {current}',
92253 inputAriaLabel: 'Inserisci a quale pagina saltare',
92254 selectAriaLabel: 'Seleziona il numero di elementi visualizzati in ogni pagina',
92255 pageSize: 'Articoli per pagina:'
92256 },
92257 Input: {
92258 clear: 'Cancella'
92259 },
92260 List: {
92261 empty: 'Nessun dato'
92262 },
92263 Select: {
92264 selectPlaceholder: 'Seleziona',
92265 autoCompletePlaceholder: 'Inserisci',
92266 notFoundContent: 'Nessuna opzione',
92267 maxTagPlaceholder: '{selected} selezionati/{total} totali',
92268 selectAll: 'Seleziona tutto'
92269 },
92270 TreeSelect: {
92271 maxTagPlaceholder: '{selected} selezionati/{total} totali',
92272 shortMaxTagPlaceholder: '{selected} selezionati'
92273 },
92274 Table: {
92275 empty: 'Nessun dato',
92276 ok: 'OK',
92277 reset: 'Ripristina',
92278 asc: 'Ordine ascendente',
92279 desc: 'Ordine decrescente',
92280 expanded: 'Espanso',
92281 folded: 'Ridotto',
92282 filter: 'Filtro',
92283 selectAll: 'Seleziona tutto'
92284 },
92285 TimePicker: {
92286 placeholder: 'Seleziona orario',
92287 clear: 'Cancella',
92288 hour: 'H',
92289 minute: 'M',
92290 second: 'S'
92291 },
92292 Transfer: {
92293 items: 'articoli',
92294 item: 'articolo',
92295 moveAll: 'Sposta tutto',
92296 searchPlaceholder: 'Inserisci',
92297 moveToLeft: 'Deseleziona elementi selezionati',
92298 moveToRight: 'Inviare elementi selezionati'
92299 },
92300 Upload: {
92301 card: {
92302 cancel: 'Annulla',
92303 addPhoto: 'Aggiungi immagine',
92304 download: 'Scarica',
92305 delete: 'Elimina'
92306 },
92307 drag: {
92308 text: "Seleziona o trascina il file in quest'area per caricarlo'",
92309 hint: 'Supporta il caricamento di docx, xls, PDF, rar, zip, PNG, JPG e altri file'
92310 },
92311 upload: {
92312 delete: 'Elimina'
92313 }
92314 },
92315 Search: {
92316 buttonText: 'Cerca'
92317 },
92318 Tag: {
92319 delete: 'Elimina'
92320 },
92321 Rating: {
92322 description: 'Opzioni di valutazione'
92323 },
92324 Switch: {
92325 on: 'on',
92326 off: 'off'
92327 },
92328 Tab: {
92329 closeAriaLabel: 'Chiudi'
92330 },
92331 Form: {
92332 Validate: {
92333 default: 'Errore di convalida sul campo %s',
92334 required: '%s è richiesto',
92335 format: {
92336 number: '%s non è un numero',
92337 email: "%s non è un'email valida",
92338 url: '%s non è un URL valido',
92339 tel: '%s non è un numero di telefono valido'
92340 },
92341 number: {
92342 length: '%s deve essere esattamente caratteri %s',
92343 min: '%s non può essere inferiore a %s',
92344 max: '%s non può essere maggiore di %s',
92345 minLength: '%s deve essere almeno caratteri %s',
92346 maxLength: '%s non può essere più lungo dei caratteri %s'
92347 },
92348 string: {
92349 length: '%s deve essere esattamente caratteri %s',
92350 min: '%s non può essere inferiore a %s',
92351 max: '%s non può essere maggiore di %s',
92352 minLength: '%s deve essere almeno caratteri %s',
92353 maxLength: '%s non può essere più lungo dei caratteri %s'
92354 },
92355 array: {
92356 length: '%s deve essere esattamente %s in lunghezza',
92357 minLength: '%s non può essere inferiore a %s di lunghezza',
92358 maxLength: '%s non può essere maggiore di %s di lunghezza'
92359 },
92360 pattern: '%s Value %s non corrisponde al modello %s'
92361 }
92362 }
92363};
92364module.exports = exports['default'];
92365
92366/***/ }),
92367/* 498 */
92368/***/ (function(module, exports, __webpack_require__) {
92369
92370"use strict";
92371
92372
92373exports.__esModule = true;
92374exports.default = {
92375 momentLocale: 'pt',
92376 Timeline: {
92377 expand: 'Expandir',
92378 fold: 'Comprimir'
92379 },
92380 Balloon: {
92381 close: 'Fechar'
92382 },
92383 Card: {
92384 expand: 'Expandir',
92385 fold: 'Comprimir'
92386 },
92387 Calendar: {
92388 today: 'Hoje',
92389 now: 'Agora',
92390 ok: 'OK',
92391 clear: 'Limpar',
92392 month: 'Mês',
92393 year: '',
92394 prevYear: 'Ano Passado',
92395 nextYear: 'Próximo ano',
92396 prevMonth: 'Mês Passado',
92397 nextMonth: 'Próximo Mês',
92398 prevDecade: 'Década Passada',
92399 nextDecade: 'Próxima Década',
92400 yearSelectAriaLabel: 'Selecionar Ano',
92401 monthSelectAriaLabel: 'Selecionar Mês'
92402 },
92403 DatePicker: {
92404 placeholder: 'Selecione uma Data',
92405 datetimePlaceholder: 'Selecione o Dia e a Hora',
92406 monthPlaceholder: 'Selecione o mês',
92407 yearPlaceholder: 'Selecione o ano',
92408 weekPlaceholder: 'Selecione a semana',
92409 now: 'Agora',
92410 selectTime: 'Selecionar a Hora',
92411 selectDate: 'Selecionar o Dia',
92412 ok: 'OK',
92413 clear: 'Limpar',
92414 startPlaceholder: 'Data de início',
92415 endPlaceholder: 'Data do Fim',
92416 hour: 'H',
92417 minute: 'M',
92418 second: 'S'
92419 },
92420 Dialog: {
92421 close: 'Fechar',
92422 ok: 'OK',
92423 cancel: 'Cancelar'
92424 },
92425 Drawer: {
92426 close: 'Fechar'
92427 },
92428 Message: {
92429 closeAriaLabel: 'Fechar'
92430 },
92431 Pagination: {
92432 prev: 'Voltar',
92433 next: 'Próximo',
92434 goTo: 'Ir para',
92435 page: 'Página',
92436 go: 'View',
92437 total: 'Página {current}, {total} Página(s)',
92438 labelPrev: 'Página Anterior, Página atual {current}',
92439 labelNext: 'Próximo Página, Página atual {current}',
92440 inputAriaLabel: 'Por favor, defina a página que que deseja pular',
92441 selectAriaLabel: 'Por favor, selecione quantos items você quer mostrar por página',
92442 pageSize: 'Items por página:'
92443 },
92444 Input: {
92445 clear: 'Limpar'
92446 },
92447 List: {
92448 empty: 'Vazio'
92449 },
92450 Select: {
92451 selectPlaceholder: 'Por favor, escolha.',
92452 autoCompletePlaceholder: 'Por favor, insira',
92453 notFoundContent: 'Sem opções',
92454 maxTagPlaceholder: 'Escolher {selected}/{total} Total',
92455 selectAll: 'Selecionar Tudo'
92456 },
92457 TreeSelect: {
92458 maxTagPlaceholder: 'Escolher {selected}/{total} Total',
92459 shortMaxTagPlaceholder: 'Escolher {selected}'
92460 },
92461 Table: {
92462 empty: 'Vazio',
92463 ok: 'OK',
92464 reset: 'Resetar',
92465 asc: 'Ordem Crescente',
92466 desc: 'Ordem Descendente',
92467 expanded: 'Expandir',
92468 folded: 'Comprimir',
92469 filter: 'Filtrar',
92470 selectAll: 'Selecionar Tudo'
92471 },
92472 TimePicker: {
92473 placeholder: 'Selecionar Hora',
92474 clear: 'Limpar',
92475 hour: 'H',
92476 minute: 'M',
92477 second: 'S'
92478 },
92479 Transfer: {
92480 items: 'items',
92481 item: 'item',
92482 moveAll: 'Mover Tudo',
92483 searchPlaceholder: 'Por favor, insira',
92484 moveToLeft: 'Desmarcar Elementos',
92485 moveToRight: 'Confirmar Elementos Selecionados'
92486 },
92487 Upload: {
92488 card: {
92489 cancel: 'Cancelar',
92490 addPhoto: 'Adicionar Imagem',
92491 download: 'Download',
92492 delete: 'Deletar'
92493 },
92494 drag: {
92495 text: 'Clique ou Arraste o arquivo para para área pontilhada',
92496 hint: 'Arquivos suportados: docx, xls, PDF, rar, zip, PNG, JPG e outros.'
92497 },
92498 upload: {
92499 delete: 'Deletar'
92500 }
92501 },
92502 Search: {
92503 buttonText: 'Procurar'
92504 },
92505 Tag: {
92506 delete: 'Deletar'
92507 },
92508 Rating: {
92509 description: 'Opções de classificação'
92510 },
92511 Switch: {
92512 on: 'Ativo',
92513 off: 'Inativo'
92514 },
92515 Tab: {
92516 closeAriaLabel: 'Fechar'
92517 },
92518 Form: {
92519 Validate: {
92520 default: 'Erro de validação no campo %s',
92521 required: '%s é necessário',
92522 format: {
92523 number: '%s não é um número',
92524 email: '%s não é um email válido',
92525 url: '%s não é uma url válida',
92526 tel: '%s não é um número de telefone válido'
92527 },
92528 number: {
92529 length: '%s deve ter exatamente %s caracteres',
92530 min: '%s não pode ser menor que %s',
92531 max: '%s não pode ser maior que %s',
92532 minLength: '%s deve ter pelo menos %s caracteres',
92533 maxLength: '%s não pode ter mais do que %s caracteres'
92534 },
92535 string: {
92536 length: '%s deve ter exatamente %s caracteres',
92537 min: '%s não pode ser menor que %s',
92538 max: '%s não pode ser maior que %s',
92539 minLength: '%s deve ter pelo menos %s caracteres',
92540 maxLength: '%s não pode ter mais do que %s caracteres'
92541 },
92542 array: {
92543 length: '%s deve ter exatamente %s de comprimento',
92544 minLength: '%s não pode ter menos que %s de comprimento',
92545 maxLength: '%s não pode ser maior que %s de comprimento'
92546 },
92547 pattern: '%s valor %s não corresponde ao padrão %s'
92548 }
92549 }
92550};
92551module.exports = exports['default'];
92552
92553/***/ }),
92554/* 499 */
92555/***/ (function(module, exports, __webpack_require__) {
92556
92557"use strict";
92558
92559
92560exports.__esModule = true;
92561exports.default = {
92562 momentLocale: 'ko',
92563 Timeline: {
92564 expand: '넓히다',
92565 fold: '멀리'
92566 },
92567 Balloon: {
92568 close: '종료'
92569 },
92570 Card: {
92571 expand: '넓히다',
92572 fold: '멀리'
92573 },
92574 Calendar: {
92575 today: '그밍',
92576 now: '현재',
92577 ok: '확정',
92578 clear: '삭제',
92579 month: '월',
92580 year: '년',
92581 prevYear: '작년',
92582 nextYear: '내년',
92583 prevMonth: '전월',
92584 nextMonth: '차월',
92585 prevDecade: '지난 10년',
92586 nextDecade: '앞으로 10년',
92587 yearSelectAriaLabel: '연간선택',
92588 monthSelectAriaLabel: '월 선택'
92589 },
92590 DatePicker: {
92591 placeholder: '일자 선택',
92592 datetimePlaceholder: '일자 및 시간 선택',
92593 monthPlaceholder: '월 선택',
92594 yearPlaceholder: '연간 선택',
92595 weekPlaceholder: '주 선택',
92596 now: '현재',
92597 selectTime: '시간 선택',
92598 selectDate: '일자 선택',
92599 ok: '확정',
92600 clear: '삭제',
92601 startPlaceholder: '시작일자',
92602 endPlaceholder: '종료일자',
92603 hour: '시',
92604 minute: '분',
92605 second: '초'
92606 },
92607 Dialog: {
92608 close: '종료',
92609 ok: '확정',
92610 cancel: '취소'
92611 },
92612 Drawer: {
92613 close: '종료'
92614 },
92615 Message: {
92616 closeAriaLabel: '종료'
92617 },
92618 Pagination: {
92619 prev: '앞 페이지',
92620 next: '뒷 페이지',
92621 goTo: '처음에는',
92622 page: '페이지',
92623 go: '확정',
92624 total: '{current} 페이지 , 총 {total}페이지',
92625 labelPrev: '앞 페이지 , {current} 페이지',
92626 labelNext: '뒷 페이지 , {current} 페이지',
92627 inputAriaLabel: '원하는 페이지 숫자 입력',
92628 selectAriaLabel: '페이지당 원하는 갯수 선택',
92629 pageSize: '페이지마다 표시:'
92630 },
92631 Input: {
92632 clear: '삭제'
92633 },
92634 List: {
92635 empty: '노데이터'
92636 },
92637 Select: {
92638 selectPlaceholder: '선택',
92639 autoCompletePlaceholder: '기입',
92640 notFoundContent: '해당사항 없음',
92641 maxTagPlaceholder: '기 선택 {selected}/{total} 항',
92642 selectAll: '전부 선택'
92643 },
92644 TreeSelect: {
92645 maxTagPlaceholder: '기 선택 {selected}/{total} 항',
92646 shortMaxTagPlaceholder: '기 선택 {selected} 항'
92647 },
92648 Table: {
92649 empty: '데이터 없음',
92650 ok: '확인',
92651 reset: '리셋',
92652 asc: '오름차순',
92653 desc: '내림차순',
92654 expanded: '전개',
92655 folded: '접다',
92656 filter: '선별',
92657 selectAll: '전부 선택'
92658 },
92659 TimePicker: {
92660 placeholder: '시간 선택',
92661 clear: '삭제',
92662 hour: '시',
92663 minute: '분',
92664 second: '초'
92665 },
92666 Transfer: {
92667 items: '항',
92668 item: '항',
92669 moveAll: '전부 이전',
92670 searchPlaceholder: '기입',
92671 moveToLeft: '기 선택항 철회',
92672 moveToRight: '선택항 제출'
92673 },
92674 Upload: {
92675 card: {
92676 cancel: '취소',
92677 addPhoto: '이미지 업로드',
92678 download: '다운로드',
92679 delete: '삭제'
92680 },
92681 drag: {
92682 text: '클릭 또는 마우스로 파일을 점선 내 이동하여 업로드',
92683 hint: 'docx, xls, PDF, rar, zip, PNG, JPG 등 파일 가능'
92684 },
92685 upload: {
92686 delete: '삭제'
92687 }
92688 },
92689 Search: {
92690 buttonText: '써치'
92691 },
92692 Tag: {
92693 delete: '삭제'
92694 },
92695 Rating: {
92696 description: '평점항목'
92697 },
92698 Switch: {
92699 on: '열기',
92700 off: '닫기'
92701 },
92702 Tab: {
92703 closeAriaLabel: '닫기'
92704 },
92705 Form: {
92706 Validate: {
92707 default: '%s 검증 실패',
92708 required: '%s 필수',
92709 format: {
92710 number: '%s 요구에 맞지 않은 데이터 입니다.',
92711 email: '%s 요구에 맞지 않은 email 주소 입니다.',
92712 url: '%s 정확하지 않은 링크입니다.',
92713 tel: ' %s 정확하지 않은 연락 번호 입니다.'
92714 },
92715 number: {
92716 length: '%s 길이는 반드시 %s',
92717 min: '%s 대비 %s가 커야 합니다.',
92718 max: '%s 대비 %s는 작아야 합니다.',
92719 minLength: '%s 글자수는 최소%s',
92720 maxLength: '%s 글자수는 최대%s'
92721 },
92722 string: {
92723 length: '%s 길이는 반드시 %s',
92724 min: '%s 대비 %s가 커야 합니다.',
92725 max: ' %s 대비 %s는 작아야 합니다.',
92726 minLength: '%s 글자수는 최소%s',
92727 maxLength: '%s 글자수는 최대%s'
92728 },
92729 array: {
92730 length: '%s 개수는 반드시 %s',
92731 minLength: '%s 개수는 최소%s',
92732 maxLength: '%s 개수는 최대 %s'
92733 },
92734 pattern: '%s 데이터 중 %s가 요구치 %s 에 적합하지 않습니다.'
92735 }
92736 }
92737};
92738module.exports = exports['default'];
92739
92740/***/ }),
92741/* 500 */
92742/***/ (function(module, exports, __webpack_require__) {
92743
92744"use strict";
92745
92746
92747exports.__esModule = true;
92748exports.default = {
92749 momentLocale: 'ms',
92750 Timeline: {
92751 expand: 'Berkembang',
92752 fold: 'Letakkan'
92753 },
92754 Balloon: {
92755 close: 'menutup'
92756 },
92757 Card: {
92758 expand: 'Berkembang',
92759 fold: 'Letakkan'
92760 },
92761 Calendar: {
92762 today: 'Kini',
92763 now: 'Sekarang',
92764 ok: 'tentukan',
92765 clear: 'Jelas',
92766 month: 'bulan',
92767 year: 'tahun',
92768 prevYear: 'tahun lepas',
92769 nextYear: 'tahun hadapan',
92770 prevMonth: 'bulan lepas',
92771 nextMonth: 'bulan depan',
92772 prevDecade: 'Sepuluh tahun',
92773 nextDecade: 'Sepuluh tahun',
92774 yearSelectAriaLabel: 'Tahun pilihan.',
92775 monthSelectAriaLabel: 'Bulan'
92776 },
92777 DatePicker: {
92778 placeholder: 'Sila pilih tarikh',
92779 datetimePlaceholder: 'Sila pilih tarikh dan masa',
92780 monthPlaceholder: 'Sila pilih sebulan',
92781 yearPlaceholder: 'Sila pilih tahun ini',
92782 weekPlaceholder: 'Sila pilih Minggu',
92783 now: 'Sekarang',
92784 selectTime: 'tempoh pemilihan',
92785 selectDate: 'Tarikh',
92786 ok: 'tentukan',
92787 clear: 'Jelas',
92788 startPlaceholder: 'Tarikh mula',
92789 endPlaceholder: 'Tarikh tamat',
92790 hour: 'Masa',
92791 minute: 'Minit',
92792 second: 'kedua'
92793 },
92794 Dialog: {
92795 close: 'menutup',
92796 ok: 'sahkan',
92797 cancel: 'membatalkan'
92798 },
92799 Drawer: {
92800 close: 'menutup'
92801 },
92802 Message: {
92803 closeAriaLabel: 'menutup'
92804 },
92805 Pagination: {
92806 prev: 'Halaman sebelumnya',
92807 next: 'Muka surat seterusnya',
92808 goTo: 'Yang pertama',
92809 page: 'PAGE',
92810 go: 'tentukan',
92811 total: 'Laman {current}, Jumlah Laman {total}',
92812 labelPrev: 'Halaman sebelumnya, halaman {current} semasa',
92813 labelNext: 'Halaman seterusnya, halaman {current} semasa',
92814 inputAriaLabel: 'Sila masukkan ke halaman yang lebih pendek',
92815 selectAriaLabel: 'Sila pilih beberapa item setiap halaman',
92816 pageSize: 'Tunjukkan pada setiap halaman:'
92817 },
92818 Input: {
92819 clear: 'Jelas'
92820 },
92821 List: {
92822 empty: 'tiada data'
92823 },
92824 Select: {
92825 selectPlaceholder: 'sila pilih',
92826 autoCompletePlaceholder: 'Sila masukkan',
92827 notFoundContent: 'Tiada pilihan',
92828 maxTagPlaceholder: '{selected} / {total}.',
92829 selectAll: 'pilih semua'
92830 },
92831 TreeSelect: {
92832 maxTagPlaceholder: '{selected} / {total}.',
92833 shortMaxTagPlaceholder: '{selected}.'
92834 },
92835 Table: {
92836 empty: 'tiada data',
92837 ok: 'sahkan',
92838 reset: 'Reset semula',
92839 asc: 'Susunan menaik',
92840 desc: 'Dalam susunan menurun',
92841 expanded: 'Sudah pun bermula',
92842 folded: 'Dilipat',
92843 filter: 'penapis',
92844 selectAll: 'pilih semua'
92845 },
92846 TimePicker: {
92847 placeholder: 'Sila pilih masa',
92848 clear: 'Jelas',
92849 hour: 'Masa',
92850 minute: 'Minit',
92851 second: 'kedua'
92852 },
92853 Transfer: {
92854 items: 'Item',
92855 item: 'Item',
92856 moveAll: 'Mobile semua',
92857 searchPlaceholder: 'Sila masukkan',
92858 moveToLeft: 'Membatalkan elemen',
92859 moveToRight: 'Mengemukakan elemen'
92860 },
92861 Upload: {
92862 card: {
92863 cancel: 'membatalkan',
92864 addPhoto: 'Muat naik imej',
92865 download: 'muat turun',
92866 delete: 'memadam'
92867 },
92868 drag: {
92869 text: 'Klik atau seret fail ke kotak putus-putus',
92870 hint: 'Sokongan untuk Fail seperti Docx, XLS, PDF, RAR, ZIP, PNG, JPG'
92871 },
92872 upload: {
92873 delete: 'memadam'
92874 }
92875 },
92876 Search: {
92877 buttonText: 'carian untuk'
92878 },
92879 Tag: {
92880 delete: 'memadam'
92881 },
92882 Rating: {
92883 description: 'Pilihan penarafan'
92884 },
92885 Switch: {
92886 on: 'Sudah dibuka',
92887 off: 'ditutup'
92888 },
92889 Tab: {
92890 closeAriaLabel: 'menutup'
92891 },
92892 Form: {
92893 Validate: {
92894 default: 'Pengesahan %s gagal',
92895 required: '%s adalah medan mesti mengisi',
92896 format: {
92897 number: '%s bukan nombor undang-undang',
92898 email: '%s bukan alamat e-mel yang sah',
92899 url: '%s bukan alamat URL yang sah',
92900 tel: '%s bukan nombor telefon yang sah'
92901 },
92902 number: {
92903 length: 'Panjang %s mestilah %s',
92904 min: '%s tidak boleh kurang daripada %s',
92905 max: '%s tidak boleh lebih besar daripada %s',
92906 minLength: 'Watak medan %s tidak boleh kurang daripada %s',
92907 maxLength: 'Watak-watak bidang %s tidak boleh melebihi %s'
92908 },
92909 string: {
92910 length: 'Panjang %s mestilah %s',
92911 min: '%s tidak boleh kurang daripada %s',
92912 max: '%s tidak boleh lebih besar daripada %s',
92913 minLength: 'Panjang %s tidak kurang daripada %s',
92914 maxLength: 'Panjang %s tidak boleh melebihi %s'
92915 },
92916 array: {
92917 length: '%s mestilah %s',
92918 minLength: 'Bilangan %s tidak kurang daripada %s',
92919 maxLength: 'Nombor %s tidak boleh melebihi %s'
92920 },
92921 pattern: '%s Value %s tidak sepadan dengan %s biasa'
92922 }
92923 }
92924};
92925module.exports = exports['default'];
92926
92927/***/ }),
92928/* 501 */
92929/***/ (function(module, exports, __webpack_require__) {
92930
92931"use strict";
92932
92933
92934exports.__esModule = true;
92935exports.default = {
92936 momentLocale: 'th',
92937 Timeline: {
92938 expand: 'ขยาย',
92939 fold: 'เอาออกไป'
92940 },
92941 Balloon: {
92942 close: 'ปิดตัวลง'
92943 },
92944 Card: {
92945 expand: 'ขยาย',
92946 fold: 'เอาออกไป'
92947 },
92948 Calendar: {
92949 today: 'ทุกวันนี้',
92950 now: 'ตอนนี้',
92951 ok: 'กำหนด',
92952 clear: 'ชัดเจน',
92953 month: 'เดือน',
92954 year: 'ปี',
92955 prevYear: 'ปีที่แล้ว',
92956 nextYear: 'ปีหน้า',
92957 prevMonth: 'เดือนที่แล้ว',
92958 nextMonth: 'เดือนหน้า',
92959 prevDecade: 'สิบปี',
92960 nextDecade: 'สิบปี',
92961 yearSelectAriaLabel: 'เลือกปี',
92962 monthSelectAriaLabel: 'เดือน'
92963 },
92964 DatePicker: {
92965 placeholder: 'กรุณาเลือกวันที่',
92966 datetimePlaceholder: 'โปรดเลือกวันที่และเวลา',
92967 monthPlaceholder: 'กรุณาเลือกเดือน',
92968 yearPlaceholder: 'โปรดเลือกปี',
92969 weekPlaceholder: 'กรุณาเลือกสัปดาห์',
92970 now: 'ตอนนี้',
92971 selectTime: 'ระยะเวลาการเลือก',
92972 selectDate: 'วันที่',
92973 ok: 'กำหนด',
92974 clear: 'ชัดเจน',
92975 startPlaceholder: 'วันที่เริ่มต้น',
92976 endPlaceholder: 'วันที่สิ้นสุด',
92977 hour: 'เวลา',
92978 minute: 'นาที',
92979 second: 'ครั้งที่สอง'
92980 },
92981 Dialog: {
92982 close: 'ปิดตัวลง',
92983 ok: 'ยืนยัน',
92984 cancel: 'ยกเลิก'
92985 },
92986 Drawer: {
92987 close: 'ปิดตัวลง'
92988 },
92989 Message: {
92990 closeAriaLabel: 'ปิดตัวลง'
92991 },
92992 Pagination: {
92993 prev: 'หน้าก่อนหน้า',
92994 next: 'หน้าต่อไป',
92995 goTo: 'ในครั้งแรก',
92996 page: 'หน้า',
92997 go: 'กำหนด',
92998 total: 'หน้า {current}, หน้า {total} ทั้งหมด',
92999 labelPrev: 'หน้าก่อนหน้าหน้า {current} ปัจจุบัน',
93000 labelNext: 'หน้าถัดไปหน้า {current} ปัจจุบัน',
93001 inputAriaLabel: 'กรุณาใส่ข้ามไปที่หน้าสั้น',
93002 selectAriaLabel: 'โปรดเลือกรายการบางรายการต่อหน้า',
93003 pageSize: 'แสดงทุกหน้า:'
93004 },
93005 Input: {
93006 clear: 'ชัดเจน'
93007 },
93008 List: {
93009 empty: 'ไม่มีข้อมูล'
93010 },
93011 Select: {
93012 selectPlaceholder: 'กรุณาเลือก',
93013 autoCompletePlaceholder: 'กรุณากรอก',
93014 notFoundContent: 'ไม่มีตัวเลือก',
93015 maxTagPlaceholder: '{selected} / {total}',
93016 selectAll: 'เลือกทั้งหมด'
93017 },
93018 TreeSelect: {
93019 maxTagPlaceholder: '{selected} / {total}',
93020 shortMaxTagPlaceholder: '{selected}'
93021 },
93022 Table: {
93023 empty: 'ไม่มีข้อมูล',
93024 ok: 'ยืนยัน',
93025 reset: 'รีเซ็ต',
93026 asc: 'สั่งซื้อน้อยไปมาก',
93027 desc: 'สั่งซื้อจากมากไปน้อย',
93028 expanded: 'ได้เริ่มแล้ว',
93029 folded: 'พับ',
93030 filter: 'กรอง',
93031 selectAll: 'เลือกทั้งหมด'
93032 },
93033 TimePicker: {
93034 placeholder: 'โปรดเลือกเวลา',
93035 clear: 'ชัดเจน',
93036 hour: 'เวลา',
93037 minute: 'นาที',
93038 second: 'ครั้งที่สอง'
93039 },
93040 Transfer: {
93041 items: 'สิ่งของ',
93042 item: 'สิ่งของ',
93043 moveAll: 'มือถือทั้งหมด',
93044 searchPlaceholder: 'กรุณากรอก',
93045 moveToLeft: 'การจัดสรรองค์ประกอบ',
93046 moveToRight: 'ส่งองค์ประกอบ'
93047 },
93048 Upload: {
93049 card: {
93050 cancel: 'ยกเลิก',
93051 addPhoto: 'อัพโหลดรูปภาพ',
93052 download: 'ดาวน์โหลด',
93053 delete: 'ลบ'
93054 },
93055 drag: {
93056 text: 'คลิกหรือลากไฟล์ไปที่กล่องประ',
93057 hint: 'รองรับไฟล์เช่น DOCX, XLS, PDF, RAR, ZIP, PNG, JPG'
93058 },
93059 upload: {
93060 delete: 'ลบ'
93061 }
93062 },
93063 Search: {
93064 buttonText: 'ค้นหา'
93065 },
93066 Tag: {
93067 delete: 'ลบ'
93068 },
93069 Rating: {
93070 description: 'ตัวเลือกการให้คะแนน'
93071 },
93072 Switch: {
93073 on: 'เปิดแล้ว',
93074 off: 'ปิด'
93075 },
93076 Tab: {
93077 closeAriaLabel: 'ปิดตัวลง'
93078 },
93079 Form: {
93080 Validate: {
93081 default: 'การตรวจสอบ %s ล้มเหลว',
93082 required: '%s เป็นฟิลด์ที่ต้องกรอก',
93083 format: {
93084 number: '%s ไม่ใช่หมายเลขทางกฎหมาย',
93085 email: '%s ไม่ใช่ที่อยู่อีเมลทางกฎหมาย',
93086 url: '%s ไม่ใช่ที่อยู่ URL ที่ถูกต้องตามกฎหมาย',
93087 tel: '%s ไม่ใช่หมายเลขโทรศัพท์ที่ถูกกฎหมาย'
93088 },
93089 number: {
93090 length: 'ความยาว %s ต้องเป็น %s',
93091 min: '%s ต้องไม่น้อยกว่า %s',
93092 max: '%s ต้องไม่มากกว่า %s',
93093 minLength: 'อักขระฟิลด์ %s ต้องไม่น้อยกว่า %s',
93094 maxLength: 'อักขระฟิลด์ %s ต้องไม่เกิน %s'
93095 },
93096 string: {
93097 length: 'ความยาว %s ต้องเป็น %s',
93098 min: '%s ต้องไม่น้อยกว่า %s',
93099 max: '%s ต้องไม่มากกว่า %s',
93100 minLength: 'ความยาว %s ไม่น้อยกว่า %s',
93101 maxLength: 'ความยาว %s ต้องไม่เกิน %s'
93102 },
93103 array: {
93104 length: '%s ต้องเป็น %s',
93105 minLength: 'จำนวน %s ไม่น้อยกว่า %s',
93106 maxLength: 'หมายเลข %s ต้องไม่เกิน %s'
93107 },
93108 pattern: 'ค่า %s %s ไม่ตรงกับ %s ปกติ'
93109 }
93110 }
93111};
93112module.exports = exports['default'];
93113
93114/***/ }),
93115/* 502 */
93116/***/ (function(module, exports, __webpack_require__) {
93117
93118"use strict";
93119
93120
93121exports.__esModule = true;
93122exports.default = {
93123 momentLocale: 'id',
93124 Timeline: {
93125 expand: 'Lebih Banyak',
93126 fold: 'Lebih Sedikit'
93127 },
93128 Balloon: {
93129 close: 'Tutup'
93130 },
93131 Card: {
93132 expand: 'Lebih Banyak',
93133 fold: 'Lebih Sedikit'
93134 },
93135
93136 Calendar: {
93137 today: 'Hari Ini',
93138 now: 'Sekarang',
93139 ok: 'OK',
93140 clear: 'Reset',
93141 month: 'Bulan',
93142 year: 'Tahun',
93143 prevYear: 'Tahun Lalu',
93144 nextYear: 'Tahun Depan',
93145 prevMonth: 'Bulan Lalu',
93146 nextMonth: 'Bulan Depan',
93147 prevDecade: 'Sepuluh Tahun Sebelumnya',
93148 nextDecade: 'Sepuluh Tahun Selanjutnya',
93149 yearSelectAriaLabel: 'Tahun pilihan',
93150 monthSelectAriaLabel: 'Bulan pilihan'
93151 },
93152 DatePicker: {
93153 placeholder: 'Pilih Tanggal',
93154 datetimePlaceholder: 'Pilih Tanggal dan Waktu',
93155 monthPlaceholder: 'Pilih Bulan',
93156 yearPlaceholder: 'Pilih Tahun',
93157 weekPlaceholder: 'Pilih Minggu',
93158 now: 'Sekarang',
93159 selectTime: 'Pilih Waktu',
93160 selectDate: 'Pilih Tanggal',
93161 ok: 'OK',
93162 clear: 'Reset',
93163 startPlaceholder: 'Tanggal Mulai',
93164 endPlaceholder: 'Tanggal Selesai',
93165 hour: 'Jam',
93166 minute: 'Menit',
93167 second: 'Detik'
93168 },
93169 Dialog: {
93170 close: 'Tutup',
93171 ok: 'OK',
93172 cancel: 'Batalkan'
93173 },
93174 Drawer: {
93175 close: 'Tutup'
93176 },
93177 Message: {
93178 closeAriaLabel: 'Tutup'
93179 },
93180 Pagination: {
93181 prev: 'Sebelumnya',
93182 next: 'Selanjutnya',
93183 goTo: 'Ke Halaman',
93184 page: 'Halaman',
93185 go: 'Lihat',
93186 total: 'Halaman {current}, Total {total} Halaman',
93187 labelPrev: 'Halaman Sebelumnya, Halaman {current}',
93188 labelNext: 'Halaman Selanjutnya, Halaman {current}',
93189 inputAriaLabel: 'Masukkan halaman yang ingin dikunjungi',
93190 selectAriaLabel: 'Pilih jumlah yang ingin ditampilkan per halaman',
93191 pageSize: 'Jumlah setiap halaman:'
93192 },
93193 Input: {
93194 clear: 'Reset'
93195 },
93196 List: {
93197 empty: 'Tidak Ada Data'
93198 },
93199 Select: {
93200 selectPlaceholder: 'Silakan Pilih',
93201 autoCompletePlaceholder: 'Silakan Masukkan',
93202 notFoundContent: 'Konten Tidak Ditemukan',
93203 maxTagPlaceholder: '{selected} / {total} Dipilih',
93204 selectAll: 'Pilih Semua'
93205 },
93206 TreeSelect: {
93207 maxTagPlaceholder: '{selected} / {total} Dipilih',
93208 shortMaxTagPlaceholder: '{selected} Dipilih'
93209 },
93210 Table: {
93211 empty: 'Tidak Ada Data',
93212 ok: 'OK',
93213 reset: 'Reset',
93214 asc: 'Kecil ke Besar',
93215 desc: 'Besar ke Kecil',
93216 expanded: 'Lebih Banyak',
93217 folded: 'Lebih Sedikit',
93218 filter: 'Filter',
93219 selectAll: 'Pilih Semua'
93220 },
93221 TimePicker: {
93222 placeholder: 'Silakan Pilih',
93223 clear: 'Reset',
93224 hour: 'Jam',
93225 minute: 'Menit',
93226 second: 'Detik'
93227 },
93228 Transfer: {
93229 items: 'barang',
93230 item: 'barang',
93231 moveAll: 'Pindahkan Semua.',
93232 searchPlaceholder: 'Silakan Masukkan',
93233 moveToLeft: 'Batalkan Pilihan',
93234 moveToRight: 'Simpan'
93235 },
93236 Upload: {
93237 card: {
93238 cancel: 'Batalkan',
93239 addPhoto: 'Tambah Gambar',
93240 download: 'Download',
93241 delete: 'Hapus'
93242 },
93243 drag: {
93244 text: 'Klik atau drag file untuk upload',
93245 hint: 'Tipe file yang didukung: DOCX, XLS, PDF, RAR, ZIP, PNG, JPG'
93246 },
93247 upload: {
93248 delete: 'Hapus'
93249 }
93250 },
93251 Search: {
93252 buttonText: 'Cari'
93253 },
93254 Tag: {
93255 delete: 'Hapus'
93256 },
93257 Rating: {
93258 description: 'Peringkat'
93259 },
93260 Switch: {
93261 on: 'Aktif',
93262 off: 'Non-Aktif'
93263 },
93264 Tab: {
93265 closeAriaLabel: 'Tutup'
93266 },
93267 Form: {
93268 Validate: {
93269 default: 'Validasi %s gagal',
93270 required: '%s wajib diisi',
93271 format: {
93272 number: '%s tidak valid',
93273 email: '%s tidak valid',
93274 url: '%s tidak valid',
93275 tel: '%s tidak valid'
93276 },
93277 number: {
93278 length: 'Panjang %s harus %s',
93279 min: '%s minimum %s',
93280 max: '%s maksimum %s',
93281 minLength: '%s maksimum %s',
93282 maxLength: '%s minimum %s'
93283 },
93284 string: {
93285 length: 'Panjang %s harus %s',
93286 min: '%s minimum %s',
93287 max: '%s maksimum %s',
93288 minLength: '%s maksimum %s',
93289 maxLength: '%s minimum %s'
93290 },
93291 array: {
93292 length: 'Panjang %s harus %s',
93293 minLength: '%s minimum %s',
93294 maxLength: '%s maksimum %s'
93295 },
93296 pattern: ' Value %s %s tidak cocok dengan pattern %s'
93297 }
93298 }
93299};
93300module.exports = exports['default'];
93301
93302/***/ })
93303/******/ ]);
93304});
\No newline at end of file